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.
This commit is contained in:
Mark Dickinson 2008-04-30 14:21:39 +00:00
parent b2c7af8221
commit 6471f9633b
2 changed files with 565 additions and 1 deletions

431
configure vendored
View File

@ -1,5 +1,5 @@
#! /bin/sh
# From configure.in Revision: 62451 .
# From configure.in Revision: 62515 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for python 3.0.
#
@ -21082,6 +21082,435 @@ 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*)
{ echo "$as_me:$LINENO: checking whether 9.88e-324 compares unequal to 0.0" >&5
echo $ECHO_N "checking whether 9.88e-324 compares unequal to 0.0... $ECHO_C" >&6; }
if test "$cross_compiling" = yes; then
ac_cv_subnormal_nonzero=no
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <stdlib.h>
int main() {
double x = 9.88e-324;
if (x != 0.0)
exit(0);
else
exit(1);
}
_ACEOF
rm -f conftest$ac_exeext
if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_try") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_subnormal_nonzero=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
ac_cv_subnormal_nonzero=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
{ echo "$as_me:$LINENO: result: $ac_cv_subnormal_nonzero" >&5
echo "${ECHO_T}$ac_cv_subnormal_nonzero" >&6; }
{ echo "$as_me:$LINENO: checking whether log(9.88e-324) succeeds" >&5
echo $ECHO_N "checking whether log(9.88e-324) succeeds... $ECHO_C" >&6; }
if test "$cross_compiling" = yes; then
ac_cv_log_subnormal_succeeds=no
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <math.h>
#include <stdlib.h>
int main() {
double x = 9.88e-324;
x = log(x);
exit(0);
}
_ACEOF
rm -f conftest$ac_exeext
if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_try") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_log_subnormal_succeeds=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
ac_cv_log_subnormal_succeeds=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
{ echo "$as_me:$LINENO: result: $ac_cv_log_subnormal_succeeds" >&5
echo "${ECHO_T}$ac_cv_log_subnormal_succeeds" >&6; }
{ echo "$as_me:$LINENO: checking whether log(9.88e-324) returns correct result" >&5
echo $ECHO_N "checking whether log(9.88e-324) returns correct result... $ECHO_C" >&6; }
if test "$cross_compiling" = yes; then
ac_cv_log_subnormal_returns_correct_result=no
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#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);
}
_ACEOF
rm -f conftest$ac_exeext
if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_try") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_log_subnormal_returns_correct_result=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
ac_cv_log_subnormal_returns_correct_result=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
{ echo "$as_me:$LINENO: result: $ac_cv_log_subnormal_returns_correct_result" >&5
echo "${ECHO_T}$ac_cv_log_subnormal_returns_correct_result" >&6; }
{ echo "$as_me:$LINENO: checking whether log(9.88e-324) sets errno" >&5
echo $ECHO_N "checking whether log(9.88e-324) sets errno... $ECHO_C" >&6; }
if test "$cross_compiling" = yes; then
ac_cv_log_subnormal_sets_errno=no
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#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);
}
_ACEOF
rm -f conftest$ac_exeext
if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_try") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_log_subnormal_sets_errno=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
ac_cv_log_subnormal_sets_errno=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
{ echo "$as_me:$LINENO: result: $ac_cv_log_subnormal_sets_errno" >&5
echo "${ECHO_T}$ac_cv_log_subnormal_sets_errno" >&6; }
{ echo "$as_me:$LINENO: checking whether log(9.88e-324) sets errno = EDOM" >&5
echo $ECHO_N "checking whether log(9.88e-324) sets errno = EDOM... $ECHO_C" >&6; }
if test "$cross_compiling" = yes; then
ac_cv_log_subnormal_sets_errno_to_EDOM=no
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#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);
}
_ACEOF
rm -f conftest$ac_exeext
if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_try") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_log_subnormal_sets_errno_to_EDOM=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
ac_cv_log_subnormal_sets_errno_to_EDOM=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
{ echo "$as_me:$LINENO: result: $ac_cv_log_subnormal_sets_errno_to_EDOM" >&5
echo "${ECHO_T}$ac_cv_log_subnormal_sets_errno_to_EDOM" >&6; }
{ echo "$as_me:$LINENO: checking whether log(9.88e-324) is infinite" >&5
echo $ECHO_N "checking whether log(9.88e-324) is infinite... $ECHO_C" >&6; }
if test "$cross_compiling" = yes; then
ac_cv_log_subnormal_is_infinite=no
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#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);
}
_ACEOF
rm -f conftest$ac_exeext
if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_try") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_log_subnormal_is_infinite=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
ac_cv_log_subnormal_is_infinite=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
{ echo "$as_me:$LINENO: result: $ac_cv_log_subnormal_is_infinite" >&5
echo "${ECHO_T}$ac_cv_log_subnormal_is_infinite" >&6; }
{ echo "$as_me:$LINENO: checking whether log(9.88e-324) is a nan" >&5
echo $ECHO_N "checking whether log(9.88e-324) is a nan... $ECHO_C" >&6; }
if test "$cross_compiling" = yes; then
ac_cv_log_subnormal_is_nan=no
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <math.h>
#include <stdlib.h>
int main() {
double x = 9.88e-324;
x = log(x);
if (x != x)
exit(0);
else
exit(1);
}
_ACEOF
rm -f conftest$ac_exeext
if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_try") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_log_subnormal_is_nan=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
ac_cv_log_subnormal_is_nan=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
{ echo "$as_me:$LINENO: result: $ac_cv_log_subnormal_is_nan" >&5
echo "${ECHO_T}$ac_cv_log_subnormal_is_nan" >&6; }
;;
esac
for ac_func in hypot
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`

View File

@ -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)