37 lines
1.5 KiB
Diff
37 lines
1.5 KiB
Diff
From 49442fb626f151f886cb5a860c972c300307fdff Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas.weissschuh@linutronix.de>
|
|
Date: Mon, 28 Jul 2025 15:47:37 +0200
|
|
Subject: kbuild: userprogs: use correct linker when mixing clang and GNU ld
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The userprogs infrastructure does not expect clang being used with GNU ld
|
|
and in that case uses /usr/bin/ld for linking, not the configured $(LD).
|
|
This fallback is problematic as it will break when cross-compiling.
|
|
Mixing clang and GNU ld is used for example when building for SPARC64,
|
|
as ld.lld is not sufficient; see Documentation/kbuild/llvm.rst.
|
|
|
|
Relax the check around --ld-path so it gets used for all linkers.
|
|
|
|
Fixes: dfc1b168a8c4 ("kbuild: userprogs: use correct lld when linking through clang")
|
|
Cc: stable@vger.kernel.org
|
|
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
|
|
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
|
|
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
|
|
---
|
|
Makefile | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
--- a/Makefile
|
|
+++ b/Makefile
|
|
@@ -1154,7 +1154,7 @@ KBUILD_USERCFLAGS += $(filter -m32 -m64
|
|
KBUILD_USERLDFLAGS += $(filter -m32 -m64 --target=%, $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS))
|
|
|
|
# userspace programs are linked via the compiler, use the correct linker
|
|
-ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_LD_IS_LLD),yy)
|
|
+ifdef CONFIG_CC_IS_CLANG
|
|
KBUILD_USERLDFLAGS += --ld-path=$(LD)
|
|
endif
|
|
|