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