diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2010-08-12 09:11:52 +0200 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2010-08-12 10:55:02 +0200 |
commit | a64b44ead002ba15fdf841106a6fd344b8dd46d8 (patch) | |
tree | d5f3be005c10369a69ea1d968c790854f9d52a1a /scripts/kconfig/nconf.c | |
parent | 801690caf1894d4f8b1277ca9f5dcf0bcf9b3f58 (diff) | |
download | linux-a64b44ead002ba15fdf841106a6fd344b8dd46d8.tar.gz linux-a64b44ead002ba15fdf841106a6fd344b8dd46d8.tar.bz2 linux-a64b44ead002ba15fdf841106a6fd344b8dd46d8.zip |
kconfig: fix tristate choice with minimal config
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>
Diffstat (limited to 'scripts/kconfig/nconf.c')
0 files changed, 0 insertions, 0 deletions