On Thu, Feb 16, 2006 at 03:28:46PM +0000, Paul Brook wrote:
> > The point is that from a gfortran perspective -mlong-double-128 doesn't
> > change the ABI, it merely adds to it (which is sort of a change, but less
> > invasive than changing long double from 8bytes to 16bytes). So we can
> > easily cope with the user request for -mlong-double-128 by always providing
> > the kind=16 intrinsics.
>
> Except it [potentially] also changes the ABI that libgfortran uses to talk to
> glibc. ie. a -mlong-double-128 libgfortran probably won't work with a
> -mlong-double-64 glibc.
That is not a big deal. On the platforms we talk about (ppc{32,64},
s390{,x}, sparc32, alpha) glibc 2.4 and forward has 128-bit long double
support, glibc 2.3.x and earlier doesn't, this isn't an optional glibc
configure decision, it is part of glibc 2.4+ ABI on those arches.
So, yes, you can't use -mlong-double-128 libgfortran against
-mlong-double-64 glibc (read as, glibc 2.3.x or earlier), but that would
mean you compiled/linked against glibc 2.4+ and are trying to run
against glibc 2.3.x or earlier. That generally doesn't work for any
glibc versions, glibc is only backwards compatible, not forward compatible.
And you get a clear error when trying to load program's shared libraries
(or e.g. various package managers like rpm will not even allow you to
install that unless forced).
Jakub