This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Long bootstrap/check times on sparc
- From: Phil Edwards <phil at jaj dot com>
- To: Brad Lucier <lucier at math dot purdue dot edu>
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 8 May 2002 12:59:03 -0400
- Subject: Re: Long bootstrap/check times on sparc
- References: <200205081646.g48GkAg24582@banach.math.purdue.edu>
On Wed, May 08, 2002 at 11:46:10AM -0500, Brad Lucier wrote:
> Recently, there have been several moans of complaint about how slowly
> solaris bootstraps gcc and runs make check. My experience is that
> the biggest time sink is multilibing libjava, since, for some reason,
> parallel build is disabled in the libraries; see Michael Matz's post
>
> http://gcc.gnu.org/ml/gcc/2002-03/msg01748.html
Two side points: First, since I have seen some guessing elsewhere about
the cause of this error, I thought I'd just dump some info:
`warning: -jN forced in submake: disabling jobserver mode.'
This warning and the next are generated if `make' detects error
conditions related to parallel processing on systems where
sub-`make's can communicate (*note Communicating Options to a
Sub-`make': Options/Recursion.). This warning is generated if a
recursive invocation of a `make' process is forced to have `-jN'
in its argument list (where N is greater than one). This could
happen, for example, if you set the `MAKE' environment variable to
`make -j2'. In this case, the sub-`make' doesn't communicate with
other `make' processes and will simply pretend it has two jobs of
its own.
`warning: jobserver unavailable: using -j1. Add `+' to parent make rule.'
In order for `make' processes to communicate, the parent will pass
information to the child. Since this could result in problems if
the child process isn't actually a `make', the parent will only do
this if it thinks the child is a `make'. The parent uses the
normal algorithms to determine this (*note How the `MAKE' Variable
Works: MAKE Variable.). If the makefile is constructed such that
the parent doesn't know the child is a `make' process, then the
child will receive only part of the information necessary. In
this case, the child will generate this warning message and
proceed with its build in a sequential manner.
> Solaris is not so bad when you can build the libraries with make -j 4, say,
> and overlap some of their outrageous file access and system times.
> Perhaps someone can figure out how to fix this problem with gnu make.
Also, try to avoid compiling over NFS. In fact, if you can place the
entire build dir in a Solaris tmpfs, build times can decrease significantly.
Phil
--
If ye love wealth greater than liberty, the tranquility of servitude greater
than the animating contest for freedom, go home and leave us in peace. We seek
not your counsel, nor your arms. Crouch down and lick the hand that feeds you;
and may posterity forget that ye were our countrymen. - Samuel Adams