Skip to content

Commit 8ad2b59

Browse files
committed
Disable stack reuse optimization for x86 PIC code. It may clobber local variable used for Global Offset Table.
1 parent f06afc4 commit 8ad2b59

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

Zend/zend_vm_gen.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2598,7 +2598,7 @@ function gen_vm($def, $skel) {
25982598
}
25992599
fputs($f, "\n");
26002600
fputs($f, "#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) && !defined(__SANITIZE_ADDRESS__)\n");
2601-
fputs($f, "# if (defined(i386) || defined(__x86_64__) || defined(_M_X64))\n");
2601+
fputs($f, "# if ((defined(i386) && !defined(__PIC__)) || defined(__x86_64__) || defined(_M_X64))\n");
26022602
fputs($f, "# define ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE 16\n");
26032603
fputs($f, "# endif\n");
26042604
fputs($f, "#endif\n");

Zend/zend_vm_opcodes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
#endif
3636

3737
#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) && !defined(__SANITIZE_ADDRESS__)
38-
# if (defined(i386) || defined(__x86_64__) || defined(_M_X64))
38+
# if ((defined(i386) && !defined(__PIC__)) || defined(__x86_64__) || defined(_M_X64))
3939
# define ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE 16
4040
# endif
4141
#endif

0 commit comments

Comments
 (0)