Yitzchak Scott-Thoennes schrieb:
On Thu, July 26, 2007 5:19 am, Corinna Vinschen wrote:
On Jul 26 22:09, Sisyphus wrote:
I'd like to have a perl on Cygwin built with -Duselongdouble, so I tried

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

Long double functions are not supported by newlib so far.  There are a
couple of C99 functions not available in newlib.  Volunteers implementing
these functions in a license compatible way (BSD, not GPL) in newlib are
always welcome.

Note that changing perl to use long doubles is a binary incompatible change.
So if anyone is going to jump on this, it would be nice to have it happen
before the already incompatible 5.10 is out Septemberish.

modfl isn't strictly necessary; perl will substitute aintl (a solaris
flavor of truncl) + copysignl.
And ilogbl + scalbnl can be used to emulate frexpl.

I think I'll bite the bullet for the upcoming perl-5.12.0, for which I already have an API change (-Uusemymalloc) so adding -Duselongdouble can be easily added.

I dissected long doubles for my parrot pbc_compat work last year so I believe I can do modfl and frexpl without looking at GPL infected code.
http://code.google.com/p/cygwin-rurban/source/browse/trunk/release/parrot/patches/r36819-tt308-more-pf_items.patch

sqrtl is trivial in intel assembler:

long double sqrtl(long double ld) {
  long double _result;
  asm ("fsqrt" : "=t" (_result) : "0"(ld));
  return _result;
}

These questions are for newlib later:
Can I keep such a newlib code to 12-byte intel long doubles or must I add 16-byte long double support also?
Our gcc has -m128bit-long-double and the bastard -m96bit-long-double.
Does newlib needs papers?

I see a comment about --enable-newlib-hw-fp in
/usr/include/machine/ieeefp.h
I have no idea what this should be. Is there some hidden prior art?

I only know about Dave Korn's libm/machine/i386/f_*l.c stuff and I have newlib cvs.
--
Reini Urban
http://phpwiki.org/  http://murbreak.at/

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

Reply via email to