## Check the section header properties of ".dynsym",
## ".dynstr", ".symtab", ".strtab", ".shstrtab".
## These sections sections are usually added implicitly,
## but here we add them explicitly in YAML and verify.
## We check their order matches YAML and that file offset is
## ascending. This is a natural default behavior.

# RUN: yaml2obj --docnum=1 %s -o %t1
# RUN: llvm-readelf -S %t1 | FileCheck %s

# CHECK:      Section Headers:
# CHECK-NEXT:  [Nr] Name      Type     Address          Off    Size
# CHECK-NEXT:  [ 0]           NULL     0000000000000000 000000 000000
# CHECK-NEXT:  [ 1] .dynstr   STRTAB   0000000000000100 000040 000009
# CHECK-NEXT:  [ 2] .dynsym   DYNSYM   0000000000000150 000049 000030
# CHECK-NEXT:  [ 3] .symtab   SYMTAB   0000000000000000 000079 000018
# CHECK-NEXT:  [ 4] .strtab   STRTAB   0000000000000000 000091 000001
# CHECK-NEXT:  [ 5] .shstrtab STRTAB   0000000000000000 000092 000035
# CHECK-NEXT:  [ 6] .text.foo PROGBITS 0000000000000200 0000c7 000000

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name:    .dynstr
    Type:    SHT_STRTAB
    Address: 0x100
  - Name:    .dynsym
    Type:    SHT_DYNSYM
    Address: 0x150
  - Name:    .symtab
    Type:    SHT_SYMTAB
  - Name:    .strtab
    Type:    SHT_STRTAB
  - Name:    .shstrtab
    Type:    SHT_STRTAB
  - Name:    .text.foo
    Type:    SHT_PROGBITS
    Address: 0x200
## Symbol is required for the .dynsym to be generated.
DynamicSymbols:
  - Name:    _Z3fooi
    Binding: STB_GLOBAL

## Check that yaml2obj creates empty .dynstr and .dynsym sections for
## the case when no dynamic symbols were specified and Content wasn't set,
## but the sections were explicitly listed. Check their VAs are correct.

# RUN: yaml2obj --docnum=2 %s -o %t2
# RUN: llvm-readelf -S %t2 | FileCheck %s --check-prefix=NODYNSYM

# NODYNSYM:      Section Headers:
# NODYNSYM-NEXT: [Nr] Name      Type      Address          Off    Size
# NODYNSYM-NEXT: [ 0]           NULL      0000000000000000 000000 000000
# NODYNSYM-NEXT: [ 1] .dynstr   STRTAB    0000000000000100 000040 000001
# NODYNSYM-NEXT: [ 2] .dynsym   DYNSYM    0000000000000150 000041 000018
# NODYNSYM-NEXT: [ 3] .symtab   SYMTAB    0000000000000000 000059 000018
# NODYNSYM-NEXT: [ 4] .strtab   STRTAB    0000000000000000 000071 000001
# NODYNSYM-NEXT: [ 5] .shstrtab STRTAB    0000000000000000 000072 000035
# NODYNSYM-NEXT: [ 6] .text.foo PROGBITS  0000000000000200 0000a7 000000

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name:    .dynstr
    Type:    SHT_STRTAB
    Address: 0x100
  - Name:    .dynsym
    Type:    SHT_DYNSYM
    Address: 0x150
  - Name:    .symtab
    Type:    SHT_SYMTAB
  - Name:    .strtab
    Type:    SHT_STRTAB
  - Name:    .shstrtab
    Type:    SHT_STRTAB
  - Name:    .text.foo
    Type:    SHT_PROGBITS
    Address: 0x200

## Check we don't add a symbol table when no "Symbols" key is specified.

# RUN: yaml2obj --docnum=3 %s -o %t3
# RUN: llvm-readelf -S %t3 | FileCheck /dev/null --implicit-check-not=.symtab

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64

## Check we add a symbol table when "Symbols" key is specified.

# RUN: yaml2obj --docnum=4 %s -o %t4
# RUN: llvm-readelf -S %t4 | FileCheck %s --check-prefix=SYMTAB

# SYMTAB: .symtab

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Symbols: []
