2011-01-12 12 views
5

Próbuję skonfigurować mały klaster kompilacji w domu za pomocą distcc. Istnieją dwa systemy x64 i jeden i686. Wszystkie systemy działają w systemie Ubuntu 10.10 i są aktualne. System, który inicjuje kompilację, to x64. Distcc działa dobrze między dwoma systemami x64, ale wszystkie zadania kompilacji wysłane do systemu i686 zawodzą.Kompilacja krzyżowa x86_64 w systemie i686 na Ubuntu z distcc

tej pory:

  • Mam zainstalowany pakiet multilib dla g ++ na tym systemie. Jestem w stanie dokonać kompilacji z x64 lokalnie przy użyciu g++ -m64
  • Zmieniono łącze w /usr/lib/distcc/g++, aby wskazywało na skrypt, którego parametr explicity ustawia parametr -m64.

Wszelkie sugestie?

+0

Jakie są specyficzne objawy awarii? –

+0

Systemy były dość ogólne - maszyna, która inicjowała, zgłosiła, że ​​na 32 komputerze wystąpiły błędy, więc próbowano ją budować lokalnie. Za każdym razem, gdy był budowany lokalnie, działało, więc 32-bitowa maszyna została ostatecznie umieszczona na "czarnej liście". –

Odpowiedz

5

Próba ten jeden raz po dalszych badań:

GCC ma page describing the i386 and x86-64 options. Flaga -m64 mówi, że generuje kod 64-bitowy, ale będziesz również chciał określić typ procesora z -march=i686 lub -march=k8 lub podobnym, aby użyć poprawnego zestawu instrukcji.

Ponieważ distcc wysyła flagi linii poleceń GCC, powinieneś spróbować dodać je do polecenia distcc działającego lokalnie i pominąć skrypt zdalnego ustawiania flag.

Jeśli przetestujesz flagi architektury na lokalnym komputerze z procesorem x64 bez użycia distcc, po prostu g ++, to powinieneś podać odpowiednie pliki binarne podczas używania distcc.

+0

Zdecydowanie użyłem '-m64', aby uzyskać 64-bitowe kompilacje na x86. –

+0

Arghhh ... takie proste. Aby to działało, właśnie ustawiłem (na maszynie x64, która inicjowała kompilację) CFLAGS i CXXFLAGS na -m64. Dzięki! –

Powiązane problemy