bk99.de entertain the web since 1997

Eine AVR- und Arduino-Toolchain unter Gentoo reparieren

Zusammenfassung

Johannes dokumentiert, wie widersprüchliche C++-USE-Flags und fehlende Symlinks den AVR-Crosscompiler unter Gentoo blockieren.

Ideen

  • crossdev ändert während verschiedener Buildstufen seine Erwartungen an C++-Unterstützung.
  • Ein zweiter Lauf setzt nach bereits gebauten Stufen fort.
  • Fehlende Linkerskripte und Startobjekte lassen sich mit gezielten Symlinks sichtbar machen.

Einsichten

  • Paketautomatisierung kann widersprüchliche Zwischenzustände erzeugen, die nur ein Buildprotokoll offenlegt.
  • Reproduzierbare Embedded-Toolchains brauchen festgehaltene Versionen statt jeweils neuester Pakete.

Fakten

  • Das Problem betraf den Übergang zu GCC-Stufe zwei.
  • Gentoo-Bug 147155 dokumentiert einen Teil des Fehlers.
  • Johannes verwendete Gnoduino als native Arduino-Oberfläche.

Empfehlungen

  • Baue die Toolchain in einem reproduzierbaren Container oder Chroot.
  • Dokumentiere Compiler, Binutils, libc und MCU-Startobjekte gemeinsam.

Referenzen

Originalbeitrag auf hanez.org lesen →