aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/kconfig
diff options
context:
space:
mode:
authorAl Viro <viro@ZenIV.linux.org.uk>2016-01-14 13:13:49 -0500
committerMichal Marek <mmarek@suse.com>2016-02-01 09:12:40 -0500
commit6b87b70c5339f30e3c5b32085e69625906513dc2 (patch)
treef545cfb4ce45da55cb323ed8ca2c97c5b6bf1504 /scripts/kconfig
parent42f9d3c6888bceef6dc7ba72c77acf47347dcf05 (diff)
unbreak allmodconfig KCONFIG_ALLCONFIG=...
Prior to 3.13 make allmodconfig KCONFIG_ALLCONFIG=/dev/null used to be equivalent to make allmodconfig; these days it hardwires MODULES to n. In fact, any KCONFIG_ALLCONFIG that doesn't set MODULES explicitly is treated as if it set it to n. Regression had been introduced by commit cfa98f ("kconfig: do not override symbols already set"); what happens is that conf_read_simple() does sym_calc_value(modules_sym) on exit, which leaves SYMBOL_VALID set and has conf_set_all_new_symbols() skip modules_sym. It's pretty easy to fix - simply move that call of sym_calc_value() into the callers, except for the ones in KCONFIG_ALLCONFIG handling. Objections? Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Fixes: cfa98f2e0ae9 ("kconfig: do not override symbols already set") Signed-off-by: Michal Marek <mmarek@suse.com>
Diffstat (limited to 'scripts/kconfig')
-rw-r--r--scripts/kconfig/confdata.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 0b7dc2fd7bac..dd243d2abd87 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -267,10 +267,8 @@ int conf_read_simple(const char *name, int def)
267 if (in) 267 if (in)
268 goto load; 268 goto load;
269 sym_add_change_count(1); 269 sym_add_change_count(1);
270 if (!sym_defconfig_list) { 270 if (!sym_defconfig_list)
271 sym_calc_value(modules_sym);
272 return 1; 271 return 1;
273 }
274 272
275 for_all_defaults(sym_defconfig_list, prop) { 273 for_all_defaults(sym_defconfig_list, prop) {
276 if (expr_calc_value(prop->visible.expr) == no || 274 if (expr_calc_value(prop->visible.expr) == no ||
@@ -403,7 +401,6 @@ setsym:
403 } 401 }
404 free(line); 402 free(line);
405 fclose(in); 403 fclose(in);
406 sym_calc_value(modules_sym);
407 return 0; 404 return 0;
408} 405}
409 406
@@ -414,8 +411,12 @@ int conf_read(const char *name)
414 411
415 sym_set_change_count(0); 412 sym_set_change_count(0);
416 413
417 if (conf_read_simple(name, S_DEF_USER)) 414 if (conf_read_simple(name, S_DEF_USER)) {
415 sym_calc_value(modules_sym);
418 return 1; 416 return 1;
417 }
418
419 sym_calc_value(modules_sym);
419 420
420 for_all_symbols(i, sym) { 421 for_all_symbols(i, sym) {
421 sym_calc_value(sym); 422 sym_calc_value(sym);
@@ -846,6 +847,7 @@ static int conf_split_config(void)
846 847
847 name = conf_get_autoconfig_name(); 848 name = conf_get_autoconfig_name();
848 conf_read_simple(name, S_DEF_AUTO); 849 conf_read_simple(name, S_DEF_AUTO);
850 sym_calc_value(modules_sym);
849 851
850 if (chdir("include/config")) 852 if (chdir("include/config"))
851 return 1; 853 return 1;