Страница 1 из 1

parallel port build

Добавлено: 2008-08-26 4:46:06
Гость
есть какой-нить способ собирать порт в несколько процессов, но не патча Mk/bsd.port.mk (ports/113132)? Что-то вроде `MAKE_FLAGS=-j3 -f' в make.conf, но тогда приходится делать специальные правила для отдельных портов (pkg_info -aqo | sort | xargs -I% egrep -H MAKE_FLAGS.\?= /usr/ports/%/Makefile), кои используют эту переменную, иначе порт собирается только одним процессом.

К тому же этот вариант все равно бесполезен для scons и подобных скриптовых сборок... или нет?

Re: parallel port build

Добавлено: 2008-08-26 5:56:13
manefesto
честно говоря не заморачивался.
Ты можешь выиграть во времени сборки порта, но так же можешь отловить баги.
Взять хотя бы проблемы с которыми встречаються люди при построении мира типа

Код: Выделить всё

make -j4 buildworld
В один поток нормально собирается, в 4 потока вылетает с ошибками.

Пиши PR пусть репу чешут.

Re: parallel port build

Добавлено: 2008-08-26 8:40:58
Гость
manefesto писал(а):Ты можешь выиграть во времени сборки порта, но так же можешь отловить баги.
Ага, и почти во всех случаях дедукция приводила к gcc44 и один раз к -combine в CFLAGS на audio/xmp.

firefox3, gtk20, gcc44, xorg-server, sdlmame/sdlmess выживали -jX.
manefesto писал(а):Взять хотя бы проблемы с которыми встречаються люди при построении мира типа

Код: Выделить всё

make -j4 buildworld
Постоянно собираю в 3 потока 8-current (с патчами для usb2, zfs11, hda, mpsafetty) на двухядернике и ни разу не было проблем из-за -jX, что на amd64, что на i386. Единственное... откопать ошибку компиляции бывает иногда неудобно из-за перемешавшегося вывода и поэтому иногда прогоняю повторно без -jX с -DNO_CLEAN, чтобы посмотреть на ошибку. Наверное, людей сбивает с толку Error code 1 "на пустом месте".

Запустил make -j16 buildworld... вроде нет проблем, окромя интенсивного использования swap'а. Но это на двухъядернике...
manefesto писал(а):Пиши PR пусть репу чешут.
Так PR уже есть. Выше привел. Да и не умею я их составлять.

Re: parallel port build

Добавлено: 2008-08-26 14:19:25
paix
в UPDATING не рекомендуется -j использовать.

PR по этому поводу тоже имхо глупость. Т.к. вам скажут попробовать со стандартными оптимизациями.

По сему, порты также предпочитаю в один поток собирать. На продакшине стабильность важнее.
ну а на десктопе - ссзб как говорится ;)

Re: parallel port build

Добавлено: 2008-08-28 2:45:17
Гость
paix, меня не волнует "что может быть?" или "зачем?", меня интересует "как?". А выводы можно я сделаю сам?!

Re: parallel port build

Добавлено: 2008-08-28 7:06:26
weec
гость, глянь, в рассылке, отчеты за второй квартал
там упоминалось о ведущейся работе в сторону многопоточной сборки портов
тут тебе вряд ли чего-то нового скажут