On 28.10.2007, at 23:52, js wrote:
On 10/29/07, Anders F Björklund <afb@macports.org> wrote:
Note that some ports will fail to build, when using "make -j 2"
What causes the build erorr? is it for bad Makefile or problem of "-j" option itself?
Bad makefiles, usually missing dependencies.
So, in a way, using -j encourage us to find wrong makefiles:)
Well, if you're lucky -- parallel builds get non-deterministic, so software _may_ build correctly. You may (!) even end up with a successful build that created "bad" installations with misbehaving software; An intermediate step that makes changes to a file may get scheduled after the last step compiles an object file from this file; this way you might get a successful build but w/o the changes from step 2. Those are extremely hard to trace bugs and maintainers might reject bug reports if builds got made parallel this way -- after all they cannot reproduce failing builds due to the non-determinism. I'd rather encourage a mechanism for port that provides a mechanism for port authors to know how many processors there are and to enable parallel builds if they know this to work. Perhaps a switch "use_parallel_build [yes|no]" that will add "-j 2*CPUS" to build.args. -Markus --- Markus W. Weissmann http://www.mweissmann.de/