summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2020-12-01 15:26:37 +0300
committerDmitry Stogov <dmitry@zend.com>2020-12-01 15:26:37 +0300
commit5b078e7858d6cc07387f96baeb24d8649df3b78f (patch)
tree4d0ddd51d27662ab243114d3e976dcad40f9d01d /Zend
parent3b4fb2ebea162281e4846008bed5fee5fee56460 (diff)
parent8ad2b59e12887d3f4952291b7d63ec9838a386d8 (diff)
downloadphp-git-5b078e7858d6cc07387f96baeb24d8649df3b78f.tar.gz
Merge branch 'PHP-8.0'
* PHP-8.0: Disable stack reuse optimization for x86 PIC code. It may clobber local variable used for Global Offset Table.
Diffstat (limited to 'Zend')
-rwxr-xr-xZend/zend_vm_gen.php2
-rw-r--r--Zend/zend_vm_opcodes.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index 46030cad09..0795822f96 100755
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -2598,7 +2598,7 @@ function gen_vm($def, $skel) {
}
fputs($f, "\n");
fputs($f, "#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) && !defined(__SANITIZE_ADDRESS__)\n");
- fputs($f, "# if (defined(i386) || defined(__x86_64__) || defined(_M_X64))\n");
+ fputs($f, "# if ((defined(i386) && !defined(__PIC__)) || defined(__x86_64__) || defined(_M_X64))\n");
fputs($f, "# define ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE 16\n");
fputs($f, "# endif\n");
fputs($f, "#endif\n");
diff --git a/Zend/zend_vm_opcodes.h b/Zend/zend_vm_opcodes.h
index 584a44f5ae..653e320b85 100644
--- a/Zend/zend_vm_opcodes.h
+++ b/Zend/zend_vm_opcodes.h
@@ -35,7 +35,7 @@
#endif
#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) && !defined(__SANITIZE_ADDRESS__)
-# if (defined(i386) || defined(__x86_64__) || defined(_M_X64))
+# if ((defined(i386) && !defined(__PIC__)) || defined(__x86_64__) || defined(_M_X64))
# define ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE 16
# endif
#endif