From 9eb16b2a731bace2892f313c4389fa1f77c91349 Mon Sep 17 00:00:00 2001 From: Nick Shipp Date: Tue, 1 Jul 2025 13:55:22 -0400 Subject: [PATCH] [armv7] Add support for R_ARM_PC24 relocation --- arch/armv7/arch_armv7.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/armv7/arch_armv7.cpp b/arch/armv7/arch_armv7.cpp index f27a3fb9b..2eb9eca20 100644 --- a/arch/armv7/arch_armv7.cpp +++ b/arch/armv7/arch_armv7.cpp @@ -2359,6 +2359,7 @@ class ArmElfRelocationHandler: public RelocationHandler dest32[0] = (info.implicitAddend ? dest32[0] : (uint32_t)info.addend) + (target & ~1) - (uint32_t)reloc->GetAddress(); break; } + case R_ARM_PC24: case R_ARM_JUMP24: { if (target & 1) @@ -2550,8 +2551,14 @@ class ArmElfRelocationHandler: public RelocationHandler break; case R_ARM_TLS_DTPOFF32: break; - case R_ARM_SBREL31: case R_ARM_PC24: + reloc.pcRelative = true; + reloc.baseRelative = false; + reloc.hasSign = false; + reloc.size = 3; + reloc.truncateSize = 3; + break; + case R_ARM_SBREL31: case R_ARM_LDR_PC_G0: case R_ARM_ABS16: case R_ARM_ABS12: