From: mark.yang Date: Tue, 14 Jul 2026 13:26:40 +0000 (+0900) Subject: kernel-arch: fall back to GNU ld unless ld-is-lld is in DISTRO_FEATURES X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=f92bfb5309d87aaf5f9683cd3e80e2a1884db6dc;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git kernel-arch: fall back to GNU ld unless ld-is-lld is in DISTRO_FEATURES Nothing stages a bare ld.lld unless ld-is-lld is in DISTRO_FEATURES, so a clang kernel fails its first linker check on any other setup. Use GNU ld.bfd from binutils-cross instead. Signed-off-by: mark.yang Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- diff --git a/meta/classes-recipe/kernel-arch.bbclass b/meta/classes-recipe/kernel-arch.bbclass index 6ebc0f13ea..321c9ed577 100644 --- a/meta/classes-recipe/kernel-arch.bbclass +++ b/meta/classes-recipe/kernel-arch.bbclass @@ -88,7 +88,7 @@ KERNEL_CC:toolchain-clang = "${CCACHE}clang ${HOST_CC_KERNEL_ARCH} \ -ffile-prefix-map=${STAGING_KERNEL_DIR}=${KERNEL_SRC_PATH} \ -ffile-prefix-map=${STAGING_KERNEL_BUILDDIR}=${KERNEL_SRC_PATH} \ " -KERNEL_LD:toolchain-clang = "ld.lld ${HOST_LD_KERNEL_ARCH}" +KERNEL_LD:toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', 'ld.lld', '${HOST_PREFIX}ld.bfd', d)} ${HOST_LD_KERNEL_ARCH}" KERNEL_AR:toolchain-clang = "llvm-ar ${HOST_AR_KERNEL_ARCH}" KERNEL_OBJCOPY:toolchain-clang = "llvm-objcopy ${HOST_OBJCOPY_KERNEL_ARCH}" KERNEL_STRIP:toolchain-clang = "llvm-strip"