blob: 365ceb3424b1a522bf2902947c92667e9e4cdea8 [file] [log] [blame]
Luis R. Rodriguez1c199f22015-10-07 16:16:33 -07001# Select broken dependency issue
2# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3#
4# Test with:
5#
6# make KBUILD_KCONFIG=Documentation/kbuild/Kconfig.select-break menuconfig
7#
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.
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 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).
20
21mainmenu "Simple example to demo kconfig select broken dependency issue"
22
23config A
24 bool "CONFIG A"
25
26config B
27 bool "CONFIG B"
28 depends on !A
29
30config C
31 bool "CONFIG C"
32 depends on A
33 select B