[U-Boot] [PATCH v3 07/10] moveconfig: Ignore duplicate configs when moving

Joe Hershberger joe.hershberger at gmail.com
Sat May 16 04:57:12 CEST 2015


Hi Masahiro-san,

On Fri, May 15, 2015 at 12:10 AM, Masahiro Yamada
<yamada.masahiro at socionext.com> wrote:
> Hi Joe,
>
> 2015-05-15 3:02 GMT+09:00 Joe Hershberger <joe.hershberger at gmail.com>:
>> Hi Masahiro-san,
>>
>> On Thu, May 14, 2015 at 10:36 AM, Masahiro Yamada
>> <yamada.masahiro at socionext.com> wrote:
>>> 2015-05-14 7:28 GMT+09:00 Joe Hershberger <joe.hershberger at ni.com>:
>>>> 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 <joe.hershberger at ni.com>
>>>>
>>>> ---
>>>>
>>>> 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.

8<snip>8

Cheers,
-Joe


More information about the U-Boot mailing list