-# cbrtl.m4 serial 3
-dnl Copyright (C) 2012 Free Software Foundation, Inc.
+# cbrtl.m4 serial 5
+dnl Copyright (C) 2012-2013 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.
dnl Also check whether it's declared.
dnl IRIX 6.5 has cbrtl() in libm but doesn't declare it in <math.h>.
AC_CHECK_DECL([cbrtl], , [HAVE_DECL_CBRTL=0], [[#include <math.h>]])
+
+ save_LIBS="$LIBS"
+ LIBS="$LIBS $CBRTL_LIBM"
+ gl_FUNC_CBRTL_WORKS
+ LIBS="$save_LIBS"
+ case "$gl_cv_func_cbrtl_works" in
+ *yes) ;;
+ *) REPLACE_CBRTL=1 ;;
+ esac
+
m4_ifdef([gl_FUNC_CBRTL_IEEE], [
if test $gl_cbrtl_required = ieee && test $REPLACE_CBRTL = 0; then
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_CACHE_CHECK([whether cbrtl works according to ISO C 99 with IEC 60559],
[gl_cv_func_cbrtl_ieee],
[
]])],
[gl_cv_func_cbrtl_ieee=yes],
[gl_cv_func_cbrtl_ieee=no],
- [gl_cv_func_cbrtl_ieee="guessing no"])
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_cbrtl_ieee="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_cbrtl_ieee="guessing no" ;;
+ esac
+ ])
LIBS="$save_LIBS"
])
case "$gl_cv_func_cbrtl_ieee" in
fi
AC_SUBST([CBRTL_LIBM])
])
+
+dnl Test whether cbrtl() works.
+dnl On OpenBSD 5.1/SPARC, cbrtl(16.0L) is = 1.2599...
+AC_DEFUN([gl_FUNC_CBRTL_WORKS],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether cbrtl works], [gl_cv_func_cbrtl_works],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <math.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+long double cbrtl (long double);
+volatile long double x;
+long double y;
+int main ()
+{
+ x = 16.0L;
+ y = cbrtl (x);
+ if (y < 2.0L)
+ return 1;
+ return 0;
+}
+]])],
+ [gl_cv_func_cbrtl_works=yes],
+ [gl_cv_func_cbrtl_works=no],
+ [case "$host_os" in
+ openbsd*) gl_cv_func_cbrtl_works="guessing no";;
+ *) gl_cv_func_cbrtl_works="guessing yes";;
+ esac
+ ])
+ ])
+])