diff options
| author | George Rimar <grimar@accesssoftek.com> | 2019-05-20 15:41:48 +0000 |
|---|---|---|
| committer | George Rimar <grimar@accesssoftek.com> | 2019-05-20 15:41:48 +0000 |
| commit | 72f821d3de05448e71bff7b39d3e4993c447882a (patch) | |
| tree | 1eb6c4cca48be0b0a5210287c229fb1013e66754 /llvm/test/tools/llvm-readobj/elf-dynamic-not-in-pt-dynamic.test | |
| parent | 055906e1e50ddc35d6c8cdccab48ed83e93b47eb (diff) | |
| download | bcm5719-llvm-72f821d3de05448e71bff7b39d3e4993c447882a.tar.gz bcm5719-llvm-72f821d3de05448e71bff7b39d3e4993c447882a.zip | |
[llvm-readelf] - Rework how we parse the .dynamic section.
This is a result of what I found during my work on https://bugs.llvm.org/show_bug.cgi?id=41679.
Previously LLVM readelf took the information about .dynamic section
from its PT_DYNAMIC segment only. GNU tools have a bit different logic.
They also use the information from the .dynamic section header if it is available.
This patch changes the code to improve the compatibility with the GNU Binutils.
Differential revision: https://reviews.llvm.org/D61937
llvm-svn: 361165
Diffstat (limited to 'llvm/test/tools/llvm-readobj/elf-dynamic-not-in-pt-dynamic.test')
| -rw-r--r-- | llvm/test/tools/llvm-readobj/elf-dynamic-not-in-pt-dynamic.test | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/elf-dynamic-not-in-pt-dynamic.test b/llvm/test/tools/llvm-readobj/elf-dynamic-not-in-pt-dynamic.test new file mode 100644 index 00000000000..d52ec7696fd --- /dev/null +++ b/llvm/test/tools/llvm-readobj/elf-dynamic-not-in-pt-dynamic.test @@ -0,0 +1,47 @@ +## Show that llvm-readobj/llvm-readelf tools can dump the .dynamic +## section when it is not in a PT_DYNAMIC segment. + +# RUN: yaml2obj %s -o %t.o +# RUN: llvm-readobj --dynamic-table %t.o 2>&1 | FileCheck %s +# RUN: llvm-readelf --dynamic-table %t.o 2>&1 | FileCheck %s + +# CHECK: warning: The SHT_DYNAMIC section '.dynamic' is not contained within the PT_DYNAMIC segment +# CHECK: DynamicSection [ (2 entries) +# CHECK-NEXT: Tag Type Name/Value +# CHECK-NEXT: 0x0000000000000018 BIND_NOW 0x1 +# CHECK-NEXT: 0x0000000000000000 NULL 0x0 +# CHECK-NEXT: ] + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 +Sections: + - Name: .dynamic + Type: SHT_DYNAMIC + Flags: [SHF_ALLOC] + Address: 0x1000 + AddressAlign: 0x1000 + Entries: + - Tag: DT_BIND_NOW + Value: 0x1 + - Tag: DT_NULL + Value: 0x0 + - Name: .text + Type: SHT_PROGBITS + Flags: [SHF_ALLOC] + Address: 0x1100 + AddressAlign: 0x100 + Content: "00" +ProgramHeaders: + - Type: PT_LOAD + VAddr: 0x1000 + Sections: + - Section: .dynamic + - Section: .text + - Type: PT_DYNAMIC + VAddr: 0x1000 + Sections: + - Section: .text |

