Mail Archives: djgpp/1999/10/10/09:33:45
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.
- Raw text -