diff options
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/configure.in b/configure.in index 43d6ae0..ea04b76 100644 --- a/configure.in +++ b/configure.in @@ -2980,6 +2980,141 @@ fi], # ************************************ LIBS_SAVE=$LIBS LIBS="$LIBS $LIBM" + +# temporary checks to try to track down what's going wrong +# with test_math on Debian/alpha. These checks will be +# removed later. + +case $ac_sys_machine in +alpha*) + + AC_MSG_CHECKING(whether 9.88e-324 compares unequal to 0.0) + AC_TRY_RUN([ + #include <stdlib.h> + int main() { + double x = 9.88e-324; + if (x != 0.0) + exit(0); + else + exit(1); + } + ], + ac_cv_subnormal_nonzero=yes, + ac_cv_subnormal_nonzero=no, + ac_cv_subnormal_nonzero=no) + AC_MSG_RESULT($ac_cv_subnormal_nonzero) + + AC_MSG_CHECKING(whether log(9.88e-324) succeeds) + AC_TRY_RUN([ + #include <math.h> + #include <stdlib.h> + int main() { + double x = 9.88e-324; + x = log(x); + exit(0); + } + ], + ac_cv_log_subnormal_succeeds=yes, + ac_cv_log_subnormal_succeeds=no, + ac_cv_log_subnormal_succeeds=no) + AC_MSG_RESULT($ac_cv_log_subnormal_succeeds) + + AC_MSG_CHECKING(whether log(9.88e-324) returns correct result) + AC_TRY_RUN([ + #include <math.h> + #include <stdlib.h> + int main() { + double x = 9.88e-324; + x = log(x); + if (-744. < x && x < -743.) + exit(0); + else + exit(1); + } + ], + ac_cv_log_subnormal_returns_correct_result=yes, + ac_cv_log_subnormal_returns_correct_result=no, + ac_cv_log_subnormal_returns_correct_result=no) + AC_MSG_RESULT($ac_cv_log_subnormal_returns_correct_result) + + AC_MSG_CHECKING(whether log(9.88e-324) sets errno) + AC_TRY_RUN([ + #include <math.h> + #include <stdlib.h> + #include <errno.h> + int main() { + double x = 9.88e-324; + errno = 0; + x = log(x); + if (errno != 0) + exit(0); + else + exit(1); + } + ], + ac_cv_log_subnormal_sets_errno=yes, + ac_cv_log_subnormal_sets_errno=no, + ac_cv_log_subnormal_sets_errno=no) + AC_MSG_RESULT($ac_cv_log_subnormal_sets_errno) + + AC_MSG_CHECKING(whether log(9.88e-324) sets errno = EDOM) + AC_TRY_RUN([ + #include <math.h> + #include <stdlib.h> + #include <errno.h> + int main() { + double x = 9.88e-324; + errno = 0; + x = log(x); + if (errno == EDOM) + exit(0); + else + exit(1); + } + ], + ac_cv_log_subnormal_sets_errno_to_EDOM=yes, + ac_cv_log_subnormal_sets_errno_to_EDOM=no, + ac_cv_log_subnormal_sets_errno_to_EDOM=no) + AC_MSG_RESULT($ac_cv_log_subnormal_sets_errno_to_EDOM) + + AC_MSG_CHECKING(whether log(9.88e-324) is infinite) + AC_TRY_RUN([ + #include <math.h> + #include <stdlib.h> + int main() { + double x = 9.88e-324; + x = log(x); + if ((x > 1. || x < -1.) && x/2. == x) + exit(0); + else + exit(1); + } + ], + ac_cv_log_subnormal_is_infinite=yes, + ac_cv_log_subnormal_is_infinite=no, + ac_cv_log_subnormal_is_infinite=no) + AC_MSG_RESULT($ac_cv_log_subnormal_is_infinite) + + AC_MSG_CHECKING(whether log(9.88e-324) is a nan) + AC_TRY_RUN([ + #include <math.h> + #include <stdlib.h> + int main() { + double x = 9.88e-324; + x = log(x); + if (x != x) + exit(0); + else + exit(1); + } + ], + ac_cv_log_subnormal_is_nan=yes, + ac_cv_log_subnormal_is_nan=no, + ac_cv_log_subnormal_is_nan=no) + AC_MSG_RESULT($ac_cv_log_subnormal_is_nan) +;; +esac + AC_REPLACE_FUNCS(hypot) AC_CHECK_FUNCS(acosh asinh atanh copysign expm1 finite isinf isnan log1p) |