All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masahiro Yamada <masahiroy@kernel.org>
To: Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	X86 ML <x86@kernel.org>,
	linux-um@lists.infradead.org,
	sparclinux <sparclinux@vger.kernel.org>
Subject: Re: [PATCH] kbuild: use KBUILD_DEFCONFIG as the fallback for DEFCONFIG_LIST
Date: Fri, 28 Feb 2020 12:48:54 +0900	[thread overview]
Message-ID: <CAK7LNAS9uWyvFeVkxtbkuBrnqumYzzLfcsUrVByHHyons4m8hA@mail.gmail.com> (raw)
In-Reply-To: <20200228034640.25247-1-masahiroy@kernel.org>

On Fri, Feb 28, 2020 at 12:47 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> Most of the Kconfig commands (except defconfig and all*config) read
> the .config file as a base set of CONFIG options.
>
> When it does not exist, the files in DEFCONFIG_LIST are searched in
> this order and loaded if found.
>
> I do not see much sense in the last two lines in DEFCONFIG_LIST.
>
> [1] ARCH_DEFCONFIG
>
> The entry for DEFCONFIG_LIST is guarded by 'depends on !UML'. So, the
> ARCH_DEFCONFIG definition in arch/x86/um/Kconfig is meaningless.
>
> arch/{sh,sparc,x86}/Kconfig define ARCH_DEFCONFIG depending on 32 or
> 64 bit variant symbols. This is a little bit strange; ARCH_DEFCONFIG
> should be a fixed string because the base config file is loaded before
> the symbol evaluation stage.
>
> Using KBUILD_DEFCONFIG makes more sense because it is fixed before
> Kconfig is invoked. Fortunately, arch/{sh,sparc,x86}/Makefile define it
> in the same way, and it works as expected. Hence, replace ARCH_DEFCONFIG
> with "arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)".
>
> [2] arch/$(ARCH)/defconfig
>
> This file path is no longer valid. The defconfig files are always located
> in the arch configs/ directories.
>
>   $ find arch -name defconfig | sort
>   arch/alpha/configs/defconfig
>   arch/arm64/configs/defconfig
>   arch/csky/configs/defconfig
>   arch/nds32/configs/defconfig
>   arch/riscv/configs/defconfig
>   arch/s390/configs/defconfig
>   arch/unicore32/configs/defconfig
>
> The path arch/*/configs/defconfig is already covered by
> "arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)". So, this file path is
> not necessary.
>
> I moved the default KBUILD_DEFCONFIG to the top Makefile. Otherwise,
> the 7 architectures listed above would end up with endless loop of
> syncconfig.
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>


I forgot to say this.
This is v2.

Changes in v2:
  - Move KBUILD_DEFCONFIG to fix endless loop of syncconfig


> ---
>
>  Makefile                 | 3 +++
>  arch/sh/Kconfig          | 5 -----
>  arch/sparc/Kconfig       | 5 -----
>  arch/x86/Kconfig         | 5 -----
>  arch/x86/um/Kconfig      | 5 -----
>  init/Kconfig             | 3 +--
>  scripts/kconfig/Makefile | 4 ----
>  7 files changed, 4 insertions(+), 26 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 81d130ad9534..17cc09304561 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -388,6 +388,9 @@ endif
>  KCONFIG_CONFIG ?= .config
>  export KCONFIG_CONFIG
>
> +# Default file for 'make defconfig'. This may be overridden by arch-Makefile.
> +export KBUILD_DEFCONFIG := defconfig
> +
>  # SHELL used by kbuild
>  CONFIG_SHELL := sh
>
> diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
> index 9ece111b0254..b4f0e37b83eb 100644
> --- a/arch/sh/Kconfig
> +++ b/arch/sh/Kconfig
> @@ -87,11 +87,6 @@ config SUPERH64
>         select HAVE_EXIT_THREAD
>         select KALLSYMS
>
> -config ARCH_DEFCONFIG
> -       string
> -       default "arch/sh/configs/shx3_defconfig" if SUPERH32
> -       default "arch/sh/configs/cayman_defconfig" if SUPERH64
> -
>  config GENERIC_BUG
>         def_bool y
>         depends on BUG && SUPERH32
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index c1dd6dd642f4..0de15380d1fc 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -95,11 +95,6 @@ config SPARC64
>         select PCI_DOMAINS if PCI
>         select ARCH_HAS_GIGANTIC_PAGE
>
> -config ARCH_DEFCONFIG
> -       string
> -       default "arch/sparc/configs/sparc32_defconfig" if SPARC32
> -       default "arch/sparc/configs/sparc64_defconfig" if SPARC64
> -
>  config ARCH_PROC_KCORE_TEXT
>         def_bool y
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index beea77046f9b..98935f4387f9 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -240,11 +240,6 @@ config OUTPUT_FORMAT
>         default "elf32-i386" if X86_32
>         default "elf64-x86-64" if X86_64
>
> -config ARCH_DEFCONFIG
> -       string
> -       default "arch/x86/configs/i386_defconfig" if X86_32
> -       default "arch/x86/configs/x86_64_defconfig" if X86_64
> -
>  config LOCKDEP_SUPPORT
>         def_bool y
>
> diff --git a/arch/x86/um/Kconfig b/arch/x86/um/Kconfig
> index a8985e1f7432..95d26a69088b 100644
> --- a/arch/x86/um/Kconfig
> +++ b/arch/x86/um/Kconfig
> @@ -27,11 +27,6 @@ config X86_64
>         def_bool 64BIT
>         select MODULES_USE_ELF_RELA
>
> -config ARCH_DEFCONFIG
> -       string
> -       default "arch/um/configs/i386_defconfig" if X86_32
> -       default "arch/um/configs/x86_64_defconfig" if X86_64
> -
>  config 3_LEVEL_PGTABLES
>         bool "Three-level pagetables" if !64BIT
>         default 64BIT
> diff --git a/init/Kconfig b/init/Kconfig
> index 20a6ac33761c..240c1ed15c69 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -6,8 +6,7 @@ config DEFCONFIG_LIST
>         default "/lib/modules/$(shell,uname -r)/.config"
>         default "/etc/kernel-config"
>         default "/boot/config-$(shell,uname -r)"
> -       default ARCH_DEFCONFIG
> -       default "arch/$(ARCH)/defconfig"
> +       default "arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)"
>
>  config CC_IS_GCC
>         def_bool $(success,$(CC) --version | head -n 1 | grep -q gcc)
> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index 5887ceb6229e..c9d0a4a8efb3 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -12,10 +12,6 @@ else
>  Kconfig := Kconfig
>  endif
>
> -ifndef KBUILD_DEFCONFIG
> -KBUILD_DEFCONFIG := defconfig
> -endif
> -
>  ifeq ($(quiet),silent_)
>  silent := -s
>  endif
> --
> 2.17.1
>


-- 
Best Regards
Masahiro Yamada

WARNING: multiple messages have this Message-ID (diff)
From: Masahiro Yamada <masahiroy@kernel.org>
To: Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	X86 ML <x86@kernel.org>,
	linux-um@lists.infradead.org,
	sparclinux <sparclinux@vger.kernel.org>
Subject: Re: [PATCH] kbuild: use KBUILD_DEFCONFIG as the fallback for DEFCONFIG_LIST
Date: Fri, 28 Feb 2020 03:48:54 +0000	[thread overview]
Message-ID: <CAK7LNAS9uWyvFeVkxtbkuBrnqumYzzLfcsUrVByHHyons4m8hA@mail.gmail.com> (raw)
In-Reply-To: <20200228034640.25247-1-masahiroy@kernel.org>

On Fri, Feb 28, 2020 at 12:47 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> Most of the Kconfig commands (except defconfig and all*config) read
> the .config file as a base set of CONFIG options.
>
> When it does not exist, the files in DEFCONFIG_LIST are searched in
> this order and loaded if found.
>
> I do not see much sense in the last two lines in DEFCONFIG_LIST.
>
> [1] ARCH_DEFCONFIG
>
> The entry for DEFCONFIG_LIST is guarded by 'depends on !UML'. So, the
> ARCH_DEFCONFIG definition in arch/x86/um/Kconfig is meaningless.
>
> arch/{sh,sparc,x86}/Kconfig define ARCH_DEFCONFIG depending on 32 or
> 64 bit variant symbols. This is a little bit strange; ARCH_DEFCONFIG
> should be a fixed string because the base config file is loaded before
> the symbol evaluation stage.
>
> Using KBUILD_DEFCONFIG makes more sense because it is fixed before
> Kconfig is invoked. Fortunately, arch/{sh,sparc,x86}/Makefile define it
> in the same way, and it works as expected. Hence, replace ARCH_DEFCONFIG
> with "arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)".
>
> [2] arch/$(ARCH)/defconfig
>
> This file path is no longer valid. The defconfig files are always located
> in the arch configs/ directories.
>
>   $ find arch -name defconfig | sort
>   arch/alpha/configs/defconfig
>   arch/arm64/configs/defconfig
>   arch/csky/configs/defconfig
>   arch/nds32/configs/defconfig
>   arch/riscv/configs/defconfig
>   arch/s390/configs/defconfig
>   arch/unicore32/configs/defconfig
>
> The path arch/*/configs/defconfig is already covered by
> "arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)". So, this file path is
> not necessary.
>
> I moved the default KBUILD_DEFCONFIG to the top Makefile. Otherwise,
> the 7 architectures listed above would end up with endless loop of
> syncconfig.
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>


I forgot to say this.
This is v2.

Changes in v2:
  - Move KBUILD_DEFCONFIG to fix endless loop of syncconfig


> ---
>
>  Makefile                 | 3 +++
>  arch/sh/Kconfig          | 5 -----
>  arch/sparc/Kconfig       | 5 -----
>  arch/x86/Kconfig         | 5 -----
>  arch/x86/um/Kconfig      | 5 -----
>  init/Kconfig             | 3 +--
>  scripts/kconfig/Makefile | 4 ----
>  7 files changed, 4 insertions(+), 26 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 81d130ad9534..17cc09304561 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -388,6 +388,9 @@ endif
>  KCONFIG_CONFIG ?= .config
>  export KCONFIG_CONFIG
>
> +# Default file for 'make defconfig'. This may be overridden by arch-Makefile.
> +export KBUILD_DEFCONFIG := defconfig
> +
>  # SHELL used by kbuild
>  CONFIG_SHELL := sh
>
> diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
> index 9ece111b0254..b4f0e37b83eb 100644
> --- a/arch/sh/Kconfig
> +++ b/arch/sh/Kconfig
> @@ -87,11 +87,6 @@ config SUPERH64
>         select HAVE_EXIT_THREAD
>         select KALLSYMS
>
> -config ARCH_DEFCONFIG
> -       string
> -       default "arch/sh/configs/shx3_defconfig" if SUPERH32
> -       default "arch/sh/configs/cayman_defconfig" if SUPERH64
> -
>  config GENERIC_BUG
>         def_bool y
>         depends on BUG && SUPERH32
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index c1dd6dd642f4..0de15380d1fc 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -95,11 +95,6 @@ config SPARC64
>         select PCI_DOMAINS if PCI
>         select ARCH_HAS_GIGANTIC_PAGE
>
> -config ARCH_DEFCONFIG
> -       string
> -       default "arch/sparc/configs/sparc32_defconfig" if SPARC32
> -       default "arch/sparc/configs/sparc64_defconfig" if SPARC64
> -
>  config ARCH_PROC_KCORE_TEXT
>         def_bool y
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index beea77046f9b..98935f4387f9 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -240,11 +240,6 @@ config OUTPUT_FORMAT
>         default "elf32-i386" if X86_32
>         default "elf64-x86-64" if X86_64
>
> -config ARCH_DEFCONFIG
> -       string
> -       default "arch/x86/configs/i386_defconfig" if X86_32
> -       default "arch/x86/configs/x86_64_defconfig" if X86_64
> -
>  config LOCKDEP_SUPPORT
>         def_bool y
>
> diff --git a/arch/x86/um/Kconfig b/arch/x86/um/Kconfig
> index a8985e1f7432..95d26a69088b 100644
> --- a/arch/x86/um/Kconfig
> +++ b/arch/x86/um/Kconfig
> @@ -27,11 +27,6 @@ config X86_64
>         def_bool 64BIT
>         select MODULES_USE_ELF_RELA
>
> -config ARCH_DEFCONFIG
> -       string
> -       default "arch/um/configs/i386_defconfig" if X86_32
> -       default "arch/um/configs/x86_64_defconfig" if X86_64
> -
>  config 3_LEVEL_PGTABLES
>         bool "Three-level pagetables" if !64BIT
>         default 64BIT
> diff --git a/init/Kconfig b/init/Kconfig
> index 20a6ac33761c..240c1ed15c69 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -6,8 +6,7 @@ config DEFCONFIG_LIST
>         default "/lib/modules/$(shell,uname -r)/.config"
>         default "/etc/kernel-config"
>         default "/boot/config-$(shell,uname -r)"
> -       default ARCH_DEFCONFIG
> -       default "arch/$(ARCH)/defconfig"
> +       default "arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)"
>
>  config CC_IS_GCC
>         def_bool $(success,$(CC) --version | head -n 1 | grep -q gcc)
> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index 5887ceb6229e..c9d0a4a8efb3 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -12,10 +12,6 @@ else
>  Kconfig := Kconfig
>  endif
>
> -ifndef KBUILD_DEFCONFIG
> -KBUILD_DEFCONFIG := defconfig
> -endif
> -
>  ifeq ($(quiet),silent_)
>  silent := -s
>  endif
> --
> 2.17.1
>


-- 
Best Regards
Masahiro Yamada

  reply	other threads:[~2020-02-28  3:49 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-28  3:46 [PATCH] kbuild: use KBUILD_DEFCONFIG as the fallback for DEFCONFIG_LIST Masahiro Yamada
2020-02-28  3:46 ` Masahiro Yamada
2020-02-28  3:46 ` Masahiro Yamada
2020-02-28  3:48 ` Masahiro Yamada [this message]
2020-02-28  3:48   ` Masahiro Yamada
2020-03-03 13:46   ` Masahiro Yamada
2020-03-03 13:46     ` Masahiro Yamada
2020-03-03 13:46     ` Masahiro Yamada
  -- strict thread matches above, loose matches on Subject: below --
2020-02-16 15:45 Masahiro Yamada
2020-02-16 15:45 ` Masahiro Yamada
2020-02-16 15:45 ` Masahiro Yamada
2020-02-16 15:45 ` Masahiro Yamada
     [not found] ` <CGME20200221085039eucas1p2b439c37eb04870cc020f452b7ad31929@eucas1p2.samsung.com>
2020-02-21  8:50   ` Marek Szyprowski
2020-02-21  8:50     ` Marek Szyprowski
2020-02-21  8:50     ` Marek Szyprowski
2020-02-21  8:50     ` Marek Szyprowski
2020-02-21  8:50     ` Marek Szyprowski
2020-02-21  9:18     ` Masahiro Yamada
2020-02-21  9:18       ` Masahiro Yamada
2020-02-21  9:18       ` Masahiro Yamada
2020-02-21  9:18       ` Masahiro Yamada
2020-02-21  9:18       ` Masahiro Yamada
2020-02-21  9:22       ` Will Deacon
2020-02-21  9:22         ` Will Deacon
2020-02-21  9:22         ` Will Deacon
2020-02-21  9:22         ` Will Deacon
2020-02-21  9:22         ` Will Deacon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAK7LNAS9uWyvFeVkxtbkuBrnqumYzzLfcsUrVByHHyons4m8hA@mail.gmail.com \
    --to=masahiroy@kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-um@lists.infradead.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.