34 lines · plain
1# Select broken dependency issue2# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3#4# Test with:5#6# make KBUILD_KCONFIG=Documentation/kbuild/Kconfig.select-break menuconfig7#8# kconfig will not complain and enable this layout for configuration. This is9# currently a feature of kconfig, given select was designed to be heavy handed.10# Kconfig currently does not check the list of symbols listed on a symbol's11# "select" list, this is done on purpose to help load a set of known required12# symbols. Because of this use of select should be used with caution. An13# example of this issue is below.14#15# The option B and C are clearly contradicting with respect to A.16# However, when A is set, C can be set as well because Kconfig does not17# visit the dependencies of the select target (in this case B). And since18# Kconfig does not visit the dependencies, it breaks the dependencies of B19# (!A).20 21mainmenu "Simple example to demo kconfig select broken dependency issue"22 23config A24 bool "CONFIG A"25 26config B27 bool "CONFIG B"28 depends on !A29 30config C31 bool "CONFIG C"32 depends on A33 select B34