@@ -1322,9 +1322,9 @@ else
13221322 fiber_asm="no"
13231323fi
13241324
1325- dnl Check whether syscall to create shadow stack exists, should be a better way, but...
1326- AC_CACHE_CHECK ( [ whether syscall to create shadow stack exists ] , ac_cv_syscall_shadow_stack_exists ,
1327- [ AC_RUN_IFELSE ( [ AC_LANG_SOURCE ( [ [
1325+ AC_CACHE_CHECK ( [ whether syscall to create shadow stack exists] ,
1326+ [ php_cv_have_shadow_stack_syscall ] ,
1327+ [ AC_RUN_IFELSE ( [ AC_LANG_SOURCE ( [
13281328#include <unistd.h>
13291329#include <sys/mman.h>
13301330int main(void) {
@@ -1334,18 +1334,19 @@ int main(void) {
13341334 munmap(base, 0x20000);
13351335 return 0;
13361336 }
1337- else
1338- return 1;
1337+ return 1;
13391338}
1340- ] ] ) ] , [ ac_cv_syscall_shadow_stack_exists=yes] , [ ac_cv_syscall_shadow_stack_exists=no] , [ ac_cv_syscall_shadow_stack_exists=no] )
1339+ ] ) ] ,
1340+ [ php_cv_have_shadow_stack_syscall=yes] ,
1341+ [ php_cv_have_shadow_stack_syscall=no] ,
1342+ [ php_cv_have_shadow_stack_syscall=no] )
13411343] )
1342- if test "$ac_cv_syscall_shadow_stack_exists" = yes; then
1343- AC_DEFINE ( [ SHADOW_STACK_SYSCALL] , 1 , [ ] )
1344- # asm file can't see macro from AC_DEFINE, workaround this via cflag
1345- fiber_asm_cflag="-DSHADOW_STACK_SYSCALL=1"
1346- # if the syscall doesn't exist, we may block the final ELF from __PROPERTY_SHSTK
1347- # via redefine macro as "-D__CET__=1"
1348- fi
1344+ dnl The asm files can't see macro from AC_DEFINE, workaround this via cflag. If
1345+ dnl the syscall doesn't exist, we may block the final ELF from __PROPERTY_SHSTK
1346+ dnl via redefine macro as "-D__CET__=1".
1347+ AS_VAR_IF ( [ php_cv_have_shadow_stack_syscall] , [ yes] ,
1348+ [ fiber_asm_cflag="-DSHADOW_STACK_SYSCALL=1"] ,
1349+ [ fiber_asm_cflag="-DSHADOW_STACK_SYSCALL=0"] )
13491350
13501351if test "$fiber_asm" = 'yes'; then
13511352 AC_MSG_CHECKING ( [ for fiber switching context] )
@@ -1776,7 +1777,7 @@ PHP_ADD_SOURCES(Zend, \
17761777 Optimizer/escape_analysis.c \
17771778 Optimizer/compact_vars.c \
17781779 Optimizer/zend_dump.c \
1779- , -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
1780+ , [ -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 $fiber_asm_cflag ] )
17801781
17811782PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/scripts/Makefile.frag,$abs_srcdir/scripts,scripts)
17821783PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Zend/Makefile.frag,$abs_srcdir/Zend,Zend)
0 commit comments