]> granicus.if.org Git - php/commitdiff
Disable stack reuse optimization for x86 PIC code. It may clobber local variable...
authorDmitry Stogov <dmitry@zend.com>
Tue, 1 Dec 2020 12:20:06 +0000 (15:20 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 1 Dec 2020 12:20:06 +0000 (15:20 +0300)
Zend/zend_vm_gen.php
Zend/zend_vm_opcodes.h

index 46030cad0983fc65482741ae727b85ae9ba2b28f..0795822f96558a54f16ba924f2f66f81220962c7 100755 (executable)
@@ -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");
index 584a44f5ae1a59bbe40737be3bf24c579d7623a6..653e320b85d5481087e688645ea9e2cca1968767 100644 (file)
@@ -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