1 |
Walter Dnes wrote: |
2 |
> On Mon, Dec 26, 2011 at 07:23:27PM +0100, Alex Schuster wrote |
3 |
> I notice that you have 'MAKEOPTS="-j4"'. You wouldn't believe how |
4 |
> many problems you can solve by changing to 'MAKEOPTS="-j1"'. Yes, the |
5 |
> build process may take a bit longer, but the final executable runs just |
6 |
> as fast. Change to 'MAKEOPTS="-j1"' and see what happens. |
7 |
> |
8 |
> The concept of parallel jobs is nice in theory, and you can *USUALLY* |
9 |
> get away with it. The problem is that if a job tries to use an |
10 |
> intermediate file before it's fully created, or if the "destructor" |
11 |
> (file deletion) does it's thing before the scratch file has been used, |
12 |
> things get very fouled up. My attitude is that the first time you spend |
13 |
> hours trying to trace down a non-replicatable bug, you will lose more |
14 |
> time than you "save" by speeding up builds with 'MAKEOPTS="-j4"'. |
15 |
|
16 |
While I agree poking the MAKEOPTS is a good idea, I'd like to point out |
17 |
my own experience with parallel builds. |
18 |
|
19 |
IME, running with emerge "--keep-going", and then running "emerge |
20 |
--resume --keep-going" once or twice *afterward* typically solves any |
21 |
problem I had on my first pass. I suspect unspecified dependencies are |
22 |
usually to blame. |