Re: [PATCH] kconfig: tinyconfig: provide whole choice blocks to avoid warnings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux