[parisc-linux] Re: strtold

Carlos O'Donell carlos at systemhalted.org
Sat Jan 7 16:42:30 MST 2006


On Sat, Jan 07, 2006 at 05:41:52PM -0500, John David Anglin wrote:
> > strtold will never work, gcc and libc have different sizes for long
> > double. This is probably a side-effect of this.
> 
> I'm not sure what has changed but this is the source of a number
> of gfortran and libstdc++ regressions when using the current version
> of libc in unstable.

strold has always done funny things in the glibc testsuite, consider
yourself lucky.
 
> > If we really want long double to work we need to do something like set
> > it to be the same as double.
> 
> Long double has always been the same as double in GCC.  It allowed
> by the C and C++ standards.  It fast and the hardware and corner
> cases are well understood.

So long doubles have always been DFmode in GCC, okay, I thought it was
something else.

glibc thinks long double is 128-bit. If you want strtold to work then I
need to make the changes in glibc.

> I've given up hope that HP will release their IEEE long double emulation
> code for PA-RISC.  Although I don't have any hard evidence of bugs in it,
> there is the suggestion from the ada testsuite run under hpux that there
> may be bugs in the rounding and exception support.

I agree, I don't think it will ever be released. If it is released then
we'll jigger it out some other way :)

> > 128-bit long double is just going to be a pain, and I don't know how
> > well the 80-bit long double from IBM supports IEEE modes.
> 
> The only viable alternatives at this point are:
> 
>   1) long double == double (64 bit long double), or
>   2) IBM 128-bit double double implementation used by powerpc.

Or write our own library! ;-)

> After more than a year of using the double-double format, the powerpc
> folks are still working the bugs out from the corner cases.  While I
> guess it more or less works, I wouldn't want to rely on it for
> critical calculations.  RTH recented indicated that this would be a
> poor choice for another port in the same situation.  The same viewpoint
> was expressed to me by an Ada maintainer at the last GCC summit.  Ada
> probably has the best numerics support in GCC.

I say we go for (1).

> There is no support for the 80-bit format (either in hardware or
> software) on PA-RISC as far as I know.  So, this alternative isn't viable.

Okay.

> C99 requires long double support.  Thus, I believe we should go with
> option 1 and libc should be changed.  We aren't the only target with
> this problem, so there must be some libc support for 64-bit long double.

I believe it will only require removing the implies line for ldbl-128
from glibc.

I am building you a new debian glibc based on 2.3.5-8 for you to test,
would this be good?

c.




More information about the parisc-linux mailing list