This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/11398] New: libffi doesn't support 128-bit long double on Tru64 UNIX V5
- From: "gcc-bugzilla at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 1 Jul 2003 21:30:44 -0000
- Subject: [Bug target/11398] New: libffi doesn't support 128-bit long double on Tru64 UNIX V5
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11398
Summary: libffi doesn't support 128-bit long double on Tru64 UNIX
V5
Product: gcc
Version: 3.4
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ro at techfak dot uni-bielefeld dot de
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: alpha-dec-osf5.1
GCC host triplet: alpha-dec-osf5.1
GCC target triplet: alpha-dec-osf5.1
libffi doesn't support 128-bit long double on Tru64 UNIX V5. This
manifests itself in a ffitest failure:
> LD_LIBRARY_PATH=../../gcc:.libs .libs/ffitest
709 return value tests run
Segmentation fault
There's no code whatsoever for FFI_TYPE_LONGDOUBLE in libffi/src/alpha/*,
on the contrary, osf.S handles FFI_TYPE_LONGDOUBLE via load_double, which
is correct for Tru64 UNIX V4 (which didn't have 128-bit long double), but
wrong for V5.
Environment:
System: OSF1 bartok V5.1 732 alpha
Machine: alpha
host: alpha-dec-osf5.1
build: alpha-dec-osf5.1
target: alpha-dec-osf5.1
configured with: /vol/gnu/src/gcc/gcc-dist/configure --prefix=/vol/gcc --with-local-prefix=/vol/gcc --disable-nls alpha-dec-osf5.1
How-To-Repeat:
Run ffitest after bootstrap.
------- Additional Comments From ro at techfak dot uni-bielefeld dot de 2003-07-01 21:30 -------
Fix:
Defining BROKEN_LONG_DOUBLE in libffi/src/ffitest.c for the affected
systems lets ffitest pass. This shows that only long double support is
problematic:
--- ffitest.c Tue Apr 22 15:05:12 2003
+++ ffitest.c.osf Tue Jul 1 23:19:05 2003
@@ -27,8 +27,9 @@
#include <string.h>
#include <float.h>
-/* This is lame. Long double support is barely there under SunOS 4.x */
-#if defined(SPARC) && (SIZEOF_LONG_DOUBLE != 16)
+/* This is lame. Long double support is barely there under SunOS 4.x,
+ and 128-bit long double on Tru64 UNIX V5 isn't supported yet. */
+#if (defined(SPARC) && (SIZEOF_LONG_DOUBLE != 16)) || defined(__X_FLOAT)
#define BROKEN_LONG_DOUBLE
#endif
On Tru64 UNIX V4.0F, ffitest passes without any changes.