History

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

Don Zickus committed 8 years ago

Commit 17baab61 parent eea6f621 file · +12 −2Browse files

Showing the changes to scripts (1 of 1 file). Show all

Unified · Split

scripts/kconfig/conf.c+12−2
@@ -422,8 +422,18 @@ static void check_conf(struct menu *menu) · 421 unmodified lines
422 if (sym_is_changable(sym) ||422 if (sym_is_changable(sym) ||
423 (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) {423 (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) {
424 if (input_mode == listnewconfig) {424 if (input_mode == listnewconfig) {
425 if (sym->name && !sym_is_choice_value(sym)) {425 if (sym->name) {
426 printf("%s%s\n", CONFIG_, 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 }
427 }437 }
428 } else {438 } else {
429 if (!conf_cnt++)439 if (!conf_cnt++)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t