Re: [PATCH] kconfig: fix relational operators for bool and tristate symbols

From: Masahiro Yamada
Date: Fri Jan 05 2018 - 12:35:07 EST


2017-11-17 10:06 GMT+09:00 Nicolas Pitre <nicolas.pitre@xxxxxxxxxx>:
> Since commit 31847b67bec0 ("kconfig: allow use of relations other than
> (in)equality") it is possible to use relational operators in Kconfig
> statements. However, those operators give unexpected results when
> applied to bool/tristate values:
>
> (n < y) = y (correct)
> (m < y) = y (correct)
> (n < m) = n (wrong)
>
> This happens because relational operators process bool and tristate
> symbols as strings and m sorts before n. It makes little sense to do a
> lexicographical compare on bool and tristate values though.
>
> Documentation/kbuild/kconfig-language.txt states that expression can have
> a value of 'n', 'm' or 'y' (or 0, 1, 2 respectively for calculations).
> Let's make it so for relational comparisons with bool/tristate
> expressions as well and document them. If at least one symbol is an
> actual string then the lexicographical compare works just as before.
>
> Signed-off-by: Nicolas Pitre <nico@xxxxxxxxxx>
>

Applied to linux-kbuild/fixes. Thanks!

--
Best Regards
Masahiro Yamada