compiling ports with more than one job

Christian Baer christian.baer at uni-dortmund.de
Wed Feb 28 10:33:00 UTC 2007


Good morning[1], folks!

I am currently setting up a Sun U60 with FreeBSD. A few amount of apps
will be installed on it, when I'm through with it. And that is where it
gets a little frustrating.

The packages for SPARC64 aren't really up to date. That is why using
them isn't really an option. Besides, some programs actually get a real
boost if they are compiled with an -mcpu flag, which probably isn't set
when the packages are compiled. So, I'm down to installing them over the
ports collection.

That isn't bad in itself. But even a U60 isn't really a fast machine and
if you compile bigger collections (like x.org, kde, firefox etc.) you
can watch yourself aging while the machine is at it. It would be a great
help if I could really use both CPUs in this machine. But somehow that
doesn't work. I have observed two things so far (in general):

Some ports (like mc) have a menu for choosing the compile options. If I
try to make one of those with more than one job (make -j 2) I can't hit
any of the boxes on the list of options or even hit the "ok" button. It
would seem that make went on to the next job without actually waiting
for the input.

The same background but with a slightly different effect is also true
for ports without a menu. I couldn't make xorg with more than one job
because make just ran on without waiting for the required things to be
there and stopped with a "no such file or directory". That is quite a
drag as on UltraSPARC II CPUs compiling isn't much fun even if you use
all the CPU-power there is.

Normally you'd think that a meta-port like xorg just hast to be compiled
step by step. However, a far more complex system (make -j 4 buildworld)
works just fine.

Am I too thick to get the point here or is it really true that the ports
in general will only compile correctly one job at a time?

Regards
Chris

[1] It is where I live. :-)


More information about the freebsd-questions mailing list