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/parse.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/parse.c')
-rw-r--r-- | scripts/parse_kconfig/parse.c | 14 |
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); |