Skip to content

Commit c7c02f2

Browse files
authored
Wrap global register variables check in M4 macro (#14683)
This adds ZEND_CHECK_GLOBAL_REGISTER_VARIABLES M4 macro to properly sort the --enable-gcc-global-regs in configure --help output, fixes over-quoted arguments, syncs CS and updates help texts.
1 parent ac54d1c commit c7c02f2

File tree

1 file changed

+31
-24
lines changed

1 file changed

+31
-24
lines changed

Zend/Zend.m4

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ AS_VAR_IF([php_cv_have_stack_limit], [yes],
196196
197197
ZEND_CHECK_FLOAT_PRECISION
198198
ZEND_DLSYM_CHECK
199+
ZEND_CHECK_GLOBAL_REGISTER_VARIABLES
199200
200201
AC_MSG_CHECKING(whether to enable thread-safety)
201202
AC_MSG_RESULT($ZEND_ZTS)
@@ -322,18 +323,24 @@ fi
322323
323324
AC_MSG_CHECKING(whether to enable zend max execution timers)
324325
AC_MSG_RESULT($ZEND_MAX_EXECUTION_TIMERS)
325-
326326
])
327327

328+
dnl
329+
dnl ZEND_CHECK_GLOBAL_REGISTER_VARIABLES
330+
dnl
331+
dnl Check whether to enable global register variables if supported.
332+
dnl
333+
AC_DEFUN([ZEND_CHECK_GLOBAL_REGISTER_VARIABLES], [dnl
328334
AC_ARG_ENABLE([gcc-global-regs],
329335
[AS_HELP_STRING([--disable-gcc-global-regs],
330-
[whether to enable GCC global register variables])],
336+
[Disable GCC global register variables])],
331337
[ZEND_GCC_GLOBAL_REGS=$enableval],
332338
[ZEND_GCC_GLOBAL_REGS=yes])
333339
334-
AC_MSG_CHECKING(for global register variables support)
335-
if test "$ZEND_GCC_GLOBAL_REGS" != "no"; then
336-
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
340+
AS_VAR_IF([ZEND_GCC_GLOBAL_REGS], [no],,
341+
[AC_CACHE_CHECK([whether system supports global register variables],
342+
[php_cv_have_global_register_vars],
343+
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
337344
#if defined(__GNUC__)
338345
# define ZEND_GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
339346
#else
@@ -364,25 +371,25 @@ typedef int (*opcode_handler_t)(void);
364371
register void *FP __asm__(ZEND_VM_FP_GLOBAL_REG);
365372
register const opcode_handler_t *IP __asm__(ZEND_VM_IP_GLOBAL_REG);
366373
int emu(const opcode_handler_t *ip, void *fp) {
367-
const opcode_handler_t *orig_ip = IP;
368-
void *orig_fp = FP;
369-
IP = ip;
370-
FP = fp;
371-
while ((*ip)());
372-
FP = orig_fp;
373-
IP = orig_ip;
374-
}
375-
]], [[
376-
]])], [
377-
ZEND_GCC_GLOBAL_REGS=yes
378-
], [
379-
ZEND_GCC_GLOBAL_REGS=no
380-
])
381-
fi
382-
if test "$ZEND_GCC_GLOBAL_REGS" = "yes"; then
383-
AC_DEFINE([HAVE_GCC_GLOBAL_REGS], 1, [Define if the target system has support for global register variables])
384-
fi
385-
AC_MSG_RESULT($ZEND_GCC_GLOBAL_REGS)
374+
const opcode_handler_t *orig_ip = IP;
375+
void *orig_fp = FP;
376+
IP = ip;
377+
FP = fp;
378+
while ((*ip)());
379+
FP = orig_fp;
380+
IP = orig_ip;
381+
}], [])],
382+
[php_cv_have_global_register_vars=yes],
383+
[php_cv_have_global_register_vars=no])
384+
])
385+
AS_VAR_IF([php_cv_have_global_register_vars], [yes],
386+
[AC_DEFINE([HAVE_GCC_GLOBAL_REGS], [1],
387+
[Define to 1 if the target system has support for global register variables.])],
388+
[ZEND_GCC_GLOBAL_REGS=no])
389+
])
390+
AC_MSG_CHECKING([whether to enable global register variables support])
391+
AC_MSG_RESULT([$ZEND_GCC_GLOBAL_REGS])
392+
])
386393

387394
dnl Check whether __cpuid_count is available.
388395
AC_CACHE_CHECK(whether __cpuid_count is available, ac_cv_cpuid_count_available, [

0 commit comments

Comments
 (0)