[PATCH 2/2] RISC-V: reloc: ignore R_RISCV_NONE relocations

Ahmad Fatoum a.fatoum at pengutronix.de
Wed Aug 26 02:29:25 PDT 2026


When linking a position independent executable, the linker may reserve
a dynamic relocation slot for a reference to an absolute symbol and only
later determine that no runtime relocation is needed. The slot is not
removed, but turned into an R_RISCV_NONE entry, which must be ignored.

Assisted-by: Claude:fable-5
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 arch/riscv/lib/reloc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/riscv/lib/reloc.c b/arch/riscv/lib/reloc.c
index 71d59d4ab62e..99dde7bfffe2 100644
--- a/arch/riscv/lib/reloc.c
+++ b/arch/riscv/lib/reloc.c
@@ -45,6 +45,8 @@ static void relocate_image(unsigned long offset,
 		fixup = (unsigned long *)(rela->r_offset + offset);
 
 		switch (RISC_R_TYPE(rela->r_info)) {
+		case R_RISCV_NONE:
+			break;
 		case R_RISCV_RELATIVE:
 			*fixup = rela->r_addend + offset;
 			break;
-- 
2.47.3




More information about the barebox mailing list