diff options
Diffstat (limited to 'scripts/kconfig/menu.c')
-rw-r--r-- | scripts/kconfig/menu.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c index eef17bacb6bc..11799894f3bd 100644 --- a/scripts/kconfig/menu.c +++ b/scripts/kconfig/menu.c | |||
@@ -105,6 +105,7 @@ static struct expr *menu_check_dep(struct expr *e) | |||
105 | void menu_add_dep(struct expr *dep) | 105 | void menu_add_dep(struct expr *dep) |
106 | { | 106 | { |
107 | current_entry->dep = expr_alloc_and(current_entry->dep, menu_check_dep(dep)); | 107 | current_entry->dep = expr_alloc_and(current_entry->dep, menu_check_dep(dep)); |
108 | current_entry->dir_dep = current_entry->dep; | ||
108 | } | 109 | } |
109 | 110 | ||
110 | void menu_set_type(int type) | 111 | void menu_set_type(int type) |
@@ -288,6 +289,10 @@ void menu_finalize(struct menu *parent) | |||
288 | for (menu = parent->list; menu; menu = menu->next) | 289 | for (menu = parent->list; menu; menu = menu->next) |
289 | menu_finalize(menu); | 290 | menu_finalize(menu); |
290 | } else if (sym) { | 291 | } else if (sym) { |
292 | /* ignore inherited dependencies for dir_dep */ | ||
293 | sym->dir_dep.expr = expr_transform(expr_copy(parent->dir_dep)); | ||
294 | sym->dir_dep.expr = expr_eliminate_dups(sym->dir_dep.expr); | ||
295 | |||
291 | basedep = parent->prompt ? parent->prompt->visible.expr : NULL; | 296 | basedep = parent->prompt ? parent->prompt->visible.expr : NULL; |
292 | basedep = expr_trans_compare(basedep, E_UNEQUAL, &symbol_no); | 297 | basedep = expr_trans_compare(basedep, E_UNEQUAL, &symbol_no); |
293 | basedep = expr_eliminate_dups(expr_transform(basedep)); | 298 | basedep = expr_eliminate_dups(expr_transform(basedep)); |