linux/scripts/kconfig
Pengpeng Hou 645323a7f4
kconfig: add optional warnings for changed input values
When reading .config input, Kconfig stores user-provided values first
and then resolves the final value after applying dependencies, ranges,
and other constraints.

If the final value differs from the user input, Kconfig already tracks
that state internally, but it does not provide a focused diagnostic to
show which explicit inputs were adjusted. This is particularly confusing
for requested values that get forced down by unmet dependencies or
clamped by ranges.

Add an opt-in diagnostic controlled by KCONFIG_WARN_CHANGED_INPUT. Emit
the warnings from conf_write() and conf_write_defconfig() after value
resolution. Print the diagnostic to stderr directly, not through the
normal message callback, so it remains visible when conf is run with -s,
such as from make -s.

Keep the diagnostic out of the conf_message() formatting buffer so long
warning lists are not truncated, and mark processed symbols as written
before the SYMBOL_WRITE check so duplicate menu nodes cannot emit
duplicate warnings.

Document the new environment variable and add tests for olddefconfig,
savedefconfig, and the silent-conf path.

Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
Tested-by: Julian Braha <julianbraha@gmail.com>
Link: https://patch.msgid.link/20260611060000.23858-1-pengpeng@iscas.ac.cn
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
2026-06-18 11:46:32 -07: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 kconfig: add optional warnings for changed input values 2026-06-18 11:46:32 -07:00
.gitignore
conf.c kconfig: fix potential NULL pointer dereference in conf_askvalue 2026-04-29 18:05:44 -07:00
confdata.c kconfig: add optional warnings for changed input values 2026-06-18 11:46:32 -07:00
expr.c kconfig: clear expr::val_is_valid when allocated 2024-10-01 17:05:30 +09:00
expr.h kconfig: Add transitional symbol attribute for migration support 2025-09-24 14:23:35 -07: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: Support conditional deps using "depends on X if Y" 2026-01-06 14:57:15 -07:00
merge_config.sh scripts: kconfig: merge_config.sh: fix indentation 2026-03-11 00:38:06 -07: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