mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-11-02 22:14:26 -05:00
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@linaro.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
[rebased against OpenWrt kconfig, slightly reword commit message]
(backported from upstream 9059a3493efea6492451430c7e2fa0af799a2abb)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
||
|---|---|---|
| .. | ||
| lxdialog | ||
| .gitignore | ||
| conf.c | ||
| confdata.c | ||
| expr.c | ||
| expr.h | ||
| images.c | ||
| list.h | ||
| lkc_proto.h | ||
| lkc.h | ||
| Makefile | ||
| mconf.c | ||
| menu.c | ||
| qconf.cc | ||
| qconf.h | ||
| README | ||
| symbol.c | ||
| util.c | ||
| zconf.gperf | ||
| zconf.hash.c_shipped | ||
| zconf.l | ||
| zconf.lex.c_shipped | ||
| zconf.tab.c_shipped | ||
| zconf.y | ||
These files were taken from the Linux 3.9 Kernel Configuration System and modified for the OpenWrt Buildroot.