| # 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 |