delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1997/02/03/10:22:51

Date: Mon, 3 Feb 1997 17:17:43 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: "Douglas B. Rupp" <rupp AT gnat DOT com>
cc: djgpp-workers AT delorie DOT com
Subject: Re: bash and make gnat1 (or cc1plus)
In-Reply-To: <9702022100.AA22077@nile.gnat.com>
Message-ID: <Pine.SUN.3.91.970203170632.27099B-100000@is>
MIME-Version: 1.0

On Sun, 2 Feb 1997, Douglas B. Rupp wrote:

> After spending some time trying to debug this I discovered that make 
> builds a command line that looks like:

Your description is correct and is exactly how Make, `system' and 
`dosexec' should work when $SHELL points to a Unixy shell (signaled by 
its name).

> and then a sigsegv occurs in _dos_exec().  The interesting thing is that I
> can arrange to save the temp file and execute a test program that
> simply calls system ("/bin/sh.exe d:/djgpp/tmp/dj100000"), and it works
> fine. But if I hack make to hardcode in this identical call (in job.c), it
> blows up with the same sigsegv.

So even system ("/bin/sh.exe d:/djgpp/tmp/dj100000") without passing the 
environ GP Faults in the same way, right?  Or does passing environ make 
the difference?

> One other thing, symify of the traceback from make gives complete 
> garbage.  Also running make under gdb results in a completely bogus
> traceback.

I would advise against running Make under a debugger, because it behaves 
very differently in job.c where it calls subsidiary programs.  I never had 
enough time to figure out why and to fix that, but it has something to do 
with the fact that Make's stdin and stdout are different under a debugger 
(since they are the same process as far as DOS is concerned).

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019