From 15925864b2a457183a73ffef96c33dd2fdb1c065 Mon Sep 17 00:00:00 2001 From: Sascha Schumann Date: Sun, 18 Jun 2000 16:51:42 +0000 Subject: [PATCH] fp_except check for FreeBSD 1.0-2.2.5 --- Zend/Zend.m4 | 2 ++ Zend/acinclude.m4 | 18 ++++++++++++++++++ Zend/zend.c | 8 ++++++-- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Zend/Zend.m4 b/Zend/Zend.m4 index 79d2c69138..0107d8f09b 100644 --- a/Zend/Zend.m4 +++ b/Zend/Zend.m4 @@ -67,6 +67,8 @@ AC_ZEND_BROKEN_SPRINTF AC_CHECK_FUNCS(finite isfinite isinf isnan) +ZEND_FP_EXCEPT + AC_SUBST(ZEND_SCANNER) ]) diff --git a/Zend/acinclude.m4 b/Zend/acinclude.m4 index 7ec914d407..395f7220db 100644 --- a/Zend/acinclude.m4 +++ b/Zend/acinclude.m4 @@ -2,6 +2,24 @@ dnl $Id$ dnl dnl This file contains local autoconf functions. +AC_DEFUN(ZEND_FP_EXCEPT,[ + AC_CACHE_CHECK(whether fp_except is defined, ac_cv_type_fp_except,[ + AC_TRY_COMPILE([ +#include +],[ +fp_except x = (fp_except) 0; +],[ + ac_cv_type_fp_except=yes +],[ + ac_cv_type_fp_except=no +],[ + ac_cv_type_fp_except=no +])]) + if test "$ac_cv_type_fp_except" = "yes"; then + AC_DEFINE(HAVE_FP_EXCEPT, 1, [whether floatingpoint.h defines fp_except]) + fi +]) + dnl dnl Check for broken sprintf() dnl diff --git a/Zend/zend.c b/Zend/zend.c index c704e5d6ac..5065da7537 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -329,8 +329,12 @@ int zend_startup(zend_utility_functions *utility_functions, char **extensions, i #ifdef __FreeBSD__ { /* FreeBSD floating point precision fix */ - - fp_except_t mask; +#ifdef HAVE_FP_EXCEPT + fp_except +#else + fp_except_t +#endif + mask; mask = fpgetmask(); fpsetmask(mask & ~FP_X_IMP); -- 2.40.0