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

From: Masahiro Yamada
Date: Tue Jul 05 2016 - 22:00:28 EST


Hi Arnd,


2016-07-04 23:25 GMT+09:00 Arnd Bergmann <arnd@xxxxxxxx>:
> 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:

I am not convinced with this statement.

Why do you think 63a91033d52e is a bad commit?


With/without 63a91033d52e, I see the same warnings.


$ git log --oneline -1
63a9103 kbuild: add generic mergeconfig target, %.config
$ make -s mrproper
$ make tinyconfig >/dev/null
.config:871:warning: override: KERNEL_XZ changes choice state
.config:873:warning: override: SLOB changes choice state
.config:874:warning: override: NOHIGHMEM changes choice state
$ git checkout HEAD^
Previous HEAD position was 63a9103... kbuild: add generic mergeconfig
target, %.config
HEAD is now at bc8f8f5... merge_config.sh: rename MAKE to RUNMAKE
$ git log --oneline -1
bc8f8f5 merge_config.sh: rename MAKE to RUNMAKE
$ make -s mrproper
$ make tinyconfig >/dev/null
.config:871:warning: override: KERNEL_XZ changes choice state
.config:873:warning: override: SLOB changes choice state
.config:874:warning: override: NOHIGHMEM changes choice state







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


The dependency "tinyconfig: $(obj)/conf" is redundant.


It is already specified by:

allnoconfig allyesconfig allmodconfig alldefconfig randconfig: $(obj)/conf
$< --$@ $(Kconfig)







What is worse, this patch breaks "make tinyconfig" on x86.


$ uname -m
x86_64
$ git log --oneline -2
754e472 Kbuild: avoid "make tinyconfig" warnings
a99cde4 Linux 4.7-rc6
$ make -s mrproper
$ make tinyconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --allnoconfig Kconfig
#
# configuration written to .config
#
scripts/kconfig/Makefile:115: *** No configuration exists for this
target on this architecture. Stop.
make[3]: *** [arch/x86/configs/tiny.config] Error 2
make[2]: *** [__build_one_by_one] Error 2
make[1]: *** [tinyconfig] Error 2
make: *** [tinyconfig] Error 2


--
Best Regards
Masahiro Yamada