Provide missing frexpl(), ldexpl() declarations.
authorBruno Haible <bruno@clisp.org>
Tue, 6 Mar 2007 03:38:53 +0000 (03:38 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 6 Mar 2007 03:38:53 +0000 (03:38 +0000)
ChangeLog
lib/printf-frexp.c
m4/printf-frexpl.m4

index f11889f..90a18c6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2007-03-05  Bruno Haible  <bruno@clisp.org>
 
+       * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Also test whether
+       frexpl and ldexpl are declared.
+       * lib/printf-frexp.c (frexpl, ldexpl): Provide fallback declarations.
+
+2007-03-05  Bruno Haible  <bruno@clisp.org>
+
        * gnulib-tool (func_get_automake_snippet): Don't synthesize an
        EXTRA_lib_SOURCES augmentation for the relocatable-prog-wrapper module.
 
index e6032a4..b122da5 100644 (file)
 #   define USE_FREXP_LDEXP
 #   define FREXP frexpl
 #   define LDEXP ldexpl
+    /* glibc (2.3..2.5 at least) and MacOS X 10.3 have frexpl and ldexpl in
+       libc, but don't declare them.  */
+#   if !HAVE_DECL_FREXPL
+extern long double frexpl (long double, int *);
+#   endif
+#   if !HAVE_DECL_LDEXPL
+extern long double ldexpl (long double, int);
+#   endif
 #  endif
 #  define L_(literal) literal##L
 # else
index f664890..e21ae36 100644 (file)
@@ -1,4 +1,4 @@
-# printf-frexpl.m4 serial 1
+# printf-frexpl.m4 serial 2
 dnl Copyright (C) 2007 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -23,6 +23,9 @@ AC_DEFUN([gl_FUNC_PRINTF_FREXPL],
     if test $gl_cv_func_frexpl_no_libm = yes; then
       AC_DEFINE([HAVE_FREXPL_IN_LIBC], 1,
         [Define if the frexpl function is available in libc.])
+      dnl Also check whether it's declared. glibc (2.3..2.5 at least) and
+      dnl MacOS X 10.3 have frexpl() in libc but don't declare it in <math.h>.
+      AC_CHECK_DECLS([frexpl])
     fi
 
     AC_CACHE_CHECK([whether ldexpl can be used without linking with libm],
@@ -38,6 +41,9 @@ AC_DEFUN([gl_FUNC_PRINTF_FREXPL],
     if test $gl_cv_func_ldexpl_no_libm = yes; then
       AC_DEFINE([HAVE_LDEXPL_IN_LIBC], 1,
         [Define if the ldexpl function is available in libc.])
+      dnl Also check whether it's declared. glibc (2.3..2.5 at least) and
+      dnl MacOS X 10.3 have ldexpl() in libc but don't declare it in <math.h>.
+      AC_CHECK_DECLS([ldexpl])
     fi
   fi
 ])