linux/scripts/kconfig
Kees Cook 651fb291c4
kconfig: Add "def_string", "def_int" and "def_hex"
Kconfig has offered "def_bool" and "def_tristate" as a shorthand for a
type definition plus a default since before the git era, but has never
offered the equivalent for the other three types. Conor Dooley ran into
this gap[1] when fixing a symbol that had been given the wrong type:

  Unfortunately, there is no such thing as "def_string", but in this
  case we can use "default" to propagate the value of ...

Nothing in the grammar requires the restriction. The rule that consumes
a default is already type agnostic. Add the three missing types. No
changes are needed to existing diagnostics. E.g. declaring a symbol
"bool" and then assigning it with "def_string" still reports

  warning: ignoring type redefinition of 'CONFLICT' from 'bool' to 'string'

Added tests for the types.

Build tested ARCH=x86_64 with GCC 16.2.0. Tests pass with "make testconfig".

Link: https://lore.kernel.org/all/20230111104848.2088516-1-conor.dooley@microchip.com/ [1]
Assisted-by: LLM
Signed-off-by: Kees Cook <kees@kernel.org>
Tested-by: Julian Braha <julianbraha@gmail.com>
Reviewed-by: Julian Braha <julianbraha@gmail.com>
Link: https://patch.msgid.link/20260919005929.4077729-1-kees@kernel.org
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
2026-09-24 11:37:05 -04: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 "def_string", "def_int" and "def_hex" 2026-09-24 11:37:05 -04:00
.gitignore kconfig: Update all declared targets 2023-01-13 16:29:52 +09:00
conf.c kconfig: warn about malformed KCONFIG_PROBABILITY values 2026-09-24 11:30:42 -04: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 streamline_config.pl: remove superfluous exclamation mark 2026-02-02 21:54:20 -07:00
symbol.c kconfig: use unsigned integers for hex range checks 2026-09-17 16:31:01 -07:00
util.c kconfig: Error out on duplicated kconfig inclusion 2026-02-27 09:26:58 +01:00