Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

kconfig: do not clear SYMBOL_VALID when reading include/config/auto.conf

When conf_read_simple() is called with S_DEF_AUTO, it is meant to read
previous symbol values from include/config/auto.conf to determine which
include/config/* files should be touched.

This process should not modify the current symbol status in any way.
However, conf_touch_deps() currently invalidates all symbol values and
recalculates them, which is totally unneeded.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

+12 -7
+12 -7
scripts/kconfig/confdata.c
··· 385 385 386 386 def_flags = SYMBOL_DEF << def; 387 387 for_all_symbols(sym) { 388 - sym->flags &= ~(def_flags|SYMBOL_VALID); 388 + sym->flags &= ~def_flags; 389 389 switch (sym->type) { 390 390 case S_INT: 391 391 case S_HEX: ··· 398 398 } 399 399 } 400 400 401 - expr_invalidate_all(); 401 + if (def == S_DEF_USER) { 402 + for_all_symbols(sym) 403 + sym->flags &= ~SYMBOL_VALID; 404 + expr_invalidate_all(); 405 + } 402 406 403 407 while (getline_stripped(&line, &line_asize, in) != -1) { 404 408 struct menu *choice; ··· 466 462 conf_warning("override: reassigning to symbol %s", sym->name); 467 463 468 464 if (conf_set_sym_val(sym, def, def_flags, val)) 465 + continue; 466 + 467 + if (def != S_DEF_USER) 469 468 continue; 470 469 471 470 /* ··· 974 967 depfile_path[depfile_prefix_len] = 0; 975 968 976 969 conf_read_simple(name, S_DEF_AUTO); 977 - sym_calc_value(modules_sym); 978 970 979 971 for_all_symbols(sym) { 980 - sym_calc_value(sym); 981 972 if (sym_is_choice(sym)) 982 973 continue; 983 974 if (sym->flags & SYMBOL_WRITE) { ··· 1089 1084 if (ret) 1090 1085 return -1; 1091 1086 1092 - if (conf_touch_deps()) 1093 - return 1; 1094 - 1095 1087 for_all_symbols(sym) 1096 1088 sym_calc_value(sym); 1089 + 1090 + if (conf_touch_deps()) 1091 + return 1; 1097 1092 1098 1093 ret = __conf_write_autoconf(conf_get_autoheader_name(), 1099 1094 print_symbol_for_c,