x86_64: floating-point environment (i.e. fenv.h). BUG.
Houder
houder@xs4all.nl
Wed Aug 1 11:49:00 GMT 2018
On 2018-08-01 13:00, Corinna Vinschen wrote:
> On Aug 1 12:22, Houder wrote:
>> Hi Corinna,
>>
>> Short version of my report (as there is more to say about the
>> implementation
>> of
>> "fenv") in Cygwin; this time I restrict myself to a bug in fegetenv()
>> ).
>>
>> (Note to myself: attach STC)
>>
>> I am reporting a bug in fegetenv() in winsup/cygwin/fenv.cc. There is
>> no
>> hurry
>> in repairing this bug, as "fenv" is hardly ever (never?) used by
>> anyone.
>>
>> fegetenv() should be modified as follows:
>>
>> from:
>> __asm__ volatile ("fnstenv %0" : "=m" (envp->_fpu) : );
>> if (use_sse)
>> __asm__ volatile ("stmxcsr %0" : "=m" (envp->_sse_mxcsr) : );
>> return 0
>>
>> to:
>> // Henri: copying glibc ...
>> __asm__ volatile ("fnstenv %0\n"
>> "fldenv %0" : "=m" (envp->_fpu) : );
>> if (use_sse)
>> __asm__ volatile ("stmxcsr %0" : "=m" (envp->_sse_mxcsr) : );
>> return 0;
>
> Since you know how to fix things, please just send patches to
> the cygwin-patches ML.
Ah ... Agreed. However, as I am not set up for building (anymore), this
will take some time ... (not even git is installed).
(yes, I did verify the above modification (and more), however I did that
"locally" (basically, I included winsup/cygwin/fenv.cc in my STC) ).
Regards,
Henri
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list