summaryrefslogtreecommitdiff
path: root/scripts/kconfig/symbol.c
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2012-08-18 20:44:06 +0200
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2012-08-18 20:44:06 +0200
commitd1a0a267af8e304ff1fa92942ae779c6c61ebe14 (patch)
treea476b309ab6de2500aa6d8fd9502e76c8d1207a1 /scripts/kconfig/symbol.c
parent293c4218e2cf1c15b777d3fe2e91b78ee9c621f2 (diff)
downloadembtoolkit-d1a0a267af8e304ff1fa92942ae779c6c61ebe14.tar.gz
embtoolkit-d1a0a267af8e304ff1fa92942ae779c6c61ebe14.tar.bz2
embtoolkit-d1a0a267af8e304ff1fa92942ae779c6c61ebe14.tar.xz
Build system: import kconfig from upstream 20fb1936dee63fe397236d4ff3fd253a62b7b0b8
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
Diffstat (limited to 'scripts/kconfig/symbol.c')
-rw-r--r--scripts/kconfig/symbol.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
index 071f00c..22a3c40 100644
--- a/scripts/kconfig/symbol.c
+++ b/scripts/kconfig/symbol.c
@@ -262,11 +262,18 @@ static struct symbol *sym_calc_choice(struct symbol *sym)
struct symbol *def_sym;
struct property *prop;
struct expr *e;
+ int flags;
/* first calculate all choice values' visibilities */
+ flags = sym->flags;
prop = sym_get_choice_prop(sym);
- expr_list_for_each_sym(prop->expr, e, def_sym)
+ expr_list_for_each_sym(prop->expr, e, def_sym) {
sym_calc_visibility(def_sym);
+ if (def_sym->visible != no)
+ flags &= def_sym->flags;
+ }
+
+ sym->flags &= flags | ~SYMBOL_DEF_USER;
/* is the user choice visible? */
def_sym = sym->def[S_DEF_USER].val;