On Monday, July 18, 2016 12:31:40 PM CEST Josh Triplett wrote: > On Mon, Jul 18, 2016 at 06:00:23PM +0200, Arnd Bergmann wrote: > > Using "make tinyconfig" produces a couple of annoying warnings that show up > > for build test machines all the time: > > > > .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 > > > > I've made a previous attempt at fixing them and we discussed a number of > > alternatives. > > > > I tried changing the Makefile to use "merge_config.sh -n $(fragment-list)" > > but couldn't get that to work properly. > > > > This is yet another approach, based on the observation that we do want > > to see a warning for conflicting 'choice' options, and that we can simply > > make them non-conflicting by listing all other options as disabled. > > This is a trivial patch that we can apply independent of plans for other > > changes. > > > > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > > Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx> > > This does introduce additional warnings for changing those newly listed > options, but then we only have one type of warning, which will go away > with whatever fix you make to the underlying config merge machinery. I didn't actually consider them warnings but rather config output: They are written to stdout instead of stderr, and they don't have the word 'warning' in them: Value of CONFIG_CC_OPTIMIZE_FOR_SIZE is redefined by fragment /git/arm-soc/kernel/configs/tiny.config: Previous value: # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set New value: CONFIG_CC_OPTIMIZE_FOR_SIZE=y It's probably fine to leave this output present, just like 'make oldconfig' prints some informational messages about things that have been changed. In particular, none of the build bots I know will record that as warnings. On the other hand, I think it's a good idea to not print them when building with 'make -s', just like we hide all other informational output, maybe just by redirecting the output of merge_config.sh to /dev/null, or by adding a '-q' argument. > I'll send a follow-up patch doing the same for > arch/x86/configs/tiny.config, whose one config symbol (NOHIGHMEM) also > forms part of a choice and produces the same warning. > > I find it *mildly* annoying that this means the configs will need to > change whenever any new choices appear, but at least we'll have warnings > to tell us that. Agreed. It's also annoying for the cases of very long choice statements with dozens of options. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html