Re: [PATCH] ARC: Don't set CROSS_COMPILE in arch's Makefile

From: gregkh@xxxxxxxxxxxxxxxxxxx
Date: Thu Oct 18 2018 - 08:44:07 EST


On Wed, Oct 17, 2018 at 02:33:02PM +0000, Alexey Brodkin wrote:
> Hello,
>
> > -----Original Message-----
> > From: Alexey Brodkin [mailto:abrodkin@xxxxxxxxxxxx]
> > Sent: Sunday, September 16, 2018 11:48 PM
> > To: linux-snps-arc@xxxxxxxxxxxxxxxxxxx
> > Cc: linux-kernel@xxxxxxxxxxxxxxx; Vineet Gupta <vgupta@xxxxxxxxxxxx>; Alexey Brodkin <abrodkin@xxxxxxxxxxxx>; Masahiro
> > Yamada <yamada.masahiro@xxxxxxxxxxxxx>; Rob Herring <robh@xxxxxxxxxx>
> > Subject: [PATCH] ARC: Don't set CROSS_COMPILE in arch's Makefile
> >
> > There's not much sense in doing that because if user or
> > his build-system didn't set CROSS_COMPILE we still may
> > very well make incorrect guess.
> >
> > But as it turned out setting CROSS_COMPILE is not as harmless
> > as one may think: with recent changes that implemented automatic
> > discovery of __host__ gcc features unconditional setup of
> > CROSS_COMPILE leads to failures on execution of "make xxx_defconfig"
> > with absent cross-compiler, for more info see [1].
> >
> > Set CROSS_COMPILE as well gets in the way if we want only to build
> > .dtb's (again with absent cross-compiler which is not really needed
> > for building .dtb's), see [2].
> >
> > Note, we had to change LIBGCC assignment type from ":=" to "="
> > so that is is resolved on its usage, otherwise if it is resolved
> > at declaration time with missing CROSS_COMPILE we're getting this
> > error message from host GCC:
> > ------------------------->8-------------------------
> > gcc: error: unrecognized command line option â-mmedium-callsâ
> > gcc: error: unrecognized command line option â-mno-sdataâ; did you mean â-fno-statsâ?
> > ------------------------->8-------------------------
> >
> > [1] http://lists.infradead.org/pipermail/linux-snps-arc/2018-September/004308.html
> > [2] http://lists.infradead.org/pipermail/linux-snps-arc/2018-September/004320.html
> >
> > Signed-off-by: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
> > Cc: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> > Cc: Rob Herring <robh@xxxxxxxxxx>
> > ---
> > arch/arc/Makefile | 10 +---------
> > 1 file changed, 1 insertion(+), 9 deletions(-)
> >
> > diff --git a/arch/arc/Makefile b/arch/arc/Makefile
> > index 99cce77ab98f..5f6b67917dc2 100644
> > --- a/arch/arc/Makefile
> > +++ b/arch/arc/Makefile
> > @@ -6,14 +6,6 @@
> > # published by the Free Software Foundation.
> > #
> >
> > -ifeq ($(CROSS_COMPILE),)
> > -ifndef CONFIG_CPU_BIG_ENDIAN
> > -CROSS_COMPILE := arc-linux-
> > -else
> > -CROSS_COMPILE := arceb-linux-
> > -endif
> > -endif
> > -
> > KBUILD_DEFCONFIG := nsim_700_defconfig
> >
> > cflags-y += -fno-common -pipe -fno-builtin -mmedium-calls -D__linux__
> > @@ -79,7 +71,7 @@ cflags-$(disable_small_data) += -mno-sdata -fcall-used-gp
> > cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mbig-endian
> > ldflags-$(CONFIG_CPU_BIG_ENDIAN) += -EB
> >
> > -LIBGCC := $(shell $(CC) $(cflags-y) --print-libgcc-file-name)
> > +LIBGCC = $(shell $(CC) $(cflags-y) --print-libgcc-file-name)
> >
> > # Modules with short calls might break for calls into builtin-kernel
> > KBUILD_CFLAGS_MODULE += -mlong-calls -mno-millicode
> > --
> > 2.17.1
>
> May we have this one back-ported to stable branches?
>
> Upstream commit in Linus' tree is:
> 40660f1fcee8 ("ARC: build: Don't set CROSS_COMPILE in arch's Makefile").

Applied to 4.9.y, 4.14.y, and 4.18.y, thanks.

greg k-h