Даже несмотря на то, что ninja не make , его ebuild должен распознавать и учитывать любой параметр -j указанный в переменной среды MAKEOPTS . Это означает, что вы должны быть в состоянии форсировать максимум одну работу через MAKEOPTS=-j1 . Вы можете сделать это на разовой основе:
MAKEOPTS=-j1 emerge -a llvm
Вы также можете установить это изменение глобально / постоянно для всех пакетов в вашей системе, отредактировав MAKEOPTS= в /etc/portage/make.conf .
Однако, если вы установите MAKEOPTS=-j1 через вашу оболочку или make.conf , параметры распараллеливания будут применены ко всем пакетам, которые emerge установке. Если вы хотите применить его только к одному этому пакету, вы можете создать файл с именем /etc/portage/env/sys-devel/llvm (при необходимости создайте отсутствующие каталоги) и поместить в него следующее содержимое:
MAKEOPTS=-j1
Это будет применять переменную только к самому пакету llvm.
Как это сделать в оболочке:
mkdir -p /etc/portage/env/sys-devel
echo MAKEOPTS=-j1>>/etc/portage/env/sys-devel/llvm
Ниндзя и MAKEOPTS
В Gentoo, поскольку люди полагаются на MAKEOPTS=-j«n» чтобы контролировать количество заданий, различные eclasses и ebuild-файлы будут сопоставлять параметр -j этой переменной с эквивалентом для используемой системы сборки. Вы можете увидеть это в eclass/ninja-utils.eclass (который используется cmake-utils.eclass который используется llvm). Этот фрагмент извлекает только параметр -j и передает его ninja потому что ninja поддерживает этот параметр, хотя он может не поддерживать другие вещи, которые люди помещают в MAKEOPTS .
Отказ от ответственности: я на самом деле не проверял это с последним llvm . Пожалуйста, прокомментируйте, если есть проблемы с этим ответом!