riscv: Pass -mno-relax only on lld < 15.0.0
authorFangrui Song <maskray@google.com>
Sun, 18 Sep 2022 09:29:34 +0000 (02:29 -0700)
committerPalmer Dabbelt <palmer@rivosinc.com>
Thu, 13 Oct 2022 15:24:34 +0000 (08:24 -0700)
commit3cebf80e9a0d3adcb174053be32c88a640b3344b
treeef2ce84215a945338b4e4283a583011e940ac391
parentf2913d006fcdb61719635e093d1b5dd0dafecac7
riscv: Pass -mno-relax only on lld < 15.0.0

lld since llvm:6611d58f5bbc ("[ELF] Relax R_RISCV_ALIGN"), which will be
included in the 15.0.0 release, has implemented some RISC-V linker
relaxation.  -mno-relax is no longer needed in
KBUILD_CFLAGS/KBUILD_AFLAGS to suppress R_RISCV_ALIGN which older lld
can not handle:

    ld.lld: error: capability.c:(.fixup+0x0): relocation R_RISCV_ALIGN
    requires unimplemented linker relaxation; recompile with -mno-relax
    but the .o is already compiled with -mno-relax

Signed-off-by: Fangrui Song <maskray@google.com>
Link: https://lore.kernel.org/r/20220710071117.446112-1-maskray@google.com/
Link: https://lore.kernel.org/r/20220918092933.19943-1-palmer@rivosinc.com
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Tested-by: Conor Dooley <conor.dooley@microchip.com>
Cc: stable@vger.kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/Makefile