cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Kconfig.select-break (1071B)


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