LINUX.ORG.RU

История изменений

Исправление Stanson, (текущая версия) :

Ну slackware-arm так собирают, например, наверно можно туда глянуть.

обычные маны по distcc ненадо.

Надо.

Вкратце - так:

Добавляешь в ARM системе какой-нибудь /etc/distcc/bin, добавляешь его в PATH, в /etc/distcc/bin делаешь заглушку на баше для gcc, cc, g++ типа

#!/bin/sh
exec /etc/distcc/bin/arm-none-eabi-$(basename "$0") "$@"
и делаешь /etc/distcc/bin/gcc, g++, cc, c++ и т.д. линками на неё. она будет запускать лежащие там же /etc/distcc/bin/arm-*-gcc, arm-*-g++ которые являются линками уже на сам distcc. Это нужно, чтобы на distcc-сервере запускался именно arm-*-gcc а не нативный gcc при запуске команды gcc в ARM эмуляторе, например.

В /etc/distcc/hosts пишешь 127.0.0.1 (ЕМНИП localhost оно будет пытаться локально запустить) и запускаешь на машине distcc сервер, разумеется разрешив ему запускать arm-*-gcc и пр.

Можно добавить в environment DISTCC_FALLBACK=0 чтобы компиляция всегда была «удалённой». Подробнее см. man который ты не хочешь читать.

Разумеется компилятор ARM в qemu и нативный кросс должны быть из одних исходников, чтобы не напороться на практически не отлавливаемые загадочные глюки, которые могут внезапно всплыть там, где не ожидаешь.

distcc по умолчанию использует локальный препроцессор, так что совсем избавится от ARM gcc не выйдет. Но у distcc есть pump-mode о котором можно прочитать подробнее в ненавистном мане. Для pump-mode надо будет побольше постараться и обеспечить для нативного кросса доступ к системным ARM headers используемым при компиляции.

Исправление Stanson, :

Ну slackware-arm так собирают, например, наверно можно туда глянуть.

обычные маны по distcc ненадо.

Надо.

Вкратце - так:

Добавляешь в ARM системе какой-нибудь /etc/distcc/bin, добавляешь его в PATH, в /etc/distcc/bin делаешь заглушки на баше для gcc, cc, g++ типа

#!/bin/sh
exec /etc/distcc/bin/arm-none-eabi-$(basename "$0") "$@"
и т.д. которые запускают лежащие там же arm-*-gcc, arm-*-cc которые являются линками на distcc. Это нужно, чтобы на distcc-сервере запускался именно arm-*-gcc а не нативный gcc при запуске команды gcc в ARM эмуляторе, например.

В /etc/distcc/hosts пишешь 127.0.0.1 (ЕМНИП localhost оно будет пытаться локально запустить) и запускаешь на машине distcc сервер, разумеется разрешив ему запускать arm-*-gcc и пр.

Можно добавить в environment DISTCC_FALLBACK=0 чтобы компиляция всегда была «удалённой». Подробнее см. man который ты не хочешь читать.

Разумеется компилятор ARM в qemu и нативный кросс должны быть из одних исходников, чтобы не напороться на практически не отлавливаемые загадочные глюки, которые могут внезапно всплыть там, где не ожидаешь.

distcc по умолчанию использует локальный препроцессор, так что совсем избавится от ARM gcc не выйдет. Но у distcc есть pump-mode о котором можно прочитать подробнее в ненавистном мане. Для pump-mode надо будет побольше постараться и обеспечить для нативного кросса доступ к системным ARM headers используемым при компиляции.

Исходная версия Stanson, :

Ну slackware-arm так собирают, например, наверно можно туда глянуть.

обычные маны по distcc ненадо.

Надо.

Вкратце - так:

Добавляешь в ARM системе какой-нибудь /etc/distcc/bin, добавляешь его в PATH, в /etc/distcc/bin делаешь заглушки на баше для gcc, cc, g++ типа

#!/bin/sh
exec /etc/distcc/bin/arm-none-eabi-gcc "$@"
и т.д. которые запускают лежащие там же arm-*-gcc, arm-*-cc которые являются линками на distcc. Это нужно, чтобы на distcc-сервере запускался именно arm-*-gcc а не нативный gcc при запуске команды gcc в ARM эмуляторе, например.

В /etc/distcc/hosts пишешь 127.0.0.1 (ЕМНИП localhost оно будет пытаться локально запустить) и запускаешь на машине distcc сервер, разумеется разрешив ему запускать arm-*-gcc и пр.

Можно добавить в environment DISTCC_FALLBACK=0 чтобы компиляция всегда была «удалённой». Подробнее см. man который ты не хочешь читать.

Разумеется компилятор ARM в qemu и нативный кросс должны быть из одних исходников, чтобы не напороться на практически не отлавливаемые загадочные глюки, которые могут внезапно всплыть там, где не ожидаешь.

distcc по умолчанию использует локальный препроцессор, так что совсем избавится от ARM gcc не выйдет. Но у distcc есть pump-mode о котором можно прочитать подробнее в ненавистном мане. Для pump-mode надо будет побольше постараться и обеспечить для нативного кросса доступ к системным ARM headers используемым при компиляции.