Add issing ELF reloc

This commit is contained in:
mumbel 2024-03-05 21:16:22 -06:00
parent c4a165c6cc
commit 9a22180efa
13 changed files with 126 additions and 16 deletions

View file

@ -66,6 +66,14 @@ public enum AARCH64_ElfRelocationType implements ElfRelocationType {
R_AARCH64_P32_TLSLE_ADD_TPREL_HI12(109),
R_AARCH64_P32_TLSLE_ADD_TPREL_LO12(110),
R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC(111),
R_AARCH64_P32_TLSLE_LDST8_TPREL_LO12(112),
R_AARCH64_P32_TLSLE_LDST8_TPREL_LO12_NC(113),
R_AARCH64_P32_TLSLE_LDST16_TPREL_LO12(114),
R_AARCH64_P32_TLSLE_LDST16_TPREL_LO12_NC(115),
R_AARCH64_P32_TLSLE_LDST32_TPREL_LO12(116),
R_AARCH64_P32_TLSLE_LDST32_TPREL_LO12_NC(117),
R_AARCH64_P32_TLSLE_LDST64_TPREL_LO12(118),
R_AARCH64_P32_TLSLE_LDST64_TPREL_LO12_NC(119),
R_AARCH64_P32_TLSDESC_LD_PREL19(122),
R_AARCH64_P32_TLSDESC_ADR_PREL21(123),

View file

@ -147,7 +147,29 @@ public enum ARM_ElfRelocationType implements ElfRelocationType {
R_ARM_PRIVATE_15(127),
R_ARM_ME_TOO(128),
R_ARM_THM_TLS_DESCSEQ16(129),
R_ARM_THM_TLS_DESCSEQ32(130);
R_ARM_THM_TLS_DESCSEQ32(130),
R_ARM_THM_ALU_ABS_G0_NC(132),
R_ARM_THM_ALU_ABS_G1_NC(133),
R_ARM_THM_ALU_ABS_G2_NC(134),
R_ARM_THM_ALU_ABS_G3_NC(135),
R_ARM_THM_BF16(136),
R_ARM_THM_BF12(137),
R_ARM_THM_BF18(138),
R_ARM_IRELATIVE(160),
R_ARM_GOTFUNCDEC(161),
R_ARM_GOTOFFFUNCDESC(162),
R_ARM_FUNCESC(163),
R_ARM_FUNCDESC_VALUE(164),
R_ARM_TLS_GD32_FDPIC(165),
R_ARM_TLS_LDM32_FDPIC(166),
R_ARM_TLS_IE32_FDPIC(167),
R_ARM_RXPC25(249),
R_ARM_RSBREL32(250),
R_ARM_THM_RPC22(251),
R_ARM_RREL32(252),
R_ARM_RABS32(253),
R_ARM_RPC24(254),
R_ARM_RBASE(255);
public final int typeId;

View file

@ -52,7 +52,8 @@ public enum AVR8_ElfRelocationType implements ElfRelocationType {
R_AVR_DIFF32(32),
R_AVR_LDS_STS_16(33),
R_AVR_PORT6(34),
R_AVR_PORT5(35);
R_AVR_PORT5(35),
R_AVR_32_PCREL(36);
public final int typeId;

View file

@ -40,8 +40,8 @@ public enum Loongarch_ElfRelocationType implements ElfRelocationType {
R_LARCH_IRELATIVE(12), /* Runtime local indirect function resolving
* *(void **) PC((((void *)(*)()) (B + A)) ()
*/
/* Relocations 13..19 reserved for dynamic linker */
R_LARCH_TLS_DESC32(13),
R_LARCH_TLS_DESC64(14),
R_LARCH_MARK_LA(20), // Mark la.abs Load absolute address for static link.
R_LARCH_MARK_PCREL(21), // Mark external label branch Access PC relative address for static link.
@ -148,7 +148,24 @@ public enum Loongarch_ElfRelocationType implements ElfRelocationType {
R_LARCH_SUB6(106), // pcaddi
R_LARCH_ADD_ULEB128(107), // relax delete
R_LARCH_SUB_ULEB128(108), // relax delete
R_LARCH_64_PCREL(109); // pcaddi
R_LARCH_64_PCREL(109), // pcaddi
R_LARCH_CALL32(110),
R_LARCH_TLS_DESC_PC_HI20(111),
R_LARCH_TLS_DESC_PC_LO12(112),
R_LARCH_TLS_DESC64_PC_LO20(113),
R_LARCH_TLS_DESC64_PC_HI12(114),
R_LARCH_TLS_DESC_HI20(115),
R_LARCH_TLS_DESC_LO12(116),
R_LARCH_TLS_DESC64_LO20(117),
R_LARCH_TLS_DESC64_HI12(118),
R_LARCH_TLS_DESC_LD(119),
R_LARCH_TLS_DESC_CALL(120),
R_LARCH_TLS_TLS_LE_HI20_R(121),
R_LARCH_TLS_TLS_LE_ADD_R(122),
R_LARCH_TLS_TLS_LE_LO12_R(123),
R_LARCH_TLS_TLS_LD_PCREL20_S2(124),
R_LARCH_TLS_TLS_GD_PCREL20_S2(125),
R_LARCH_TLS_TLS_DESC_PCREL20_S2(126);
public final int typeId;

View file

@ -96,6 +96,7 @@ public enum MIPS_ElfRelocationType implements ElfRelocationType {
R_MIPS16_TLS_GOTTPREL(110),
R_MIPS16_TLS_TPREL_HI16(111),
R_MIPS16_TLS_TPREL_LO16(112),
R_MIPS16_PC16_S1(113),
R_MIPS16_LO(100), // First MIPS16 reloc type
R_MIPS16_HI(112), // Last MIPS16 reloc type
@ -147,7 +148,11 @@ public enum MIPS_ElfRelocationType implements ElfRelocationType {
R_MICROMIPS_LO(133), // First MicroMIPS reloc type
R_MICROMIPS_HI(173), // Last MicroMIPS reloc type
R_MIPS_PC32(248);
R_MIPS_PC32(248),
R_MIPS_EH(249),
R_MIPS_GNU_REL16_S2(250),
R_MIPS_GNU_VTINHERIT(253),
R_MIPS_GNU_VTENTRY(254);
public final int typeId;

View file

@ -121,10 +121,25 @@ public enum PowerPC64_ElfRelocationType implements ElfRelocationType {
R_PPC64_DTPREL16_HIGHERA(104), // half16 #highera(@dtprel)
R_PPC64_DTPREL16_HIGHEST(105), // half16 #highest(@dtprel)
R_PPC64_DTPREL16_HIGHESTA(106), // half16 #highesta(@dtprel)
R_PPC64_TLSGD(107),
R_PPC64_TLSLD(108),
R_PPC64_TOCSAVE(109),
R_PPC64_ADDR16_HIGH(110),
R_PPC64_ADDR16_HIGHA(111),
R_PPC64_TPREL16_HIGH(112),
R_PPC64_TPREL16_HIGHA(113),
R_PPC64_DTPREL16_HIGH(114),
R_PPC64_DTPREL16_HIGHA(115),
R_PPC64_REL24_NOTOC(116),
R_PPC64_ADDR64_LOCAL(117),
R_PPC64_ENTRY(118),
R_PPC64_PLTSEQ(119),
R_PPC64_PLTCALL(120),
R_PPC64_PLTSEQ_NOTOC(121),
R_PPC64_PLTCALL_NOTOC(122),
R_PPC64_PCREL_OPT(123),
R_PPC64_REL24_P9NOTOC(124),
R_PPC64_D34(128),
R_PPC64_D34_LO(129),
@ -158,7 +173,18 @@ public enum PowerPC64_ElfRelocationType implements ElfRelocationType {
R_PPC64_REL16_HIGHEST(244),
R_PPC64_REL16_HIGHESTA(245),
R_PPC64_JMP_IREL(247);
R_PPC64_REL16DX_HA(246),
R_PPC64_JMP_IREL(247),
R_PPC64_IRELATIVE(248),
R_PPC64_REL16(249),
R_PPC64_REL16_LO(250),
R_PPC64_REL16_HI(251),
R_PPC64_REL16_HA(252),
R_PPC64_VTINHERIT(253),
R_PPC64_VTENTRY(254);
public final int typeId;

View file

@ -56,6 +56,11 @@ public enum PowerPC_ElfRelocationType implements ElfRelocationType {
R_PPC_SECTOFF_HA(36), // half16 #ha(R + A)
R_PPC_ADDR30(37), // word30 (S + A - P) >> 2
R_PPC_RELAX(48),
R_PPC_RELAX_PLT(49),
R_PPC_RELAX_PLTREL24(50),
R_PPC_16DX_HA(51),
R_POWERPC_TLS(67),
R_POWERPC_DTPMOD(68),
R_POWERPC_TPREL16(69),

View file

@ -36,6 +36,7 @@ public enum RISCV_ElfRelocationType implements ElfRelocationType {
R_RISCV_TLS_DTPREL64(9), // TLS relocation word64(TLS + S + A - TLS_TP_OFFSET
R_RISCV_TLS_TPREL32(10), // TLS relocation word32(TLS + S + A + S_TLS_OFFSET - TLS_DTV_OFFSET
R_RISCV_TLS_TPREL64(11), // TLS relocation word64(TLS + S + A + S_TLS_OFFSET - TLS_DTV_OFFSET
R_RISCV_TLSDESC(12),
R_RISCV_BRANCH(16), // PC-relative branch (SB-Type)
R_RISCV_JAL(17), // PC-relative jump (UJ-Type)
R_RISCV_CALL(18), // PC-relative call MACRO call,tail (auipc+jalr pair)
@ -77,9 +78,14 @@ public enum RISCV_ElfRelocationType implements ElfRelocationType {
R_RISCV_SET8(54), // Local label subtraction
R_RISCV_SET16(55), // Local label subtraction
R_RISCV_SET32(56), // Local label subtraction
R_RISCV_32_PCREL(57); // 32-bit PC relative
// 58-191 Reserved Reserved for future standard use
// 192-255 Reserved Reserved for nonstandard ABI extensions
R_RISCV_32_PCREL(57), // 32-bit PC relative
R_RISCV_IRELATIVE(58),
R_RISCV_SET_ULEB128(60),
R_RISCV_SUB_ULEB128(61),
R_RISCV_TLSDESC_HI20(62),
R_RISCV_TLSDESC_LOAD_LO12(63),
R_RISCV_TLSDESC_ADD_LO12(64),
R_RISCV_TLSDESC_CALL(65);
public final int typeId;

View file

@ -117,9 +117,7 @@ public enum SPARC_ElfRelocationType implements ElfRelocationType {
R_SPARC_IRELATIVE(249), //
R_SPARC_GNU_VTIHERIT(250), //
R_SPARC_GNU_VTENTRY(251), //
R_SPARC_REV32(252), //
R_SPARC_max(253); // update as needed
R_SPARC_REV32(252); //
public final int typeId;

View file

@ -117,6 +117,15 @@ public enum SH_ElfRelocationType implements ElfRelocationType {
R_SH_JMP_SLOT64(195),
R_SH_RELATIVE64(196),
R_SH_GOT20(201),
R_SH_GOTOFF20(202),
R_SH_GOTFUNCDESC(203),
R_SH_GOTFUNCDESC20(204),
R_SH_GOTOFFFUNCDESC(205),
R_SH_GOTOFFFUNCDESC20(206),
R_SH_FUNCDESC(207),
R_SH_FUNCDESC_VALUE(208),
R_SH_SHMEDIA_CODE(242),
R_SH_PT_16(243),
R_SH_IMMS16(244),

View file

@ -22,7 +22,8 @@ public enum eBPF_ElfRelocationType implements ElfRelocationType {
R_BPF_64_ABS64(2), // S + A
R_BPF_64_ABS32(3), // S + A
R_BPF_64_NODYLD32(4), // S + A
R_BPF_64_32(10); // (S + A) / 8 - 1
R_BPF_64_32(10), // (S + A) / 8 - 1
R_BPF_GNU_64_16(256);
public final int typeId;

View file

@ -53,7 +53,11 @@ public enum X86_32_ElfRelocationType implements ElfRelocationType {
R_386_TLS_GOTDESC(39), // GOT offset for TLS descriptor. */
R_386_TLS_DESC_CALL(40), // Marker of call through TLS descriptor for relaxation. */
R_386_TLS_DESC(41), // TLS descriptor containing pointer to code and to argument, returning the TLS offset for the symbol. */
R_386_IRELATIVE(42); // Adjust indirectly by program base */
R_386_IRELATIVE(42), // Adjust indirectly by program base */
R_386_GOT32X(43),
R_386_USED_BY_INTEL_200(200),
R_386_GNU_VTINHERIT(250),
R_386_GNU_VTENTRY(251);
public final int typeId;

View file

@ -73,7 +73,15 @@ public enum X86_64_ElfRelocationType implements ElfRelocationType {
R_X86_64_PLT32_BND(40), // deprecated
R_X86_64_GOTPCRELX(41), // G + GOT + A - P
R_X86_64_REX_GOTPCRELX(42), //G + GOT + A - P
R_X86_64_NUM(43),
R_X86_64_CODE_4_GOTPCRELX(43),
R_X86_64_CODE_4_GOTTPOFF(44),
R_X86_64_CODE_4_GOTPC32_TLSDESC(45),
R_X86_64_CODE_5_GOTPCRELX(46),
R_X86_64_CODE_5_GOTPC32_TLSDESC(47),
R_X86_64_CODE_5_GOTTPOFF(48),
R_X86_64_CODE_6_GOTPCRELX(49),
R_X86_64_CODE_6_GOTTPOFF(50),
R_X86_64_CODE_6_GOTPC32_TLSDESC(51),
R_X86_64_GNU_VTINHERIT(250),
R_X86_64_GNU_VTENTRY(251);