2011-01-12 15 views
5

Ich versuche, einen kleinen Build-Cluster zu Hause mit distcc einzurichten. Es gibt zwei x64-Systeme und 1 i686-Systeme. Alle Systeme laufen unter Ubuntu 10.10 und sind auf dem neuesten Stand. Das System, das den Build initiiert, ist x64. Distcc funktioniert einwandfrei zwischen den beiden x64-Systemen, aber alle Build-Aufgaben, die an das i686-System gesendet werden, schlagen fehl.Kreuz compilieren x86_64 auf i686-System auf Ubuntu mit distcc

Bisher:

  • ich das multilib Paket für g installiert haben ++ auf diesem System. Ich bin in der Lage, x64 lokal kompilieren zu kompilieren mit g++ -m64
  • Die Verknüpfung in /usr/lib/distcc/g++ geändert, um auf ein Skript zu zeigen, dass Explicity den -m64 Parameter setzt.

Irgendwelche Vorschläge?

+0

Was sind die spezifischen Symptome des Fehlers? –

+0

Die Systeme waren ziemlich allgemein - die Maschine, die anfing, berichtete, dass die 32 Maschine Fehler hatte, also versuchte sie, lokal zu bauen. Jedes Mal, wenn es lokal erstellt wurde, funktionierte es, so dass die 32-Bit-Maschine schließlich für ein kleines bisschen auf die "schwarze Liste" gesetzt wurde. –

Antwort

5

Der Versuch, diesen einen wieder nach mehr Forschung:

GCC eine page describing the i386 and x86-64 options hat. Das -m64-Flag besagt, 64-Bit-Code zu generieren, aber Sie möchten auch den Typ der CPU mit -march=i686 oder -march=k8 oder ähnlichem angeben, um den richtigen Befehlssatz zu verwenden.

Da distcc die Flags der GCC-Befehlszeile ausgibt, sollten Sie versuchen, diese zum lokal laufenden Befehl distcc hinzuzufügen und das Remote-Skript zum Setzen von Flags zu überspringen.

Wenn Sie die Architektur-Flags auf Ihrem lokalen x64-Computer ohne distcc testen, nur g ++, dann sollte es Ihnen die richtigen Binärdateien geben, wenn Sie distcc verwenden.

+0

Ich habe definitiv '-m64' verwendet, um vor kurzem 64-Bit-Builds auf x86 zu bekommen. –

+0

Arghhh ... so einfach. Um es zum Laufen zu bringen, setze ich CFLAGS und CXXFLAGS auf den x64-Rechner, der den Build initiiert hat, auf -m64. Vielen Dank! –