Mesmo que ninja não seja make , seu ebuild deve reconhecer e respeitar qualquer parâmetro -j especificado na variável de ambiente MAKEOPTS . Isso significa que você deve ser capaz de forçar no máximo um trabalho via MAKEOPTS=-j1 . Você pode fazer isso de uma só vez:
MAKEOPTS=-j1 emerge -a llvm
Você também pode definir essa alteração global / permanente para todos os pacotes em seu sistema, editando a linha MAKEOPTS= em /etc/portage/make.conf .
No entanto, se você definir MAKEOPTS=-j1 via shell ou make.conf , as configurações de paralelização serão aplicadas a todos os pacotes que emerge instala. Se você quiser aplicá-lo apenas para aquele pacote, você pode criar o arquivo chamado /etc/portage/env/sys-devel/llvm (criar quaisquer diretórios ausentes, se necessário) e colocar estes conteúdos nele:
MAKEOPTS=-j1
Isso aplicará a variável somente ao próprio pacote llvm.
Como fazer isso no shell:
mkdir -p /etc/portage/env/sys-devel
echo MAKEOPTS=-j1>>/etc/portage/env/sys-devel/llvm
Ninja e MAKEOPTS
No Gentoo, porque as pessoas confiam em MAKEOPTS=-j«n» para controlar o número de empregos, vários eclasses e ebuilds mapearão o parâmetro -j desta variável para o equivalente do sistema de construção acutal em uso. Você pode ver isso em eclass/ninja-utils.eclass (que é usado por cmake-utils.eclass , que é usado por llvm ). Esse fragmento extrai apenas o parâmetro -j e passa-o para ninja porque ninja suporta esse parâmetro, embora possa não suportar outras coisas que as pessoas colocam em MAKEOPTS .
Isenção de responsabilidade: na verdade, eu não testei isso com a última llvm ebuild. Por favor, comente se existem problemas com esta resposta!