## Check we are able to override the sh_type field for different sections.
## When doing this we are still able to use YAML keys that can be normally used
## to describe a section with the original type specified with the Type key.
# RUN: yaml2obj %s -o %t1
# RUN: llvm-readobj --sections --section-data %t1 | FileCheck %s --check-prefixes=COMMON,ORIGINAL
## Check we can use a hex value for the ShType. SHT_PROGBITS == 0x1.
# RUN: yaml2obj -DTYPE=0x1 %s -o %t2
# RUN: llvm-readobj --sections --section-data %t2 | FileCheck %s --check-prefixes=COMMON,OVERRIDE
# COMMON: Name: .gnu.version_r
# ORIGINAL-NEXT: Type: SHT_GNU_verneed
# OVERRIDE-NEXT: Type: SHT_PROGBITS
# COMMON: SectionData (
# COMMON-NEXT: 0000: 01000100 04000000 10000000 00000000 |
# COMMON-NEXT: 0010: 91070000 00000300 01000000 00000000 |
# COMMON-NEXT: )
## Check we can use a string type name for the ShType.
# RUN: yaml2obj -DTYPE=SHT_PROGBITS %s -o %t3
# RUN: cmp %t2 %t3
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Sections:
- Name: .gnu.version_r
Type: SHT_GNU_verneed
Flags: [ SHF_ALLOC ]
ShType: [[TYPE=SHT_GNU_verneed]]
Dependencies:
- Version: 1
File: dso.so.0
Entries:
- Name: v1
Hash: 1937
Flags: 0
Other: 3
DynamicSymbols: []