Building java library is slow
Michael Matz
matzmich@cs.tu-berlin.de
Thu Mar 28 05:58:00 GMT 2002
Hi,
On Thu, 28 Mar 2002, Bryce McKinlay wrote:
> lucier@math.purdue.edu wrote:
>
> >The java library seems to be made serially, even when "make -j 8' is
> >specified. Is there an easy way to fix this?
FWIW, I've seen the same.
> make MAKE="make -j 8"
>
> right?
No, with GNU make 3.79.1 this isn't necessary, because of the jobserver.
A simple make -j 12 should be (and formerly was) enough. With newer makes
the above (MAKE="make -j x") even is wrong, and gets disabled by make
internally (in that case it gives a warning about that "warning: -jN
forced in submake: disabling jobserver mode."). Unfortunately this
doesn't seem to work anymore. As soon as the target libraries are made,
somehow the jobsesrver of make seems to break. I get warnings like:
"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
This can be seen easier, if one does a "make -j 12 all-target-libiberty"
after a make bootstrap. As soon as the make enters the
$(TARGET_SUB_DIR)/libiberty the above message prints, and of course indeed
now only uses -j1.
Even hacking the -j 12 directly into the make calls in the top-level
Makefile doesn't help. Someone told me, the above error can only happen,
when the jobserver file descriptors get closed. I have no idea how a
Makefile can achieve that.
Ciao,
Michael.
More information about the Gcc
mailing list