scripts/config: properly handle select on symbols with unmet direct dependencies
[openwrt/staging/yousong.git] / scripts / config / symbol.c
index ca6f43726b9de737c6edd5a984133af9c5c75961..31f268a4eecd6a9f767100920c381a8d7ddb7b1b 100644 (file)
@@ -400,18 +400,10 @@ void sym_calc_value(struct symbol *sym)
                        }
                calc_newval:
                        if (sym->dir_dep.tri == no && sym->rev_dep.tri != no) {
-                               struct expr *e;
-                               e = expr_simplify_unmet_dep(sym->rev_dep.expr,
-                                   sym->dir_dep.expr);
-                               fprintf(stderr, "warning: (");
-                               expr_fprint(e, stderr);
-                               fprintf(stderr, ") selects %s which has unmet direct dependencies (",
-                                       sym->name);
-                               expr_fprint(sym->dir_dep.expr, stderr);
-                               fprintf(stderr, ")\n");
-                               expr_free(e);
+                               newval.tri = no;
+                       } else {
+                               newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri);
                        }
-                       newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri);
                }
                if (newval.tri == mod && sym_get_type(sym) == S_BOOLEAN)
                        newval.tri = yes;