[PATCH 02/11] riscv: Fix --enable-ubsan build failure on riscv
Adhemerval Zanella
adhemerval.zanella@linaro.org
Wed May 7 14:17:20 GMT 2025
With ubsan enable, libc.so fails to build with:
[...]linkobj/libc_pic.a(setcontext.os): in function `__start_context':
[...]sysdeps/unix/sysv/linux/riscv/setcontext.S:111:(.text+0xc0): relocation
truncated to fit: R_RISCV_JAL against symbol `__GI_exit' defined in .text section
in [...]/linkobj/libc_pic.a(exit.os)
Using 'call' instead of 'j' works regardless whether UBSAN.
---
sysdeps/unix/sysv/linux/riscv/setcontext.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sysdeps/unix/sysv/linux/riscv/setcontext.S b/sysdeps/unix/sysv/linux/riscv/setcontext.S
index a2de57b537..11dd46ea17 100644
--- a/sysdeps/unix/sysv/linux/riscv/setcontext.S
+++ b/sysdeps/unix/sysv/linux/riscv/setcontext.S
@@ -110,6 +110,6 @@ LEAF (__start_context)
mv a0, s2
beqz s2, 1f
jal HIDDEN_JUMPTARGET (__setcontext)
-1: j HIDDEN_JUMPTARGET (exit)
+1: call HIDDEN_JUMPTARGET (exit)
END (__start_context)
--
2.43.0
More information about the Libc-alpha
mailing list