On Sat, Feb 16, 2019 at 3:26 AM Masahiro Yamada <yamada.masah...@socionext.com> wrote: > > On Sat, Feb 16, 2019 at 1:11 AM Mathieu Malaterre <ma...@debian.org> wrote: > > > > On Fri, Feb 15, 2019 at 10:41 AM Masahiro Yamada > > <yamada.masah...@socionext.com> wrote: > > > > > > I often test all Kconfig commands for all architectures. To ease my > > > workflow, I want 'make defconfig' at least working without any cross > > > compiler. > > > > > > Currently, arch/powerpc/Makefile checks CROSS_COMPILE to decide the > > > default defconfig source. > > > > > > If CROSS_COMPILE is unset, it is likely to be the native build, so > > > 'uname -m' is useful to choose the defconfig. If CROSS_COMPILE is set, > > > the user is cross-building (i.e. 'uname -m' is probably x86_64), so > > > it falls back to ppc64_defconfig. Yup, make sense. > > > > > > However, I want to run 'make ARCH=* defconfig' without setting > > > CROSS_COMPILE for each architecture. > > > > > > My suggestion is to check $(origin ARCH). > > > > > > When you cross-compile the kernel, you need to set ARCH from your > > > environment or from the command line. > > > > > > For the native build, you do not need to set ARCH. The default in > > > the top Makefile is used: > > > > > > ARCH ?= $(SUBARCH) > > > > > > Hence, $(origin ARCH) returns 'file'. > > > > > > Before this commit, 'make ARCH=powerpc defconfig' failed: > > > > In case you have not seen it, please check: > > > > http://patchwork.ozlabs.org/patch/1037835/ > > > I did not know that because I do not subscribe to ppc ML. > > > Michael's patch looks good to me.
OK > > If you mimic x86, the following will work: > Nice! Michael do you have a preference ? > > > diff --git a/Makefile b/Makefile > index 86cf35d..eb9552d 100644 > --- a/Makefile > +++ b/Makefile > @@ -356,6 +356,11 @@ ifeq ($(ARCH),sh64) > SRCARCH := sh > endif > > +# Additional ARCH settings for powerpc > +ifneq ($(filter ppc%,$(ARCH)),) > + SRCARCH := powerpc > +endif > + > KCONFIG_CONFIG ?= .config > export KCONFIG_CONFIG > > diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile > index 488c9ed..ff01fef 100644 > --- a/arch/powerpc/Makefile > +++ b/arch/powerpc/Makefile > @@ -34,10 +34,10 @@ ifdef CONFIG_PPC_BOOK3S_32 > KBUILD_CFLAGS += -mcpu=powerpc > endif > > -ifeq ($(CROSS_COMPILE),) > -KBUILD_DEFCONFIG := $(shell uname -m)_defconfig > -else > +ifeq ($(ARCH),powerpc) > KBUILD_DEFCONFIG := ppc64_defconfig > +else > +KBUILD_DEFCONFIG := $(ARCH)_defconfig > endif > > ifdef CONFIG_PPC64 > diff --git a/scripts/subarch.include b/scripts/subarch.include > index 6506828..c98323f 100644 > --- a/scripts/subarch.include > +++ b/scripts/subarch.include > @@ -8,6 +8,6 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/x86/ -e > s/x86_64/x86/ \ > -e s/sun4u/sparc64/ \ > -e s/arm.*/arm/ -e s/sa110/arm/ \ > -e s/s390x/s390/ -e s/parisc64/parisc/ \ > - -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \ > + -e s/mips.*/mips/ \ > -e s/sh[234].*/sh/ -e s/aarch64.*/arm64/ \ > -e s/riscv.*/riscv/) > > > > > > > > > -- > Best Regards > Masahiro Yamada