Auch wenn dies ninja
nicht make
der Fall ist, sollte sein Ebuild alle -j
in der MAKEOPTS
Umgebungsvariablen angegebenen Parameter erkennen und respektieren . Das heißt, Sie sollten maximal einen Job über erzwingen können MAKEOPTS=-j1
. Sie können dies einmalig tun:
MAKEOPTS=-j1 emerge -a llvm
Sie können diese Änderung auch global / permanent für alle Pakete in Ihrem System festlegen, indem Sie die MAKEOPTS=
Zeile bearbeiten /etc/portage/make.conf
.
Wenn Sie jedoch MAKEOPTS=-j1
über Ihre Shell oder festlegen make.conf
, werden die Parallelisierungseinstellungen auf alle Pakete angewendet, die emerge
installiert werden. Wenn Sie es nur auf dieses eine Paket anwenden möchten, können Sie die Datei mit dem Namen /etc/portage/env/sys-devel/llvm
(ggf. fehlende Verzeichnisse erstellen) erstellen und diese Inhalte darin ablegen:
MAKEOPTS=-j1
Dadurch wird die Variable nur auf das llvm-Paket selbst angewendet.
So geht's in der Shell:
mkdir -p /etc/portage/env/sys-devel echo MAKEOPTS=-j1>>/etc/portage/env/sys-devel/llvm
Ninja und MAKEOPTS
In Gentoo MAKEOPTS=-j«n»
ordnen verschiedene E-Klassen und Ebuilds den -j
Parameter dieser Variablen dem Äquivalent für das verwendete Konstruktionssystem zu, da sich die Leute darauf verlassen, die Anzahl der Jobs zu steuern . Sie können dies in sehen eclass/ninja-utils.eclass
(was von cmake-utils.eclass
verwendet wird von llvm
). Dieses Snippet extrahiert nur den -j
Parameter und übergibt ihn an, ninja
da ninja
der Parameter unterstützt wird, während andere Elemente möglicherweise nicht unterstützt werden MAKEOPTS
.
Haftungsausschluss: Ich habe das nicht mit dem neuesten llvm
Ebuild getestet. Bitte kommentieren Sie, wenn es Probleme mit dieser Antwort gibt!