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

Masahiro Yamada yamada.masahiro at socionext.com
Fri May 15 07:10:41 CEST 2015


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.



>> Isn't it the same concept as u-boot.cfg
>> instroduced by commit 741e58e0fc8.
>
> I don't believe it is the same thing because this will still include
> the configs enabled through the config header, but (I think) not those
> from Kconfig.  And anyway, we are evaluating autoconf.mk, not
> u-boot.cfg.

Now, I understood your intention.

u-boot.cfg is not useful for this tool,
although u-boot.cfg also includes configs from Kconfig.


-- 
Best Regards
Masahiro Yamada


More information about the U-Boot mailing list