On Mon, Jul 04, 2016 at 12:51:56PM -0700, Josh Triplett wrote:
On Mon, Jul 04, 2016 at 04:25:55PM +0200, Arnd Bergmann wrote:
The introduction of "make *.config" as a shorthand for merging configuration files unfortunately introduced some build warnings that we see in every single run of the various build bots testing tinyconfig:
.config:966:warning: override: NOHIGHMEM changes choice state .config:965:warning: override: SLOB changes choice state .config:963:warning: override: KERNEL_XZ changes choice state .config:962:warning: override: CC_OPTIMIZE_FOR_SIZE changes choice state .config:933:warning: override: SLOB changes choice state .config:930:warning: override: CC_OPTIMIZE_FOR_SIZE changes choice state .config:870:warning: override: SLOB changes choice state .config:868:warning: override: KERNEL_XZ changes choice state .config:867:warning: override: CC_OPTIMIZE_FOR_SIZE changes choice state
This changes the behavior for tinyconfig again, so we call the special allnoconfig target directly, with the fragment as the KCONFIG_ALLCONFIG file so it gets merged into the configuration. The disadvantage of this approach is that we cannot pass another KCONFIG_ALLCONFIG on the command line, that would again have to be done using the mergeconfig script afterwards.
Signed-off-by: Arnd Bergmann arnd@arndb.de Fixes: 63a91033d52e ("kbuild: add generic mergeconfig target, %.config") Link: https://storage.kernelci.org/mainline/v4.7-rc6/x86-tinyconfig/build.log
Thanks for fixing this. Reviewed-by: Josh Triplett josh@joshtriplett.org
As another possibility, which would preserve the ability to use KCONFIG_ALLCONFIG, what about adding a parameter to mergeconfig to disable this warning? I've seen many other uses of mergeconfig in production systems that have the same problem.
Actually, I just realized something: does this actually do the right thing if both tiny.config files exist? The documentation for KCONFIG_ALLCONFIG doesn't suggest that it can take two files as arguments. And if it can, this also need quotes; otherwise, this will expand to "... allnoconfig KCONFIG=path/to/a/tiny.config another/path/to/a/tiny.config".
scripts/kconfig/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile index ebced77deb9c..35d0e191fe3f 100644 --- a/scripts/kconfig/Makefile +++ b/scripts/kconfig/Makefile @@ -125,8 +125,8 @@ xenconfig: xen.config @: PHONY += tinyconfig -tinyconfig:
- $(Q)$(MAKE) -f $(srctree)/Makefile allnoconfig tiny.config
+tinyconfig: $(obj)/conf
- $(Q)$(MAKE) -f $(srctree)/Makefile allnoconfig KCONFIG_ALLCONFIG=$(wildcard $(srctree)/kernel/configs/tiny.config $(srctree)/arch/$(SRCARCH)/configs/tiny.config)
# Help text used by make help help: -- 2.9.0