This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Building java library is slow


On Thu, 28 Mar 2002, Bryce McKinlay wrote:

> 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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]