aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/kconfig/expr.h1
-rw-r--r--scripts/kconfig/symbol.c11
-rw-r--r--scripts/kconfig/zconf.tab.c_shipped5
-rw-r--r--scripts/kconfig/zconf.y5
4 files changed, 10 insertions, 12 deletions
diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h
index 7d39ff43e6e1..1b36ef18c48d 100644
--- a/scripts/kconfig/expr.h
+++ b/scripts/kconfig/expr.h
@@ -93,7 +93,6 @@ struct symbol {
93#define SYMBOL_NEW 0x0800 93#define SYMBOL_NEW 0x0800
94#define SYMBOL_AUTO 0x1000 94#define SYMBOL_AUTO 0x1000
95#define SYMBOL_CHECKED 0x2000 95#define SYMBOL_CHECKED 0x2000
96#define SYMBOL_CHECK_DONE 0x4000
97#define SYMBOL_WARNED 0x8000 96#define SYMBOL_WARNED 0x8000
98 97
99#define SYMBOL_MAXLENGTH 256 98#define SYMBOL_MAXLENGTH 256
diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
index affa52f5c651..10d96c4188dd 100644
--- a/scripts/kconfig/symbol.c
+++ b/scripts/kconfig/symbol.c
@@ -731,12 +731,12 @@ struct symbol *sym_check_deps(struct symbol *sym)
731 struct symbol *sym2; 731 struct symbol *sym2;
732 struct property *prop; 732 struct property *prop;
733 733
734 if (sym->flags & SYMBOL_CHECK_DONE)
735 return NULL;
736 if (sym->flags & SYMBOL_CHECK) { 734 if (sym->flags & SYMBOL_CHECK) {
737 printf("Warning! Found recursive dependency: %s", sym->name); 735 printf("Warning! Found recursive dependency: %s", sym->name);
738 return sym; 736 return sym;
739 } 737 }
738 if (sym->flags & SYMBOL_CHECKED)
739 return NULL;
740 740
741 sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED); 741 sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
742 sym2 = sym_check_expr_deps(sym->rev_dep.expr); 742 sym2 = sym_check_expr_deps(sym->rev_dep.expr);
@@ -756,8 +756,13 @@ struct symbol *sym_check_deps(struct symbol *sym)
756 goto out; 756 goto out;
757 } 757 }
758out: 758out:
759 if (sym2) 759 if (sym2) {
760 printf(" %s", sym->name); 760 printf(" %s", sym->name);
761 if (sym2 == sym) {
762 printf("\n");
763 sym2 = NULL;
764 }
765 }
761 sym->flags &= ~SYMBOL_CHECK; 766 sym->flags &= ~SYMBOL_CHECK;
762 return sym2; 767 return sym2;
763} 768}
diff --git a/scripts/kconfig/zconf.tab.c_shipped b/scripts/kconfig/zconf.tab.c_shipped
index ff4fcc09720e..da12f7b33be3 100644
--- a/scripts/kconfig/zconf.tab.c_shipped
+++ b/scripts/kconfig/zconf.tab.c_shipped
@@ -1933,10 +1933,7 @@ void conf_parse(const char *name)
1933 exit(1); 1933 exit(1);
1934 menu_finalize(&rootmenu); 1934 menu_finalize(&rootmenu);
1935 for_all_symbols(i, sym) { 1935 for_all_symbols(i, sym) {
1936 if (!(sym->flags & SYMBOL_CHECKED) && sym_check_deps(sym)) 1936 sym_check_deps(sym);
1937 printf("\n");
1938 else
1939 sym->flags |= SYMBOL_CHECK_DONE;
1940 } 1937 }
1941 1938
1942 sym_change_count = 1; 1939 sym_change_count = 1;
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
index e1a0f455d4a8..1e214e9c1d31 100644
--- a/scripts/kconfig/zconf.y
+++ b/scripts/kconfig/zconf.y
@@ -495,10 +495,7 @@ void conf_parse(const char *name)
495 exit(1); 495 exit(1);
496 menu_finalize(&rootmenu); 496 menu_finalize(&rootmenu);
497 for_all_symbols(i, sym) { 497 for_all_symbols(i, sym) {
498 if (!(sym->flags & SYMBOL_CHECKED) && sym_check_deps(sym)) 498 sym_check_deps(sym);
499 printf("\n");
500 else
501 sym->flags |= SYMBOL_CHECK_DONE;
502 } 499 }
503 500
504 sym_change_count = 1; 501 sym_change_count = 1;