mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
![]() In AArch64 function `zend_jit_set_veneer()`, some debug code calls two other functions `ir_disasm_find_symbol()` and `ir_disasm_add_symbol()` defined in `ir_disasm.c`. However, `ir_disasm.c` is compiled under the condition that capstone is available. This causes an undefined symbol issue while loading `opcache.so` when JIT is triggered if PHP is built without `--with-capstone`. We find this issue on MacOS 12.5 if we build PHP with Clang 14. It does not appear immediately when using other versions of toolchains because of lazy binding. To reproduce this with Linux/GCC, we can disable lazy binding by `export LD_BIND_NOW=1` before building PHP. This fixes the issue by making the debug code conditionally compile. |
||
---|---|---|
.. | ||
jit | ||
tests | ||
config.m4 | ||
config.w32 | ||
CREDITS | ||
opcache.stub.php | ||
opcache_arginfo.h | ||
shared_alloc_mmap.c | ||
shared_alloc_posix.c | ||
shared_alloc_shm.c | ||
shared_alloc_win32.c | ||
zend_accelerator_blacklist.c | ||
zend_accelerator_blacklist.h | ||
zend_accelerator_debug.c | ||
zend_accelerator_debug.h | ||
zend_accelerator_hash.c | ||
zend_accelerator_hash.h | ||
zend_accelerator_module.c | ||
zend_accelerator_module.h | ||
zend_accelerator_util_funcs.c | ||
zend_accelerator_util_funcs.h | ||
zend_file_cache.c | ||
zend_file_cache.h | ||
zend_persist.c | ||
zend_persist.h | ||
zend_persist_calc.c | ||
zend_shared_alloc.c | ||
zend_shared_alloc.h | ||
ZendAccelerator.c | ||
ZendAccelerator.h |