From: Piotr Kubaj
FreeBSD/powerpc* has feenableexcept() defined in fenv.h header.
Signed-off-by: Piotr Kubaj
---
libgfortran/configure| 41 +++-
libgfortran/configure.ac | 17 -
2 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/libgfortran/configure b/libgfortran/configure
index ae64dca3114..ad71694ef05 100755
--- a/libgfortran/configure
+++ b/libgfortran/configure
@@ -27338,8 +27338,45 @@ fi
+case x$target in
+ xpowerpc*-freebsd*)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fenv.h and
feenableexcept" >&5
+$as_echo_n "checking for fenv.h and feenableexcept... " >&6; }
+if ${have_feenableexcept+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+ #include
+int
+main ()
+{
+ feenableexcept(FE_DIVBYZERO | FE_INVALID);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_feenableexcept="yes"
+else
+ have_feenableexcept="no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_feenableexcept" >&5
+$as_echo "$have_feenableexcept" >&6; }
+if test "x$have_feenableexcept" = "xyes"; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_FEENABLEEXCEPT 1
+_ACEOF
+
+fi;
+;;
+ *)
# Check for GNU libc feenableexcept
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for feenableexcept in -lm"
>&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for feenableexcept in
-lm" >&5
$as_echo_n "checking for feenableexcept in -lm... " >&6; }
if ${ac_cv_lib_m_feenableexcept+:} false; then :
$as_echo_n "(cached) " >&6
@@ -27384,6 +27421,8 @@ $as_echo "#define HAVE_FEENABLEEXCEPT 1" >>confdefs.h
fi
+;;
+esac
# At least for glibc, clock_gettime is in librt. But don't
# pull that in if it still doesn't give us the function we want. This
diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac
index 97cc490cb5e..2dd6d345b22 100644
--- a/libgfortran/configure.ac
+++ b/libgfortran/configure.ac
@@ -602,8 +602,23 @@ fi
# Check whether we have a __float128 type, depends on
enable_libquadmath_support
LIBGFOR_CHECK_FLOAT128
+case x$target in
+ xpowerpc*-freebsd*)
+AC_CACHE_CHECK([for fenv.h and feenableexcept], have_feenableexcept, [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+[[ #include ]],
+[[ feenableexcept(FE_DIVBYZERO | FE_INVALID); ]])],
+[ have_feenableexcept="yes" ],
+[ have_feenableexcept="no" ])])
+if test "x$have_feenableexcept" = "xyes"; then
+ AC_DEFINE(HAVE_FEENABLEEXCEPT,1,[fenv.h includes feenableexcept])
+fi;
+;;
+ *)
# Check for GNU libc feenableexcept
-AC_CHECK_LIB([m],[feenableexcept],[have_feenableexcept=yes
AC_DEFINE([HAVE_FEENABLEEXCEPT],[1],[libm includes feenableexcept])])
+AC_CHECK_LIB([m],[feenableexcept],[have_feenableexcept=yes
AC_DEFINE([HAVE_FEENABLEEXCEPT],[1],[libm includes feenableexcept])])
+;;
+esac
# At least for glibc, clock_gettime is in librt. But don't
# pull that in if it still doesn't give us the function we want. This
--
2.36.0