From: Piotr Kubaj <pku...@freebsd.org> FreeBSD/powerpc* has feenableexcept() defined in fenv.h header.
Signed-off-by: Piotr Kubaj <pku...@freebsd.org> --- 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 <fenv.h> +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 <fenv.h> ]], + [[ 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