aboutsummaryrefslogtreecommitdiff
path: root/scripts/parse_kconfig/parse.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/parse.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/parse.c')
-rw-r--r--scripts/parse_kconfig/parse.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/scripts/parse_kconfig/parse.c b/scripts/parse_kconfig/parse.c
index 0ac99f9..576595c 100644
--- a/scripts/parse_kconfig/parse.c
+++ b/scripts/parse_kconfig/parse.c
@@ -76,6 +76,11 @@ void build_symlist() {
symlist_add(gsymlist, sym->name);
}
}
+ struct property *prop;
+ for_all_prompts(sym, prop) {
+ gsymlist->array[gsymlist->pos - 1].prompt = true;
+ break;
+ }
}
}
@@ -84,8 +89,7 @@ void cpy_dep() {
struct symbol *sym;
struct symlist_el *el;
for_all_symbols(i, sym) {
- if ((sym->type == S_BOOLEAN || sym->type == S_TRISTATE)
- && strstr(sym->name, "NONAMEGEN") == NULL) {
+ if ((sym->type == S_BOOLEAN || sym->type == S_TRISTATE)) {
el = symlist_find(gsymlist, sym->name);
Iprintf("working: %s(%d)\n", sym->name, el->id);
@@ -93,7 +97,8 @@ void cpy_dep() {
if (verbose_level > 3)
printf_original(gsymlist, sym->dir_dep.expr);
el->be =
- kconfig_cnfexpr(gsymlist, false, sym->dir_dep.expr);
+ kconfig_cnfexpr(gsymlist, false, sym,
+ sym->dir_dep.expr);
Iprintf("Direct:\n");
if (verbose_level > 2)
cnf_printf(el->be);
@@ -103,7 +108,8 @@ void cpy_dep() {
if (verbose_level > 3)
printf_original(gsymlist, sym->rev_dep.expr);
el->re_be =
- kconfig_cnfexpr(gsymlist, true, sym->rev_dep.expr);
+ kconfig_cnfexpr(gsymlist, true, sym,
+ sym->rev_dep.expr);
Iprintf("Revers:\n");
if (verbose_level > 2)
cnf_printf(el->re_be);