## Check how we produce SHT_DYNSYM sections.

## Check we do not crash/assert when .dynsym is specified
## explicitly, but .dynstr is not present.
## Check we set the sh_link field to 0 for the .dynsym section in this case.

# RUN: yaml2obj %s -o %t1
# RUN: llvm-readelf --section-headers %t1 | FileCheck %s

# CHECK:      Section Headers:
# CHECK-NEXT:  [Nr] Name    Type   Address          Off    Size   ES Flg Lk
# CHECK-NEXT:  [ 0]         NULL   0000000000000000 000000 000000 00 0   0
# CHECK-NEXT:  [ 1] .dynsym DYNSYM 0000000000000000 000040 000018 18 A   0

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
  - Name:   .dynsym
    Type:   SHT_DYNSYM
    Offset: [[OFFSET=<none>]]

## Check we can use the "Offset" key to to set an arbitrary offset for the SHT_DYNSYM section.

# RUN: yaml2obj %s -DOFFSET=0x100 -o %t2
# RUN: llvm-readelf --section-headers %t2 | FileCheck %s --check-prefix=OFFSET

# OFFSET:      Section Headers:
# OFFSET-NEXT:   [Nr] Name    Type   Address          Off    Size   ES Flg Lk Inf Al
# OFFSET-NEXT:   [ 0]         NULL   0000000000000000 000000 000000 00     0   0  0
# OFFSET-NEXT:   [ 1] .dynsym DYNSYM 0000000000000000 000100 000018 18   A 0   1  0

## Check we are able to set Link = 0 for the .dynsym section explicitly.

# RUN: yaml2obj %s --docnum=2 -DLINK=0 -o %t2
# RUN: llvm-readelf --section-headers %t2 | FileCheck %s --check-prefix=LINK-NULL

# LINK-NULL: [Nr] Name    {{.*}} Flg Lk Inf
# LINK-NULL: [ 1] .dynsym {{.*}}   A 0   1

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_DYN
Sections:
  - Name: .dynsym
    Type: SHT_DYNSYM
    Link: [[LINK=<none>]]
  - Name: .dynstr
    Type: SHT_STRTAB
  - Name: .foo
    Type: SHT_PROGBITS

## Check that by default the .dynsym section will be linked to the .dynstr section,
## when the latter one exists.

# RUN: yaml2obj %s --docnum=2 -o %t3
# RUN: llvm-readelf --section-headers %t3 | FileCheck %s --check-prefix=LINK-DEFAULT

# LINK-DEFAULT: [Nr] Name    {{.*}} Flg Lk Inf
# LINK-DEFAULT: [ 1] .dynsym {{.*}}   A 2   1
# LINK-DEFAULT: [ 2] .dynstr {{.*}}   A 0   0

## Even when the .dynstr section exists, we can explicitly link the .dynsym section
## to another section.

# RUN: yaml2obj %s --docnum=2 -DLINK=3 -o %t4
# RUN: llvm-readelf --section-headers %t4 | FileCheck %s --check-prefix=LINK-FOO

# LINK-FOO: [Nr] Name     {{.*}} Flg Lk Inf
# LINK-FOO: [ 1] .dynsym  {{.*}}   A 3   1
# LINK-FOO: [ 3] .foo

## Check we can use a section name as a Link value for .dynsym.

# RUN: yaml2obj %s --docnum=2 -DLINK=.foo -o %t5
# RUN: llvm-readelf --section-headers %t5 | FileCheck %s --check-prefix=LINK-FOO
