Re: [PATCH 04/23] kconfig: set SYMBOL_AUTO to the symbol marked with defconfig_list

From: Ulf Magnusson
Date: Thu Mar 01 2018 - 12:11:56 EST


On Thu, Mar 1, 2018 at 4:05 PM, Masahiro Yamada
<yamada.masahiro@xxxxxxxxxxxxx> wrote:
> 2018-02-17 3:38 GMT+09:00 Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>:
>> The 'defconfig_list' is a weird attribute. If the '.config' is
>> missing, conf_read_simple() iterates over all visible defaults,
>> then it uses the first one for which fopen() succeeds.
>>
>> config DEFCONFIG_LIST
>> string
>> depends on !UML
>> option defconfig_list
>> default "/lib/modules/$UNAME_RELEASE/.config"
>> default "/etc/kernel-config"
>> default "/boot/config-$UNAME_RELEASE"
>> default "$ARCH_DEFCONFIG"
>> default "arch/$ARCH/defconfig"
>>
>> However, like other symbols, the first visible default is always
>> written out to the .config file. This might be different from what
>> has been actually used.
>>
>> For example, on my machine, the third one "/boot/config-$UNAME_RELEASE"
>> is opened, like follows:
>>
>> $ rm .config
>> $ make oldconfig 2>/dev/null
>> scripts/kconfig/conf --oldconfig Kconfig
>> #
>> # using defaults found in /boot/config-4.4.0-112-generic
>> #
>> *
>> * Restart config...
>> *
>> *
>> * IRQ subsystem
>> *
>> Expose irq internals in debugfs (GENERIC_IRQ_DEBUGFS) [N/y/?] (NEW)
>>
>> However, the resulted .config file contains the first one since it is
>> visible:
>>
>> $ grep CONFIG_DEFCONFIG_LIST .config
>> CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
>>
>> In order to stop confusing people, prevent this CONFIG option from
>> being written to the .config file.
>>
>> Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
>> ---
>
>
> This one is almost trivial, so I will pick it up now.
>
> Ulf, do you have any comment about this one?
>
>
>
>
>> I'd like to fix the root case of this weirdness later.
>> (and other 'option' attributes as well)
>>
>> But, this series is focusing a more important work in a bigger picture.
>>
>> For now, I decided to just hide CONFIG_DEFCONFIG_LIST
>> from the .config file.
>>
>>
>> scripts/kconfig/menu.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
>> index 9922285..36cd3e1 100644
>> --- a/scripts/kconfig/menu.c
>> +++ b/scripts/kconfig/menu.c
>> @@ -212,6 +212,7 @@ void menu_add_option(int token, char *arg)
>> sym_defconfig_list = current_entry->sym;
>> else if (sym_defconfig_list != current_entry->sym)
>> zconf_error("trying to redefine defconfig symbol");
>> + sym_defconfig_list->flags |= SYMBOL_AUTO;
>> break;
>> case T_OPT_ENV:
>> prop_add_env(arg);
>> --
>> 2.7.4
>>
>> --
>> 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
>
>
>
> --
> Best Regards
> Masahiro Yamada

Seems reasonable to me.

Reviewed-by: Ulf Magnusson <ulfalizer@xxxxxxxxx>

Cheers,
Ulf