mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 12:35:52 +02:00
If a minimal config did not specify the value
of all choice values, the resulting configuration
could have wrong values.
Consider following example:
config M
def_bool y
option modules
choice
prompt "choice list"
config A
tristate "a"
config B
tristate "b"
endchoice
With a defconfig like this:
CONFIG_M=y
CONFIG_A=y
The resulting configuration would have
CONFIG_A=m
which was unexpected.
The problem was not not all choice values were set and thus
kconfig calculated a wrong value.
The fix is to set all choice values when we
read a defconfig files.
conf_set_all_new_symbols() is refactored such that
random choice values are now handled by a dedicated function.
And new choice values are set by set_all_choice_values().
This was not the minimal fix, but the fix that resulted
in the most readable code.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Reported-by: Arve Hjønnevåg <arve@android.com>
Tested-by: Arve Hjønnevåg <arve@android.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
|
||
|---|---|---|
| .. | ||
| lxdialog | ||
| .gitignore | ||
| check.sh | ||
| conf.c | ||
| confdata.c | ||
| expr.c | ||
| expr.h | ||
| gconf.c | ||
| gconf.glade | ||
| images.c | ||
| kconfig_load.c | ||
| kxgettext.c | ||
| lex.zconf.c_shipped | ||
| lkc_proto.h | ||
| lkc.h | ||
| Makefile | ||
| mconf.c | ||
| menu.c | ||
| nconf.c | ||
| nconf.gui.c | ||
| nconf.h | ||
| POTFILES.in | ||
| qconf.cc | ||
| qconf.h | ||
| streamline_config.pl | ||
| symbol.c | ||
| util.c | ||
| zconf.gperf | ||
| zconf.hash.c_shipped | ||
| zconf.l | ||
| zconf.tab.c_shipped | ||
| zconf.y | ||