esp32: Fix linker errors with CMake <3.25 and libbtree.

As we add the object files to the linker command line directly,
they go after the other library dependencies and therefore don't
resolve their dependencies. Turns out the only dependent symbol of
the btree library is abort_, so explicitly include it in the link.

The old way of linking the entire library is cleaner, but stopped working
with ESP-IDF V5.5...

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
This commit is contained in:
Angus Gratton 2026-01-22 18:00:57 +11:00 committed by Damien George
parent 5e04827725
commit 3ca27229a9

View File

@ -289,6 +289,7 @@ endif()
# Add additional extmod and usermod components.
if (MICROPY_PY_BTREE)
target_link_libraries(${MICROPY_TARGET} $<TARGET_OBJECTS:micropy_extmod_btree>)
target_link_libraries(${MICROPY_TARGET} "-u abort_") # micropy_extmod_btree links to this symbol found in MICROPY_TARGET
endif()
target_link_libraries(${MICROPY_TARGET} usermod)