Re: [RFC, 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target
From: Olof Johansson <hidden>
Date: 2015-10-14 16:55:41
Also in:
linux-kbuild, lkml
On Tue, Oct 13, 2015 at 4:43 PM, Michael Ellerman [off-list ref] wrote:
On Tue, 2015-10-13 at 14:02 -0700, Olof Johansson wrote:quoted
On Fri, Oct 2, 2015 at 12:47 AM, Michael Ellerman [off-list ref] wrote:quoted
On Wed, 2015-23-09 at 05:40:34 UTC, Michael Ellerman wrote:quoted
Arch Makefiles can set KBUILD_DEFCONFIG to tell kbuild the name of the defconfig that should be built by default. However currently there is an assumption that KBUILD_DEFCONFIG points to a file at arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG). We would like to use a target, using merge_config, as our defconfig, so adapt the logic in scripts/kconfig/Makefile to allow that. To minimise the chance of breaking anything, we first check if KBUILD_DEFCONFIG is a file, and if so we do the old logic. If it's not a file, then we call the top-level Makefile with KBUILD_DEFCONFIG as the target. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Acked-by: Michal Marek <redacted>Applied to powerpc next. https://git.kernel.org/powerpc/c/d2036f30cfe1daa19e63ce75This breaks arm64 defconfig for me: mkdir obj-tmp make -f Makefile O=obj-tmp ARCH=arm64 defconfig ... watch loop of: *** Default configuration is based on target 'defconfig' GEN ./MakefileCrap, sorry. I knew I shouldn't have touched that code! Does this fix it for you?
Yes, it does, however:
quoted hunk ↗ jump to hunk
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile index b2b9c87..3043d6b 100644 --- a/scripts/kconfig/Makefile +++ b/scripts/kconfig/Makefile@@ -96,7 +96,7 @@ savedefconfig: $(obj)/conf defconfig: $(obj)/conf ifeq ($(KBUILD_DEFCONFIG),) $< $(silent) --defconfig $(Kconfig) -else ifneq ($(wildcard arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),) +else ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),) @$(kecho) "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'" $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
Do you need a $(srctree) prefix here too? I'm not entirely sure what I would do to reproduce a run that goes down this path so I can't confirm. -Olof