llvm/llvm/test/tools/llvm-objdump/ELF/private-headers.test

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