Re: [PATCH v2] Makefile: Fix detection of clang when cross-compiling

From: Anton Blanchard
Date: Mon Jul 13 2015 - 06:59:40 EST


Hi,

> > When the host's C compiler is clang, and when attempting to
> > cross-compile Linux e.g. to MIPS with mipsel-linux-gcc, the
> > Makefile would incorrectly detect the use of clang, which
> > resulted in clang-specific flags being passed to
> > mipsel-linux-gcc.
> >
> > This can be verified under Debian by installing the "clang"
> > package, and then using it as the default compiler with:
> > sudo update-alternatives --config cc
> >
> > This patch moves the detection of clang after the $(CC)
> > variable is initialized to the name of the cross-compiler, so
> > that the check applies
> > to the cross-compiler and not the host's C compiler.
> >
> > v2: Move the detection of clang after the inclusion of the
> > arch/*/Makefile (as they might set $(CROSS_COMPILE))
> >
> > Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx
> <mailto:paul@xxxxxxxxxxxxxxx>>
>
> Applied to kbuild.git#kbuild. I will push it after v4.1-rc1
> becomes available, though.
>
> Drat. I wish I saw this earlier.
>
> This breaks patches which check for the value of COMPILER in
> arch/*/Makefile. This detection must be performed before the
> inclusion of the arch Makefile.
>
> Can I move this to after the initialization of CC but before the
> include?
>
> I'm not sure that being able to define the default compiler per arch
> is necessary. But I know I need to be able to add arch specific flags
> for clang.

I can confirm the patch breaks ppc64le clang builds.

Anton
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/