Fixing an AVR and Arduino toolchain on Gentoo
Summary
Johannes documents how contradictory C++ USE flags and missing symlinks block the AVR cross-compiler on Gentoo. The problem concerned the transition to GCC stage two. Gentoo bug 147155 documents part of the error.
Ideas
- crossdev changes its expectations of C++ support during different build stages.
- A second run continues after the stages already built.
- Missing linker scripts and start objects can be made visible with targeted symlinks.
Insights
- Package automation can create contradictory intermediate states that only a build log reveals.
- Reproducible embedded toolchains need pinned versions instead of the latest packages every time.
Facts
- Johannes used Gnoduino as a native Arduino interface.
Recommendations
- Build the toolchain in a reproducible container or chroot.
- Document compiler, binutils, libc and MCU start objects together.
References
Read the original article on hanez.org
Links to the original source and the Web Archive open in a new tab.