diff options
author | Chris Packham <judge.packham@gmail.com> | 2020-12-10 19:55:15 +1300 |
---|---|---|
committer | Chris Packham <judge.packham@gmail.com> | 2021-02-02 20:06:32 +1300 |
commit | 914c794fc2d4433b8796bd977a93afa0803ec42b (patch) | |
tree | d460ccfa566f6c0f518aac2738b5aa7775a19912 /kconfig | |
parent | 3bf9edb36c5f1ea9715de1a2a556390540398077 (diff) | |
download | crosstool-ng-914c794fc2d4433b8796bd977a93afa0803ec42b.tar.gz crosstool-ng-914c794fc2d4433b8796bd977a93afa0803ec42b.tar.bz2 crosstool-ng-914c794fc2d4433b8796bd977a93afa0803ec42b.zip |
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>
Diffstat (limited to 'kconfig')
-rw-r--r-- | kconfig/.gitignore | 2 | ||||
-rw-r--r-- | kconfig/symbol.c | 9 |
2 files changed, 6 insertions, 5 deletions
diff --git a/kconfig/.gitignore b/kconfig/.gitignore index 19085258..88869568 100644 --- a/kconfig/.gitignore +++ b/kconfig/.gitignore @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + # # Generated files # diff --git a/kconfig/symbol.c b/kconfig/symbol.c index 8d38b700..3dc81397 100644 --- a/kconfig/symbol.c +++ b/kconfig/symbol.c @@ -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; |