Warning: chmod(): Operation not permitted in /var/www/hopeinstoughton_www/wp-content/plugins/simple-universal-google-analytics/main.php on line 8 [0] in function chmod in /var/www/hopeinstoughton_www/wp-content/plugins/simple-universal-google-analytics/main.php on line 8 [1] in function include_once in /var/www/hopeinstoughton_www/wp-settings.php on line 560 [2] in function require_once in /var/www/hopeinstoughton_www/wp-config.php on line 85 [3] in function require_once in /var/www/hopeinstoughton_www/wp-load.php on line 50 [4] in function require_once in /var/www/hopeinstoughton_www/wp-blog-header.php on line 13 [5] in function require in /var/www/hopeinstoughton_www/index.php on line 17
| Server IP : 94.177.8.99 / Your IP : 216.73.217.165 Web Server : Apache/2.4.58 (Ubuntu) System : Linux aries 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/src/linux-headers-6.8.0-134/Documentation/kbuild/ |
Upload File : |
# Simple Kconfig recursive issue # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # Test with: # # make KBUILD_KCONFIG=Documentation/kbuild/Kconfig.recursion-issue-01 allnoconfig # # This Kconfig file has a simple recursive dependency issue. In order to # understand why this recursive dependency issue occurs lets consider what # Kconfig needs to address. We iterate over what Kconfig needs to address # by stepping through the questions it needs to address sequentially. # # * What values are possible for CORE? # # CORE_BELL_A_ADVANCED selects CORE, which means that it influences the values # that are possible for CORE. So for example if CORE_BELL_A_ADVANCED is 'y', # CORE must be 'y' too. # # * What influences CORE_BELL_A_ADVANCED? # # As the name implies CORE_BELL_A_ADVANCED is an advanced feature of # CORE_BELL_A so naturally it depends on CORE_BELL_A. So if CORE_BELL_A is 'y' # we know CORE_BELL_A_ADVANCED can be 'y' too. # # * What influences CORE_BELL_A? # # CORE_BELL_A depends on CORE, so CORE influences CORE_BELL_A. # # But that is a problem, because this means that in order to determine # what values are possible for CORE we ended up needing to address questions # regarding possible values of CORE itself again. Answering the original # question of what are the possible values of CORE would make the kconfig # tools run in a loop. When this happens Kconfig exits and complains about # the "recursive dependency detected" error. # # Reading the Documentation/kbuild/Kconfig.recursion-issue-01 file it may be # obvious that an easy solution to this problem should just be the removal # of the "select CORE" from CORE_BELL_A_ADVANCED as that is implicit already # since CORE_BELL_A depends on CORE. Recursive dependency issues are not always # so trivial to resolve, we provide another example below of practical # implications of this recursive issue where the solution is perhaps not so # easy to understand. Note that matching semantics on the dependency on # CORE also consist of a solution to this recursive problem. mainmenu "Simple example to demo kconfig recursive dependency issue" config CORE tristate config CORE_BELL_A tristate depends on CORE config CORE_BELL_A_ADVANCED tristate depends on CORE_BELL_A select CORE