diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 1b2a20b75bf6..0bfba640e21f 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,9 @@ +2013-11-08 Bernhard Reutner-Fischer + + * configure.ac (libgcc_cv_dfp): Extend check to probe fenv.h + availability. + * configure: Regenerate + 2013-11-07 Uros Bizjak * config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Handle diff --git a/libgcc/configure b/libgcc/configure index 29fa46f597a4..2bb1fb2d94fc 100644 --- a/libgcc/configure +++ b/libgcc/configure @@ -4066,7 +4066,20 @@ if test "${libgcc_cv_dfp+set}" = set; then : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + +#include + +int +main () +{ + _Decimal32 x; +int fe_except = + FE_INVALID|FE_DIVBYZERO|FE_OVERFLOW|FE_UNDERFLOW|FE_INEXACT; + + ; + return 0; +} _ACEOF if ac_fn_c_try_compile "$LINENO"; then : libgcc_cv_dfp=yes diff --git a/libgcc/configure.ac b/libgcc/configure.ac index 186cd6e9cd74..560e988e048d 100644 --- a/libgcc/configure.ac +++ b/libgcc/configure.ac @@ -182,7 +182,14 @@ AC_SUBST(long_double_type_size) # Check for decimal float support. AC_CACHE_CHECK([whether decimal floating point is supported], [libgcc_cv_dfp], - [AC_COMPILE_IFELSE([_Decimal32 x;], [libgcc_cv_dfp=yes], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include +]], [[ +_Decimal32 x; +int fe_except = + FE_INVALID|FE_DIVBYZERO|FE_OVERFLOW|FE_UNDERFLOW|FE_INEXACT; +]])], + [libgcc_cv_dfp=yes], [libgcc_cv_dfp=no])]) decimal_float=$libgcc_cv_dfp AC_SUBST(decimal_float)