summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog14
-rwxr-xr-xsysdeps/ieee754/ldbl-opt/configure57
-rw-r--r--sysdeps/ieee754/ldbl-opt/configure.in16
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c1
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-compat.h7
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c1
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c1
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c1
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c1
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c1
10 files changed, 84 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index 53eaaa412d..796a973ba6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2006-01-14  Roland McGrath  <roland@redhat.com>
 
+	* sysdeps/ieee754/ldbl-opt/nldbl-compat.h (NLDBL_DECL): Don't try
+	attribute_hidden here.
+	* sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c (vsyslog): Restore
+	attribute_hidden here.
+	* sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c (__asprintf): Likewise.
+	* sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c (fprintf): Likewise.
+	* sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c (qecvt): Likewise.
+	* sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c (qfcvt): Likewise.
+	* sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c (qgcvt): Likewise.
+
+	* sysdeps/ieee754/ldbl-opt/configure.in: Use AC_TRY_COMPILE and
+	verify __LONG_DOUBLE_128__ predefine.
+	* sysdeps/ieee754/ldbl-opt/configure: Regenerated.
+
 	* sysdeps/ieee754/ldbl-opt/nldbl-compat.h (NLDBL_HIDDEN): Removed.
 	(NLDBL_DECL): Rewritten.
 	Remove __THROW from NLDBL_DECL uses.
diff --git a/sysdeps/ieee754/ldbl-opt/configure b/sysdeps/ieee754/ldbl-opt/configure
index 05b1447bea..dc81365318 100755
--- a/sysdeps/ieee754/ldbl-opt/configure
+++ b/sysdeps/ieee754/ldbl-opt/configure
@@ -1,17 +1,64 @@
 # This file is generated from configure.in by Autoconf.  DO NOT EDIT!
  # Local configure fragment for sysdeps/ieee754/ldbl-opt/.
 
-echo "$as_me:$LINENO: checking whether $CC $CFLAGS -mlong-double-128" >&5
-echo $ECHO_N "checking whether $CC $CFLAGS -mlong-double-128... $ECHO_C" >&6
+
+echo "$as_me:$LINENO: checking whether $CC $CFLAGS supports -mlong-double-128" >&5
+echo $ECHO_N "checking whether $CC $CFLAGS supports -mlong-double-128... $ECHO_C" >&6
 if test "${libc_cv_mlong_double_128+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if $CC $CFLAGS -mlong-double-128 -S -xc /dev/null -o /dev/null 2>&1
-then
+  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.  */
+
+int
+main ()
+{
+
+#ifndef __LONG_DOUBLE_128__
+# error "compiler did not predefine __LONG_DOUBLE_128__ as expected"
+#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_128=yes
 else
-  libc_cv_mlong_double_128=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+libc_cv_mlong_double_128=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_128" >&5
 echo "${ECHO_T}$libc_cv_mlong_double_128" >&6
diff --git a/sysdeps/ieee754/ldbl-opt/configure.in b/sysdeps/ieee754/ldbl-opt/configure.in
index bc9d29908f..a77fadd1c4 100644
--- a/sysdeps/ieee754/ldbl-opt/configure.in
+++ b/sysdeps/ieee754/ldbl-opt/configure.in
@@ -4,12 +4,16 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 
 AC_CACHE_CHECK(whether $CC $CFLAGS supports -mlong-double-128,
 	       libc_cv_mlong_double_128, [dnl
-if $CC $CFLAGS -mlong-double-128 -S -xc /dev/null -o /dev/null 2>&1
-then
-  libc_cv_mlong_double_128=yes
-else
-  libc_cv_mlong_double_128=no
-fi])
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -mlong-double-128"
+AC_TRY_COMPILE(, [
+#ifndef __LONG_DOUBLE_128__
+# error "compiler did not predefine __LONG_DOUBLE_128__ as expected"
+#endif
+long double foobar (long double x) { return x; }],
+	       libc_cv_mlong_double_128=yes,
+	       libc_cv_mlong_double_128=no)
+CFLAGS="$save_CFLAGS"])
 if test "$libc_cv_mlong_double_128" = no; then
   AC_MSG_ERROR([this configuration requires -mlong-double-128 support])
 fi
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c b/sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c
index 8932781bf2..4be216d610 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c
@@ -1,5 +1,6 @@
 #include "nldbl-compat.h"
 
+attribute_hidden
 int
 __asprintf (char **string_ptr, const char *fmt, ...)
 {
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-compat.h b/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
index 985e109906..c0461000f0 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
@@ -33,11 +33,8 @@
 #include <sys/syslog.h>
 
 
-/* Declare the __nldbl_NAME function the wrappers call that's in libc.so,
-   and then redeclare NAME to mark it hidden for the nldbl-*.c definition.  */
-#define NLDBL_DECL(name) \
-  extern __typeof (name) __nldbl_##name; \
-  extern __typeof (name) name attribute_hidden
+/* Declare the __nldbl_NAME function the wrappers call that's in libc.so.  */
+#define NLDBL_DECL(name) extern __typeof (name) __nldbl_##name
 
 NLDBL_DECL (_IO_vfscanf);
 NLDBL_DECL (vfscanf);
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c b/sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c
index 1247088615..9df4c4bc34 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c
@@ -1,5 +1,6 @@
 #include "nldbl-compat.h"
 
+attribute_hidden
 int
 fprintf (FILE *stream, const char *fmt, ...)
 {
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c b/sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c
index cda1e7461e..9f0b0a66a9 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c
@@ -2,6 +2,7 @@
 #include "nldbl-compat.h"
 #undef qecvt
 
+attribute_hidden
 char *
 qecvt (double val, int ndigit, int *__restrict decpt, int *__restrict sign)
 {
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c b/sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c
index 43a9c8e52e..37fa7f0467 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c
@@ -2,6 +2,7 @@
 #include "nldbl-compat.h"
 #undef qfcvt
 
+attribute_hidden
 char *
 qfcvt (double val, int ndigit, int *__restrict decpt, int *__restrict sign)
 {
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c b/sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c
index 5bf3330882..b935d0962e 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c
@@ -2,6 +2,7 @@
 #include "nldbl-compat.h"
 #undef qgcvt
 
+attribute_hidden
 char *
 qgcvt (double val, int ndigit, char *buf)
 {
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c b/sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c
index e91f4826bf..eed1010eea 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c
@@ -1,5 +1,6 @@
 #include "nldbl-compat.h"
 
+attribute_hidden
 void
 vsyslog (int pri, const char *fmt, va_list ap)
 {