Date: Sun, 10 Oct 1999 12:12:03 +0200 (IST) From: Eli Zaretskii X-Sender: eliz AT is To: Leonid Pauzner cc: djgpp AT delorie DOT com Subject: Re: DJGPP 2.02: redir.exe on FPU-less machine... In-Reply-To: <2.07b4.TRE1.FJ8E10@pauzner.mccme.ru> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Thu, 7 Oct 1999, Leonid Pauzner wrote: > >> crash.log always ends with: > >> FPU unavailable at eip=4f19; flags=3246 > >> eax=00000000 ebx=00000007 ecx=37fcb98d edx=37fcb98d > >> esi=00098f3b edi=00001eca ebp=00098920 esp=000988e8 cs=a7 > >> ds=af es=af fs=8f gs=bf ss=af error=0006 > > > This message comes from CWSDPMI, not from Make or the emulator. I have > csdpmi4b CWSDPMI binary distribution (release 4) This turns out to be a bug in redir.exe, introduced in v2.02. That version resets the FPU after the child program exits (because the child could crash due to SIGFPE and leave the FPU in shambles, which would crash redir on Windows), but it does so *before* reverting the exception handlers to its correct setup. (The exception handlers are toggled to their default state before running the child, so that an exception in the child won't crash redir.exe.) So, when the instruction that resets the FPU is issued, the no-FPU exception it triggers doesn't get passed to the emulator, and the rest, as they say, is history... I send you (in a separate mail) a patched binary of redir.exe; please tell me if it solves the problem.