• [gentoo-dev] [PATCH 3/3] kernel-build.eclass: set toolchain variables m

    From Andrew Ammerlaan@21:1/5 to All on Wed Jul 24 12:00:01 2024
    From: Alfred Wingate <parona@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 <parona@protonmail.com>
    Closes: https://github.com/gentoo/gentoo/pull/37690
    Signed-off-by: Andrew Ammerlaan <andrewammerlaan@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