From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755692AbcGFSdE (ORCPT ); Wed, 6 Jul 2016 14:33:04 -0400 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:49890 "EHLO relay3-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754676AbcGFSdA (ORCPT ); Wed, 6 Jul 2016 14:33:00 -0400 X-Originating-IP: 50.39.163.18 Date: Wed, 6 Jul 2016 11:32:50 -0700 From: Josh Triplett To: Arnd Bergmann Cc: Michal Marek , "Yann E. MORIN" , Masahiro Yamada , Darren Hart , linux-kbuild@vger.kernel.org, kernel-build-reports@lists.linaro.org, Michal Marek , Thiago Macieira , linux-kernel@vger.kernel.org Subject: Re: [PATCH] [RFC] Kbuild: avoid "make tinyconfig" warnings Message-ID: <20160706183250.GA28362@x> References: <20160704142608.2069991-1-arnd@arndb.de> <20160704195156.GA10164@x> <20160704195815.GA10294@x> <7677316.bvNVmygFDv@wuerfel> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7677316.bvNVmygFDv@wuerfel> User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 06, 2016 at 03:56:25PM +0200, Arnd Bergmann wrote: > On Monday, July 4, 2016 12:58:15 PM CEST Josh Triplett wrote: > > 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 > > > > 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 > > > > > > 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". > > You are right, my patch doesn't work. > > I can think of a few other ways to work around this, though none seems > perfect: > > - add a flag to the kconfig tool to ignore 'choice' symbol overrides and not > warn about them (as you suggested). This may be problematic if there > are cases in which the warning is actually helpful. As long as this remains an option and not the default, I don't think it would cause problems. > - drop the feature of allowing multiple tiny.config files to be combined > and instead have the x86 file include everything from the architecture > independent file. This would only be a small annoyance, but it doesn't > solve the other cases you mention in which we see similar warnings. And I'd rather not duplicate the base config into every architecture-specific tiny.config; that'll become even more problematic if other architectures add their own. > - change merge_config.sh to do a 'savedefconfig' step before applying > the fragment, so it doesn't warn about choice statements that are > overridden from their default, as opposed to having conflicting choices. This sounds like a potentially interesting approach. This would produce warnings only if overriding explicit configuration, but not when changing a choice from the implicit default? - Josh Triplett