mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-25 13:20:57 +00:00

This allows to customize this field for "implicit" sections properly. Differential revision: https://reviews.llvm.org/D63487 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363777 91177308-0d34-0410-b5e6-96231b3b80d8
114 lines
2.4 KiB
YAML
114 lines
2.4 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
|
|
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
|