[RFC PATCH 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

Subsystems: kconfig, the rest

STALE3967d

15 messages, 4 authors, 2015-10-15 · open the first message on its own page

[RFC PATCH 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2015-09-23 05:40:42

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>
---
 scripts/kconfig/Makefile | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index aceaaed09811..b2b9c87cec50 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -96,9 +96,12 @@ savedefconfig: $(obj)/conf
 defconfig: $(obj)/conf
 ifeq ($(KBUILD_DEFCONFIG),)
 	$< $(silent) --defconfig $(Kconfig)
-else
+else ifneq ($(wildcard arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
 	@$(kecho) "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
 	$(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
+else
+	@$(kecho) "*** Default configuration is based on target '$(KBUILD_DEFCONFIG)'"
+	$(Q)$(MAKE) -f $(srctree)/Makefile $(KBUILD_DEFCONFIG)
 endif
 
 %_defconfig: $(obj)/conf
-- 
2.1.4

[RFC PATCH 2/2] powerpc: Add ppc64le_defconfig

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2015-09-23 05:41:18

Based directly on ppc64_defconfig using merge_config.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 arch/powerpc/Makefile | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index b9b4af2af9a5..3704db45a832 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -288,6 +288,10 @@ PHONY += pseries_le_defconfig
 pseries_le_defconfig:
 	$(call merge_into_defconfig,pseries_defconfig,le)
 
+PHONY += ppc64le_defconfig
+ppc64le_defconfig:
+	$(call merge_into_defconfig,ppc64_defconfig,le)
+
 PHONY += mpc85xx_defconfig
 mpc85xx_defconfig:
 	$(call merge_into_defconfig,mpc85xx_basic_defconfig,\
-- 
2.1.4

Re: [RFC PATCH 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

From: Michal Marek <hidden>
Date: 2015-09-23 09:50:56

On 2015-09-23 07:40, Michael Ellerman wrote:
+else ifneq ($(wildcard arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
 	@$(kecho) "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
 	$(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
+else
+	@$(kecho) "*** Default configuration is based on target '$(KBUILD_DEFCONFIG)'"
+	$(Q)$(MAKE) -f $(srctree)/Makefile $(KBUILD_DEFCONFIG)
 endif
What is the anticipated usage of this? The patch is not needed to make

  make ppc64le_defconfig

work with the second patch. If it was, this would create a loop anyway.

Michal

Re: [RFC PATCH 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

From: Michael Ellerman <hidden>
Date: 2015-09-23 22:16:46


On 23 September 2015 19:50:52 GMT+10:00, Michal Marek [off-list ref] wrote:
On 2015-09-23 07:40, Michael Ellerman wrote:
quoted
+else ifneq ($(wildcard
arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
quoted
 	@$(kecho) "*** Default configuration is based on
'$(KBUILD_DEFCONFIG)'"
quoted
 	$(Q)$< $(silent)
--defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
quoted
+else
+	@$(kecho) "*** Default configuration is based on target
'$(KBUILD_DEFCONFIG)'"
quoted
+	$(Q)$(MAKE) -f $(srctree)/Makefile $(KBUILD_DEFCONFIG)
 endif
What is the anticipated usage of this? The patch is not needed to make

 make ppc64le_defconfig

work with the second patch. If it was, this would create a loop anyway.
The idea is to make 'make defconfig' work when KBUILD_DEFCONFIG is ppc64le_defconfig (which happens for us when uname returns ppc64le) and additionally when ppc64le_defconfig is not a real file.

It doesn't work currently, but does with these two patches applied.

cheers

-- 
Sent from my Android phone with K-9 Mail. Please excuse my brevity.

Re: [RFC PATCH 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

From: Michal Marek <hidden>
Date: 2015-09-25 20:46:43

Dne 24.9.2015 v 00:16 Michael Ellerman napsal(a):

On 23 September 2015 19:50:52 GMT+10:00, Michal Marek
[off-list ref] wrote:
quoted
On 2015-09-23 07:40, Michael Ellerman wrote:
quoted
+else ifneq ($(wildcard
arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
quoted
@$(kecho) "*** Default configuration is based on
'$(KBUILD_DEFCONFIG)'"
quoted
$(Q)$< $(silent)
--defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
quoted
+else +	@$(kecho) "*** Default configuration is based on target
'$(KBUILD_DEFCONFIG)'"
quoted
+	$(Q)$(MAKE) -f $(srctree)/Makefile $(KBUILD_DEFCONFIG) endif
What is the anticipated usage of this? The patch is not needed to
make

make ppc64le_defconfig

work with the second patch. If it was, this would create a loop
anyway.
The idea is to make 'make defconfig' work when KBUILD_DEFCONFIG is
ppc64le_defconfig (which happens for us when uname returns ppc64le)
and additionally when ppc64le_defconfig is not a real file.
Ah, that makes sense. You can add

Acked-by: Michal Marek <redacted>

if you want.

Michal

Re: [RFC PATCH 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2015-10-01 06:14:18

On Fri, 2015-09-25 at 22:46 +0200, Michal Marek wrote:
Dne 24.9.2015 v 00:16 Michael Ellerman napsal(a):
quoted

On 23 September 2015 19:50:52 GMT+10:00, Michal Marek
[off-list ref] wrote:
quoted
On 2015-09-23 07:40, Michael Ellerman wrote:
quoted
+else ifneq ($(wildcard
arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
quoted
@$(kecho) "*** Default configuration is based on
'$(KBUILD_DEFCONFIG)'"
quoted
$(Q)$< $(silent)
--defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
quoted
+else +	@$(kecho) "*** Default configuration is based on target
'$(KBUILD_DEFCONFIG)'"
quoted
+	$(Q)$(MAKE) -f $(srctree)/Makefile $(KBUILD_DEFCONFIG) endif
What is the anticipated usage of this? The patch is not needed to
make

make ppc64le_defconfig

work with the second patch. If it was, this would create a loop
anyway.
The idea is to make 'make defconfig' work when KBUILD_DEFCONFIG is
ppc64le_defconfig (which happens for us when uname returns ppc64le)
and additionally when ppc64le_defconfig is not a real file.
Ah, that makes sense. You can add

Acked-by: Michal Marek <redacted>

if you want.
Thanks. I'll assume by that you mean you're happy if I take both patches
through the powerpc tree.

cheers

Re: [RFC PATCH 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

From: Michal Marek <hidden>
Date: 2015-10-01 06:50:28

On 2015-10-01 08:14, Michael Ellerman wrote:
On Fri, 2015-09-25 at 22:46 +0200, Michal Marek wrote:
quoted
Dne 24.9.2015 v 00:16 Michael Ellerman napsal(a):
quoted

On 23 September 2015 19:50:52 GMT+10:00, Michal Marek
[off-list ref] wrote:
quoted
On 2015-09-23 07:40, Michael Ellerman wrote:
quoted
+else ifneq ($(wildcard
arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
quoted
@$(kecho) "*** Default configuration is based on
'$(KBUILD_DEFCONFIG)'"
quoted
$(Q)$< $(silent)
--defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
quoted
+else +	@$(kecho) "*** Default configuration is based on target
'$(KBUILD_DEFCONFIG)'"
quoted
+	$(Q)$(MAKE) -f $(srctree)/Makefile $(KBUILD_DEFCONFIG) endif
What is the anticipated usage of this? The patch is not needed to
make

make ppc64le_defconfig

work with the second patch. If it was, this would create a loop
anyway.
The idea is to make 'make defconfig' work when KBUILD_DEFCONFIG is
ppc64le_defconfig (which happens for us when uname returns ppc64le)
and additionally when ppc64le_defconfig is not a real file.
Ah, that makes sense. You can add

Acked-by: Michal Marek <redacted>

if you want.
Thanks. I'll assume by that you mean you're happy if I take both patches
through the powerpc tree.
Yes, I assumed that this was your plan.

Michal

Re: [RFC PATCH 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2015-10-01 07:05:54

On Thu, 2015-10-01 at 08:50 +0200, Michal Marek wrote:
On 2015-10-01 08:14, Michael Ellerman wrote:
quoted
On Fri, 2015-09-25 at 22:46 +0200, Michal Marek wrote:
quoted
Dne 24.9.2015 v 00:16 Michael Ellerman napsal(a):
quoted
On 23 September 2015 19:50:52 GMT+10:00, Michal Marek
[off-list ref] wrote:
quoted
On 2015-09-23 07:40, Michael Ellerman wrote:
quoted
+else ifneq ($(wildcard
arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
quoted
@$(kecho) "*** Default configuration is based on
'$(KBUILD_DEFCONFIG)'"
quoted
$(Q)$< $(silent)
--defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
quoted
+else +	@$(kecho) "*** Default configuration is based on target
'$(KBUILD_DEFCONFIG)'"
quoted
+	$(Q)$(MAKE) -f $(srctree)/Makefile $(KBUILD_DEFCONFIG) endif
What is the anticipated usage of this? The patch is not needed to
make

make ppc64le_defconfig

work with the second patch. If it was, this would create a loop
anyway.
The idea is to make 'make defconfig' work when KBUILD_DEFCONFIG is
ppc64le_defconfig (which happens for us when uname returns ppc64le)
and additionally when ppc64le_defconfig is not a real file.
Ah, that makes sense. You can add

Acked-by: Michal Marek <redacted>

if you want.
Thanks. I'll assume by that you mean you're happy if I take both patches
through the powerpc tree.
Yes, I assumed that this was your plan.
I didn't really have a plan :)

It's certainly easiest if I take it in my tree along with the new
ppc64le_defconfig, so I'll do that. Thanks.

cheers

Re: [RFC,2/2] powerpc: Add ppc64le_defconfig

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2015-10-02 07:47:13

On Wed, 2015-23-09 at 05:40:35 UTC, Michael Ellerman wrote:
Based directly on ppc64_defconfig using merge_config.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Applied to powerpc next.

https://git.kernel.org/powerpc/c/2adc48a691866fbb3134dd3a

cheers

Re: [RFC, 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2015-10-02 07:47:14

On Wed, 2015-23-09 at 05:40:34 UTC, Michael Ellerman wrote:
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/d2036f30cfe1daa19e63ce75

cheers

Re: [RFC, 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

From: Olof Johansson <hidden>
Date: 2015-10-13 21:02:34

On Fri, Oct 2, 2015 at 12:47 AM, Michael Ellerman [off-list ref] wrote:
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/d2036f30cfe1daa19e63ce75
This 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     ./Makefile



-Olof

Re: [RFC, 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2015-10-13 23:43:07

On Tue, 2015-10-13 at 14:02 -0700, Olof Johansson wrote:
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/d2036f30cfe1daa19e63ce75
This 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     ./Makefile
Crap, sorry. I knew I shouldn't have touched that code!

Does this fix it for you?
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)
 else


$ make O=obj CROSS_COMPILE=/opt/cross/gcc-4.9.0-nolibc/aarch64-linux/bin/aarch64-linux- ARCH=arm64 defconfig
make[1]: Entering directory '/home/michael/kernels/linux-next/obj'
  HOSTCC  scripts/basic/fixdep
  GEN     ./Makefile
  HOSTCC  scripts/kconfig/conf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/zconf.lex.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
*** Default configuration is based on 'defconfig'
#
# configuration written to .config
#
make[1]: Leaving directory '/home/michael/kernels/linux-next/obj'
$ head obj/.config
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 4.3.0-rc5 Kernel Configuration
#
CONFIG_ARM64=y
CONFIG_64BIT=y
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
CONFIG_MMU=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000


cheers

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

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/d2036f30cfe1daa19e63ce75
This 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     ./Makefile
Crap, sorry. I knew I shouldn't have touched that code!

Does this fix it for you?
Yes, it does, however:
quoted 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

Re: [RFC, 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2015-10-15 03:27:19

On Wed, 2015-10-14 at 09:54 -0700, Olof Johansson wrote:
On Tue, Oct 13, 2015 at 4:43 PM, Michael Ellerman [off-list ref] wrote:
quoted
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/d2036f30cfe1daa19e63ce75
This 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     ./Makefile
Crap, sorry. I knew I shouldn't have touched that code!

Does this fix it for you?
Yes, it does, however:
quoted
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.
That is the path you're going down, now that it's fixed. That's the path where
KBUILD_DEFCONFIG is a real file, ie. the old behaviour.

I'm not sure why it doesn't have a $(srctree) there, but it's never had one.

It looks like it eventually boils down to zconf_fopen() which looks for the
file in both .  and $(srctree).

So I think we could add a $(srctree) there, it would be more obvious and not
rely on the zconf_fopen() behaviour, but I'd rather leave it as is and let
Michal do that as a cleanup later.

cheers

Re: [RFC, 1/2] scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target

From: Michal Marek <hidden>
Date: 2015-10-15 07:34:13

Dne 15.10.2015 v 05:27 Michael Ellerman napsal(a):
On Wed, 2015-10-14 at 09:54 -0700, Olof Johansson wrote:
quoted
On Tue, Oct 13, 2015 at 4:43 PM, Michael Ellerman [off-list ref] wrote:
quoted
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/d2036f30cfe1daa19e63ce75
This 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     ./Makefile
Crap, sorry. I knew I shouldn't have touched that code!

Does this fix it for you?
Yes, it does, however:
quoted
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.
That is the path you're going down, now that it's fixed. That's the path where
KBUILD_DEFCONFIG is a real file, ie. the old behaviour.

I'm not sure why it doesn't have a $(srctree) there, but it's never had one.

It looks like it eventually boils down to zconf_fopen() which looks for the
file in both .  and $(srctree).
Yes, the kconfig frontends do part of what would ideally be the job of
make or the Makefile.

Michal
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help