linux/scripts/kconfig
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
..
lxdialog menuconfig: truncate list items 2010-06-03 13:41:02 +02:00
.gitignore gitignore: ignore Kconfig i18n files 2009-06-09 22:37:47 +02:00
check.sh
conf.c kconfig: add savedefconfig 2010-08-03 13:49:32 +02:00
confdata.c kconfig: fix tristate choice with minimal config 2010-08-12 10:55:02 +02:00
expr.c kconfig: print the range of integer/hex symbol in help text 2010-06-02 15:10:32 +02:00
expr.h kconfig: save location of config symbols 2010-08-03 13:49:31 +02:00
gconf.c gconfig: fix null pointer warning 2010-06-02 15:10:33 +02:00
gconf.glade gconfig: add support to show hidden options that have prompts 2010-04-14 15:34:19 +02:00
images.c
kconfig_load.c
kxgettext.c kbuild: add static to prototypes 2009-09-20 12:27:44 +02:00
lex.zconf.c_shipped kconfig: Mark various internal functions static 2009-11-15 15:00:16 -08:00
lkc_proto.h kconfig: add savedefconfig 2010-08-03 13:49:32 +02:00
lkc.h kconfig: add savedefconfig 2010-08-03 13:49:32 +02:00
Makefile Merge commit 'v2.6.35' into kbuild/kconfig 2010-08-04 14:05:07 +02:00
mconf.c menuconfig: improive help text a bit 2010-06-02 15:10:32 +02:00
menu.c kconfig: save location of config symbols 2010-08-03 13:49:31 +02:00
nconf.c nconfig: minor fix 2010-02-02 14:33:55 +01:00
nconf.gui.c nconfig: Fix segfault when help contains special characters 2010-07-23 11:23:42 +02:00
nconf.h kconfig: new configuration interface (nconfig) 2010-02-02 14:33:55 +01:00
POTFILES.in
qconf.cc xconfig: add support to show hidden options which have prompts 2010-06-02 15:10:33 +02:00
qconf.h xconfig: add support to show hidden options which have prompts 2010-06-02 15:10:33 +02:00
streamline_config.pl kconfig: Hide error output in find command in streamline_config.pl 2010-05-28 10:34:41 -04:00
symbol.c kconfig: add savedefconfig 2010-08-03 13:49:32 +02:00
util.c Merge branch 'for-35' of git://repo.or.cz/linux-kbuild 2010-06-01 08:55:52 -07:00
zconf.gperf kconfig: Mark various internal functions static 2009-11-15 15:00:16 -08:00
zconf.hash.c_shipped kconfig: Mark various internal functions static 2009-11-15 15:00:16 -08:00
zconf.l kconfig: Mark various internal functions static 2009-11-15 15:00:16 -08:00
zconf.tab.c_shipped kconfig: fix zconfdump() 2010-04-14 15:34:18 +02:00
zconf.y kconfig: fix zconfdump() 2010-04-14 15:34:18 +02:00