diff --git a/Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationType.java b/Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationType.java index 1c480f632a..c2a65d6825 100644 --- a/Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationType.java +++ b/Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationType.java @@ -151,6 +151,7 @@ public enum MIPS_ElfRelocationType implements ElfRelocationType { R_MIPS_PC32(248), R_MIPS_EH(249), R_MIPS_GNU_REL16_S2(250), + R_MIPS_GNU_VTINHERIT(253), R_MIPS_GNU_VTENTRY(254); diff --git a/Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationType.java b/Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationType.java index f2ee105dd2..a29229f9cd 100644 --- a/Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationType.java +++ b/Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationType.java @@ -135,7 +135,6 @@ public enum PowerPC64_ElfRelocationType implements ElfRelocationType { 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), @@ -172,17 +171,13 @@ public enum PowerPC64_ElfRelocationType implements ElfRelocationType { R_PPC64_REL16_HIGHERA(243), R_PPC64_REL16_HIGHEST(244), R_PPC64_REL16_HIGHESTA(245), - 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); diff --git a/Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationType.java b/Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationType.java index 0d795d1fde..32e7badb6b 100644 --- a/Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationType.java +++ b/Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationType.java @@ -37,6 +37,7 @@ public enum RISCV_ElfRelocationType implements ElfRelocationType { 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) diff --git a/Ghidra/Processors/Sparc/src/main/java/ghidra/app/util/bin/format/elf/relocation/SPARC_ElfRelocationType.java b/Ghidra/Processors/Sparc/src/main/java/ghidra/app/util/bin/format/elf/relocation/SPARC_ElfRelocationType.java index 0c6b2bd316..4344498743 100644 --- a/Ghidra/Processors/Sparc/src/main/java/ghidra/app/util/bin/format/elf/relocation/SPARC_ElfRelocationType.java +++ b/Ghidra/Processors/Sparc/src/main/java/ghidra/app/util/bin/format/elf/relocation/SPARC_ElfRelocationType.java @@ -41,14 +41,12 @@ public enum SPARC_ElfRelocationType implements ElfRelocationType { R_SPARC_JMP_SLOT(21), // R_SPARC_RELATIVE(22), // B + A R_SPARC_UA32(23), // S + A - R_SPARC_PLT32(24), // L + A R_SPARC_HIPLT22(25), // (L + A) >> 10 R_SPARC_LOPLT10(26), // (L + A) & 0x3FF R_SPARC_PCPLT32(27), // L + A - P R_SPARC_PCPLT22(28), // (L + A - P) >> 10 R_SPARC_PCPLT10(29), // (L + A - P) & 0x3FF - R_SPARC_10(30), // S + A R_SPARC_11(31), // S + A R_SPARC_64(32), // S + A @@ -75,7 +73,6 @@ public enum SPARC_ElfRelocationType implements ElfRelocationType { R_SPARC_REGISTER(53), // S + A R_SPARC_UA64(54), // S + A R_SPARC_UA16(55), // S + A - R_SPARC_TLS_GD_HI22(56), // R_SPARC_TLS_GD_LO10(57), // R_SPARC_TLS_GD_ADD(58), // @@ -100,7 +97,6 @@ public enum SPARC_ElfRelocationType implements ElfRelocationType { R_SPARC_TLS_DTPOFF64(77), // R_SPARC_TLS_TPOFF32(78), // R_SPARC_TLS_TPOFF64(79), // - R_SPARC_GOTDATA_HIX22(80), // ((S + A - GOT) >> 10) ^ ((S + A - GOT) >> 31) R_SPARC_GOTDATA_LOX10(81), // ((S + A - GOT) & 0x3ff) | (((S + A - GOT) >> 31) & 0x1c00) R_SPARC_GOTDATA_OP_HIX22(82), // (G >> 10) ^ (G >> 31) diff --git a/Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/eBPF_ElfRelocationType.java b/Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/eBPF_ElfRelocationType.java index 90368091d6..0eb36f0334 100644 --- a/Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/eBPF_ElfRelocationType.java +++ b/Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/eBPF_ElfRelocationType.java @@ -22,7 +22,9 @@ 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_GNU_64_16(256); public final int typeId; diff --git a/Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationType.java b/Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationType.java index 579f56f4d3..058565ec10 100644 --- a/Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationType.java +++ b/Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationType.java @@ -36,6 +36,7 @@ public enum X86_32_ElfRelocationType implements ElfRelocationType { R_386_TLS_LE(17), // negative offset relative to static TLS R_386_TLS_GD(18), // direct 32 bit for GNU version of GD TLS R_386_TLS_LDM(19), // direct 32 bit for GNU version of LD TLS in LE code + R_386_TLS_GD_32(24), // direct 32 bit for GD TLS R_386_TLS_GD_PUSH(25), // tag for pushl in GD TLS code R_386_TLS_GD_CALL(26), // relocation for call @@ -55,7 +56,9 @@ public enum X86_32_ElfRelocationType implements ElfRelocationType { 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_GOT32X(43), + R_386_USED_BY_INTEL_200(200), + R_386_GNU_VTINHERIT(250), R_386_GNU_VTENTRY(251);