From 926320aba6a75c8b1e7085b1c62638ab807708d0 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 14 Jan 2006 22:08:18 +0000 Subject: * 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. --- ChangeLog | 14 ++++++++ sysdeps/ieee754/ldbl-opt/configure | 57 ++++++++++++++++++++++++++++--- sysdeps/ieee754/ldbl-opt/configure.in | 16 +++++---- sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c | 1 + sysdeps/ieee754/ldbl-opt/nldbl-compat.h | 7 ++-- sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c | 1 + sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c | 1 + sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c | 1 + sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c | 1 + sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c | 1 + 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 + * 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 -/* 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) { -- cgit 1.4.1