Starting with kernel>=v5.7 the build system can override the
tools vars by setting LLVM=1 [1], but older kernels still use
the default GNU tools, so to be able to use a full LLVM/Clang
build, CC should be set together with AR to the portage set
values.

Doing this avoids situations like building the kernel with
clang (using the set HOSTCC) but using gcc/gnu-ar for headers.

[1] a0d1c951ef08 kbuild: support LLVM=1 to switch the default tools to 
Clang/LLVM

Co-authored-by: Manoj Gupta <manojgu...@chromium.org>
Signed-off-by: Adrian Ratiu <adrian.ra...@collabora.com>
---
 eclass/kernel-2.eclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eclass/kernel-2.eclass b/eclass/kernel-2.eclass
index adc1425bc2e..caeec86ff59 100644
--- a/eclass/kernel-2.eclass
+++ b/eclass/kernel-2.eclass
@@ -692,7 +692,7 @@ env_setup_xmakeopts() {
        elif type -p ${CHOST}-ar >/dev/null; then
                xmakeopts="${xmakeopts} CROSS_COMPILE=${CHOST}-"
        fi
-       xmakeopts="${xmakeopts} HOSTCC=$(tc-getBUILD_CC)"
+       xmakeopts="${xmakeopts} HOSTCC=$(tc-getBUILD_CC) CC=$(tc-getCC) 
AR=$(tc-getAR)"
        export xmakeopts
 }
 
-- 
2.34.1


Reply via email to