# 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 [31mCONFIG_B[0m and [31mCONFIG_C[0m are clearly contradicting with respect to [31mCONFIG_A[0m. # However, when [31mCONFIG_A[0m is set, [31mCONFIG_C[0m can be set as well because Kconfig does not # visit the dependencies of the select target (in this case [31mCONFIG_B[0m). And since # Kconfig does not visit the dependencies, it breaks the dependencies of [31mCONFIG_B[0m # (![31mCONFIG_A[0m). mainmenu "Simple example to demo kconfig select broken dependency issue" config [31mCONFIG_A[0m bool "CONFIG A" config [31mCONFIG_B[0m bool "CONFIG B" depends on ![31mCONFIG_A[0m config [31mCONFIG_C[0m bool "CONFIG C" depends on [31mCONFIG_A[0m select [31mCONFIG_B[0m |