This is the mail archive of the gcc@gcc.gnu.org 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: Sequential build of libjava


> On 5 Sep 2002, Tom Tromey wrote:
>
> > Do other target directories build in parallel?
> 
> No, _all_ of the target libraries, if they are started by the toplevel
> Makefile are built serially.  GNU make thinks, that suddenly the jobserver
> is missing and goes back to -j1.  Probably because file descriptors used
> for communication with the submakes are closed or so.  This happens since,
> erhm, forever.  I never quite understood, why the submakes building the
> target libs miss the jobserver, but e.g. the submakes doing the normal
> bootstrap in gcc/ have it available.

OK, the precise message in the build log is

make[3]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.

(repeated 8 times)

Any gnu make experts here?  Anybody know what this means?  (Yes, I read the
make.info* text, and, no, I don't understand it.)  Is it a matter of
putting a + somewhere in the Makefiles to get this to work?

I don't want to put "MAKE=make -j 8" for submakes, since then I might get
64 or 512 or ... processes running all at once.  I *like* how gnu make
keeps the total number of jobs at 8 with "make -j 8".

Brad

PS: Sorry about implying that it was libjava's fault.  It's just that
libjava seemed to always be library being built when the load was 1
instead of higher on my machine.


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