diff options
author | George Rimar <grimar@accesssoftek.com> | 2019-03-20 13:57:47 +0000 |
---|---|---|
committer | George Rimar <grimar@accesssoftek.com> | 2019-03-20 13:57:47 +0000 |
commit | 0373bedb41ce342c7f7c84a36d7d4d49ae10c190 (patch) | |
tree | d51362c4ed36c05a3599f0df0762235b6f0a1ec0 /llvm/test/tools/llvm-objcopy/ELF | |
parent | 2b70dcd2efa3bcf518d15db9dbd272aaa2b11cd6 (diff) | |
download | bcm5719-llvm-0373bedb41ce342c7f7c84a36d7d4d49ae10c190.tar.gz bcm5719-llvm-0373bedb41ce342c7f7c84a36d7d4d49ae10c190.zip |
[llvm-objcopy] - Use replaceSectionReferences to update the sections for symbols in symbol table.
If the compression was used and we had a symbol not involved in relocation,
we never updated its section and it was silently removed from the output.
Differential revision: https://reviews.llvm.org/D59542
llvm-svn: 356554
Diffstat (limited to 'llvm/test/tools/llvm-objcopy/ELF')
-rw-r--r-- | llvm/test/tools/llvm-objcopy/ELF/Inputs/compress-debug-sections.yaml | 6 | ||||
-rw-r--r-- | llvm/test/tools/llvm-objcopy/ELF/compress-debug-sections-symbols.test | 21 |
2 files changed, 27 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-objcopy/ELF/Inputs/compress-debug-sections.yaml b/llvm/test/tools/llvm-objcopy/ELF/Inputs/compress-debug-sections.yaml index 0f9f5a1aa10..a3c607cc72b 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/Inputs/compress-debug-sections.yaml +++ b/llvm/test/tools/llvm-objcopy/ELF/Inputs/compress-debug-sections.yaml @@ -21,6 +21,10 @@ Sections: - Offset: 0x2 Symbol: .notdebug_foo Type: R_X86_64_32 +## This section should not be involved in relocations. + - Name: .debug_bar + Type: SHT_PROGBITS + Content: 0000000000000000 Symbols: Global: - Name: .debug_foo @@ -29,4 +33,6 @@ Symbols: - Name: .notdebug_foo Type: STT_SECTION Section: .notdebug_foo + - Name: .Linfo_string0 + Section: .debug_bar ... diff --git a/llvm/test/tools/llvm-objcopy/ELF/compress-debug-sections-symbols.test b/llvm/test/tools/llvm-objcopy/ELF/compress-debug-sections-symbols.test new file mode 100644 index 00000000000..1d6ac308d8f --- /dev/null +++ b/llvm/test/tools/llvm-objcopy/ELF/compress-debug-sections-symbols.test @@ -0,0 +1,21 @@ +# REQUIRES: zlib + +# RUN: yaml2obj %p/Inputs/compress-debug-sections.yaml -o %t.o + +## Test that after the compression is done we do not remove the symbol +## and it is placed into the right section. + +# RUN: llvm-objcopy --compress-debug-sections %t.o %t-compressed1.o +# RUN: llvm-readobj -symbols %t-compressed1.o | FileCheck %s --check-prefixes=CHECK,ZLIB + +# RUN: llvm-objcopy --compress-debug-sections=zlib-gnu %t.o %t-compressed2.o +# RUN: llvm-readobj -symbols %t-compressed2.o | FileCheck %s --check-prefixes=CHECK,ZLIBGNU + +# CHECK: Name: .Linfo_string0 +# CHECK-NEXT: Value: 0x0 +# CHECK-NEXT: Size: 0 +# CHECK-NEXT: Binding: Global +# CHECK-NEXT: Type: None +# CHECK-NEXT: Other: 0 +# ZLIB-NEXT: Section: .debug_bar +# ZLIBGNU-NEXT: Section: .zdebug_bar |