Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux...
[linux/fpc-iii.git] / Documentation / kbuild / Kconfig.select-break
blob365ceb3424b1a522bf2902947c92667e9e4cdea8
1 # Select broken dependency issue
2 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 # Test with:
6 # make KBUILD_KCONFIG=Documentation/kbuild/Kconfig.select-break menuconfig
8 # kconfig will not complain and enable this layout for configuration. This is
9 # 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's
11 # "select" list, this is done on purpose to help load a set of known required
12 # symbols. Because of this use of select should be used with caution. An
13 # example of this issue is below.
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 not
17 # visit the dependencies of the select target (in this case B).  And since
18 # Kconfig does not visit the dependencies, it breaks the dependencies of B
19 # (!A).
21 mainmenu "Simple example to demo kconfig select broken dependency issue"
23 config A
24         bool "CONFIG A"
26 config B
27         bool "CONFIG B"
28         depends on !A
30 config C
31         bool "CONFIG C"
32         depends on A
33         select B