From 7bfb1be217c69f2d5b31c9017ca218447297530b Mon Sep 17 00:00:00 2001 From: Demon Date: Tue, 8 Jul 2025 13:51:03 +0800 Subject: [PATCH 1/3] Zend: fix undefined symbol 'execute_ex' on Windows ARM64 #19064; ext/gd: fix emmintrin.h not found on Windows ARM64 --- Zend/zend_vm_execute.skl | 2 +- ext/gd/libgd/gd_interpolation.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Zend/zend_vm_execute.skl b/Zend/zend_vm_execute.skl index 5b4799cd67c2a..b1e26d002604c 100644 --- a/Zend/zend_vm_execute.skl +++ b/Zend/zend_vm_execute.skl @@ -5,7 +5,7 @@ # pragma GCC optimize("no-gcse") # pragma GCC optimize("no-ivopts") #endif -#ifdef _WIN64 +#if defined(_WIN64) && defined(_M_X64) /* See save_xmm_x86_64_ms_masm.asm */ void {%EXECUTOR_NAME%}_ex_real(zend_execute_data *ex) #else diff --git a/ext/gd/libgd/gd_interpolation.c b/ext/gd/libgd/gd_interpolation.c index 5481fa2a16b02..4aa2b79b7a7c8 100644 --- a/ext/gd/libgd/gd_interpolation.c +++ b/ext/gd/libgd/gd_interpolation.c @@ -62,7 +62,7 @@ #include "gdhelpers.h" #include "gd_intern.h" -#ifdef _MSC_VER +#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) # pragma optimize("t", on) # include #endif From 2fcb71c1064b545be361b822bf2a32ac0cb559ae Mon Sep 17 00:00:00 2001 From: Demon Date: Tue, 8 Jul 2025 20:54:46 +0800 Subject: [PATCH 2/3] update zend_vm_execute.h with zend_vm_gen.php --- Zend/zend_vm_execute.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 25e537dc1c07a..96bdc01746ae6 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -55088,7 +55088,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NULL_HANDLER(ZEND_OPCODE_HANDL # pragma GCC optimize("no-gcse") # pragma GCC optimize("no-ivopts") #endif -#ifdef _WIN64 +#if defined(_WIN64) && defined(_M_X64) /* See save_xmm_x86_64_ms_masm.asm */ void execute_ex_real(zend_execute_data *ex) #else From 6968dc19a2e7b3998b52093d3b0f7352db65b22f Mon Sep 17 00:00:00 2001 From: Demon Date: Thu, 10 Jul 2025 09:52:59 +0800 Subject: [PATCH 3/3] ext/gd: Drop useless and doubtful MSVC specific code (libgd/libgd@f1480ab) --- ext/gd/libgd/gd_interpolation.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/ext/gd/libgd/gd_interpolation.c b/ext/gd/libgd/gd_interpolation.c index 4aa2b79b7a7c8..b3f391e6d20e9 100644 --- a/ext/gd/libgd/gd_interpolation.c +++ b/ext/gd/libgd/gd_interpolation.c @@ -62,11 +62,6 @@ #include "gdhelpers.h" #include "gd_intern.h" -#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) -# pragma optimize("t", on) -# include -#endif - #ifndef MIN #define MIN(a,b) ((a)<(b)?(a):(b)) #endif