This is the mail archive of the libc-hacker@sourceware.org mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


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

[PATCH] Don't use 128-bit long double on soft-float powerpc


Hi!

GCC doesn't support 128bit long double for -msoft-float on ppc32, so I think
we need to make sure /fpu/ dirs are always used when enabling it.

2006-01-30  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/powerpc/Implies: Moved to...
	* sysdeps/unix/sysv/linux/powerpc/fpu/Implies: ... here.  New file.
	* sysdeps/unix/sysv/linux/powerpc/configure.in: Moved to...
	* sysdeps/unix/sysv/linux/powerpc/fpu/configure.in: ... here.  New file.
	* sysdeps/unix/sysv/linux/powerpc/configure: Moved to...
	* sysdeps/unix/sysv/linux/powerpc/fpu/configure: ... here.  New file.
	* sysdeps/powerpc/Implies: Remove ieee754/ldbl-128ibm line.
	* sysdeps/powerpc/fpu/Implies: New file.

--- libc/sysdeps/unix/sysv/linux/powerpc/fpu/Implies.jj	2006-01-30 08:17:12.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/powerpc/fpu/Implies	2006-01-28 01:14:41.000000000 +0100
@@ -0,0 +1,4 @@
+# Make sure these routines come before ldbl-opt.
+ieee754/ldbl-128ibm
+# These supply the ABI compatibility for when long double was double.
+ieee754/ldbl-opt
--- libc/sysdeps/unix/sysv/linux/powerpc/fpu/configure.in.jj	2006-01-30 09:26:38.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/powerpc/fpu/configure.in	2006-01-28 01:07:39.000000000 +0100
@@ -0,0 +1,37 @@
+sinclude(./aclocal.m4)dnl Autoconf lossage
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/powerpc/.
+
+AC_CACHE_CHECK(whether $CC $CFLAGS -mlong-double-128 uses IBM extended format,
+	       libc_cv_mlong_double_128ibm, [dnl
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -mlong-double-128"
+AC_TRY_COMPILE([#include <float.h>], [
+#if LDBL_MANT_DIG != 106
+# error "compiler doesn't implement IBM extended format of long double"
+#endif
+long double foobar (long double x) { return x; }],
+	       libc_cv_mlong_double_128ibm=yes,
+	       libc_cv_mlong_double_128ibm=no)
+CFLAGS="$save_CFLAGS"])
+
+if test "$libc_cv_mlong_double_128ibm" = no; then
+  AC_CACHE_CHECK(whether $CC $CFLAGS supports -mabi=ibmlongdouble,
+		 libc_cv_mabi_ibmlongdouble, [dnl
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble"
+  AC_TRY_COMPILE([#include <float.h>], [
+#if LDBL_MANT_DIG != 106
+# error "compiler doesn't implement IBM extended format of long double"
+#endif
+long double foobar (long double x) { return x; }],
+		 libc_cv_mabi_ibmlongdouble=yes,
+		 libc_cv_mabi_ibmlongdouble=no)
+  CFLAGS="$save_CFLAGS"])
+
+  if test "$libc_cv_mabi_ibmlongdouble" = yes; then
+    CFLAGS="$CFLAGS -mabi=ibmlongdouble"
+  else
+    AC_MSG_ERROR([this configuration requires -mlong-double-128 IBM extended format support])
+  fi
+fi
--- libc/sysdeps/unix/sysv/linux/powerpc/fpu/configure.jj	2006-01-30 09:26:41.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/powerpc/fpu/configure	2006-01-28 01:07:39.000000000 +0100
@@ -0,0 +1,135 @@
+# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/powerpc/.
+
+
+echo "$as_me:$LINENO: checking whether $CC $CFLAGS -mlong-double-128 uses IBM extended format" >&5
+echo $ECHO_N "checking whether $CC $CFLAGS -mlong-double-128 uses IBM extended format... $ECHO_C" >&6
+if test "${libc_cv_mlong_double_128ibm+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -mlong-double-128"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <float.h>
+int
+main ()
+{
+
+#if LDBL_MANT_DIG != 106
+# error "compiler doesn't implement IBM extended format of long double"
+#endif
+long double foobar (long double x) { return x; }
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  libc_cv_mlong_double_128ibm=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+libc_cv_mlong_double_128ibm=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+CFLAGS="$save_CFLAGS"
+fi
+echo "$as_me:$LINENO: result: $libc_cv_mlong_double_128ibm" >&5
+echo "${ECHO_T}$libc_cv_mlong_double_128ibm" >&6
+
+if test "$libc_cv_mlong_double_128ibm" = no; then
+  echo "$as_me:$LINENO: checking whether $CC $CFLAGS supports -mabi=ibmlongdouble" >&5
+echo $ECHO_N "checking whether $CC $CFLAGS supports -mabi=ibmlongdouble... $ECHO_C" >&6
+if test "${libc_cv_mabi_ibmlongdouble+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+    save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <float.h>
+int
+main ()
+{
+
+#if LDBL_MANT_DIG != 106
+# error "compiler doesn't implement IBM extended format of long double"
+#endif
+long double foobar (long double x) { return x; }
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  libc_cv_mabi_ibmlongdouble=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+libc_cv_mabi_ibmlongdouble=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  CFLAGS="$save_CFLAGS"
+fi
+echo "$as_me:$LINENO: result: $libc_cv_mabi_ibmlongdouble" >&5
+echo "${ECHO_T}$libc_cv_mabi_ibmlongdouble" >&6
+
+  if test "$libc_cv_mabi_ibmlongdouble" = yes; then
+    CFLAGS="$CFLAGS -mabi=ibmlongdouble"
+  else
+    { { echo "$as_me:$LINENO: error: this configuration requires -mlong-double-128 IBM extended format support" >&5
+echo "$as_me: error: this configuration requires -mlong-double-128 IBM extended format support" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
--- libc/sysdeps/unix/sysv/linux/powerpc/Implies.jj	2006-01-28 01:14:41.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/powerpc/Implies	2006-01-30 08:17:05.000000000 +0100
@@ -1,4 +0,0 @@
-# Make sure these routines come before ldbl-opt.
-ieee754/ldbl-128ibm
-# These supply the ABI compatibility for when long double was double.
-ieee754/ldbl-opt
--- libc/sysdeps/unix/sysv/linux/powerpc/configure.jj	2006-01-28 01:07:39.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/powerpc/configure	2006-01-30 09:26:30.000000000 +0100
@@ -1,135 +0,0 @@
-# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
- # Local configure fragment for sysdeps/unix/sysv/linux/powerpc/.
-
-
-echo "$as_me:$LINENO: checking whether $CC $CFLAGS -mlong-double-128 uses IBM extended format" >&5
-echo $ECHO_N "checking whether $CC $CFLAGS -mlong-double-128 uses IBM extended format... $ECHO_C" >&6
-if test "${libc_cv_mlong_double_128ibm+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -mlong-double-128"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <float.h>
-int
-main ()
-{
-
-#if LDBL_MANT_DIG != 106
-# error "compiler doesn't implement IBM extended format of long double"
-#endif
-long double foobar (long double x) { return x; }
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  libc_cv_mlong_double_128ibm=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-libc_cv_mlong_double_128ibm=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-CFLAGS="$save_CFLAGS"
-fi
-echo "$as_me:$LINENO: result: $libc_cv_mlong_double_128ibm" >&5
-echo "${ECHO_T}$libc_cv_mlong_double_128ibm" >&6
-
-if test "$libc_cv_mlong_double_128ibm" = no; then
-  echo "$as_me:$LINENO: checking whether $CC $CFLAGS supports -mabi=ibmlongdouble" >&5
-echo $ECHO_N "checking whether $CC $CFLAGS supports -mabi=ibmlongdouble... $ECHO_C" >&6
-if test "${libc_cv_mabi_ibmlongdouble+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-    save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble"
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <float.h>
-int
-main ()
-{
-
-#if LDBL_MANT_DIG != 106
-# error "compiler doesn't implement IBM extended format of long double"
-#endif
-long double foobar (long double x) { return x; }
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  libc_cv_mabi_ibmlongdouble=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-libc_cv_mabi_ibmlongdouble=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  CFLAGS="$save_CFLAGS"
-fi
-echo "$as_me:$LINENO: result: $libc_cv_mabi_ibmlongdouble" >&5
-echo "${ECHO_T}$libc_cv_mabi_ibmlongdouble" >&6
-
-  if test "$libc_cv_mabi_ibmlongdouble" = yes; then
-    CFLAGS="$CFLAGS -mabi=ibmlongdouble"
-  else
-    { { echo "$as_me:$LINENO: error: this configuration requires -mlong-double-128 IBM extended format support" >&5
-echo "$as_me: error: this configuration requires -mlong-double-128 IBM extended format support" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-fi
--- libc/sysdeps/unix/sysv/linux/powerpc/configure.in.jj	2006-01-28 01:07:39.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/powerpc/configure.in	2006-01-30 09:26:27.000000000 +0100
@@ -1,37 +0,0 @@
-sinclude(./aclocal.m4)dnl Autoconf lossage
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/unix/sysv/linux/powerpc/.
-
-AC_CACHE_CHECK(whether $CC $CFLAGS -mlong-double-128 uses IBM extended format,
-	       libc_cv_mlong_double_128ibm, [dnl
-save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -mlong-double-128"
-AC_TRY_COMPILE([#include <float.h>], [
-#if LDBL_MANT_DIG != 106
-# error "compiler doesn't implement IBM extended format of long double"
-#endif
-long double foobar (long double x) { return x; }],
-	       libc_cv_mlong_double_128ibm=yes,
-	       libc_cv_mlong_double_128ibm=no)
-CFLAGS="$save_CFLAGS"])
-
-if test "$libc_cv_mlong_double_128ibm" = no; then
-  AC_CACHE_CHECK(whether $CC $CFLAGS supports -mabi=ibmlongdouble,
-		 libc_cv_mabi_ibmlongdouble, [dnl
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble"
-  AC_TRY_COMPILE([#include <float.h>], [
-#if LDBL_MANT_DIG != 106
-# error "compiler doesn't implement IBM extended format of long double"
-#endif
-long double foobar (long double x) { return x; }],
-		 libc_cv_mabi_ibmlongdouble=yes,
-		 libc_cv_mabi_ibmlongdouble=no)
-  CFLAGS="$save_CFLAGS"])
-
-  if test "$libc_cv_mabi_ibmlongdouble" = yes; then
-    CFLAGS="$CFLAGS -mabi=ibmlongdouble"
-  else
-    AC_MSG_ERROR([this configuration requires -mlong-double-128 IBM extended format support])
-  fi
-fi
--- libc/sysdeps/powerpc/fpu/Implies.jj	2006-01-30 08:18:28.000000000 +0100
+++ libc/sysdeps/powerpc/fpu/Implies	2006-01-29 21:10:24.000000000 +0100
@@ -0,0 +1,4 @@
+# On PowerPC we use the IBM extended long double format.
+ieee754/ldbl-128ibm
+ieee754/dbl-64
+ieee754/flt-32
--- libc/sysdeps/powerpc/Implies.jj	2006-01-29 21:10:24.000000000 +0100
+++ libc/sysdeps/powerpc/Implies	2006-01-30 08:18:21.000000000 +0100
@@ -1,4 +1,2 @@
-# On PowerPC we use the IBM extended long double format.
-ieee754/ldbl-128ibm
 ieee754/dbl-64
 ieee754/flt-32

	Jakub


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