Sam Ravnborg a64b44ead0 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>
2010-08-12 10:55:02 +02:00
..
2005-04-16 15:20:36 -07:00
2010-07-21 16:06:05 +02:00
2005-04-16 15:20:36 -07:00
2007-12-17 19:28:17 -08:00
2010-03-07 21:19:09 +01:00
2010-03-07 21:22:56 +01:00
2008-07-25 22:12:41 +02:00
2009-06-09 22:37:54 +02:00
2010-03-23 12:26:38 +01:00
2009-09-15 17:04:38 -07:00
2008-04-25 20:18:48 +02:00
2008-04-25 20:18:48 +02:00
2009-09-18 21:22:08 +02:00
2005-04-16 15:20:36 -07:00
2010-03-07 21:38:32 +01:00
2010-07-21 16:06:05 +02:00
2009-06-09 22:37:54 +02:00