Последнее время наблюдаю много коммитов с маркированием портов MAKE_JOBS_SAFE for SMP compilation
интересно а как эту фкусность использовать
паралельная сборка портов (MAKE_JOBS_SAFE)
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
паралельная сборка портов (MAKE_JOBS_SAFE)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
- Контактная информация:
Re: паралельная сборка портов (MAKE_JOBS_SAFE)
Код: Выделить всё
echo "MAKE_JOBS_SAFE=yes" >> /etc/make.conf
Z301171463546 - можно пожертвовать мне денег
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: паралельная сборка портов (MAKE_JOBS_SAFE)
нэээ
bsd.port.mk
net-p2p/edonkey-tool-hash/Makefile

bsd.port.mk
Код: Выделить всё
.if defined(DISABLE_MAKE_JOBS) || defined(MAKE_JOBS_UNSAFE)
_MAKE_JOBS= #
.else
.if defined(MAKE_JOBS_SAFE) || defined(FORCE_MAKE_JOBS)
.if defined(MAKE_JOBS_NUMBER)
_MAKE_JOBS= -j${MAKE_JOBS_NUMBER}
.else
_MAKE_JOBS= -j`${SYSCTL} -n kern.smp.cpus`
.endif
.if defined(FORCE_MAKE_JOBS)
BUILD_FAIL_MESSAGE+= "You have chosen to use multiple make jobs (parallelization) for all ports. This port was not tested for this setting. Please remove FORCE_MAKE_JOBS and retry the build before reporting the failure to the maintainer."
.endif
.endif
.endif
Код: Выделить всё
MAKE_JOBS_SAFE= yes
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
-
- проходил мимо
Re: паралельная сборка портов (MAKE_JOBS_SAFE)
читай рассылку freebsd-ports@ и/или комментарии в Mk/bsd.port.mk. Ничего особенного в этом нет, просто дочерний make или gmake теперь в зависимости от флага в порте MAKE_JOBS_SAFE будет запускаться с опцией -jX, коя контроллирует кол-во одновременно выполняемых целей, например несколько инстанций gcc. Но это касается не только портов, кои компилятся с помощью make/gmake. pav@ одобрил использование _MAKE_JOBS и в других системах сборки (напр, bjam в devel/boost).
глянь на примере emulators/qemu или emulators/sdlmame, запусти компиляцию с MAKE_JOBS_NUMBER=8 и посмотри кол-во инстанций gcc. Их должно быть 8. По дефолту их правда будет в соответствии с кол-вом ядер.
я у ся сконвертил самопальное распараллеливание на то, что закомиттил pav@. Теперь у мя в make.confвпрочем, список я пока не почистил. Много портов уже пофиксили на предмет распараллеливания.
ps, после это фичи PR'ы растут как грибы после дождя : query-pr-summary.cgi?text=MAKE_JOBS_SAFE
глянь на примере emulators/qemu или emulators/sdlmame, запусти компиляцию с MAKE_JOBS_NUMBER=8 и посмотри кол-во инстанций gcc. Их должно быть 8. По дефолту их правда будет в соответствии с кол-вом ядер.
я у ся сконвертил самопальное распараллеливание на то, что закомиттил pav@. Теперь у мя в make.conf
Код: Выделить всё
FORCE_MAKE_JOBS=
MAKE_JOBS_NUMBER!= let $$(sysctl -n kern.smp.cpus) \* 4
.for port in \
emacs-devel cross-binutils libgpg-error perl5.8 libthai \
libiconv m17n-lib nasm tightvnc db47 subversion* \
ghostscript8 pth cdrtools* w3m* xmp libslang2 ezm3 dcget libxml2 \
vim gperf ffcall ORBit2 py-gtk2 xkeyboard-config ruby18 clisp \
jdk16 p7zip zsh libsndfile openjdk6 gettext stumpwm
. if ${.CURDIR:M*/${port}}
MAKE_JOBS_UNSAFE=
. endif
.endfor
ps, после это фичи PR'ы растут как грибы после дождя : query-pr-summary.cgi?text=MAKE_JOBS_SAFE
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: паралельная сборка портов (MAKE_JOBS_SAFE)
грибы - да, спасибо за разъяснения 
я тут http://cia.vc/stats/project/FreeBSD/ через rss мониторю как дила

я тут http://cia.vc/stats/project/FreeBSD/ через rss мониторю как дила
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.