Ich muss für ein i586-Ziel (keine MMX-Anweisungen) mit GCC 5.3 innerhalb einer i686-Host-Umgebung (32-Bit-Ubuntu-Docker-Container) bauen. Die Host-Toolchain ist i686. Gibt es das überhaupt, ohne einen i586 Cross-Compiler zu erstellen?Build für i586 Ziel mit GCC 5.3 i686 Host Toolchain
0
A
Antwort
1
Ja, Sie können gcc anweisen, Anweisungen für einen bestimmten Maschinentyp zu generieren, indem Sie die Option angeben. Siehe x86 Options in der Dokumentation zu gcc. So würden Sie etwas in der Art benötigen:
g++ -march=i586 [...]
Versucht, dass. Die generierte Binärdatei würde immer noch nicht auf dem Ziel funktionieren. Kompiliert auch eine statische binäre und es enthielt definitiv MMX-Anweisungen am wahrscheinlichsten von glibc. – crayguy
Ich glaube, Sie müssen eine Verbindung zur libc-Version (oder einer kleineren) herstellen, die auf dem Zielcomputer installiert ist. Ich würde versuchen, die alte libc-Version auf Ihrem Build-System zu kompilieren (wieder mit -march = i586), und verlinken dagegen. vielleicht hilft das: [http://stackoverflow.com/questions/2728552/how-to-link-to-a-different-libc-file](http://stackoverflow.com/questions/2728552/how-to- Link zu einer anderen-libc-Datei – Wurmloch