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(-)
@@ -96,9 +96,12 @@ savedefconfig: $(obj)/confdefconfig:$(obj)/confifeq ($(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
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(+)
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
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.
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
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
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.
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
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>
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>
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
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>
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?
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>
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?
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>
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?
@@ -96,7 +96,7 @@ savedefconfig: $(obj)/confdefconfig:$(obj)/confifeq ($(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
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>
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?
@@ -96,7 +96,7 @@ savedefconfig: $(obj)/confdefconfig:$(obj)/confifeq ($(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