Re: [PATCH] [RFC] Kbuild: avoid "make tinyconfig" warnings

From: Josh Triplett
Date: Mon Jul 04 2016 - 15:52:23 EST


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@xxxxxxxx>
> 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@xxxxxxxxxxxxxxxx>

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.

> 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
>