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)); |
