This is the mail archive of the java@gcc.gnu.org mailing list for the Java 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


Well, part of the mystery might be solved with this message from the gnu make
maintainer that I found in the make-bugs mail list.  Bottom line---tcsh and csh
are broken with make -j <number>, and I'm using tcsh.  I'll test whether I
get a parallel build to work with bash after the current make check finishes.

Unforunately, this information has not yet made it into the gnu make info files.
Perhaps someone might like to add it to the gcc docs.

There may be other reasons why other people are getting these "jobserver
unavailable" messages when doing a "make bootstrap" on gcc; perhaps someone
can work with the gnu make developers to clean up the gcc makefiles to
make this work, especially now when more people have multiprocessor machines.

Brad

>From psmith@baynetworks.com Mon Jul 02 16:54:09 2001
Received: from ns1.baynetworks.com ([134.177.3.20] helo=baynet.baynetworks.com)
	by fencepost.gnu.org with esmtp (Exim 3.16 #1 (Debian))
	id 15HAhs-0004fS-00
	for <bug-make@gnu.org>; Mon, 02 Jul 2001 16:54:08 -0400
Received: from mailhost.BayNetworks.COM (ns4.baynetworks.com [132.245.135.84])
	by baynet.baynetworks.com (8.9.1/8.9.1) with ESMTP id NAA04882
	for <bug-make@gnu.org>; Mon, 2 Jul 2001 13:49:48 -0700 (PDT)
Received: from pobox.engeast.BayNetworks.COM (pobox.engeast.baynetworks.com [192.32.61.6])
	by mailhost.BayNetworks.COM (8.9.1/8.8.8) with ESMTP id QAA03864
	for <bug-make@gnu.org>; Mon, 2 Jul 2001 16:51:51 -0400 (EDT)
Received: from lemming.engeast.baynetworks.com (lemming [192.32.150.127])
	by pobox.engeast.BayNetworks.COM (SMI-8.6/BNET-97/04/24-S) with ESMTP
	id QAA04567; Mon, 2 Jul 2001 16:51:51 -0400
	for <bug-make@gnu.org>
Received: from psmith by lemming.engeast.baynetworks.com with local (Exim 3.22 #1 (Debian))
	id 15HAfW-0001o9-00; Mon, 02 Jul 2001 16:51:42 -0400
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <15168.57046.824491.834852@lemming.engeast.baynetworks.com>
Date: Mon, 2 Jul 2001 16:51:34 -0400
To: "Bhatt, Milan C" <milan.c.bhatt@intel.com>
Cc: "'bug-make@gnu.org'" <bug-make@gnu.org>
Subject: RE: Recursive GMAKE with -j option 
In-Reply-To: <9287DC1579B0D411AA2F009027F44C3F405CE8@FMSMSX41>
References: <9287DC1579B0D411AA2F009027F44C3F405CE8@FMSMSX41>
X-Mailer: VM 6.92 under Emacs 20.7.2
From: "Paul D. Smith" <psmith@gnu.org>
Reply-To: "Paul D. Smith" <psmith@gnu.org>
Organization: GNU's Not Unix!
Sender: bug-make-admin@gnu.org
Errors-To: bug-make-admin@gnu.org
X-BeenThere: bug-make@gnu.org
X-Mailman-Version: 2.0.5
Precedence: bulk
List-Help: <mailto:bug-make-request@gnu.org?subject=help>
List-Post: <mailto:bug-make@gnu.org>
List-Subscribe: <http://mail.gnu.org/mailman/listinfo/bug-make>,
	<mailto:bug-make-request@gnu.org?subject=subscribe>
List-Id: Bug reports for the GNU implementation of make <bug-make.gnu.org>
List-Unsubscribe: <http://mail.gnu.org/mailman/listinfo/bug-make>,
	<mailto:bug-make-request@gnu.org?subject=unsubscribe>
List-Archive: <http://mail.gnu.org/pipermail/bug-make/>

%% "Bhatt, Milan C" <milan.c.bhatt@intel.com> writes:

  bmc> Because tcsh wasn't fully POSIX compliant, it could not properly
  bmc> establish a pipe for communication between the sub-make processes
  bmc> leading to gmake complaining that the "job sever" wasn't
  bmc> available.

Wow.  I'm really surprised that C shell is so broken.  But, you're
right; here's a test makefile I used:

  #SHELL = /bin/tcsh

  all: one two

  one two:
          @echo 'all: ; @echo $@' | $(MAKE) -f -

If you run this with the SHELL line commented out and -j2 or whatever,
it works fine.  If you uncomment the SHELL line, it gives that error
because the file descriptors in the submake aren't valid any longer.
I couldn't see any way, reading the man page, to disable this behavior.


Note this has little to do with POSIX, per se.  Neither csh nor tcsh
have any relationship whatsoever to POSIX.  POSIX defines only one
shell, and that's Bourne (plus some stuff from ksh).  C shell variants
aren't even close, so it's not relevant to talk about POSIX compliance
and csh/tcsh.


I'll add a note to the GNU make docs that if you want to use jobserver
you can't use csh/tcsh as your SHELL (I tested this with csh on Solaris
and it failed as well, so it's not just tcsh).

This should not be a great hardship, since no one in their right mind
would do scripting in csh/tcsh anyway ;)

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <psmith@gnu.org>          Find some GNU make tips at:
 http://www.gnu.org                      http://www.paulandlesley.org/gmake/
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist



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