# Select broken dependency issue
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Test with:
#
# make KBUILD_KCONFIG=Documentation/kbuild/Kconfig.select-break menuconfig
#
# kconfig will not complain and enable this layout for configuration. This is
# currently a feature of kconfig, given select was designed to be heavy handed.
# Kconfig currently does not check the list of symbols listed on a symbol's
# "select" list, this is done on purpose to help load a set of known required
# symbols. Because of this use of select should be used with caution. An
# example of this issue is below.
#
# The option B and C are clearly contradicting with respect to A.
# However, when A is set, C can be set as well because Kconfig does not
# visit the dependencies of the select target (in this case B).  And since
# Kconfig does not visit the dependencies, it breaks the dependencies of B
# (!A).

mainmenu "Simple example to demo kconfig select broken dependency issue"

config A
	bool "CONFIG A"

config B
	bool "CONFIG B"
	depends on !A

config C
	bool "CONFIG C"
	depends on A
	select B
