From 4bf65a7eec2bc92339dad822b8c5f51805fc27b0 Mon Sep 17 00:00:00 2001 From: Sam Ravnborg Date: Sun, 6 May 2007 09:20:10 +0200 Subject: [PATCH] --- yaml --- r: 54156 b: refs/heads/master c: 5447d34b080a1e3e312b05a91e87eff4710a1152 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/scripts/kconfig/symbol.c | 13 +++++-------- trunk/scripts/kconfig/zconf.tab.c_shipped | 6 ++++-- trunk/scripts/kconfig/zconf.y | 6 ++++-- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index 7df7bff4ebb2..228aeb08624b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 04c58f8196b386948abf68128605de3d2db3c6ba +refs/heads/master: 5447d34b080a1e3e312b05a91e87eff4710a1152 diff --git a/trunk/scripts/kconfig/symbol.c b/trunk/scripts/kconfig/symbol.c index 8f06c474d800..c35dcc5d6189 100644 --- a/trunk/scripts/kconfig/symbol.c +++ b/trunk/scripts/kconfig/symbol.c @@ -786,13 +786,15 @@ static struct symbol *sym_check_expr_deps(struct expr *e) return NULL; } +/* return NULL when dependencies are OK */ struct symbol *sym_check_deps(struct symbol *sym) { struct symbol *sym2; struct property *prop; if (sym->flags & SYMBOL_CHECK) { - printf("Warning! Found recursive dependency: %s", sym->name); + fprintf(stderr, "%s:%d:error: found recursive dependency: %s", + sym->prop->file->name, sym->prop->lineno, sym->name); return sym; } if (sym->flags & SYMBOL_CHECKED) @@ -816,13 +818,8 @@ struct symbol *sym_check_deps(struct symbol *sym) goto out; } out: - if (sym2) { - printf(" %s", sym->name); - if (sym2 == sym) { - printf("\n"); - sym2 = NULL; - } - } + if (sym2) + fprintf(stderr, " -> %s%s", sym->name, sym2 == sym? "\n": ""); sym->flags &= ~SYMBOL_CHECK; return sym2; } diff --git a/trunk/scripts/kconfig/zconf.tab.c_shipped b/trunk/scripts/kconfig/zconf.tab.c_shipped index d777fe85627f..9a06b6771eee 100644 --- a/trunk/scripts/kconfig/zconf.tab.c_shipped +++ b/trunk/scripts/kconfig/zconf.tab.c_shipped @@ -2132,9 +2132,11 @@ void conf_parse(const char *name) } menu_finalize(&rootmenu); for_all_symbols(i, sym) { - sym_check_deps(sym); + if (sym_check_deps(sym)) + zconfnerrs++; } - + if (zconfnerrs) + exit(1); sym_set_change_count(1); } diff --git a/trunk/scripts/kconfig/zconf.y b/trunk/scripts/kconfig/zconf.y index 04a5864c03b1..92eb02bdf9c5 100644 --- a/trunk/scripts/kconfig/zconf.y +++ b/trunk/scripts/kconfig/zconf.y @@ -501,9 +501,11 @@ void conf_parse(const char *name) } menu_finalize(&rootmenu); for_all_symbols(i, sym) { - sym_check_deps(sym); + if (sym_check_deps(sym)) + zconfnerrs++; } - + if (zconfnerrs) + exit(1); sym_set_change_count(1); }