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