diff --git a/ChangeLog b/ChangeLog index 0f70ff3e8..37436588b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2013-09-10 Paulo Andrade + + * check/lightning.c, configure.ac: Conditionally use the + code written to workaround a bug in the Hercules emulator, + as isnan and isinf are not available at least on HP-UX ia64. + 2013-09-10 Paulo Andrade * lib/jit_s390x-cpu.c: Spill/reload correct callee save diff --git a/check/lightning.c b/check/lightning.c index 7ddd17aa0..2cf38edc8 100644 --- a/check/lightning.c +++ b/check/lightning.c @@ -1880,11 +1880,15 @@ get_float(skip_t skip) static float make_float(double d) { + /* This is an workaround to a bug in Hercules s390x emulator, + * and at least HP-UX ia64 not have these */ +#if defined(HAVE_ISNAN) && defined(HAVE_ISINF) if (isnan(d)) return ( 0.0f/0.0f); if (isinf(d)) { if (d > 0.0) return ( 1.0f/0.0f); else return (-1.0f/0.0f); } +#endif return ((float)d); } diff --git a/configure.ac b/configure.ac index 4f645df92..3741452d5 100644 --- a/configure.ac +++ b/configure.ac @@ -43,7 +43,7 @@ AC_PROG_CC AC_PROG_INSTALL AC_PROG_LIBTOOL -AC_CHECK_FUNCS(mremap ffsl getopt_long_only,,) +AC_CHECK_FUNCS(mremap ffsl getopt_long_only isnan isinf,,) AC_CHECK_HEADERS([getopt.h],,,)