Cross-Compiler x86_64 auf i686-System auf Ubuntu mit distcc
-
10-10-2019 - |
Frage
Ich versuche, einen kleinen Build-Cluster zu Hause einrichten distcc verwenden. Es gibt zwei x64-Systeme und 1 i686-Systeme. Alle Systeme laufen Ubuntu 10.10 und sind auf dem neuesten Stand. Das System, das das Build initiiert ist x64. Distcc funktioniert gut zwischen den beiden x64-Systemen, sondern alle Build-Aufgaben an dem i686-System gesendet versagen.
Bisher:
- Ich habe das multilib Paket für g installiert ++ auf diesem System. Ich bin in der Lage vor Ort zu überqueren-Kompilierung auf x64 mit
g++ -m64
- Changed den Link in
/usr/lib/distcc/g++
zu Punkt zu einem Skript, das explizit den-m64
Parameter setzt.
Irgendwelche Vorschläge?
Lösung
Der Versuch, dies man wieder nach mehr Forschung:
GCC hat eine Seite Beschreibung der i386 und x86-64-Optionen . Die -m64
Flag sagt 64-Bit-Code zu generieren, aber Sie wollen auch die Art der CPU mit -march=i686
oder -march=k8
oder ähnlich zu spezifizieren, den korrekten Befehlssatz zu verwenden.
Da distcc die GCC-Befehlszeilen-Flags aus sendet, sollen Sie diese den distcc Befehl versuchen Sie, lokal und überspringen für das Setzen von Flags den Remote-Skript ausgeführt wird.
Wenn Sie die Architektur-Flags auf dem lokalen x64 Maschine testen, ohne distcc, nur g ++, dann sollte es Ihnen, die richtigen Binärdateien geben, wenn distcc verwenden.