linux/scripts/kconfig
Julian Braha 35e4b60792 kconfig: fix submenu rendering of negative dependencies
The Kconfig frontend should render options that depend on a
previous option in the submenu of that previous option. But
currently, this breaks for negative dependencies. For example,
option FOO may be rendered in the submenu of option BAR, despite
FOO actually depending on !BAR.

Let's fix this ironic rendering by modifying Kconfig to explicitly
check negative dependencies.

I've only tested locally on x86, but as far as I can tell, this only
changes how 2 options are rendered in the menu:
1. NTFS3_FS, no longer in the NTFS_FS submenu, and
2. MTD_BLOCK_RO, no longer in the MTD_BLOCK submenu.

Tested-by: Nathan Chancellor <nathan@kernel.org>
Reported-by: Xi Ruoyao <xry111@xry111.site>
Closes: https://lore.kernel.org/all/cbe95c15d2760f6fce8eaf207c969ce8fd3703aa.camel@xry111.site/
Assisted-by: Claude:claude-4.8-opus
Signed-off-by: Julian Braha <julianbraha@gmail.com>
Link: https://patch.msgid.link/20260801145238.2140291-1-julianbraha@gmail.com
Reviewed-by: Nicolas Schier <nsc@kernel.org>
Tested-by: Nicolas Schier <nsc@kernel.org>
Signed-off-by: Nicolas Schier <nsc@kernel.org>
2026-08-14 21:33:20 +02:00
..
icons kconfig: move XPM icons to separate files 2025-12-19 13:34:33 -07:00
lxdialog kconfig: lxdialog: replace strcpy() with strncpy() in inputbox.c 2025-08-06 10:23:36 +09:00
tests Second round of Kbuild changes for 7.2 2026-06-25 09:06:12 -07:00
.gitignore kconfig: Update all declared targets 2023-01-13 16:29:52 +09:00
conf.c kconfig: abort rather than loop for ever on EOF 2026-08-05 14:46:48 +02:00
confdata.c kconfig: add optional warnings for changed input values 2026-06-18 11:46:32 -07:00
expr.c kconfig: fix submenu rendering of negative dependencies 2026-08-14 21:33:20 +02:00
expr.h kconfig: fix submenu rendering of negative dependencies 2026-08-14 21:33:20 +02:00
gconf-cfg.sh kconfig: gconf: migrate to GTK 3 2025-07-26 15:31:29 +09:00
gconf.c kconfig: move XPM icons to separate files 2025-12-19 13:34:33 -07:00
gconf.ui kconfig: gconf: replace GtkImageMenuItem with GtkMenuItem 2025-07-26 19:55:37 +09:00
internal.h kconfig: cache expression values 2024-09-20 09:21:53 +09:00
kconfig-sym-check.pl kconfig: add kconfig-sym-check static checker 2026-06-03 19:20:04 -07:00
lexer.l kconfig: Error out on duplicated kconfig inclusion 2026-02-27 09:26:58 +01:00
lkc_proto.h kconfig: add sym_get_prompt_menu() helper function 2024-11-06 08:46:34 +09:00
lkc.h kconfig: Error out on duplicated kconfig inclusion 2026-02-27 09:26:58 +01:00
Makefile kconfig: move XPM icons to separate files 2025-12-19 13:34:33 -07:00
mconf-cfg.sh kconfig: add -e and -u options to *conf-cfg.sh scripts 2024-07-16 01:08:36 +09:00
mconf.c kconfig/mconf: Initialize the default locale at startup 2025-11-01 00:21:23 -04:00
menu.c kconfig: fix submenu rendering of negative dependencies 2026-08-14 21:33:20 +02:00
merge_config.sh scripts: kconfig: merge_config.sh: keep temp file in the output dir 2026-07-13 14:17:23 +02:00
mnconf-common.c kbuild: move some helper headers from scripts/kconfig/ to scripts/include/ 2024-07-21 23:10:43 +09:00
mnconf-common.h kbuild: move some helper headers from scripts/kconfig/ to scripts/include/ 2024-07-21 23:10:43 +09:00
nconf-cfg.sh kconfig: fix static linking of nconf 2026-01-14 14:23:20 +01:00
nconf.c kconfig/nconf: Initialize the default locale at startup 2025-11-01 00:23:22 -04:00
nconf.gui.c kconfig: nconf: Format and print 'line' without a temporary copy 2025-08-18 10:46:19 -07:00
nconf.h kconfig: nconf: Add search jump feature 2023-08-13 21:29:41 +09:00
parser.y kconfig: forbid multiple entries with the same symbol in a choice 2026-04-05 09:21:33 +02:00
preprocess.c kbuild: split x*alloc() functions in kconfig to scripts/include/xalloc.h 2024-09-01 20:34:48 +09:00
preprocess.h kconfig: split preprocessor prototypes into preprocess.h 2024-02-19 18:20:40 +09:00
qconf-cfg.sh kconfig: add -e and -u options to *conf-cfg.sh scripts 2024-07-16 01:08:36 +09:00
qconf.cc kconfig: move XPM icons to separate files 2025-12-19 13:34:33 -07:00
qconf.h kconfig: qconf: confine {begin,end}Group to constructor and destructor 2025-07-26 15:31:30 +09:00
streamline_config.pl streamline_config.pl: remove superfluous exclamation mark 2026-02-02 21:54:20 -07:00
symbol.c kconfig: Avoid prompting for transitional symbols 2025-10-07 08:21:23 -07:00
util.c kconfig: Error out on duplicated kconfig inclusion 2026-02-27 09:26:58 +01:00