diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/kconfig/expr.h | 1 | ||||
| -rw-r--r-- | scripts/kconfig/symbol.c | 11 | ||||
| -rw-r--r-- | scripts/kconfig/zconf.tab.c_shipped | 5 | ||||
| -rw-r--r-- | scripts/kconfig/zconf.y | 5 |
4 files changed, 10 insertions, 12 deletions
diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h index 7d39ff43e6e..1b36ef18c48 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 affa52f5c65..10d96c4188d 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 | } |
| 758 | out: | 758 | out: |
| 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 ff4fcc09720..da12f7b33be 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 e1a0f455d4a..1e214e9c1d3 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; |
