commit:     0edf1af9e3cd350ebe7476d283e0e05918899bd9
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Tue Jul 23 14:11:41 2024 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Wed Jul 24 17:18:32 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0edf1af9

kernel-build.eclass: set toolchain variables more comprehensibly

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 <parona <AT> protonmail.com>
Closes: https://github.com/gentoo/gentoo/pull/37690
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> 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)

Reply via email to