| ## 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 |