Merge commit 'a39d4083cab589d7cd6a13e8a4b8db8875261d75'
[gnulib.git] / m4 / rintf.m4
index bb5f046..7c76af0 100644 (file)
@@ -1,5 +1,5 @@
-# rintf.m4 serial 2
-dnl Copyright (C) 2011 Free Software Foundation, Inc.
+# rintf.m4 serial 4
+dnl Copyright (C) 2011-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,11 +8,26 @@ AC_DEFUN([gl_FUNC_RINTF],
 [
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
 
+  dnl Persuade glibc <math.h> to declare rintf().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   dnl Determine RINTF_LIBM.
-  gl_MATHFUNC([rintf], [float], [(float)])
-  if test $gl_cv_func_rintf_no_libm = no \
-     && test $gl_cv_func_rintf_in_libm = no; then
+  gl_MATHFUNC([rintf], [float], [(float)],
+    [extern
+     #ifdef __cplusplus
+     "C"
+     #endif
+     float rintf (float);
+    ])
+  if test $gl_cv_func_rintf_no_libm = yes \
+     || test $gl_cv_func_rintf_in_libm = yes; then
+    HAVE_RINTF=1
+    dnl Also check whether it's declared.
+    dnl IRIX 6.5 has rintf() in libm but doesn't declare it in <math.h>.
+    AC_CHECK_DECLS([rintf], , [HAVE_DECL_RINTF=0], [[#include <math.h>]])
+  else
     HAVE_RINTF=0
+    HAVE_DECL_RINTF=0
     RINTF_LIBM=
   fi
   AC_SUBST([RINTF_LIBM])