## Test how we dump SHT_CREL sections.
# RUN: yaml2obj %s -o %t1
# RUN: obj2yaml %t1 | FileCheck %s --check-prefix=YAML
# YAML: - Name: .crel.text
# YAML-NEXT: Type: SHT_CREL
# YAML-NEXT: Link: .symtab
# YAML-NEXT: Info: .text
# YAML-NEXT: Relocations:
# YAML-NEXT: - Offset: 0x1
# YAML-NEXT: Symbol: g1
# YAML-NEXT: Type: R_X86_64_32
# YAML-NEXT: Addend: 1
# YAML-NEXT: - Offset: 0x2
# YAML-NEXT: Symbol: l1
# YAML-NEXT: Type: R_X86_64_64
# YAML-NEXT: Addend: 2
# YAML-NEXT: - Symbol: g1
# YAML-NEXT: Type: R_X86_64_32S
# YAML-NEXT: Addend: -1
# YAML-NEXT: - Offset: 0x4
# YAML-NEXT: Symbol: .text
# YAML-NEXT: Type: R_X86_64_32S
# YAML-NEXT: Addend: -9223372036854775808
# YAML-NEXT: - Name: .crel.dyn
# YAML-NEXT: Type: SHT_CREL
# YAML-NEXT: Relocations: []
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Name: .foo
Type: SHT_PROGBITS
Flags: [SHF_ALLOC]
- Name: .text
Type: SHT_PROGBITS
Content: "0000000000000000"
Flags: [SHF_ALLOC]
- Name: .crel.text
Type: SHT_CREL
Info: .text
Link: .symtab
Relocations:
- Offset: 0x1
Symbol: g1
Type: R_X86_64_32
Addend: 1
- Offset: 0x2
Symbol: l1
Type: R_X86_64_64
Addend: 2
- Offset: 0x0
Symbol: g1
Type: R_X86_64_32S
Addend: 0xffffffffffffffff
- Offset: 0x4
Symbol: .text
Type: R_X86_64_32S
Addend: 0x8000000000000000
- Name: .crel.dyn
Type: SHT_CREL
Content: 00
## Trigger the .dynsym emission.
DynamicSymbols: []
Symbols:
- Name: unused
Section: .text
- Name: .text
Type: STT_SECTION
Section: .text
- Name: l1
- Name: g1
Section: .text
Value: 0x0
Size: 4
Binding: STB_GLOBAL
## Test the behavior when the sh_entsize field is broken.
# RUN: yaml2obj -DTYPE=SHT_RELA --docnum=2 %s -o %t2
# RUN: not obj2yaml %t2 2>&1 | FileCheck %s --check-prefix=ERR1
# ERR1: unable to decode LEB128 at offset 0x00000000: malformed uleb128, extends past end
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_DYN
Sections:
- Name: .foo
Type: SHT_CREL