delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2000/05/30/17:41:07

Message-Id: <200005302138.AAA13874@alpha.netvision.net.il>
Date: Wed, 31 May 2000 00:38:23 +0200
X-Mailer: Emacs 20.6 (via feedmail 8.1.emacs20_6 I) and Blat ver 1.8.5b
From: "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il>
To: sandmann AT clio DOT rice DOT edu
CC: djgpp-workers AT delorie DOT com
In-reply-to: <10005301321.AA11392@clio.rice.edu> (sandmann@clio.rice.edu)
Subject: Re: W2k
References: <10005301321 DOT AA11392 AT clio DOT rice DOT edu>
Reply-To: djgpp-workers AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> From: sandmann AT clio DOT rice DOT edu (Charles Sandmann)
> Date: Tue, 30 May 2000 08:21:01 -0500 (CDT)
>
> > I could easily make a variant of Make that does this, but I'm not sure
> > Make alone will solve the problem.  In a typical Unix build, you have
> > something like this:
> > 
> >    make -> make -> bash -> gcc -> cc1
> > 
> > or this:
> > 
> >    make -> bash -> make -> gcc -> cc1
> > 
> > or even this:
> > 
> >    make -> bash -> make -> bash -> gcc -> cc1
> > 
> > So perhaps at least Bash should support this option, in order to test
> > it.
> 
> I'm willing to test builds with whatever images you provide.  At this
> point I'd be happy if any make would work.

I've put a version of Make linked with a hacked dosexec.c on my
server, it's available for anon ftp:

   ftp://is.elta.co.il/pub/make_nex.zip

Unzip make.exe and try to use it.  If you set W2KBUG in the
environment (the value is not important), it will toggle exceptions
before invoking child programs.

The diffs against dosexec.c in djlsr203.zip are reproduced below, so
if Someone (tm) can build Bash for Charles, please feel free...

--- src/libc/dos/process/dosexec.c~0	Thu Jun  3 13:27:36 1999
+++ src/libc/dos/process/dosexec.c	Tue May 30 23:21:58 2000
@@ -17,6 +17,7 @@
 #include <ctype.h>
 #include <sys/system.h>
 #include <sys/movedata.h>
+#include <sys/exceptn.h>
 #include <libc/dosexec.h>
 #include <libc/unconst.h>
 #include <libc/dosio.h>
@@ -1098,8 +1099,12 @@ int __spawnve(int mode, const char *path
     errno = is_dir ? EISDIR : ENOENT;
     return -1;
   }
+  if (getenv("W2KBUG"))
+    __djgpp_exception_toggle();
   errno = e;
   i = interpreters[i].interp(rpath, argvp, envpp);
+  if (getenv("W2KBUG"))
+    __djgpp_exception_toggle();
   if (mode == P_OVERLAY)
     exit(i);
   return i;

- Raw text -


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