zephyr/scripts/kconfig
Ulf Magnusson 59c8ae8caf kconfiglib: Fix incorrectly ordered props. for some multi.def symbols
This commit fixes a pretty nasty bug that could cause properties on
symbols and choices defined in multiple locations to end up in the wrong
order, potentially affecting evaluation.

Alexander Wachter ran into this for an out-of-tree build.

Multi.def. symbols are rare in the Linux kernel, which is what the
Kconfiglib test suite uses for compatibility testing, so this managed to
slip through. Comprehensive selftests have been added for property
ordering on nested multi.def. symbols/choices.

This bug was introduced by commit e307ba340c ("kconfiglib: Record
which MenuNode has each property").

Commit message from Kconfiglib (c8801514d63aa)
==============================================

Fix incorrectly ordered properties for some nested multi.def. symbols

_propagate_deps() visits menu nodes roughly breadth-first, meaning
properties on symbols and choices defined in multiple locations could
end up in the wrong order when copied from the menu node for some
unlucky if/menu nestings.

Fix it by moving the menu-node-to-symbol/choice property copying in
_finalize_tree() so that it's guaranteed to happen in definition order.

This bug was introduced by commit 63a4418 ("Record which MenuNode has
each property").

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-06-14 19:45:58 +02:00
..
checkconfig.py kconfig: Mention that checkconfig.py lacks Kconfiglib 2 support 2018-05-07 21:53:37 +02:00
diffconfig scripts: move kconfig related scripts to scripts/kconfig 2017-09-11 08:53:56 -07:00
kconfig.py scripts: kconfig: Disable the "FOO set more than once" warning 2018-06-13 14:06:38 +02:00
kconfiglib.py kconfiglib: Fix incorrectly ordered props. for some multi.def symbols 2018-06-14 19:45:58 +02:00
menuconfig.py menuconfig: Fix searching for nonexistent objects 2018-06-12 20:27:20 -04:00