diff options
author | George Rimar <grimar@accesssoftek.com> | 2019-03-26 18:42:15 +0000 |
---|---|---|
committer | George Rimar <grimar@accesssoftek.com> | 2019-03-26 18:42:15 +0000 |
commit | 279898b3152556c223b7773f78063b52176b9edc (patch) | |
tree | 93674cb9f05976b3de3fed78f28e98ab7287b170 /llvm/test | |
parent | d7aba7678308848b640551ac083c8dfee01a7ba9 (diff) | |
download | bcm5719-llvm-279898b3152556c223b7773f78063b52176b9edc.tar.gz bcm5719-llvm-279898b3152556c223b7773f78063b52176b9edc.zip |
[llvm-objcopy] - Strip sections before symbols.
This is a fix for https://bugs.llvm.org/show_bug.cgi?id=40007.
Idea is to swap the order of stripping. So that we strip sections before
symbols what allows us to strip relocation sections without emitting
the error about relative symbols.
Differential revision: https://reviews.llvm.org/D59763
llvm-svn: 357017
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/tools/llvm-objcopy/ELF/strip-symbol-and-relocation.test | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-symbol-and-relocation.test b/llvm/test/tools/llvm-objcopy/ELF/strip-symbol-and-relocation.test new file mode 100644 index 00000000000..dfe25984c6c --- /dev/null +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-symbol-and-relocation.test @@ -0,0 +1,48 @@ +# RUN: yaml2obj %s > %t + +## Check we are able to strip all symbols and relocatable information at the same time. + +# RUN: llvm-objcopy -S %t %t2 +# RUN: llvm-objdump --section-headers %t2 | FileCheck %s + +# RUN: llvm-objcopy --strip-all-gnu %t %t2 +# RUN: llvm-objdump --section-headers %t2 | FileCheck %s + +# CHECK-NOT: .symtab +# CHECK-NOT: .rela.text + +## Check we are able to strip the particular symbol if we +## strip the corresponding relocation section at the same time. + +# RUN: llvm-objcopy --strip-symbol=bar -R .rela.text %t %t2 +# RUN: llvm-readelf -s -S %t2 | FileCheck %s --check-prefix=STRIPSYM + +# STRIPSYM-NOT: bar +# STRIPSYM-NOT: .rela.text + +# RUN: not llvm-objcopy --strip-symbol=bar %t %t2 2>&1 | FileCheck %s --check-prefix=ERR +# ERR: not stripping symbol 'bar' because it is named in a relocation + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + Content: 00000000 + - Name: .rela.text + Type: SHT_RELA + Link: .symtab + Info: .text + Relocations: + - Offset: 0x0000000000000000 + Symbol: bar + Type: R_X86_64_32S +Symbols: + Global: + - Name: bar + Section: .text |