## Check that with ELF input --private-headers outputs the program header, | |
## dynamic section and version definitions. | |
# RUN: yaml2obj %s -o %t | |
# RUN: llvm-objdump --private-headers %t | FileCheck %s | |
# CHECK: Program Header: | |
# CHECK-NEXT: LOAD off 0x00000000000000b0 vaddr 0x0000000000001000 paddr 0x0000000000001000 align 2**0 | |
# CHECK-NEXT: filesz 0x000000000000003d memsz 0x000000000000003d flags --- | |
# CHECK-NEXT: DYNAMIC off 0x00000000000000cd vaddr 0x000000000000101d paddr 0x000000000000101d align 2**0 | |
# CHECK-NEXT: filesz 0x0000000000000020 memsz 0x0000000000000020 flags --- | |
# CHECK: Dynamic Section: | |
# CHECK-NEXT: NEEDED bar | |
# CHECK: Version definitions: | |
# CHECK-NEXT: 1 0x01 0x075bcd15 foo | |
# CHECK-NEXT: 2 0x02 0x3ade68b1 VERSION_1 | |
# CHECK-NEXT: VERSION_2 | |
--- !ELF | |
FileHeader: | |
Class: ELFCLASS64 | |
Data: ELFDATA2LSB | |
Type: ET_EXEC | |
Machine: EM_X86_64 | |
Sections: | |
- Name: .dynstr | |
Type: SHT_STRTAB | |
Address: 0x1000 | |
Content: "0062617200666F6F0056455253494F4E5F320056455253494F4E5F3100" | |
# Content is: bar, foo, VERSION_2, VERSION_1 | |
- Name: .dynamic | |
Type: SHT_DYNAMIC | |
Flags: [ SHF_ALLOC ] | |
Entries: | |
- Tag: DT_NEEDED | |
Value: 0x1 | |
- Tag: DT_NULL | |
Value: 0x0 | |
- Name: .gnu.version_d | |
Type: SHT_GNU_verdef | |
Entries: | |
- Version: 1 | |
Flags: 1 | |
VersionNdx: 1 | |
Hash: 123456789 | |
Names: | |
- foo | |
- Version: 1 | |
Flags: 2 | |
VersionNdx: 2 | |
Hash: 987654321 | |
Names: | |
- VERSION_1 | |
- VERSION_2 | |
ProgramHeaders: | |
- Type: PT_LOAD | |
VAddr: 0x1000 | |
FirstSec: .dynstr | |
LastSec: .dynamic | |
- Type: PT_DYNAMIC | |
VAddr: 0x101D | |
FirstSec: .dynamic | |
LastSec: .dynamic | |
DynamicSymbols: | |
- Name: bar | |
Binding: STB_GLOBAL |