# .option norelax # .global _start # # .section .reloc_zero, "ax", @progbits # _start: # L1: # jal x0, L1 # L2: # c.jal L2 # # .section .reloc_max, "ax", @progbits # L3: # jal x0, L3 + 0xffffe # L4: # c.jal L4 + 0x7fe # # .section .reloc_min, "ax", @progbits # L5: # jal x0, L5 - 0x100000 # L6: # c.jal L6 - 0x800 # # REQUIRES: riscv # RUN: yaml2obj %s -o %t.o # RUN: ld.lld %t.o -o %t # RUN: obj2yaml %t | FileCheck %s # # CHECK: - Name: .reloc_zero # CHECK: Content: 6F0000000120 # 11000: 0000006f j 11000 # 11004: 2001 jal 11004 # # CHECK: - Name: .reloc_max # CHECK: Content: 6FF0FF7FFD2F # 11006: 7ffff06f j 111004 # 1100a: 2ffd jal 11808 # # CHECK: - Name: .reloc_min # CHECK: Content: 6F0000800130 # 1100c: 8000006f j fff1100c # 11010: 3001 jal 10810 --- !ELF FileHeader: Class: ELFCLASS32 Data: ELFDATA2LSB Type: ET_REL Machine: EM_RISCV Flags: [ EF_RISCV_RVC, EF_RISCV_FLOAT_ABI_SOFT ] Sections: - Name: .text Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] AddressAlign: 0x0000000000000002 Content: '' - Name: .data Type: SHT_PROGBITS Flags: [ SHF_WRITE, SHF_ALLOC ] AddressAlign: 0x0000000000000001 Content: '' - Name: .bss Type: SHT_NOBITS Flags: [ SHF_WRITE, SHF_ALLOC ] AddressAlign: 0x0000000000000001 - Name: .reloc_zero Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] AddressAlign: 0x0000000000000001 Content: 6F0000000120 - Name: .rela.reloc_zero Type: SHT_RELA Flags: [ SHF_INFO_LINK ] Link: .symtab AddressAlign: 0x0000000000000004 Info: .reloc_zero Relocations: - Offset: 0x0000000000000000 Symbol: L1 Type: R_RISCV_JAL - Offset: 0x0000000000000004 Symbol: L2 Type: R_RISCV_RVC_JUMP - Name: .reloc_max Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] AddressAlign: 0x0000000000000001 Content: 6FF0FF7FFD2F - Name: .rela.reloc_max Type: SHT_RELA Flags: [ SHF_INFO_LINK ] Link: .symtab AddressAlign: 0x0000000000000004 Info: .reloc_max Relocations: - Offset: 0x0000000000000000 Symbol: L3 Type: R_RISCV_JAL Addend: 1048574 - Offset: 0x0000000000000004 Symbol: L4 Type: R_RISCV_RVC_JUMP Addend: 2046 - Name: .reloc_min Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] AddressAlign: 0x0000000000000001 Content: 6F0000800130 - Name: .rela.reloc_min Type: SHT_RELA Flags: [ SHF_INFO_LINK ] Link: .symtab AddressAlign: 0x0000000000000004 Info: .reloc_min Relocations: - Offset: 0x0000000000000000 Symbol: L5 Type: R_RISCV_JAL Addend: -1048576 - Offset: 0x0000000000000004 Symbol: L6 Type: R_RISCV_RVC_JUMP Addend: -2048 Symbols: Local: - Name: .text Type: STT_SECTION Section: .text - Name: .data Type: STT_SECTION Section: .data - Name: .bss Type: STT_SECTION Section: .bss - Name: .reloc_zero Type: STT_SECTION Section: .reloc_zero - Name: L1 Section: .reloc_zero - Name: L2 Section: .reloc_zero Value: 0x0000000000000004 - Name: .reloc_max Type: STT_SECTION Section: .reloc_max - Name: L3 Section: .reloc_max - Name: L4 Section: .reloc_max Value: 0x0000000000000004 - Name: .reloc_min Type: STT_SECTION Section: .reloc_min - Name: L5 Section: .reloc_min - Name: L6 Section: .reloc_min Value: 0x0000000000000004 Global: - Name: _start Section: .reloc_zero ...