On Mon, Jan 3, 2022 at 12:49 PM Adrian Ratiu <adrian.ra...@collabora.com> 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 & co should be set to their respective portage values.
>
> [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>
> ---
> Changes in v3:
>   - Add rest of vars used by kernel builds (suggested by James)
>   - Minor commit msg rewording
>
> Changes in v2:
>   - Set AR variable which is also required for linux-headers
>   - Reword msg for clarity
> ---
>  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..865c43d3153 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) 
> LD=$(tc-getLD) AR=$(tc-getAR) NM=$(tc-getNM) NM=$(tc-getNM) 
> OBOBJCOPY=$(tc-getOBJCOPY) READELF=$(tc-getREADELF) STRIP=$(tc-getSTRIP)"
>         export xmakeopts
>  }

This seems ok to me, at least given the way the eclass currently works.

At some point, we should really convert xmakeopts into an array. Any
of these variables might contain spaces, and that would break the
current implementation.

Reply via email to