91 lines · yaml
1## For implicit symbol table sections, `Link` field can also2## be specified in YAML. Here we test the behavior in different cases.3 4## Check we are able to set Link = 0 for .symtab explicitly.5 6# RUN: yaml2obj --docnum=1 %s -o %t17# RUN: llvm-readobj %t1 -S | FileCheck %s --check-prefix=CASE18 9# CASE1: Name: .symtab10# CASE1: Link:11# CASE1-SAME: 012 13--- !ELF14FileHeader:15 Class: ELFCLASS6416 Data: ELFDATA2LSB17 Type: ET_DYN18Sections:19 - Name: .symtab20 Type: SHT_SYMTAB21 Link: 022 23## Check that by default .symtab will be linked with .strtab.24 25# RUN: yaml2obj --docnum=2 %s -o %t226# RUN: llvm-readobj %t2 -S | FileCheck %s --check-prefix=CASE227 28# CASE2: .symtab29# CASE2: Link:30# CASE2-SAME: 231# CASE2: Index: 232# CASE2-NEXT: Name: .strtab33 34--- !ELF35FileHeader:36 Class: ELFCLASS6437 Data: ELFDATA2LSB38 Type: ET_DYN39Sections:40 - Name: .symtab41 Type: SHT_SYMTAB42 43## Even if .strtab is defined in YAML, we can explicitly link .symtab44## to another section.45 46# RUN: yaml2obj --docnum=3 %s -o %t347# RUN: llvm-readobj %t3 -S | FileCheck %s --check-prefix=CASE348 49# CASE3: .symtab50# CASE3: Link:51# CASE3-SAME: 352# CASE3: Index: 353# CASE3-NEXT: Name: .foo54 55--- !ELF56FileHeader:57 Class: ELFCLASS6458 Data: ELFDATA2LSB59 Type: ET_DYN60Sections:61 - Name: .symtab62 Type: SHT_SYMTAB63 Link: 364 - Name: .strtab65 Type: SHT_STRTAB66 - Name: .foo67 Type: SHT_PROGBITS68 69## Check we can use a section name as a Link value for .symtab.70 71# RUN: yaml2obj --docnum=4 %s -o %t472# RUN: llvm-readobj %t4 -S | FileCheck %s --check-prefix=CASE473 74# CASE4: .symtab75# CASE4: Link:76# CASE4-SAME: 277# CASE4: Index: 278# CASE4-NEXT: Name: .foo79 80--- !ELF81FileHeader:82 Class: ELFCLASS6483 Data: ELFDATA2LSB84 Type: ET_DYN85Sections:86 - Name: .symtab87 Type: SHT_SYMTAB88 Link: .foo89 - Name: .foo90 Type: SHT_PROGBITS91