You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
riscv: add as-options for modules with assembly compontents
When trying to load modules built for RISC-V which include assembly files
the kernel loader errors with "unexpected relocation type 'R_RISCV_ALIGN'"
due to R_RISCV_ALIGN relocations being generated by the assembler.
The R_RISCV_ALIGN relocations can be removed at the expense of code space
by adding -mno-relax to gcc and as. In commit 7a8e7da
("RISC-V: Fixes to module loading") -mno-relax is added to the build
variable KBUILD_CFLAGS_MODULE. See [1] for more info.
The issue is that when kbuild builds a .S file, it invokes gcc with
the -mno-relax flag, but this is not being passed through to the
assembler. Adding -Wa,-mno-relax to KBUILD_AFLAGS_MODULE ensures that
the assembler is invoked correctly. This may have now been fixed in
gcc[2] and this addition should not stop newer gcc and as from working.
[1] riscv-non-isa/riscv-elf-psabi-doc#183
[2] gcc-mirror/gcc@3b0a7d6
Signed-off-by: Ben Dooks <[email protected]>
Reviewed-by: Bin Meng <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Fixes: ab1ef68 ("RISC-V: Add sections of PLT and GOT for kernel module")
Cc: [email protected]
Signed-off-by: Palmer Dabbelt <[email protected]>
0 commit comments