diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2008-04-30 14:21:39 (GMT) |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2008-04-30 14:21:39 (GMT) |
commit | 6471f9633bef73e6727bde467bbcd59d0fea4bf1 (patch) | |
tree | 0c93b3f72fc4a9ec0da68708ffa1d079601ec3f9 /configure.in | |
parent | b2c7af82211ac32295b9419f359036ccb4e819a7 (diff) | |
download | cpython-6471f9633bef73e6727bde467bbcd59d0fea4bf1.zip cpython-6471f9633bef73e6727bde467bbcd59d0fea4bf1.tar.gz cpython-6471f9633bef73e6727bde467bbcd59d0fea4bf1.tar.bz2 |
Add some temporary autoconf checks to try to figure out why test_math is
failing on Debian/alpha. (log(9.88e-324) gives an unexpected ValueError
on that platform). These checks will be removed again once the source
of the problem is identified.
I hope this is a reasonable way to approach the Debian/alpha buildbot
failures; if there's a better way of debugging buildbot test failures
then please let me know.
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) |