linux/scripts/kconfig
Dirk Gouders fa64e5f6a3 kconfig/symbol.c: handle choice_values that depend on 'm' symbols
If choices consist of choice_values of type tristate that depend on
symbols set to 'm', those choice_values are not set to 'n' if the
choice is changed from 'm' to 'y' (in which case only one active
choice_value is allowed). Those values are also written to the config
file causing modules to be built when they should not.

The following config can be used to reproduce and examine the problem;
with the frontend of your choice set "Choice 0" and "Choice 1" to 'm',
then set "Tristate Choice" to 'y' and save the configuration:

config modules
	boolean modules
	default y
	option modules

config dependency
	tristate "Dependency"
	default m

choice
	prompt "Tristate Choice"
	default choice0

config choice0
	tristate "Choice 0"

config choice1
	tristate "Choice 1"
	depends on dependency

endchoice

This patch sets tristate choice_values' visibility that depend on
symbols set to 'm' to 'n' if the corresponding choice is set to 'y'.

This makes them disappear from the choice list and will also cause the
choice_values' value set to 'n' in sym_calc_value() and as a result
they are written as "not set" to the resulting .config file.

Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Dirk Gouders <dirk@gouders.net>
Tested-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Tested-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
2016-05-10 21:14:27 +02:00
..
lxdialog kconfig/lxdialog: get ncurses CFLAGS with pkg-config 2014-09-23 15:47:48 +02:00
.gitignore kconfig: remove lkc_defs.h from .gitignore and dontdiff 2012-07-13 15:08:25 +02:00
check.sh kbuild: trivial - remove trailing empty lines 2014-06-10 00:04:06 +02:00
conf.c kconfig: allow kconfig to handle longer path names 2015-12-10 11:06:10 +01:00
confdata.c kconfig: add unexpected data itself to warning 2016-05-10 17:20:19 +02:00
expr.c kconfig: Fix copy&paste error 2015-10-20 19:13:14 +02:00
expr.h kconfig: allow use of relations other than (in)equality 2015-06-15 14:05:58 +02:00
gconf.c kconfig: Do not print status messages in make -s mode 2015-04-09 17:44:34 +02:00
gconf.glade scripts/kconfig/gconf.glade Update broken web addresses. 2010-09-17 16:54:42 +02:00
images.c
kxgettext.c kconfig: nuke LKC_DIRECT_LINK cruft 2011-06-06 15:32:20 -04:00
list.h Replace mentions of "list_struct" to "list_head" 2014-11-20 14:45:15 +01:00
lkc_proto.h kconfig: Remove unnecessary prototypes from headers 2015-02-25 15:00:17 +01:00
lkc.h kconfig: Remove unnecessary prototypes from headers 2015-02-25 15:00:17 +01:00
Makefile scripts/kconfig: allow building with make 3.80 again 2016-02-01 12:11:27 +01:00
mconf.c kconfig: Do not print status messages in make -s mode 2015-04-09 17:44:34 +02:00
menu.c kconfig: return 'false' instead of 'no' in bool function 2016-01-05 11:19:13 +01:00
merge_config.sh kconfig/merge_config.sh: Accept a single file 2015-10-14 16:19:37 +02:00
nconf.c kconfig: Do not print status messages in make -s mode 2015-04-09 17:44:34 +02:00
nconf.gui.c nconf: use function calls instead of ncurses' variables LINES and COLS 2013-06-18 23:58:58 +02:00
nconf.h scripts/kconfig/nconf: dynamically alloc dialog_input_result 2011-09-09 14:40:08 +02:00
POTFILES.in kconfig: gettext support for lxdialog 2008-01-28 23:14:39 +01:00
qconf.cc kconfig: fix qconf segfault by deleting heap objects 2016-01-11 09:45:08 +01:00
qconf.h Port xconfig to Qt5 - Source format. 2015-10-14 14:59:03 +02:00
streamline_config.pl localmodconfig: Use Kbuild files too 2015-08-11 17:34:35 -04:00
symbol.c kconfig/symbol.c: handle choice_values that depend on 'm' symbols 2016-05-10 21:14:27 +02:00
util.c kconfig: Remove dead code 2015-02-25 15:00:16 +01:00
zconf.gperf kconfig: warn of unhandled characters in Kconfig commands 2015-08-19 17:05:39 +02:00
zconf.hash.c_shipped kconfig: Regenerate shipped zconf.{hash,lex}.c files 2015-08-19 17:05:39 +02:00
zconf.l kconfig: warn of unhandled characters in Kconfig commands 2015-08-19 17:05:39 +02:00
zconf.lex.c_shipped kconfig: Regenerate shipped zconf.{hash,lex}.c files 2015-08-19 17:05:39 +02:00
zconf.tab.c_shipped kconfig: re-generate *.c_shipped files after previous change 2015-06-15 14:05:58 +02:00
zconf.y kconfig: allow use of relations other than (in)equality 2015-06-15 14:05:58 +02:00