summaryrefslogtreecommitdiffstats
path: root/configure.in
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2008-04-30 14:21:39 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2008-04-30 14:21:39 (GMT)
commit6471f9633bef73e6727bde467bbcd59d0fea4bf1 (patch)
tree0c93b3f72fc4a9ec0da68708ffa1d079601ec3f9 /configure.in
parentb2c7af82211ac32295b9419f359036ccb4e819a7 (diff)
downloadcpython-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.in135
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)