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