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: Long bootstrap/check times on sparc


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


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