kconfig: Sync with upstream v5.7

This commit introduces the following upstream changes:

60969f02f07a kconfig: qconf: Fix a few alignment issues
e1f7769f6094 kconfig: qconf: remove some old bogus TODOs
b311142fcfd3 kconfig: qconf: fix support for the split view mode
cce1faba8264 kconfig: qconf: fix the content of the main widget
5752ff07fd90 kconfig: qconf: Change title for the item window
cf497b922386 kconfig: qconf: clean deprecated warnings
dbd35860122b kconfig: remove unused variable in qconf.cc
d198b34f3855 .gitignore: add SPDX License Identifier
2985bed68083 .gitignore: remove too obvious comments
3a9dd3ecb207 kconfig: make 'imply' obey the direct dependency
def2fbffe62c kconfig: allow symbols implied by y to become m
2a86f6612164 kbuild: use KBUILD_DEFCONFIG as the fallback for DEFCONFIG_LIST

Signed-off-by: Chris Packham <judge.packham@gmail.com>
This commit is contained in:
Chris Packham 2020-12-10 19:55:15 +13:00
parent 3bf9edb36c
commit 914c794fc2
2 changed files with 6 additions and 5 deletions

2
kconfig/.gitignore vendored
View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-only
#
# Generated files
#

View File

@ -221,7 +221,7 @@ static void sym_calc_visibility(struct symbol *sym)
sym_set_changed(sym);
}
tri = no;
if (sym->implied.expr && sym->dir_dep.tri != no)
if (sym->implied.expr)
tri = expr_calc_value(sym->implied.expr);
if (tri == mod && sym_get_type(sym) == S_BOOLEAN)
tri = yes;
@ -394,6 +394,8 @@ void sym_calc_value(struct symbol *sym)
if (sym->implied.tri != no) {
sym->flags |= SYMBOL_WRITE;
newval.tri = EXPR_OR(newval.tri, sym->implied.tri);
newval.tri = EXPR_AND(newval.tri,
sym->dir_dep.tri);
}
}
calc_newval:
@ -401,8 +403,7 @@ void sym_calc_value(struct symbol *sym)
sym_warn_unmet_dep(sym);
newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri);
}
if (newval.tri == mod &&
(sym_get_type(sym) == S_BOOLEAN || sym->implied.tri == yes))
if (newval.tri == mod && sym_get_type(sym) == S_BOOLEAN)
newval.tri = yes;
break;
case S_STRING:
@ -484,8 +485,6 @@ bool sym_tristate_within_range(struct symbol *sym, tristate val)
return false;
if (sym->visible <= sym->rev_dep.tri)
return false;
if (sym->implied.tri == yes && val == mod)
return false;
if (sym_is_choice_value(sym) && sym->visible == yes)
return val == yes;
return val >= sym->rev_dep.tri && val <= sym->visible;