lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e57d46ba-dc3f-4060-b770-ab01d909d2e3@infradead.org>
Date: Mon, 3 Jun 2024 14:28:01 -0700
From: Randy Dunlap <rdunlap@...radead.org>
To: Masahiro Yamada <masahiroy@...nel.org>, linux-kbuild@...r.kernel.org
Cc: linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/3] kconfig: doc: document behavior of 'select' and
 'imply' followed by 'if'



On 6/3/24 9:19 AM, Masahiro Yamada wrote:
> Documentation/kbuild/kconfig-language.rst explains the behavior of
> 'select' as follows:
> 
>   reverse dependencies can be used to force a lower limit of
>   another symbol. The value of the current menu symbol is used as the
>   minimal value <symbol> can be set to.
> 
> This is not true when the 'select' property is followed by 'if'.
> 
> [Test Code]
> 
>     config MODULES
>             def_bool y
>             modules
> 
>     config A
>             def_tristate y
>             select C if B
> 
>     config B
>             def_tristate m
> 
>     config C
>             tristate
> 
> [Result]
> 
>     CONFIG_MODULES=y
>     CONFIG_A=y
>     CONFIG_B=m
>     CONFIG_C=m
> 
> If "the value of A is used as the minimal value C can be set to",
> C must be 'y'.
> 
> The actual behavior is "C is selected by (A && B)". The lower limit of
> C is downgraded due to B being 'm'.
> 
> I have always thought this behavior was odd, and this ha arisen several

                                                        has

> times in the mailing list.
> 
> I do not know whether it is a bug or intended behavior. Anyway, it is
> not feasible to change it now because many Kconfig files rely on this
> behavior. The same applies to 'imply'.
> 
> Document this (but reserve the possibility for a future change).
> 
> Signed-off-by: Masahiro Yamada <masahiroy@...nel.org>

Reviewed-by: Randy Dunlap <rdunlap@...radead.org>

Thanks.

> ---
> 
>  Documentation/kbuild/kconfig-language.rst | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/Documentation/kbuild/kconfig-language.rst b/Documentation/kbuild/kconfig-language.rst
> index 86be5b857cc4..1fb3f5e6193c 100644
> --- a/Documentation/kbuild/kconfig-language.rst
> +++ b/Documentation/kbuild/kconfig-language.rst
> @@ -150,6 +150,12 @@ applicable everywhere (see syntax).
>  	That will limit the usefulness but on the other hand avoid
>  	the illegal configurations all over.
>  
> +	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
> +	presence of "if" <expr>. This behavior may seem weird, but we rely on
> +	it. (The future of this behavior is undecided.)
> +
>  - weak reverse dependencies: "imply" <symbol> ["if" <expr>]
>  
>    This is similar to "select" as it enforces a lower limit on another
> @@ -202,6 +208,10 @@ applicable everywhere (see syntax).
>  	imply BAR
>  	imply BAZ
>  
> +  Note: If "imply" <symbol> is followed by "if" <expr>, the default of <symbol>
> +  will be the logical AND of the value of the current menu symbol and <expr>.
> +  (The future of this behavior is undecided.)
> +
>  - limiting menu display: "visible if" <expr>
>  
>    This attribute is only applicable to menu blocks, if the condition is

-- 
#Randy
https://people.kernel.org/tglx/notes-about-netiquette
https://subspace.kernel.org/etiquette.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ