## Here we test that an arbitrary hex value can be used for a relocation type.
## Show that yaml2obj is able to produce relocations for an unknown e_machine kind properly.
# RUN: yaml2obj %s -o %t1 -DMACHINE=0x1234
# RUN: llvm-readelf %t1 --relocations | FileCheck %s -DFIRST=Unknown -DSECOND=Unknown
# RUN: yaml2obj %s -o %t1 -DMACHINE=0x1234 -DTYPE=SHT_CREL
# RUN: llvm-readelf %t1 --relocations | FileCheck %s -DFIRST=Unknown -DSECOND=Unknown
# CHECK: Relocation section '.rela.text' at offset 0x40 contains 4 entries:
# CHECK: Offset Info Type
# CHECK-NEXT: 0000000000000009 0000000000000000 [[FIRST]] 0
# CHECK-NEXT: 0000000000000008 0000000000000001 [[SECOND]] 0
# CHECK-NEXT: 0000000000000007 000000000000007f Unknown 0
# CHECK-NEXT: 0000000000000006 00000000000000ff Unknown 0
## Show that yaml2obj is able to produce relocations for an arbitrary known e_machine kind properly.
# RUN: yaml2obj %s -o %t2 -DMACHINE=EM_X86_64
# RUN: llvm-readelf %t2 --relocations | FileCheck %s -DFIRST=R_X86_64_NONE -DSECOND=R_X86_64_64
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2MSB
Type: ET_REL
Machine: [[MACHINE]]
Sections:
- Name: .rela.text
Type: [[TYPE=SHT_RELA]]
Relocations:
## Test a few noticeable possible values: 0, 1, max(int8_t)=127, max(uint8_t)=0xFF=-1
- Offset: 0x9
Type: 0x0
- Offset: 0x8
Type: 0x1
- Offset: 0x7
Type: 0x7F
- Offset: 0x6
Type: 0xFF