124 lines · yaml
1## Check the values of sh_info fields set by default for2## explicitly listed .dynstr, .dynsym, .strtab and .symtab3## sections.4##5## For symbol table sections, sh_info has a value which is6## one greater than the symbol table index of the last7## local symbol.8##9## sh_info isn't set for string table sections.10 11# RUN: yaml2obj --docnum=1 %s -o %t12# RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix=CASE113 14# CASE1: Name: .symtab15# CASE1: Info:16# CASE1-SAME: 217# CASE1: Name: .strtab18# CASE1: Info:19# CASE1-SAME: 020# CASE1: Name: .dynsym21# CASE1: Info:22# CASE1-SAME: 123# CASE1: Name: .dynstr24# CASE1: Info:25# CASE1-SAME: 026 27--- !ELF28FileHeader:29 Class: ELFCLASS6430 Data: ELFDATA2LSB31 Type: ET_DYN32Sections:33 - Name: .symtab34 Type: SHT_SYMTAB35 - Name: .strtab36 Type: SHT_STRTAB37 - Name: .dynsym38 Type: SHT_DYNSYM39 - Name: .dynstr40 Type: SHT_STRTAB41Symbols:42 - Name: local43 - Name: global144 Binding: STB_GLOBAL45DynamicSymbols:46 - Name: global247 Binding: STB_GLOBAL48 49## In the case when these sections are not defined in YAML, the50## behavior is the same as when we define them, but do not set the Info.51 52# RUN: yaml2obj --docnum=2 %s -o %t53# RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix=CASE254 55# CASE2: Name: .dynsym56# CASE2-NOT: Info:57# CASE2: Info: 1{{$}}58# CASE2: Name: .dynstr59# CASE2-NOT: Info:60# CASE2: Info: 0{{$}}61# CASE2: Name: .symtab62# CASE2-NOT: Info:63# CASE2: Info: 2{{$}}64# CASE2: Name: .strtab65# CASE2-NOT: Info:66# CASE2: Info: 0{{$}}67 68--- !ELF69FileHeader:70 Class: ELFCLASS6471 Data: ELFDATA2LSB72 Type: ET_DYN73Symbols:74 - Name: local75 - Name: global176 Binding: STB_GLOBAL77DynamicSymbols:78 - Name: global279 Binding: STB_GLOBAL80 81## Check we are able to set any sh_info explicitly.82 83# RUN: yaml2obj --docnum=3 %s -o %t84# RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix=CASE385 86# CASE3: Name: .dynstr87# CASE3: Info:88# CASE3-SAME: 1089# CASE3: Name: .dynsym90# CASE3: Info:91# CASE3-SAME: 1192# CASE3: Name: .strtab93# CASE3: Info:94# CASE3-SAME: 1295# CASE3: Name: .symtab96# CASE3: Info:97# CASE3-SAME: 1398 99--- !ELF100FileHeader:101 Class: ELFCLASS64102 Data: ELFDATA2LSB103 Type: ET_DYN104Sections:105 - Name: .dynstr106 Type: SHT_STRTAB107 Info: 10108 - Name: .dynsym109 Type: SHT_DYNSYM110 Info: 11111 - Name: .strtab112 Type: SHT_STRTAB113 Info: 12114 - Name: .symtab115 Type: SHT_SYMTAB116 Info: 13117Symbols:118 - Name: local119 - Name: global1120 Binding: STB_GLOBAL121DynamicSymbols:122 - Name: global2123 Binding: STB_GLOBAL124