This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fwd: AIX vs long double


Cf. http://gcc.gnu.org/ml/gcc/2011-02/msg00109.html and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47032

Seems as if one needs to add link-time tests to libgfortran for some of the C99 functions - the compile checks exists and succeed.

Tobias

-------- Original Message --------
Subject: AIX vs long double
Date: Mon, 7 Feb 2011 14:01:44 -0500
From: David Edelsohn <dje.gcc@gmail.com>
To: GCC Development <gcc@gcc.gnu.org>

AIX provides two versions of long double and declares all of the C99
long double symbols in math.h header file.  One implementation aliases
long double to IEEE double precision type and the other implementation
aliases long double to IBM's paired double format.  All of the C99
symbols for IEEE double precision are implemented in libm, but not all
of the C99 symbols for the IBM long double format are implemented.

IBM's proprietary XL compiler (cc, xlc) defaults to IEEE double
precision and provides a special invocation to default to IBM long
double (cc128, xlc128).

GNU/Linux and GCC on GNU/Linux default to IEEE quad precision long double.

Because the long double choice is an ABI change, GCC on AIX switched
to GNU/Linux compatibility with support for AIX 6.1, before the
incomplete implementation was noticed.  This mostly worked until
libgfortran started using additional C99 functions, causing GCC
Bugzilla

[target/47032] libgfortran references complex long double functions
missing on AIX

libstdc++-v3 on AIX builds with AIX long double support, although user
programs that try to access the missing functions (copysign,
nextafter, etc.) will experience link-time failures.  libgfortran on
AIX fails to build with AIX long double support because it accesses
the missing functions in its implementation.

I would like to solicit feedback about how to proceed: Should GCC on
AIX revert back to 64 bit long double size, allowing all libraries to
build and work, but breaking GCC/G++ ABI on AIX? Or should it continue
to utilize 128 bit long double, building libstdc++-v3 that works if
the user program does not utilize the missing symbols and fails to
build libgfortran?

Thanks, David


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]