[PATCH] Documentation: warn users not to use select on choice options in Kconfig
Julian Braha <[email protected]> Wed, 15 Jul 2026 23:01:49 +0100
| Newsgroups | org.kernel.vger.linux-kbuild,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Hengelein's master thesis about Kconfig from 2015 wrote that 'select' does not work on member options inside of a 'choice'. So I've re-implemented his check as part of kconfirm: https://github.com/julianbraha/kconfirm and discovered several instances of these dead selects in use, and fixing them is not always trivial. For example, see: https://lore.kernel.org/all/[email protected]/ Let's add a warning to the documentation (a place where developers are more likely to see it than a master's thesis...) Signed-off-by: Julian Braha <[email protected]> --- Documentation/kbuild/kconfig-language.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/kbuild/kconfig-language.rst b/Documentation/kbuild/kconfig-language.rst index d9338407c1c6..ab2822d7ca1c 100644 --- a/Documentation/kbuild/kconfig-language.rst +++ b/Documentation/kbuild/kconfig-language.rst @@ -164,6 +164,11 @@ applicable everywhere (see syntax). That will limit the usefulness but on the other hand avoid the illegal configurations all over. + select should also not be used on the member options of a choice. + Selecting a choice option will do nothing (dead code). Instead, + consider making these a dependency, or using the defaults of the + choice to enable the member option when it's needed. + If "select" <symbol> is followed by "if" <expr>, <symbol> will be selected by the logical AND of the value of the current menu symbol and <expr>. This means, the lower limit can be downgraded due to the -- 2.54.0