summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/kconfig
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-07-12 15:06:27 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2019-07-12 15:06:27 -0800
commit106f1466e7e7057ec6f4dc9516c13ea8cb9dffa0 (patch)
tree3bb73941127123ef598709bca38dc9cc0439ffc7 /scripts/kconfig
parent39ceda5ce1b002e30563fcb8ad1bb5ac8e4d59ee (diff)
parente3cd5136a4ecece6a7599a07add0dfb811a7f49d (diff)
downloadlinux-stable-106f1466e7e7057ec6f4dc9516c13ea8cb9dffa0.tar.gz
linux-stable-106f1466e7e7057ec6f4dc9516c13ea8cb9dffa0.tar.bz2
linux-stable-106f1466e7e7057ec6f4dc9516c13ea8cb9dffa0.tar.xz
linux-stable-106f1466e7e7057ec6f4dc9516c13ea8cb9dffa0.zip
Merge tag 'kconfig-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kconfig updates from Masahiro Yamada: - always require argument for --defconfig and remove the hard-coded arch/$(ARCH)/defconfig path - make arch/$(SRCARCH)/configs/defconfig the new default of defconfig - some code cleanups * tag 'kconfig-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kconfig: remove meaningless if-conditional in conf_read() kconfig: Fix spelling of sym_is_changable unicore32: rename unicore32_defconfig to defconfig kconfig: make arch/*/configs/defconfig the default of KBUILD_DEFCONFIG kconfig: add static qualifier to expand_string() kconfig: require the argument of --defconfig kconfig: remove always false ifeq ($(KBUILD_DEFCONFIG,) conditional
Diffstat (limited to 'scripts/kconfig')
-rw-r--r--scripts/kconfig/Makefile8
-rw-r--r--scripts/kconfig/conf.c10
-rw-r--r--scripts/kconfig/confdata.c25
-rw-r--r--scripts/kconfig/lkc.h1
-rw-r--r--scripts/kconfig/lkc_proto.h3
-rw-r--r--scripts/kconfig/mconf.c10
-rw-r--r--scripts/kconfig/nconf.c10
-rw-r--r--scripts/kconfig/preprocess.c3
-rw-r--r--scripts/kconfig/qconf.cc2
-rw-r--r--scripts/kconfig/symbol.c2
10 files changed, 27 insertions, 47 deletions
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 3f327e21f60e..ab30fe724c43 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -12,6 +12,10 @@ else
12Kconfig := Kconfig 12Kconfig := Kconfig
13endif 13endif
14 14
15ifndef KBUILD_DEFCONFIG
16KBUILD_DEFCONFIG := defconfig
17endif
18
15ifeq ($(quiet),silent_) 19ifeq ($(quiet),silent_)
16silent := -s 20silent := -s
17endif 21endif
@@ -74,9 +78,7 @@ savedefconfig: $(obj)/conf
74 $< $(silent) --$@=defconfig $(Kconfig) 78 $< $(silent) --$@=defconfig $(Kconfig)
75 79
76defconfig: $(obj)/conf 80defconfig: $(obj)/conf
77ifeq ($(KBUILD_DEFCONFIG),) 81ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
78 $< $(silent) --defconfig $(Kconfig)
79else ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
80 @$(kecho) "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'" 82 @$(kecho) "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
81 $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig) 83 $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
82else 84else
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index ef3678c24bab..40e16e871ae2 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -90,7 +90,7 @@ static int conf_askvalue(struct symbol *sym, const char *def)
90 line[0] = '\n'; 90 line[0] = '\n';
91 line[1] = 0; 91 line[1] = 0;
92 92
93 if (!sym_is_changable(sym)) { 93 if (!sym_is_changeable(sym)) {
94 printf("%s\n", def); 94 printf("%s\n", def);
95 line[0] = '\n'; 95 line[0] = '\n';
96 line[1] = 0; 96 line[1] = 0;
@@ -234,7 +234,7 @@ static int conf_choice(struct menu *menu)
234 234
235 sym = menu->sym; 235 sym = menu->sym;
236 is_new = !sym_has_value(sym); 236 is_new = !sym_has_value(sym);
237 if (sym_is_changable(sym)) { 237 if (sym_is_changeable(sym)) {
238 conf_sym(menu); 238 conf_sym(menu);
239 sym_calc_value(sym); 239 sym_calc_value(sym);
240 switch (sym_get_tristate_value(sym)) { 240 switch (sym_get_tristate_value(sym)) {
@@ -418,7 +418,7 @@ static void check_conf(struct menu *menu)
418 418
419 sym = menu->sym; 419 sym = menu->sym;
420 if (sym && !sym_has_value(sym)) { 420 if (sym && !sym_has_value(sym)) {
421 if (sym_is_changable(sym) || 421 if (sym_is_changeable(sym) ||
422 (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) { 422 (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) {
423 if (input_mode == listnewconfig) { 423 if (input_mode == listnewconfig) {
424 if (sym->name) { 424 if (sym->name) {
@@ -451,7 +451,7 @@ static struct option long_opts[] = {
451 {"oldaskconfig", no_argument, NULL, oldaskconfig}, 451 {"oldaskconfig", no_argument, NULL, oldaskconfig},
452 {"oldconfig", no_argument, NULL, oldconfig}, 452 {"oldconfig", no_argument, NULL, oldconfig},
453 {"syncconfig", no_argument, NULL, syncconfig}, 453 {"syncconfig", no_argument, NULL, syncconfig},
454 {"defconfig", optional_argument, NULL, defconfig}, 454 {"defconfig", required_argument, NULL, defconfig},
455 {"savedefconfig", required_argument, NULL, savedefconfig}, 455 {"savedefconfig", required_argument, NULL, savedefconfig},
456 {"allnoconfig", no_argument, NULL, allnoconfig}, 456 {"allnoconfig", no_argument, NULL, allnoconfig},
457 {"allyesconfig", no_argument, NULL, allyesconfig}, 457 {"allyesconfig", no_argument, NULL, allyesconfig},
@@ -562,8 +562,6 @@ int main(int ac, char **av)
562 562
563 switch (input_mode) { 563 switch (input_mode) {
564 case defconfig: 564 case defconfig:
565 if (!defconfig_file)
566 defconfig_file = conf_get_default_confname();
567 if (conf_read(defconfig_file)) { 565 if (conf_read(defconfig_file)) {
568 fprintf(stderr, 566 fprintf(stderr,
569 "***\n" 567 "***\n"
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 6006154d36bd..501fdcc5e999 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -177,8 +177,6 @@ static void conf_message(const char *fmt, ...)
177static const char *conf_filename; 177static const char *conf_filename;
178static int conf_lineno, conf_warnings; 178static int conf_lineno, conf_warnings;
179 179
180const char conf_defname[] = "arch/$(ARCH)/defconfig";
181
182static void conf_warning(const char *fmt, ...) 180static void conf_warning(const char *fmt, ...)
183{ 181{
184 va_list ap; 182 va_list ap;
@@ -233,21 +231,6 @@ static const char *conf_get_autoconfig_name(void)
233 return name ? name : "include/config/auto.conf"; 231 return name ? name : "include/config/auto.conf";
234} 232}
235 233
236char *conf_get_default_confname(void)
237{
238 static char fullname[PATH_MAX+1];
239 char *env, *name;
240
241 name = expand_string(conf_defname);
242 env = getenv(SRCTREE);
243 if (env) {
244 snprintf(fullname, sizeof(fullname), "%s/%s", env, name);
245 if (is_present(fullname))
246 return fullname;
247 }
248 return name;
249}
250
251static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p) 234static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p)
252{ 235{
253 char *p2; 236 char *p2;
@@ -551,11 +534,9 @@ int conf_read(const char *name)
551 switch (sym->type) { 534 switch (sym->type) {
552 case S_BOOLEAN: 535 case S_BOOLEAN:
553 case S_TRISTATE: 536 case S_TRISTATE:
554 if (sym->def[S_DEF_USER].tri != sym_get_tristate_value(sym)) 537 if (sym->def[S_DEF_USER].tri == sym_get_tristate_value(sym))
555 break;
556 if (!sym_is_choice(sym))
557 continue; 538 continue;
558 /* fall through */ 539 break;
559 default: 540 default:
560 if (!strcmp(sym->curr.val, sym->def[S_DEF_USER].val)) 541 if (!strcmp(sym->curr.val, sym->def[S_DEF_USER].val))
561 continue; 542 continue;
@@ -813,7 +794,7 @@ int conf_write_defconfig(const char *filename)
813 goto next_menu; 794 goto next_menu;
814 sym->flags &= ~SYMBOL_WRITE; 795 sym->flags &= ~SYMBOL_WRITE;
815 /* If we cannot change the symbol - skip */ 796 /* If we cannot change the symbol - skip */
816 if (!sym_is_changable(sym)) 797 if (!sym_is_changeable(sym))
817 goto next_menu; 798 goto next_menu;
818 /* If symbol equals to default value - skip */ 799 /* If symbol equals to default value - skip */
819 if (strcmp(sym_get_string_value(sym), sym_get_string_default(sym)) == 0) 800 if (strcmp(sym_get_string_value(sym), sym_get_string_default(sym)) == 0)
diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
index cbc7658ee27d..4fb16f316626 100644
--- a/scripts/kconfig/lkc.h
+++ b/scripts/kconfig/lkc.h
@@ -49,7 +49,6 @@ const char *zconf_curname(void);
49 49
50/* confdata.c */ 50/* confdata.c */
51const char *conf_get_configname(void); 51const char *conf_get_configname(void);
52char *conf_get_default_confname(void);
53void sym_set_change_count(int count); 52void sym_set_change_count(int count);
54void sym_add_change_count(int count); 53void sym_add_change_count(int count);
55bool conf_set_all_new_symbols(enum conf_def_mode mode); 54bool conf_set_all_new_symbols(enum conf_def_mode mode);
diff --git a/scripts/kconfig/lkc_proto.h b/scripts/kconfig/lkc_proto.h
index 86c267540ccc..f9ab98238aef 100644
--- a/scripts/kconfig/lkc_proto.h
+++ b/scripts/kconfig/lkc_proto.h
@@ -42,7 +42,7 @@ tristate sym_toggle_tristate_value(struct symbol *sym);
42bool sym_string_valid(struct symbol *sym, const char *newval); 42bool sym_string_valid(struct symbol *sym, const char *newval);
43bool sym_string_within_range(struct symbol *sym, const char *str); 43bool sym_string_within_range(struct symbol *sym, const char *str);
44bool sym_set_string_value(struct symbol *sym, const char *newval); 44bool sym_set_string_value(struct symbol *sym, const char *newval);
45bool sym_is_changable(struct symbol *sym); 45bool sym_is_changeable(struct symbol *sym);
46struct property * sym_get_choice_prop(struct symbol *sym); 46struct property * sym_get_choice_prop(struct symbol *sym);
47const char * sym_get_string_value(struct symbol *sym); 47const char * sym_get_string_value(struct symbol *sym);
48 48
@@ -58,7 +58,6 @@ void env_write_dep(FILE *f, const char *auto_conf_name);
58void variable_add(const char *name, const char *value, 58void variable_add(const char *name, const char *value,
59 enum variable_flavor flavor); 59 enum variable_flavor flavor);
60void variable_all_del(void); 60void variable_all_del(void);
61char *expand_string(const char *in);
62char *expand_dollar(const char **str); 61char *expand_dollar(const char **str);
63char *expand_one_token(const char **str); 62char *expand_one_token(const char **str);
64 63
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 694091f3ef9d..49c26ea9dd98 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -536,7 +536,7 @@ static void build_conf(struct menu *menu)
536 } 536 }
537 537
538 val = sym_get_tristate_value(sym); 538 val = sym_get_tristate_value(sym);
539 if (sym_is_changable(sym)) { 539 if (sym_is_changeable(sym)) {
540 switch (type) { 540 switch (type) {
541 case S_BOOLEAN: 541 case S_BOOLEAN:
542 item_make("[%c]", val == no ? ' ' : '*'); 542 item_make("[%c]", val == no ? ' ' : '*');
@@ -587,7 +587,7 @@ static void build_conf(struct menu *menu)
587 } else { 587 } else {
588 switch (type) { 588 switch (type) {
589 case S_BOOLEAN: 589 case S_BOOLEAN:
590 if (sym_is_changable(sym)) 590 if (sym_is_changeable(sym))
591 item_make("[%c]", val == no ? ' ' : '*'); 591 item_make("[%c]", val == no ? ' ' : '*');
592 else 592 else
593 item_make("-%c-", val == no ? ' ' : '*'); 593 item_make("-%c-", val == no ? ' ' : '*');
@@ -600,7 +600,7 @@ static void build_conf(struct menu *menu)
600 case mod: ch = 'M'; break; 600 case mod: ch = 'M'; break;
601 default: ch = ' '; break; 601 default: ch = ' '; break;
602 } 602 }
603 if (sym_is_changable(sym)) { 603 if (sym_is_changeable(sym)) {
604 if (sym->rev_dep.tri == mod) 604 if (sym->rev_dep.tri == mod)
605 item_make("{%c}", ch); 605 item_make("{%c}", ch);
606 else 606 else
@@ -617,7 +617,7 @@ static void build_conf(struct menu *menu)
617 if (tmp < 0) 617 if (tmp < 0)
618 tmp = 0; 618 tmp = 0;
619 item_add_str("%*c%s%s", tmp, ' ', menu_get_prompt(menu), 619 item_add_str("%*c%s%s", tmp, ' ', menu_get_prompt(menu),
620 (sym_has_value(sym) || !sym_is_changable(sym)) ? 620 (sym_has_value(sym) || !sym_is_changeable(sym)) ?
621 "" : " (NEW)"); 621 "" : " (NEW)");
622 item_set_tag('s'); 622 item_set_tag('s');
623 item_set_data(menu); 623 item_set_data(menu);
@@ -625,7 +625,7 @@ static void build_conf(struct menu *menu)
625 } 625 }
626 } 626 }
627 item_add_str("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu), 627 item_add_str("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu),
628 (sym_has_value(sym) || !sym_is_changable(sym)) ? 628 (sym_has_value(sym) || !sym_is_changeable(sym)) ?
629 "" : " (NEW)"); 629 "" : " (NEW)");
630 if (menu->prompt->type == P_MENU) { 630 if (menu->prompt->type == P_MENU) {
631 item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->"); 631 item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->");
diff --git a/scripts/kconfig/nconf.c b/scripts/kconfig/nconf.c
index cbafe3bf082e..b7c1ef757178 100644
--- a/scripts/kconfig/nconf.c
+++ b/scripts/kconfig/nconf.c
@@ -803,7 +803,7 @@ static void build_conf(struct menu *menu)
803 } 803 }
804 804
805 val = sym_get_tristate_value(sym); 805 val = sym_get_tristate_value(sym);
806 if (sym_is_changable(sym)) { 806 if (sym_is_changeable(sym)) {
807 switch (type) { 807 switch (type) {
808 case S_BOOLEAN: 808 case S_BOOLEAN:
809 item_make(menu, 't', "[%c]", 809 item_make(menu, 't', "[%c]",
@@ -857,7 +857,7 @@ static void build_conf(struct menu *menu)
857 } else { 857 } else {
858 switch (type) { 858 switch (type) {
859 case S_BOOLEAN: 859 case S_BOOLEAN:
860 if (sym_is_changable(sym)) 860 if (sym_is_changeable(sym))
861 item_make(menu, 't', "[%c]", 861 item_make(menu, 't', "[%c]",
862 val == no ? ' ' : '*'); 862 val == no ? ' ' : '*');
863 else 863 else
@@ -876,7 +876,7 @@ static void build_conf(struct menu *menu)
876 ch = ' '; 876 ch = ' ';
877 break; 877 break;
878 } 878 }
879 if (sym_is_changable(sym)) { 879 if (sym_is_changeable(sym)) {
880 if (sym->rev_dep.tri == mod) 880 if (sym->rev_dep.tri == mod)
881 item_make(menu, 881 item_make(menu,
882 't', "{%c}", ch); 882 't', "{%c}", ch);
@@ -896,14 +896,14 @@ static void build_conf(struct menu *menu)
896 item_add_str("%*c%s%s", tmp, ' ', 896 item_add_str("%*c%s%s", tmp, ' ',
897 menu_get_prompt(menu), 897 menu_get_prompt(menu),
898 (sym_has_value(sym) || 898 (sym_has_value(sym) ||
899 !sym_is_changable(sym)) ? "" : 899 !sym_is_changeable(sym)) ? "" :
900 " (NEW)"); 900 " (NEW)");
901 goto conf_childs; 901 goto conf_childs;
902 } 902 }
903 } 903 }
904 item_add_str("%*c%s%s", indent + 1, ' ', 904 item_add_str("%*c%s%s", indent + 1, ' ',
905 menu_get_prompt(menu), 905 menu_get_prompt(menu),
906 (sym_has_value(sym) || !sym_is_changable(sym)) ? 906 (sym_has_value(sym) || !sym_is_changeable(sym)) ?
907 "" : " (NEW)"); 907 "" : " (NEW)");
908 if (menu->prompt && menu->prompt->type == P_MENU) { 908 if (menu->prompt && menu->prompt->type == P_MENU) {
909 item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->"); 909 item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->");
diff --git a/scripts/kconfig/preprocess.c b/scripts/kconfig/preprocess.c
index 592dfbfa9fb3..0243086fb168 100644
--- a/scripts/kconfig/preprocess.c
+++ b/scripts/kconfig/preprocess.c
@@ -15,6 +15,7 @@
15#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) 15#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
16 16
17static char *expand_string_with_args(const char *in, int argc, char *argv[]); 17static char *expand_string_with_args(const char *in, int argc, char *argv[]);
18static char *expand_string(const char *in);
18 19
19static void __attribute__((noreturn)) pperror(const char *format, ...) 20static void __attribute__((noreturn)) pperror(const char *format, ...)
20{ 21{
@@ -550,7 +551,7 @@ static char *expand_string_with_args(const char *in, int argc, char *argv[])
550 return __expand_string(&in, is_end_of_str, argc, argv); 551 return __expand_string(&in, is_end_of_str, argc, argv);
551} 552}
552 553
553char *expand_string(const char *in) 554static char *expand_string(const char *in)
554{ 555{
555 return expand_string_with_args(in, 0, NULL); 556 return expand_string_with_args(in, 0, NULL);
556} 557}
diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc
index ce7fc87a49a7..82773cc35d35 100644
--- a/scripts/kconfig/qconf.cc
+++ b/scripts/kconfig/qconf.cc
@@ -152,7 +152,7 @@ void ConfigItem::updateMenu(void)
152 case S_TRISTATE: 152 case S_TRISTATE:
153 char ch; 153 char ch;
154 154
155 if (!sym_is_changable(sym) && list->optMode == normalOpt) { 155 if (!sym_is_changeable(sym) && list->optMode == normalOpt) {
156 setPixmap(promptColIdx, QIcon()); 156 setPixmap(promptColIdx, QIcon());
157 setText(noColIdx, QString::null); 157 setText(noColIdx, QString::null);
158 setText(modColIdx, QString::null); 158 setText(modColIdx, QString::null);
diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
index 09fd6fa18e1a..f56eec5ea4c7 100644
--- a/scripts/kconfig/symbol.c
+++ b/scripts/kconfig/symbol.c
@@ -785,7 +785,7 @@ const char *sym_get_string_value(struct symbol *sym)
785 return (const char *)sym->curr.val; 785 return (const char *)sym->curr.val;
786} 786}
787 787
788bool sym_is_changable(struct symbol *sym) 788bool sym_is_changeable(struct symbol *sym)
789{ 789{
790 return sym->visible > sym->rev_dep.tri; 790 return sym->visible > sym->rev_dep.tri;
791} 791}