aboutsummaryrefslogtreecommitdiff
path: root/scripts/parse_kconfig/output.c
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2015-04-24 22:09:30 +0200
committerKarel Kočí <cynerd@email.cz>2015-04-24 22:09:30 +0200
commit2d9ad83a3d62ae83b3ea14266014d9b50148ad2f (patch)
treec799a36f6a0303fbd2484ba9eb60f5e20d70fc1b /scripts/parse_kconfig/output.c
parentb4b0378358fb3d46c4f483effb6ee957857b06c5 (diff)
downloadlinux-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.c20
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);
}
}
}