124 lines
2.6 KiB
YAML
124 lines
2.6 KiB
YAML
## 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
|
|
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=CASE2
|
|
|
|
# CASE2: Name: .dynsym
|
|
# CASE2-NOT: Info:
|
|
# CASE2: Info: 1{{$}}
|
|
# CASE2: Name: .dynstr
|
|
# CASE2-NOT: Info:
|
|
# CASE2: Info: 0{{$}}
|
|
# CASE2: Name: .symtab
|
|
# CASE2-NOT: Info:
|
|
# CASE2: Info: 2{{$}}
|
|
# CASE2: Name: .strtab
|
|
# CASE2-NOT: Info:
|
|
# CASE2: Info: 0{{$}}
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_DYN
|
|
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=CASE3
|
|
|
|
# CASE3: Name: .dynstr
|
|
# CASE3: Info:
|
|
# CASE3-SAME: 10
|
|
# CASE3: Name: .dynsym
|
|
# CASE3: Info:
|
|
# CASE3-SAME: 11
|
|
# CASE3: Name: .strtab
|
|
# CASE3: Info:
|
|
# CASE3-SAME: 12
|
|
# CASE3: Name: .symtab
|
|
# CASE3: Info:
|
|
# CASE3-SAME: 13
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_DYN
|
|
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
|