Resending to portage dev ml to solicit comments...

Thoughts welcome, since it's an issue that must be dealt with to 
sanely do efficient parallelization (monkeying with make.conf and 
hardcoding vals isn't much of a solution).

Zac- comments?  You seem to have totally missed the original email ;)

-------------------------------------
Date: Sun, 1 Oct 2006 12:27:13 -0700
To: gentoo-dev@lists.gentoo.org
From: Brian Harring <[EMAIL PROTECTED]>
Subject: Re: [gentoo-dev]  Setting number of parallel builds for other 
build-systems than 'make'

On Sun, Oct 01, 2006 at 09:52:14AM -0700, Donnie Berkholz wrote:
> Tiziano Müller wrote:
> >-----BEGIN PGP SIGNED MESSAGE-----
> >Hash: SHA1
> >
> >Hi everyone
> >
> >It seems that setting the number of parallel builds using '-jN' does not
> >only work for make, but also for scons and bjam (and maybe others as well).
> >Since it isn't save to assume that '-jN' is the only option in MAKEOPTS,
> >some filtering is needed.
> >Now, SCONSOPTS (BJAMOPTS respectively) could be added to make.conf and used
> >whenever one of those build-systems is being used. But we would probably
> >have to add a ...OPTS for every build-system.
> >
> >What do you think? Better ideas?
> 
> I think adding it for each build system is probably a good idea, 
> nobody's guaranteeing option-level compatibility with make. Optionally 
> falling back to using the few valid MAKEOPTS might be a nice addition.

I might be daft (likely), but why not just introduce a var indicating 
max parallelization instead?  Tweak portage to push that setting into 
MAKEOPTS="${MAKEOPTS+${MAKEOPTS} } -j${PARALLELIZATION}".

Might sound daft, but -j is hardcoded parallelization; if you're 
trying to run 3 build processes, the original var of -j isn't all that 
useful, nor will the hardcoded -j# var set for 3 package build 
processes be useful if you're doing a single build.

Depending on number of seperate package build processes possible, the 
# of build processes allocated per build process needs to vary 
(essentially).

Now... that's a bit ahead of what portage is doing atm, but folks 
*will* parallelize portage building (see bug 147516 if in doubt), so 
its not too far out.

Getting back to the actual topic, set this var, it's a raw int that a 
scons/bjam eclass can use to easily set appropriate var with the 
parallelization requested, thus unifying this particular knob; more 
importantly, it gives them a way to do what they're after while 
exposing a knob that the pkg manager can easily fiddle with for global 
parallelization needs.

Only downside to it I see is that it requires mangling the pkg manager 
to translate the parallelization setting into MAKEOPTS+=-j#; can't 
really get around that however due to the fact MAKEOPTS is already 
forced in installed configuration though.

Thoughts?
~harring

Attachment: pgpZOWWRmNkmO.pgp
Description: PGP signature

Reply via email to