linux/scripts/kconfig
Aaron Tomlin 46d4ccf3b6
localmodconfig: Explicitly report boolean configs during integrity check
When running make localmodconfig, streamline_config.pl reads loaded
modules and maps each module object to its corresponding Kconfig
symbol(s) using repository Makefiles.

In several instances, a loaded module corresponds to an object
controlled by a boolean symbol (e.g. config FOO declared as bool), or is
a composite module that depends on a boolean configuration. Because
boolean options only accept "=y" or disabled, they cannot be configured
as loadable modules ("=m").

Previously, if such a symbol was not already built-in ("=y") in the
baseline configuration, the final integrity check emitted an ambiguous
diagnostic. For example

    foo did not have configs CONFIG_FOO

Further investigation is required by developers to determine whether the
module was out-of-tree, its dependencies were unmet, or it failed due to
a type constraint. Address this by:
    1.  Tracking symbol types in a %types hash during Kconfig parsing.

    2.  Enhancing the final integrity check when running localmodconfig
        (!$localyesconfig) to explicitly annotate boolean symbols.

For example:

    module cec did not have configs CONFIG_CEC_CORE (tristate) CONFIG_RAS_CEC (boolean, not supported with =m)

Signed-off-by: Aaron Tomlin <atomlin@atomlin.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Link: https://patch.msgid.link/20260925181230.130525-1-atomlin@atomlin.com
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
2026-10-11 01:14:08 +01:00
..
icons kconfig: move XPM icons to separate files 2025-12-19 13:34:33 -07:00
lxdialog kconfig: cleanup stale comment about 'keys' array 2026-10-09 22:29:34 +02:00
tests kconfig: use the value argument in sym_get_near_range_bound() 2026-10-09 22:31:53 +02:00
.gitignore kconfig: Update all declared targets 2023-01-13 16:29:52 +09:00
conf.c kconfig: fix infinite loop in conf_choice() when no choice value is visible 2026-10-09 22:30:48 +02:00
confdata.c kconfig: prevent out-of-bounds user input for numeric options 2026-09-17 16:31:00 -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 "def_string", "def_int" and "def_hex" 2026-09-24 11:37:05 -04:00
lexer.l kconfig: Add "def_string", "def_int" and "def_hex" 2026-09-24 11:37:05 -04:00
lkc_proto.h kconfig: prevent out-of-bounds user input for numeric options 2026-09-17 16:31:00 -07:00
lkc.h kconfig: promote invalid numeric reference from warning to error 2026-09-17 16:31:00 -07: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: Warn on dead select or imply for choice values 2026-09-17 16:38:18 -07: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: Add "def_string", "def_int" and "def_hex" 2026-09-24 11:37:05 -04: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 localmodconfig: Explicitly report boolean configs during integrity check 2026-10-11 01:14:08 +01:00
symbol.c kconfig: use the value argument in sym_get_near_range_bound() 2026-10-09 22:31:53 +02:00
util.c kconfig: Error out on duplicated kconfig inclusion 2026-02-27 09:26:58 +01:00