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. If you mimic x86, the following will work: 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