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.
mv a0, s2
beqz s2, 1f
jal HIDDEN_JUMPTARGET (__setcontext)
-1: j HIDDEN_JUMPTARGET (exit)
+1: call HIDDEN_JUMPTARGET (exit)
END (__start_context)