2011-01-12 3 views
5

Я пытаюсь настроить небольшой кластер сборки дома с помощью distcc. Существуют две системы x64 и 1 система i686. Все системы работают под управлением Ubuntu 10.10 и обновлены. Системой, инициирующей сборку, является x64. Distcc отлично работает между двумя системами x64, но все задачи сборки, отправленные в систему i686, терпят неудачу.Перекрестная компиляция x86_64 на i686-системе на Ubuntu с distcc

До сих пор:

  • Я установил мультибиблиотечном пакет для г ++ на этой системе. Я могу с помощью кросс-компиляции в x64 локально использовать g++ -m64
  • Исправлена ​​ссылка в поле /usr/lib/distcc/g++, чтобы указать на сценарий, в котором экспликация задает параметр -m64.

Любые предложения?

+0

Каковы конкретные симптомы отказа? –

+0

Системы были довольно общими - машина, которая была инициирована, сообщала, что машина 32 имела ошибки, поэтому она пыталась построить локально. Каждый раз, когда он строился локально, он работал, поэтому 32-битная машина в конечном итоге была помещена в «черный список» немного. –

ответ

5

Попытка этот раз после дополнительных исследований:

GCC имеет page describing the i386 and x86-64 options. Флаг -m64 говорит, что генерирует 64-битный код, но вы также захотите указать тип CPU с -march=i686 или -march=k8 или аналогичными, чтобы использовать правильный набор команд.

Поскольку distcc отправляет флаги командной строки GCC, вы должны попробовать добавить их в команду distcc, запущенную локально, и пропустить удаленный скрипт для установки флагов.

Если вы протестируете флаги архитектуры на своей локальной машине x64 без distcc, просто g ++, тогда она должна предоставить вам правильные двоичные файлы при использовании distcc.

+0

Я определенно использовал '-m64', чтобы получить 64-битные сборки на x86 в последнее время. –

+0

Arghhh ... так просто. Чтобы он работал, я просто установил (на машине x64, которая инициировала сборку) CFLAGS и CXXFLAGS на -m64. Благодаря! –

Смежные вопросы