From: Alfred Wingate <par...@protonmail.com>

Building on llvm profiles is problematic if toolchain variables are not properly
set. So set HOSTLD and HOSTAR to match at least the kernels own LLVM=1 variable
to ensure a smoother build for end users.

For example an unset HOSTLD causes issues as it defaults to GNU ld
otherwise.

https://docs.kernel.org/kbuild/llvm.html#the-llvm-argument

Signed-off-by: Alfred Wingate <par...@protonmail.com>
Closes: https://github.com/gentoo/gentoo/pull/37690
Signed-off-by: Andrew Ammerlaan <andrewammerl...@gentoo.org>
---
 eclass/kernel-build.eclass | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/eclass/kernel-build.eclass b/eclass/kernel-build.eclass
index f478cf636a27..893a1bdb449c 100644
--- a/eclass/kernel-build.eclass
+++ b/eclass/kernel-build.eclass
@@ -187,6 +187,10 @@ kernel-build_src_configure() {
        fi
 
        # force ld.bfd if we can find it easily
+       local HOSTLD="$(tc-getBUILD_LD)"
+       if type -P "${HOSTLD}.bfd" &>/dev/null; then
+               HOSTLD+=.bfd
+       fi
        local LD="$(tc-getLD)"
        if type -P "${LD}.bfd" &>/dev/null; then
                LD+=.bfd
@@ -198,6 +202,8 @@ kernel-build_src_configure() {
 
                HOSTCC="$(tc-getBUILD_CC)"
                HOSTCXX="$(tc-getBUILD_CXX)"
+               HOSTLD="${HOSTLD}"
+               HOSTAR="$(tc-getBUILD_AR)"
                HOSTCFLAGS="${BUILD_CFLAGS}"
                HOSTLDFLAGS="${BUILD_LDFLAGS}"
 
@@ -210,6 +216,7 @@ kernel-build_src_configure() {
                STRIP="$(tc-getSTRIP)"
                OBJCOPY="$(tc-getOBJCOPY)"
                OBJDUMP="$(tc-getOBJDUMP)"
+               READELF="$(tc-getREADELF)"
 
                # we need to pass it to override colliding Gentoo envvar
                ARCH=$(tc-arch-kernel)
-- 
2.45.2


Reply via email to