diff options
| author | Nick Shipp <nick@shipp.ninja> | 2025-07-01 13:55:22 -0400 |
|---|---|---|
| committer | Brandon Miller <bkmiller89@icloud.com> | 2025-09-22 08:15:22 -0400 |
| commit | 207aef06fca1553dc555eda58d8fe7220390c1d4 (patch) | |
| tree | 0a62ec00893e7fb552f4e90c7608d75cf167ccaa /arch | |
| parent | 00566fc8b40582e3533d3cb6fcca6e1ef27abd65 (diff) | |
[armv7] Add support for R_ARM_PC24 relocation
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/armv7/arch_armv7.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/armv7/arch_armv7.cpp b/arch/armv7/arch_armv7.cpp index e30ecf78..c422d7f0 100644 --- a/arch/armv7/arch_armv7.cpp +++ b/arch/armv7/arch_armv7.cpp @@ -2362,6 +2362,7 @@ public: 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) @@ -2553,8 +2554,14 @@ public: 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: |
