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 -- 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