| ## Check the values of sh_info fields set by default for |
| ## explicitly listed .dynstr, .dynsym, .strtab and .symtab |
| ## sections. |
| ## |
| ## For symbol table sections, sh_info has a value which is |
| ## one greater than the symbol table index of the last |
| ## local symbol. |
| ## |
| ## sh_info isn't set for string table sections. |
| |
| # RUN: yaml2obj --docnum=1 %s -o %t |
| # RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix=CASE1 |
| |
| # CASE1: Name: .symtab |
| # CASE1: Info: |
| # CASE1-SAME: 2 |
| # CASE1: Name: .strtab |
| # CASE1: Info: |
| # CASE1-SAME: 0 |
| # CASE1: Name: .dynsym |
| # CASE1: Info: |
| # CASE1-SAME: 1 |
| # CASE1: Name: .dynstr |
| # CASE1: Info: |
| # CASE1-SAME: 0 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_DYN |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .symtab |
| Type: SHT_SYMTAB |
| - Name: .strtab |
| Type: SHT_STRTAB |
| - Name: .dynsym |
| Type: SHT_DYNSYM |
| - Name: .dynstr |
| Type: SHT_STRTAB |
| Symbols: |
| - Name: local |
| - Name: global1 |
| Binding: STB_GLOBAL |
| DynamicSymbols: |
| - Name: global2 |
| Binding: STB_GLOBAL |
| |
| ## In the case when these sections are not defined in YAML, the |
| ## behavior is the same as when we define them, but do not set the Info. |
| |
| # RUN: yaml2obj --docnum=2 %s -o %t |
| # RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix=CASE1 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_DYN |
| Machine: EM_X86_64 |
| Symbols: |
| - Name: local |
| - Name: global1 |
| Binding: STB_GLOBAL |
| DynamicSymbols: |
| - Name: global2 |
| Binding: STB_GLOBAL |
| |
| ## Check we are able to set any sh_info explicitly. |
| |
| # RUN: yaml2obj --docnum=3 %s -o %t |
| # RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix=CASE2 |
| |
| # CASE2: Name: .dynstr |
| # CASE2: Info: |
| # CASE2-SAME: 10 |
| # CASE2: Name: .dynsym |
| # CASE2: Info: |
| # CASE2-SAME: 11 |
| # CASE2: Name: .strtab |
| # CASE2: Info: |
| # CASE2-SAME: 12 |
| # CASE2: Name: .symtab |
| # CASE2: Info: |
| # CASE2-SAME: 13 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_DYN |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .dynstr |
| Type: SHT_STRTAB |
| Info: 10 |
| - Name: .dynsym |
| Type: SHT_DYNSYM |
| Info: 11 |
| - Name: .strtab |
| Type: SHT_STRTAB |
| Info: 12 |
| - Name: .symtab |
| Type: SHT_SYMTAB |
| Info: 13 |
| Symbols: |
| - Name: local |
| - Name: global1 |
| Binding: STB_GLOBAL |
| DynamicSymbols: |
| - Name: global2 |
| Binding: STB_GLOBAL |