Searched hist:cb67ab2cd2b8abd9650292c986c79901e3073a59 (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/scripts/kconfig/ |
H A D | symbol.c | diff cb67ab2cd2b8abd9650292c986c79901e3073a59 Mon Feb 05 18:34:42 CST 2018 Masahiro Yamada <yamada.masahiro@socionext.com> kconfig: do not write choice values when their dependency becomes n
"# CONFIG_... is not set" for choice values are wrongly written into the .config file if they are once visible, then become invisible later.
Test case ---------
---------------------------(Kconfig)---------------------------- config A bool "A"
choice prompt "Choice ?" depends on A
config CHOICE_B bool "Choice B"
config CHOICE_C bool "Choice C"
endchoice ----------------------------------------------------------------
---------------------------(.config)---------------------------- CONFIG_A=y ----------------------------------------------------------------
With the Kconfig and .config above,
$ make config scripts/kconfig/conf --oldaskconfig Kconfig * * Linux Kernel Configuration * A (A) [Y/n] n # # configuration written to .config # $ cat .config # # Automatically generated file; DO NOT EDIT. # Linux Kernel Configuration # # CONFIG_A is not set # CONFIG_CHOICE_B is not set # CONFIG_CHOICE_C is not set
Here,
# CONFIG_CHOICE_B is not set # CONFIG_CHOICE_C is not set
should not be written into the .config file because their dependency "depends on A" is unmet.
Currently, there is no code that clears SYMBOL_WRITE of choice values.
Clear SYMBOL_WRITE for all symbols in sym_calc_value(), then set it again after calculating visibility. To simplify the logic, set the flag if they have non-n visibility, regardless of types, and regardless of whether they are choice values or not.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Ulf Magnusson <ulfalizer@gmail.com>
|