lmi
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi] Alien msvc rtl dll messing with the fpu?


From: Greg Chicares
Subject: [lmi] Alien msvc rtl dll messing with the fpu?
Date: Tue, 10 Jan 2006 18:30:22 +0000
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)

Vadim--Could I have your thoughts on this please?

I just received a problem report indicating that the floating-point
hardware control word is changed while lmi is running. The program
always detected that and tried to issue a warning upon exit. But
I believe that until quite recently that warning was correctly
triggered but defectively not displayed: IIRC, I was using wxLog
during application shutdown, after the main loop terminated. Anyway,
the warning is displayed now in certain circumstances. I haven't
been able to reproduce it myself, but others can reproduce it about
one time in four through a complex series of steps.

It's strikingly similar to this:

  http://community.borland.com/article/0,1410,17627,00.html

which I remember caused much difficulty with borland tools, e.g.:

  
http://groups.google.com/group/borland.public.cpp.language/browse_thread/thread/be698b77c1f921b0/4238ba168e838518

In those days, calling LoadLibrary("commctrl.dll") on startup, then
reinitializing the fpu, was a fairly effective safeguard. Later, I
guess that became "comctl32.dll", but now I don't find either on my
msw system. So I figure my msw knowledge is out of date, but yours
is probably much more current. How would that be accomplished today?
Do those dlls even exist anymore?

I suspect that this stems from some process that lmi spawns for
printing--adobe 'acrobat', perhaps, or apache 'fop', which is java
and loads a jvm. They could have been compiled with any version of
the msvc rtl dll. I'll certainly change the code to save and restore
the fpu control word whenever I spawn anything.

I think it's still possible, though, for a completely separate
process to cause this problem, probably by loading a copy of some
redistributable msvc rtl dll. Do applications typically dump copies
of such dlls into the system directory as they used to? I guess I
could enumerate all the 'msvcrt*.dll' files there and load them all,
but I fear that might just cause worse problems.

Have the wx developers ever needed to address this issue? I figure
it's better to ask before I try inventing a solution.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]