Walter Dnes wrote:
On Mon, Dec 26, 2011 at 07:23:27PM +0100, Alex Schuster wrote
   I notice that you have 'MAKEOPTS="-j4"'.  You wouldn't believe how
many problems you can solve by changing to 'MAKEOPTS="-j1"'.  Yes, the
build process may take a bit longer, but the final executable runs just
as fast.  Change to 'MAKEOPTS="-j1"' and see what happens.

   The concept of parallel jobs is nice in theory, and you can *USUALLY*
get away with it.  The problem is that if a job tries to use an
intermediate file before it's fully created, or if the "destructor"
(file deletion) does it's thing before the scratch file has been used,
things get very fouled up.  My attitude is that the first time you spend
hours trying to trace down a non-replicatable bug, you will lose more
time than you "save" by speeding up builds with 'MAKEOPTS="-j4"'.

While I agree poking the MAKEOPTS is a good idea, I'd like to point out my own experience with parallel builds.

IME, running with emerge "--keep-going", and then running "emerge --resume --keep-going" once or twice *afterward* typically solves any problem I had on my first pass. I suspect unspecified dependencies are usually to blame.

Reply via email to