From: sashiko-bot@kernel.org
To: "Julian Braha" <julianbraha@gmail.com>,
nathan@kernel.org, nsc@kernel.org
Cc: corbet@lwn.net, skhan@linuxfoundation.org, rdunlap@infradead.org,
mchehab+huawei@kernel.org, jani.nikula@intel.com, tj@kernel.org,
grahamr@qti.qualcomm.com, officialnaumansabir@gmail.com,
nico@fluxnic.net, linux-kbuild@vger.kernel.org
Subject: Re: [PATCH] Documentation: add a history of the Kconfig language
Date: Wed, 04 Nov 2026 19:08:45 +0000 [thread overview]
Message-ID: <sashiko-outbox-197921@kernel.org> (raw)
In-Reply-To: <20261103190832.3861337-1-julianbraha@gmail.com>
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [Low] docs: kbuild: inaccurate description of commit 03d29122738f under 2.6.23
- [Low] docs: kbuild: inverted choice prompt warnings for 8a36b98fd0d8 under 2.5.71
- [Low] docs: kbuild: misleading config expansion note for 4.18 source and mainmenu
--
commit b7aadddaf53dea66112a1e16bcdf2b1fb258d755
Author: Julian Braha <julianbraha@gmail.com>
Documentation: add a history of the Kconfig language
This commit adds Documentation/kbuild/kconfig-history.rst, documenting the
history of changes to the Kconfig language across Linux releases, categorized
by syntax, semantics, macros, and error handling.
Link: https://github.com/zephyrproject-rtos/Kconfiglib [1]
Link: https://github.com/Mcdostone/nom-kconfig [2]
Link: https://github.com/tree-sitter-grammars/tree-sitter-kconfig [3]
Link: https://github.com/cccheng/kconfig-lsp [4]
Link: https://github.com/paulgazz/kmax [5]
Link: https://github.com/ekuiter/torte [6]
Link: https://ekuiter.github.io/torte-research/#systems [7]
Link: https://github.com/u-boot/u-boot/commit/bd3f9ee679b4d1456d0d3c261ab76788950e6096 [8]
Link: https://github.com/coreboot/coreboot/commit/7761237dfe0c509fa4cae255b20fa4b1278cbca1 [9]
> diff --git a/Documentation/kbuild/kconfig-history.rst b/Documentation/kbuild/kconfig-history.rst
> new file mode 100644
> index 0000000000000..e1a4cdb141f99
> --- /dev/null
> +++ b/Documentation/kbuild/kconfig-history.rst
> @@ -0,0 +1,615 @@
[ ... ]
> +4.18
> +----
> +
> +**Semantics**:
> +
> +- remove support for evaluating config values in ``source`` and ``mainmenu``
> + strings that lack parentheses. (bb222ceeb327 and 96d8e48da55a)
[Severity: Low]
Does the qualification "that lack parentheses" here imply that config option
values can still be expanded in source and mainmenu strings if parentheses
are used?
Commits bb222ceeb327 ("kconfig: remove string expansion in file_lookup()")
and 96d8e48da55a ("kconfig: remove string expansion for mainmenu after
yyparse()"), followed by commit 5b31a9746756 ("kconfig: remove
sym_expand_string_value()"), completely removed sym_expand_string_value(),
which was the mechanism that expanded Kconfig config symbol values ($FOO) in
source and mainmenu strings.
The parenthesized $(FOO) syntax introduced in 4.18 in
scripts/kconfig/preprocess.c only expands preprocessor macro variables,
functions, and environment variables in the lexer, not Kconfig config option
symbols. Should this say that support for evaluating config values in source
and mainmenu strings was removed altogether?
[ ... ]
> +2.6.23
> +------
> +
> +**Semantics**:
> +
> +- allow using ``--help--`` with menu. (03d29122738f)
[Severity: Low]
Is this description of commit 03d29122738f ("kconfig: attach help text to
menus") accurate?
In Kconfig internals, struct menu represents any menu tree entry (such as a
config, menuconfig, or choice definition). Commit 03d29122738f moved the
char *help field from struct symbol to struct menu in scripts/kconfig/expr.h
and updated the help rule in scripts/kconfig/zconf.y:
- current_entry->sym->help = $2;
+ current_entry->help = $2;
This allowed multiple definitions of the same symbol to have distinct help
texts instead of overwriting a single per-symbol help pointer. Kconfig menu
blocks (menu ... endmenu) do not accept help attributes in the grammar, and
--help-- with two hyphens was not a valid Kconfig keyword.
[ ... ]
> +2.5.71
> +------
[ ... ]
> +**Error handling**:
> +
> +- warn when options in a choice have a ``default``. (f3b837df9e2b)
> +
> +- warn when a choice doesn't have a prompt. (8a36b98fd0d8)
> +
> +- warn when options in a choice have a prompt. (8a36b98fd0d8)
[Severity: Low]
Are these two entries for commit 8a36b98fd0d8 misstating the warnings added
in menu_finalize() in scripts/kconfig/menu.c?
In menu_finalize(), "choice value" refers to a member option inside a choice
block (SYMBOL_CHOICEVAL), whereas the choice block itself is checked
separately (and is already listed below under f9f0d1c0da3a). Commit
8a36b98fd0d8 added:
if (!menu->prompt)
menu_warn(menu, "choice value must have a prompt");
and:
for (prop = sym->prop; prop; prop = prop->next) {
...
if (prop->type == P_PROMPT && prop->menu != menu) {
prop_warn(prop, "choice values currently only support a single prompt");
}
}
Should the first entry state that Kconfig warns when options in a choice do
not have a prompt, and the second entry state that Kconfig warns when options
in a choice have multiple prompts (matching the two warnings that were later
promoted to errors in 6.10 by commits 700e7a8d05ea and 8a22f867e330)?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261103190832.3861337-1-julianbraha@gmail.com?part=1
prev parent reply other threads:[~2026-11-04 19:08 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-03 19:08 [PATCH] Documentation: add a history of the Kconfig language Julian Braha
2026-11-04 0:49 ` Randy Dunlap
2026-11-04 0:49 ` Randy Dunlap
2026-11-04 19:08 ` sashiko-bot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=sashiko-outbox-197921@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=corbet@lwn.net \
--cc=grahamr@qti.qualcomm.com \
--cc=jani.nikula@intel.com \
--cc=julianbraha@gmail.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=mchehab+huawei@kernel.org \
--cc=nathan@kernel.org \
--cc=nico@fluxnic.net \
--cc=nsc@kernel.org \
--cc=officialnaumansabir@gmail.com \
--cc=rdunlap@infradead.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=skhan@linuxfoundation.org \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.