Re: [PATCH] kconfig: Warn on dead select or imply for choice values

Julian Braha <[email protected]>
Newsgroups gmane.linux.kernel,gmane.linux.kbuild.devel
Message-ID <[email protected]>
Hi Nicolas,

On 8/4/26 13:45, Nicolas Schier wrote:
> Update the internal kconfig check to print a warning on 'select' and
> 'imply' statements that target on choice values.
> 
> Julian Braha reported that kconfig's 'select' and 'imply' do not work
> for choice values but have no effect all.  Show a warning instead of
> error-out to allow kconfig to check the whole kconfig rule set.
> 
> Reported-by: Julian Braha <[email protected]>
> Closes: https://lore.kernel.org/linux-kbuild/[email protected]/ # [1]
> Suggested-by: Kees Cook <[email protected]>
> Suggested-by: Jani Nikula <[email protected]>
> Signed-off-by: Nicolas Schier <[email protected]>

Reviewed-by: Julian Braha <[email protected]>
Tested-by: Julian Braha <[email protected]>

> ---
> Depends on related fixes in Kconfig files:
> https://lore.kernel.org/r/[email protected] # change-requested
> https://lore.kernel.org/r/[email protected] # under-review
> https://lore.kernel.org/r/[email protected] # under-review
> https://lore.kernel.org/r/[email protected] # applied to mips-next
> https://lore.kernel.org/r/[email protected] # applied

Note that there was actually a 6th of these broken select-choices that I
had forgotten to list. Though my patch for that has also already been
applied:
https://lore.kernel.org/all/[email protected]/

> ---
>  scripts/kconfig/menu.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
> index b2d8d4e11e07..fc8d8cfe034d 100644
> --- a/scripts/kconfig/menu.c
> +++ b/scripts/kconfig/menu.c
> @@ -287,6 +287,10 @@ static void sym_check_prop(struct symbol *sym)
>  				    "'%s' has wrong type. '%s' only "
>  				    "accept arguments of bool and "
>  				    "tristate type", sym2->name, use);
> +			if (sym_is_choice_value(sym2))
> +				prop_warn(prop,
> +					  "config symbol '%s' uses %s for '%s', but '%s' is a choice value",
> +					  sym->name, use, sym2->name, sym2->name);
>  			break;
>  		case P_RANGE:
>  			if (sym->type != S_INT && sym->type != S_HEX)
> 
> ---
> base-commit: 6946cd5d0aa4dd10a414ddcb7a10844fdb0ad345
> change-id: 20260802-kconfig-warn-on-dead-select-for-choice-value-bd71a1de1a96
> prerequisite-message-id: <[email protected]>
> prerequisite-patch-id: 3bb796da65f588d1df5003dac5af7a9d7420f266
> prerequisite-message-id: <[email protected]>
> prerequisite-patch-id: 5277c28b2d25752fb7e5827ed744b0cf0c619574
> prerequisite-message-id: <[email protected]>
> prerequisite-patch-id: bef2d24caba30e7dc2ac5189c10b6473485a1e3c
> prerequisite-message-id: <[email protected]>
> prerequisite-patch-id: da49e2868fbb19afc3195cbd2868739a94aa02c3
> prerequisite-message-id: <[email protected]>
> prerequisite-patch-id: 3c894964a57e4e30515fcb14226dae725555c25e
> 
> Best regards,
> --  
> Nicolas
> 

- Julian Braha
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.