This is the mail archive of the gcc-bugs@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]

[Bug target/11398] New: libffi doesn't support 128-bit long double on Tru64 UNIX V5


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.


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