From: Nicolas Pitre Date: Fri, 17 Nov 2017 01:06:39 +0000 (-0500) Subject: kconfig: fix relational operators for bool and tristate symbols X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=efcfa1b51adfbfb0ea7885d0c8862a56cf36d2ac;hp=efcfa1b51adfbfb0ea7885d0c8862a56cf36d2ac;p=carl9170fw.git kconfig: fix relational operators for bool and tristate symbols 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 Acked-by: Randy Dunlap Tested-by: Randy Dunlap Signed-off-by: Masahiro Yamada Signed-off-by: Christian Lamparter ---