Here's a simplified test case: < --------- bite here --------- > choice prompt "choice 1" config FOO1 bool "foo 1" config FOO2 bool "foo 2" endchoice choice prompt "frob" config BAR bool "bar" depends on FOO2 endchoice < --------- bite here --------- > Save this to a file, then run: scripts/kconfig/conf --randconfig /tmp/xxx && cat .config There will be two possible variants for generated .config files: < --------- Variant 1 --------- > CONFIG_FOO1=y # CONFIG_FOO2 is not set < --------- Variant 2 --------- > # CONFIG_FOO1 is not set # CONFIG_FOO2 is not set < --------- End --------- > The intended third outcome which would be < --------- doesn't happen ---- > # CONFIG_FOO1 is not set CONFIG_FOO2=y < --------- End --------------- > never gets generated. Pretty much any tempering with this test case will change the behaviour. For example removing the "depends on FOO2" line will result in the behaviour of either CONFIG_FOO1 or CONFIG_FOO2 being set to y but never none or both. Other minor changes might result in both symbols getting set. Ralf