On Mon, Apr 12, 2021 at 5:15 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote: > > On Mon, Apr 12, 2021 at 4:44 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > > > Hi Yamada-san, > > > > On Sun, Apr 11, 2021 at 3:56 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote: > > > Use ?= operator to let arch/*/Makefile to assign CROSS_COMPILE only > > > when CROSS_COMPILE is undefined. > > > > > > This allows arch-Makefiles to drop the ifeq ($(CROSS_COMPILE),) > > > conditional. > > > > > > This slightly changes the behavior; the arch-Makefile previously > > > overrode CROSS_COMPILE when CROSS_COMPILE has already been made empty > > > via an environment variable as in 'export CROSS_COMPILE='. > > > > > > With this commit, arch-Makefle will respect the user's environment > > > set-up, which seems to be a more correct behavior. > > > > > > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > > > > Thanks for your patch! > > > > > --- > > > > > > arch/arc/Makefile | 4 +--- > > > arch/h8300/Makefile | 4 +--- > > > arch/m68k/Makefile | 4 +--- > > > arch/mips/Makefile | 4 +--- > > > arch/parisc/Makefile | 6 ++---- > > > arch/sh/Makefile | 4 +--- > > > > What about arch/xtensa/Makefile? > > > > > --- a/arch/m68k/Makefile > > > +++ b/arch/m68k/Makefile > > > @@ -17,10 +17,8 @@ > > > KBUILD_DEFCONFIG := multi_defconfig > > > > > > ifneq ($(SUBARCH),$(ARCH)) > > > - ifeq ($(CROSS_COMPILE),) > > > - CROSS_COMPILE := $(call cc-cross-prefix, \ > > > + CROSS_COMPILE ?= $(call cc-cross-prefix, \ > > > m68k-linux-gnu- m68k-linux- m68k-unknown-linux-gnu-) > > > - endif > > > endif > > > > This does not seem to work as expected: my standard build scripts > > (using "make ARCH=m68k") no longer pick up the cross-compiler, > > but fall back to the native compiler, thus breaking the build. > > > Agh, sorry, this patch does not work > because the top Makefile exports CROSS_COMPILE. > > export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS > CROSS_COMPILE LD CC > > > > Removing CROSS_COMPILE from that makes ?= work, > but it would break other parts. > > > Please ignore this patch. > > > > > > Gr{oetje,eeting}s, > > > > Geert > > > > -- > > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx > > > > In personal conversations with technical people, I call myself a hacker. But > > when I'm talking to journalists I just say "programmer" or something like that. > > -- Linus Torvalds > The following will make this patch work, but probably it is better to not do this... diff --git a/Makefile b/Makefile index cc77fd45ca64..26bf482f0d88 100644 --- a/Makefile +++ b/Makefile @@ -506,7 +506,7 @@ KBUILD_LDFLAGS_MODULE := KBUILD_LDFLAGS := CLANG_FLAGS := -export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC +export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS LD CC export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD @@ -681,6 +681,8 @@ export RETPOLINE_VDSO_CFLAGS include arch/$(SRCARCH)/Makefile +export CROSS_COMPILE + ifdef need-config ifdef may-sync-config # Read in dependencies to all Kconfig* files, make sure to run syncconfig if -- Best Regards Masahiro Yamada