Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When using TMC 2209 Uart, the lib
TMCStepper
depends onSoftwareSerialM
(feature:HAS_TMC_SW_SERIAL
). The problem is that no matter the way we send the dependencies to platformio lib_deps, it randomly send to the link the libs in the wrong order.The linker needs: dependent first, dependency last. Because as it is compiling, it discards non used references (until the compiled file). So, if SoftwareSerialM appear before TMCStepper in the linker command line, all symbols in SoftwareSerialM will be discarded, because they aren't used yet. The correct order is: TMCStepper first, SoftwareSerialM last.
Both dependency graph puts the SoftwareSerialM before TMCStepper....
Or
This PR add a linker flag (
-Wl,--start-group
), to solve it.Benefits
Related Issues
#18699