On Thursday, 16 December 2021 3:58:26 AM NZDT Adrian Ratiu wrote:
> 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
>  }

What's the reason for not using $LLVM here? To preserve building with clang 
for kernels < 5.7 ?

I might be missing the point, but wouldn't something along the lines of
"LLVM=$(! [[ $(tc-getCC) =~ clang ]]; echo $?)" work to preserve the correct 
compiler tools?

Cheers

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to