All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2/RESEND] riscv: Pass -mno-relax only on lld < 15.0.0
@ 2022-09-18  9:29 Palmer Dabbelt
  2022-09-18  9:57 ` Conor Dooley
  0 siblings, 1 reply; 4+ messages in thread
From: Palmer Dabbelt @ 2022-09-18  9:29 UTC (permalink / raw)
  To: maskray, linux-riscv; +Cc: Palmer Dabbelt

From: Fangrui Song <maskray@google.com>

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/
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
Fanguri poked me about this one on IRC, I'm not sure what happened but
it didn't make it to my inbox (and neither did the replies, which is
kind of scary).  Rather that trying to resurrect that thread from lore,
I figured it would be best to just send the v2 as the commit message
needed a bit of cleanup.

Changes since v1 <20220710071117.446112-1-maskray@google.com>:

* Clean up the commit message a bit.
---
 arch/riscv/Makefile | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
index 3fa8ef336822..e7d52a2301e2 100644
--- a/arch/riscv/Makefile
+++ b/arch/riscv/Makefile
@@ -37,6 +37,7 @@ else
 endif
 
 ifeq ($(CONFIG_LD_IS_LLD),y)
+ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 150000; echo $$?),0)
 	KBUILD_CFLAGS += -mno-relax
 	KBUILD_AFLAGS += -mno-relax
 ifndef CONFIG_AS_IS_LLVM
@@ -44,6 +45,7 @@ ifndef CONFIG_AS_IS_LLVM
 	KBUILD_AFLAGS += -Wa,-mno-relax
 endif
 endif
+endif
 
 # ISA string setting
 riscv-march-$(CONFIG_ARCH_RV32I)	:= rv32ima
-- 
2.34.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-09-23 11:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-18  9:29 [PATCH v2/RESEND] riscv: Pass -mno-relax only on lld < 15.0.0 Palmer Dabbelt
2022-09-18  9:57 ` Conor Dooley
2022-09-18 10:06   ` Palmer Dabbelt
2022-09-23 11:15     ` Palmer Dabbelt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.