Skip to content

Commit 17baab6

Browse files
dzickusrhmasahir0y
authored andcommitted
kconfig: extend output of 'listnewconfig'
We at Red Hat/Fedora have generally tried to have a per file breakdown of every config option we set. This makes it easy for us to add new options when they are exposed and keep a changelog of why they were set. A Fedora example is here: https://src.fedoraproject.org/cgit/rpms/kernel.git/tree/configs/fedora/generic Using various merge scripts, we build up a config file and run it through 'make listnewconfig' and 'make oldnoconfig'. The idea is to print out new config options that haven't been manually set and use the default until a patch is posted to set it properly. To speed things up, it would be nice to make it easier to generate a patch to post the default setting. The output of 'make listnewconfig' has two issues that limit us: - it doesn't provide the default value - it doesn't provide the new 'choice' options that get flagged in 'oldconfig' This patch extends 'listnewconfig' to address the above two issues. This allows us to run a script make listnewconfig | rhconfig-tool -o patches; git send-email patches/ The output of 'make listnewconfig': CONFIG_NET_EMATCH_IPT CONFIG_IPVLAN CONFIG_ICE CONFIG_NET_VENDOR_NI CONFIG_IEEE802154_MCR20A CONFIG_IR_IMON_DECODER CONFIG_IR_IMON_RAW The new output of 'make listnewconfig': CONFIG_KERNEL_XZ=n CONFIG_KERNEL_LZO=n CONFIG_NET_EMATCH_IPT=n CONFIG_IPVLAN=n CONFIG_ICE=n CONFIG_NET_VENDOR_NI=y CONFIG_IEEE802154_MCR20A=n CONFIG_IR_IMON_DECODER=n CONFIG_IR_IMON_RAW=n Signed-off-by: Don Zickus <[email protected]> Signed-off-by: Masahiro Yamada <[email protected]>
1 parent eea6f62 commit 17baab6

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

scripts/kconfig/conf.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -422,8 +422,18 @@ static void check_conf(struct menu *menu)
422422
if (sym_is_changable(sym) ||
423423
(sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) {
424424
if (input_mode == listnewconfig) {
425-
if (sym->name && !sym_is_choice_value(sym)) {
426-
printf("%s%s\n", CONFIG_, sym->name);
425+
if (sym->name) {
426+
const char *str;
427+
428+
if (sym->type == S_STRING) {
429+
str = sym_get_string_value(sym);
430+
str = sym_escape_string_value(str);
431+
printf("%s%s=%s\n", CONFIG_, sym->name, str);
432+
free((void *)str);
433+
} else {
434+
str = sym_get_string_value(sym);
435+
printf("%s%s=%s\n", CONFIG_, sym->name, str);
436+
}
427437
}
428438
} else {
429439
if (!conf_cnt++)

0 commit comments

Comments
 (0)