From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joe Hershberger Date: Fri, 15 May 2015 21:57:12 -0500 Subject: [U-Boot] [PATCH v3 07/10] moveconfig: Ignore duplicate configs when moving In-Reply-To: References: <1431364998-2905-1-git-send-email-joe.hershberger@ni.com> <1431556137-8426-1-git-send-email-joe.hershberger@ni.com> <1431556137-8426-7-git-send-email-joe.hershberger@ni.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Masahiro-san, On Fri, May 15, 2015 at 12:10 AM, Masahiro Yamada wrote: > Hi Joe, > > 2015-05-15 3:02 GMT+09:00 Joe Hershberger : >> Hi Masahiro-san, >> >> On Thu, May 14, 2015 at 10:36 AM, Masahiro Yamada >> wrote: >>> 2015-05-14 7:28 GMT+09:00 Joe Hershberger : >>>> When moving configs, it is important to know what was defined in the >>>> config header even if it duplicates the configs coming from Kconfig. >>>> >>>> tools/moveconfig.py now defines KCONFIG_IGNORE_DUPLICATES to prevent the >>>> filtering from happening and selecting wrong values for the defconfig. >>>> >>>> Signed-off-by: Joe Hershberger >>>> >>>> --- >>>> >>>> Changes in v3: >>>> -New for version 3 >>>> >>>> Changes in v2: None >>>> >>>> scripts/Makefile.autoconf | 3 ++- >>>> tools/moveconfig.py | 1 + >>>> 2 files changed, 3 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/scripts/Makefile.autoconf b/scripts/Makefile.autoconf >>>> index f054081..36bfa17 100644 >>>> --- a/scripts/Makefile.autoconf >>>> +++ b/scripts/Makefile.autoconf >>>> @@ -58,7 +58,8 @@ quiet_cmd_autoconf = GEN $@ >>>> $(CPP) $(c_flags) $2 -DDO_DEPS_ONLY -dM $(srctree)/include/common.h > $@.tmp && { \ >>>> sed -n -f $(srctree)/tools/scripts/define2mk.sed $@.tmp | \ >>>> while read line; do \ >>>> - if ! grep -q "$${line%=*}=" include/config/auto.conf; then \ >>>> + if [ -n "${KCONFIG_IGNORE_DUPLICATES}" ] || \ >>>> + ! grep -q "$${line%=*}=" include/config/auto.conf; then \ >>>> echo "$$line"; \ >>>> fi \ >>>> done > $@; \ >>>> diff --git a/tools/moveconfig.py b/tools/moveconfig.py >>>> index 9135e1d..97ff597 100755 >>>> --- a/tools/moveconfig.py >>>> +++ b/tools/moveconfig.py >>>> @@ -340,6 +340,7 @@ class Slot: >>>> cmd = list(self.make_cmd) >>>> if self.cross_compile: >>>> cmd.append('CROSS_COMPILE=%s' % self.cross_compile) >>>> + cmd.append('KCONFIG_IGNORE_DUPLICATES=1') >>>> cmd.append('include/autoconf.mk') >>>> self.ps = subprocess.Popen(cmd, stdout=self.devnull, stderr=PIPE) >>>> self.state = STATE_SILENTOLDCONFIG >>> >>> >>> This patch is not clear to me. >> >> This was specifically a problem when moving a config that defaulted to >> true in the Kconfig. That meant that it would be "duplicate removed" >> from the include since it was already true (by default) in the >> Kconfig. So it had the effect of disabling that config in every board. >> This stops the filtering in the case where we are trying to move >> configs instead of trying to build the board in this mixed config >> system environment. > > > Uh, make sense. > > I was almost forgetting how the "don't apply" version was implemented. > > My new one parses .config, defconfig as well as autoconf.mk, > so please check if we still need to this hack. I checked it out. The same problem exists and the patch is still needed. Also, I don't believe it is valid to check the .config for things to skip. Just because there is a mention of something does not mean it is the correct value. This is specifically the case for using savedefconfig. For savedefconfig to work properly, the user must add the entry to the Kconfig menu first, then run moveconfig.py. You seem to be expecting that users run moveconfig.py before editing the Kconfigs. 88 Cheers, -Joe