mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00
Refactor Zend/acinclude.m4 local macro
There is now only a single M4 macro in the legacy acinclude.m4 file. A separate acinclude file was once used with a standalone Zend engine building but with current build system this can be simplified a bit.
This commit is contained in:
parent
1c94aac89e
commit
b1d3509e8c
4 changed files with 115 additions and 120 deletions
114
Zend/Zend.m4
114
Zend/Zend.m4
|
@ -2,6 +2,120 @@ dnl
|
||||||
dnl This file contains Zend specific autoconf functions.
|
dnl This file contains Zend specific autoconf functions.
|
||||||
dnl
|
dnl
|
||||||
|
|
||||||
|
dnl x87 floating point internal precision control checks
|
||||||
|
dnl See: http://wiki.php.net/rfc/rounding
|
||||||
|
AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
|
||||||
|
AC_MSG_CHECKING([for usable _FPU_SETCW])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#include <fpu_control.h>
|
||||||
|
]],[[
|
||||||
|
fpu_control_t fpu_oldcw, fpu_cw;
|
||||||
|
volatile double result;
|
||||||
|
double a = 2877.0;
|
||||||
|
volatile double b = 1000000.0;
|
||||||
|
|
||||||
|
_FPU_GETCW(fpu_oldcw);
|
||||||
|
fpu_cw = (fpu_oldcw & ~_FPU_EXTENDED & ~_FPU_SINGLE) | _FPU_DOUBLE;
|
||||||
|
_FPU_SETCW(fpu_cw);
|
||||||
|
result = a / b;
|
||||||
|
_FPU_SETCW(fpu_oldcw);
|
||||||
|
]])],[ac_cfp_have__fpu_setcw=yes],[ac_cfp_have__fpu_setcw=no])
|
||||||
|
if test "$ac_cfp_have__fpu_setcw" = "yes" ; then
|
||||||
|
AC_DEFINE(HAVE__FPU_SETCW, 1, [whether _FPU_SETCW is present and usable])
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for usable fpsetprec])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#include <machine/ieeefp.h>
|
||||||
|
]],[[
|
||||||
|
fp_prec_t fpu_oldprec;
|
||||||
|
volatile double result;
|
||||||
|
double a = 2877.0;
|
||||||
|
volatile double b = 1000000.0;
|
||||||
|
|
||||||
|
fpu_oldprec = fpgetprec();
|
||||||
|
fpsetprec(FP_PD);
|
||||||
|
result = a / b;
|
||||||
|
fpsetprec(fpu_oldprec);
|
||||||
|
]])], [ac_cfp_have_fpsetprec=yes], [ac_cfp_have_fpsetprec=no])
|
||||||
|
if test "$ac_cfp_have_fpsetprec" = "yes" ; then
|
||||||
|
AC_DEFINE(HAVE_FPSETPREC, 1, [whether fpsetprec is present and usable])
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for usable _controlfp])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#include <float.h>
|
||||||
|
]],[[
|
||||||
|
unsigned int fpu_oldcw;
|
||||||
|
volatile double result;
|
||||||
|
double a = 2877.0;
|
||||||
|
volatile double b = 1000000.0;
|
||||||
|
|
||||||
|
fpu_oldcw = _controlfp(0, 0);
|
||||||
|
_controlfp(_PC_53, _MCW_PC);
|
||||||
|
result = a / b;
|
||||||
|
_controlfp(fpu_oldcw, _MCW_PC);
|
||||||
|
]])], [ac_cfp_have__controlfp=yes], [ac_cfp_have__controlfp=no])
|
||||||
|
if test "$ac_cfp_have__controlfp" = "yes" ; then
|
||||||
|
AC_DEFINE(HAVE__CONTROLFP, 1, [whether _controlfp is present usable])
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for usable _controlfp_s])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#include <float.h>
|
||||||
|
]],[[
|
||||||
|
unsigned int fpu_oldcw, fpu_cw;
|
||||||
|
volatile double result;
|
||||||
|
double a = 2877.0;
|
||||||
|
volatile double b = 1000000.0;
|
||||||
|
|
||||||
|
_controlfp_s(&fpu_cw, 0, 0);
|
||||||
|
fpu_oldcw = fpu_cw;
|
||||||
|
_controlfp_s(&fpu_cw, _PC_53, _MCW_PC);
|
||||||
|
result = a / b;
|
||||||
|
_controlfp_s(&fpu_cw, fpu_oldcw, _MCW_PC);
|
||||||
|
]])], [ac_cfp_have__controlfp_s=yes], [ac_cfp_have__controlfp_s=no])
|
||||||
|
if test "$ac_cfp_have__controlfp_s" = "yes" ; then
|
||||||
|
AC_DEFINE(HAVE__CONTROLFP_S, 1, [whether _controlfp_s is present and usable])
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether FPU control word can be manipulated by inline assembler])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
/* nothing */
|
||||||
|
]],[[
|
||||||
|
unsigned int oldcw, cw;
|
||||||
|
volatile double result;
|
||||||
|
double a = 2877.0;
|
||||||
|
volatile double b = 1000000.0;
|
||||||
|
|
||||||
|
__asm__ __volatile__ ("fnstcw %0" : "=m" (*&oldcw));
|
||||||
|
cw = (oldcw & ~0x0 & ~0x300) | 0x200;
|
||||||
|
__asm__ __volatile__ ("fldcw %0" : : "m" (*&cw));
|
||||||
|
|
||||||
|
result = a / b;
|
||||||
|
|
||||||
|
__asm__ __volatile__ ("fldcw %0" : : "m" (*&oldcw));
|
||||||
|
]])], [ac_cfp_have_fpu_inline_asm_x86=yes], [ac_cfp_have_fpu_inline_asm_x86=no])
|
||||||
|
if test "$ac_cfp_have_fpu_inline_asm_x86" = "yes" ; then
|
||||||
|
AC_DEFINE(HAVE_FPU_INLINE_ASM_X86, 1, [whether FPU control word can be manipulated by inline assembler])
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
AC_DEFUN([LIBZEND_BASIC_CHECKS],[
|
AC_DEFUN([LIBZEND_BASIC_CHECKS],[
|
||||||
AC_REQUIRE([AC_PROG_CC])
|
AC_REQUIRE([AC_PROG_CC])
|
||||||
|
|
||||||
|
|
|
@ -1,115 +0,0 @@
|
||||||
dnl This file contains local autoconf functions.
|
|
||||||
|
|
||||||
dnl x87 floating point internal precision control checks
|
|
||||||
dnl See: http://wiki.php.net/rfc/rounding
|
|
||||||
AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
|
|
||||||
AC_MSG_CHECKING([for usable _FPU_SETCW])
|
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
||||||
#include <fpu_control.h>
|
|
||||||
]],[[
|
|
||||||
fpu_control_t fpu_oldcw, fpu_cw;
|
|
||||||
volatile double result;
|
|
||||||
double a = 2877.0;
|
|
||||||
volatile double b = 1000000.0;
|
|
||||||
|
|
||||||
_FPU_GETCW(fpu_oldcw);
|
|
||||||
fpu_cw = (fpu_oldcw & ~_FPU_EXTENDED & ~_FPU_SINGLE) | _FPU_DOUBLE;
|
|
||||||
_FPU_SETCW(fpu_cw);
|
|
||||||
result = a / b;
|
|
||||||
_FPU_SETCW(fpu_oldcw);
|
|
||||||
]])],[ac_cfp_have__fpu_setcw=yes],[ac_cfp_have__fpu_setcw=no])
|
|
||||||
if test "$ac_cfp_have__fpu_setcw" = "yes" ; then
|
|
||||||
AC_DEFINE(HAVE__FPU_SETCW, 1, [whether _FPU_SETCW is present and usable])
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([for usable fpsetprec])
|
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
||||||
#include <machine/ieeefp.h>
|
|
||||||
]],[[
|
|
||||||
fp_prec_t fpu_oldprec;
|
|
||||||
volatile double result;
|
|
||||||
double a = 2877.0;
|
|
||||||
volatile double b = 1000000.0;
|
|
||||||
|
|
||||||
fpu_oldprec = fpgetprec();
|
|
||||||
fpsetprec(FP_PD);
|
|
||||||
result = a / b;
|
|
||||||
fpsetprec(fpu_oldprec);
|
|
||||||
]])], [ac_cfp_have_fpsetprec=yes], [ac_cfp_have_fpsetprec=no])
|
|
||||||
if test "$ac_cfp_have_fpsetprec" = "yes" ; then
|
|
||||||
AC_DEFINE(HAVE_FPSETPREC, 1, [whether fpsetprec is present and usable])
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([for usable _controlfp])
|
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
||||||
#include <float.h>
|
|
||||||
]],[[
|
|
||||||
unsigned int fpu_oldcw;
|
|
||||||
volatile double result;
|
|
||||||
double a = 2877.0;
|
|
||||||
volatile double b = 1000000.0;
|
|
||||||
|
|
||||||
fpu_oldcw = _controlfp(0, 0);
|
|
||||||
_controlfp(_PC_53, _MCW_PC);
|
|
||||||
result = a / b;
|
|
||||||
_controlfp(fpu_oldcw, _MCW_PC);
|
|
||||||
]])], [ac_cfp_have__controlfp=yes], [ac_cfp_have__controlfp=no])
|
|
||||||
if test "$ac_cfp_have__controlfp" = "yes" ; then
|
|
||||||
AC_DEFINE(HAVE__CONTROLFP, 1, [whether _controlfp is present usable])
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([for usable _controlfp_s])
|
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
||||||
#include <float.h>
|
|
||||||
]],[[
|
|
||||||
unsigned int fpu_oldcw, fpu_cw;
|
|
||||||
volatile double result;
|
|
||||||
double a = 2877.0;
|
|
||||||
volatile double b = 1000000.0;
|
|
||||||
|
|
||||||
_controlfp_s(&fpu_cw, 0, 0);
|
|
||||||
fpu_oldcw = fpu_cw;
|
|
||||||
_controlfp_s(&fpu_cw, _PC_53, _MCW_PC);
|
|
||||||
result = a / b;
|
|
||||||
_controlfp_s(&fpu_cw, fpu_oldcw, _MCW_PC);
|
|
||||||
]])], [ac_cfp_have__controlfp_s=yes], [ac_cfp_have__controlfp_s=no])
|
|
||||||
if test "$ac_cfp_have__controlfp_s" = "yes" ; then
|
|
||||||
AC_DEFINE(HAVE__CONTROLFP_S, 1, [whether _controlfp_s is present and usable])
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether FPU control word can be manipulated by inline assembler])
|
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
||||||
/* nothing */
|
|
||||||
]],[[
|
|
||||||
unsigned int oldcw, cw;
|
|
||||||
volatile double result;
|
|
||||||
double a = 2877.0;
|
|
||||||
volatile double b = 1000000.0;
|
|
||||||
|
|
||||||
__asm__ __volatile__ ("fnstcw %0" : "=m" (*&oldcw));
|
|
||||||
cw = (oldcw & ~0x0 & ~0x300) | 0x200;
|
|
||||||
__asm__ __volatile__ ("fldcw %0" : : "m" (*&cw));
|
|
||||||
|
|
||||||
result = a / b;
|
|
||||||
|
|
||||||
__asm__ __volatile__ ("fldcw %0" : : "m" (*&oldcw));
|
|
||||||
]])], [ac_cfp_have_fpu_inline_asm_x86=yes], [ac_cfp_have_fpu_inline_asm_x86=no])
|
|
||||||
if test "$ac_cfp_have_fpu_inline_asm_x86" = "yes" ; then
|
|
||||||
AC_DEFINE(HAVE_FPU_INLINE_ASM_X86, 1, [whether FPU control word can be manipulated by inline assembler])
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
])
|
|
|
@ -103,4 +103,4 @@ $MAKE -s -f build/build.mk \
|
||||||
PHP_AUTOCONF="$PHP_AUTOCONF" \
|
PHP_AUTOCONF="$PHP_AUTOCONF" \
|
||||||
PHP_AUTOHEADER="$PHP_AUTOHEADER" \
|
PHP_AUTOHEADER="$PHP_AUTOHEADER" \
|
||||||
PHP_AUTOCONF_FLAGS="$autoconf_flags" \
|
PHP_AUTOCONF_FLAGS="$autoconf_flags" \
|
||||||
PHP_M4_FILES="$(echo TSRM/*.m4 Zend/*.m4 ext/*/config*.m4 sapi/*/config*.m4)"
|
PHP_M4_FILES="$(echo TSRM/*.m4 Zend/Zend.m4 ext/*/config*.m4 sapi/*/config*.m4)"
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
dnl ## Process this file with autoconf to produce a configure script.
|
dnl ## Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
dnl include Zend specific macro definitions first
|
|
||||||
dnl -------------------------------------------------------------------------
|
|
||||||
sinclude(Zend/acinclude.m4)
|
|
||||||
|
|
||||||
dnl Basic autoconf initialization, generation of config.nice.
|
dnl Basic autoconf initialization, generation of config.nice.
|
||||||
dnl -------------------------------------------------------------------------
|
dnl -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue