diff options
author | Karel Kočí <cynerd@email.cz> | 2015-04-24 22:09:30 +0200 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2015-04-24 22:09:30 +0200 |
commit | 2d9ad83a3d62ae83b3ea14266014d9b50148ad2f (patch) | |
tree | c799a36f6a0303fbd2484ba9eb60f5e20d70fc1b /scripts/parse_kconfig/output.c | |
parent | b4b0378358fb3d46c4f483effb6ee957857b06c5 (diff) | |
download | linux-conf-perf-2d9ad83a3d62ae83b3ea14266014d9b50148ad2f.tar.gz linux-conf-perf-2d9ad83a3d62ae83b3ea14266014d9b50148ad2f.tar.bz2 linux-conf-perf-2d9ad83a3d62ae83b3ea14266014d9b50148ad2f.zip |
parse_kconfig fix wrong behaviour for non prompt symbols
Non prompt symbols should be selected always as their dependencies are satisfied.
This changes adds generation of relevant rules.
Diffstat (limited to 'scripts/parse_kconfig/output.c')
-rw-r--r-- | scripts/parse_kconfig/output.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/scripts/parse_kconfig/output.c b/scripts/parse_kconfig/output.c index 989f4f0..064d787 100644 --- a/scripts/parse_kconfig/output.c +++ b/scripts/parse_kconfig/output.c @@ -1,27 +1,23 @@ #include "output.h" -void fprint_rules_cnf(FILE * f, unsigned id, struct cnfexpr *cnf, bool nt) { +void fprint_rules_cnf(FILE * f, struct cnfexpr *cnf) { unsigned i, y; switch (cnf->type) { case CT_FALSE: // Never satisfiable - if (!nt) - fprintf(f, "-"); - fprintf(f, "%d\n", id); - break; + // This should newer happen + fprintf(stderr, + "ERROR: Some rule is not satisfiable. But this should never happen.\n"); + exit(28); case CT_TRUE: // Always satisfiable break; case CT_EXPR: for (i = 0; i < cnf->size; i++) { - if (!nt) - fprintf(f, "-"); - fprintf(f, "%d ", id); for (y = 0; y < cnf->sizes[i] - 1; y++) { fprintf(f, "%d ", cnf->exprs[i][y]); } - fprintf(f, "%d ", cnf->exprs[i][cnf->sizes[i] - 1]); - fprintf(f, "\n"); + fprintf(f, "%d\n", cnf->exprs[i][cnf->sizes[i] - 1]); } break; } @@ -40,10 +36,10 @@ void fprint_rules(struct symlist *sl, char *output) { if (sl->array[i].be != NULL) { el = sl->array + i; if (el->be != NULL) { - fprint_rules_cnf(f, el->id, el->be, false); + fprint_rules_cnf(f, el->be); } if (el->re_be != NULL) { - fprint_rules_cnf(f, el->id, el->re_be, true); + fprint_rules_cnf(f, el->re_be); } } } |