Re: [PATCH 11/13] kconfig: do not use allnoconfig_y option
From: Guenter Roeck <linux@roeck-us.net>
Date: 2021-03-31 17:13:30
Also in:
lkml
On Sun, Mar 14, 2021 at 04:48:34AM +0900, Masahiro Yamada wrote:
allnoconfig_y is a bad hack that sets a symbol to 'y' by allnoconfig. allnoconfig does not mean a minimum set of CONFIG options because a bunch of prompts are hidden by 'if EMBEDDED' or 'if EXPERT', but I do not like to do a workaround this way. Use the pre-existing feature, KCONFIG_ALLCONFIG, to provide a one liner config fragment. CONFIG_EMBEDDED=y is still forced under allnoconfig. No change in the .config file produced by 'make tinyconfig'. The output of 'make allnoconfig' will be changed; we will get CONFIG_EMBEDDED=n because allnoconfig literally sets all symbols to n. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
With this patch in place, mips:allnoconfig fails to build with the following error. Error log: WARNING: modpost: vmlinux.o(.text+0x9c70): Section mismatch in reference from the function reserve_exception_space() to the function .meminit.text:memblock_reserve() The function reserve_exception_space() references the function __meminit memblock_reserve(). This is often because reserve_exception_space lacks a __meminit annotation or the annotation of memblock_reserve is wrong. ERROR: modpost: Section mismatches detected. Set CONFIG_SECTION_MISMATCH_WARN_ONLY=y to allow them. make[2]: *** [scripts/Makefile.modpost:62: vmlinux.symvers] Error 1 make[2]: *** Deleting file 'vmlinux.symvers' make[1]: *** [Makefile:1292: vmlinux] Error 2 make: *** [Makefile:222: __sub-make] Error 2 Guenter
quoted hunk ↗ jump to hunk
--- init/Kconfig | 1 - kernel/configs/tiny-base.config | 1 + scripts/kconfig/Makefile | 3 ++- 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 kernel/configs/tiny-base.configdiff --git a/init/Kconfig b/init/Kconfig index 46b87ad73f6a..beb8314fdf96 100644 --- a/init/Kconfig +++ b/init/Kconfig@@ -1769,7 +1769,6 @@ config DEBUG_RSEQ config EMBEDDED bool "Embedded system" - option allnoconfig_y select EXPERT help This option should be enabled if compiling the kernel fordiff --git a/kernel/configs/tiny-base.config b/kernel/configs/tiny-base.config new file mode 100644 index 000000000000..2f0e6bf6db2c --- /dev/null +++ b/kernel/configs/tiny-base.config@@ -0,0 +1 @@ +CONFIG_EMBEDDED=ydiff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile index 7df3c0e4c52e..46f2465177f0 100644 --- a/scripts/kconfig/Makefile +++ b/scripts/kconfig/Makefile@@ -102,7 +102,8 @@ configfiles=$(wildcard $(srctree)/kernel/configs/$@ $(srctree)/arch/$(SRCARCH)/c PHONY += tinyconfig tinyconfig: - $(Q)$(MAKE) -f $(srctree)/Makefile allnoconfig tiny.config + $(Q)KCONFIG_ALLCONFIG=kernel/configs/tiny-base.config $(MAKE) -f $(srctree)/Makefile allnoconfig + $(Q)$(MAKE) -f $(srctree)/Makefile tiny.config # CHECK: -o cache_dir=<path> working? PHONY += testconfig-- 2.27.0