Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Thu, 25 Sep 2003 09:47:45 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: Strange make [Error 255] (cygwin bug?) Message-ID: <20030925134745.GC14708@redhat.com> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <006601c38335$a62e8dc0$8006fea9 AT bertigep> <20030925125239 DOT GH10088 AT cygbert DOT vinschen DOT de> <20030925134036 DOT GC20477 AT cygbert DOT vinschen DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030925134036.GC20477@cygbert.vinschen.de> User-Agent: Mutt/1.4.1i On Thu, Sep 25, 2003 at 03:40:36PM +0200, Corinna Vinschen wrote: >On Thu, Sep 25, 2003 at 09:14:09AM -0400, Igor Pechtchanski wrote: >> On Thu, 25 Sep 2003, Corinna Vinschen wrote: >> > "make bug"? I'm getting this on Linux: >> > >> > make: execvp: /bin/sh: Argument list too long >> > make: *** [all] Error 127 >> > >> > Doesn't look like a bug at all to me. >> > >> > Corinna >> >> Urp. What I meant was "if it fails in the same way on Linux". The above >> looks like a legitimate error message. FWIW, I just tried it on a RedHat >> 7.3 machine, and I'm getting the same error as Corinna. Now that you >> mention it, it could be that Cygwin's /bin/sh is exiting with status 255 >> on an overlong argument list, and this has nothing to do with make per >> se... Although all of >> >> for sh in /bin/sh /bin/ksh /bin/bash /bin/tcsh; do >> perl -e 'print "all:;\t\@true && echo \$\$SHELL && \\\n"; foreach $i (0000..9999) { print "\techo -n $i && \\\n"; } print "\techo && true\n";' | make -f - SHELL=$sh >> done >> >> printed "make: *** [all] Error 255", so I doubt it's a specific shell's >> behavior... This is obviously Cygwin-specific, though. > >Why so complicated? > >A simple strace shows that the native Windows call CreateProcess() fails >with error 87. > >$ net helpmsg 87 >The parameter is incorrect. > >Another simple look into MSDN for the CreateProcess call reveals: > > lpCommandLine > [in, out] Pointer to a null-terminated string that specifies the > command line to execute. The maximum length of this string is 32K > characters. How come cygwin isn't setting an errno appropriately, then? Shouldn't it be reflected by make? In any event, this might help: mount -f -X c:/cygwin/bin /bin mount -f -x c:/cygwin/bin/strace.exe /bin/strace.exe mount -f -x c:/cygwin/bin/cygcheck.exe /bin/cygcheck.exe since telling cygwin that the files are all cygwin-aware should make cygwin bypass the standard windows command line stuff. cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/