From a25742e18fd1dac2dca8d1ff94334124da966540 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Sat, 9 Aug 2003 16:13:47 +0000 Subject: [PATCH] MFH: Detection of buggy compiler (gcc) --- ext/standard/config.m4 | 21 +++++++++++++++++++++ ext/standard/math.c | 8 +++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/ext/standard/config.m4 b/ext/standard/config.m4 index bc72ae533e..bf84dcfe40 100644 --- a/ext/standard/config.m4 +++ b/ext/standard/config.m4 @@ -226,6 +226,27 @@ AC_ARG_WITH(regex, REGEX_TYPE=php ]) +dnl +dnl round fuzz +dnl +AC_MSG_CHECKING([whether rounding works as expected]) +AC_TRY_RUN([ +#include + int main() { + return floor(0.045*pow(10,2) + 0.5)/10.0 != 0.5; + } +],[ + PHP_ROUND_FUZZ=0.5 + AC_MSG_RESULT(yes) +],[ + PHP_ROUND_FUZZ=0.50000000001 + AC_MSG_RESULT(no) +],[ + PHP_ROUND_FUZZ=0.50000000001 + AC_MSG_RESULT(cross compile) +]) +AC_DEFINE_UNQUOTED(PHP_ROUND_FUZZ, $PHP_ROUND_FUZZ, [ see #24142 ]) + AC_FUNC_FNMATCH dnl getopt long options disabled for now diff --git a/ext/standard/math.c b/ext/standard/math.c index 1b93b6fd0f..22f6805ddd 100644 --- a/ext/standard/math.c +++ b/ext/standard/math.c @@ -32,7 +32,13 @@ #define M_PI 3.14159265358979323846 #endif -#define PHP_ROUND_FUZZ 0.50000000001 +#ifndef PHP_ROUND_FUZZ +# ifndef PHP_WIN32 +# define PHP_ROUND_FUZZ 0.50000000001 +# else +# define PHP_ROUND_FUZZ 0.5 +# endif +#endif /* {{{ proto int abs(int number) Return the absolute value of the number */ -- 2.50.1