newlib and long-double question

marco atzeri marco.atzeri@gmail.com
Sun Apr 10 11:28:00 GMT 2011


On Sat, Apr 9, 2011 at 11:10 PM, N. C.  wrote:
> On 4/9/11, marco atzeri <xxxxxxxxxxxxxxxx> wrote:

don't quote email address. On this list is highly unpolite.

>>>>I have recently discovered that the cygwin version I am using (1.7.7)
>>>>doesn't support many long-double function, like sqrtl, modfl, frexpl,
>>>>etc.

As cgf mentioned they are not implemented "yet" in cygwin

>>>>
>>>>I have been reading on newlib's website, sourceware.org/newlib, that
>>>>as of version 1.18.0, such long-double functions are now supported.
>>>>(http://sourceware.org/ml/newlib/2009/msg01135.html)
>>
>> further the newlib announce says:
>> * long double math routines added for platforms where LDBL == DBL

on cygwin LDBL(80 bit) != DBL(64 bit)  so we have not such outcome

>>
>> so in reality you gain no additional performance on the double.
>>
>>>>
>>>>What I can't seem to find out is, what version of newlib is in the
>>>>newest release of cygwin, and if it has this better support for
>>>>long-double functions.
>>>
>>> Cygwin uses whatever is in the newlib tree as of its release date.  That
>>> means that since Cygwin 1.7.7-1 was released in August 2010* it would
>>> incorporate any newlib changes from 2009.  That doesn't mean that we would
>>> export every single thing that newlib provides, however.  If functionality
>>> is missing that means that no one has taken the time to get it working in
>>> the Cygwin DLL.
>>>
>>> cgf
>>>
>>> *http://sourceware.org/ml/cygwin-announce/2010-08/msg00035.html
>>>
>>
>> on 1.7.8 most of the missing "double" function were added
>> http://sourceware.org/ml/cygwin-announce/2011-03/msg00000.html
>>
>> I thought to implement also the long double but as doubles are 64 bit
>> and long doubles are just 80 bits on windows, I found the effort not worth.
>>
>> Marco
>
> I have fully updated my cygwin tp 1.7.9(0.237/5/3) and I still get
> this error when I try to build Perl (5.12.3 in this case but same with
> other versions) with uselongdouble enabled in the Configure script,
> which fails with:
>
> *** You requested the use of long doubles but you do not seem to have
> *** the following mathematical functions needed for long double support:
> ***     sqrtl modfl frexpl
> *** Please rerun Configure without -Duselongdouble and/or -Dusemorebits.
> *** Cannot continue, aborting.

The message is clear "Don' use long double".
Have you checked how the cygwin perl mantainer is doing the things ?

>
>
> On a Linux system that I have access to, I see that those functions
> are in /lib/libm.* but cygwin's /lib/libm.* still seems to lack them.
> Is there any work around or alternate version ofthis lib that actually
> has these functions. I honestly do not mean to be rude, but how
> difficult is it to impliment these functions which seem so common in
> most unix-like systems?

It is not overcomplicated to implement it, but it takes time and
someone to do it.
When I implemented all the complex functions (cabs, ccos..) I spent one month
to make it right. A more capable guy will take less surely, but as
mention I see little
benefit moving from 64 to 80 bits so I was not interested to implement it.

> Or did nothing not get updated when I updated
> cygwin?
>
> Thanks,
>
> M. C

Marco

--
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