From 2be3aa86f04be760cfc826f11c4d11dedd060ff9 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.h | 2 +- Zend/zend_vm_execute.skl | 2 +- ext/gd/libgd/gd_interpolation.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 25e537dc1c0..96bdc01746a 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 diff --git a/Zend/zend_vm_execute.skl b/Zend/zend_vm_execute.skl index 5b4799cd67c..b1e26d00260 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 5481fa2a16b..4aa2b79b7a7 100644 --- a/ext/gd/libgd/gd_interpolation.c +++ b/ext/gd/libgd/gd_interpolation.c @@ -62,7 +62,7 @@ TODO: #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 12fa8c637f9801f7b9574f152f31845403345d9a Mon Sep 17 00:00:00 2001 From: Demon Date: Thu, 10 Jul 2025 09:52:59 +0800 Subject: [PATCH 2/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 4aa2b79b7a7..b3f391e6d20 100644 --- a/ext/gd/libgd/gd_interpolation.c +++ b/ext/gd/libgd/gd_interpolation.c @@ -62,11 +62,6 @@ TODO: #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 From 2fa0e554500d6568f18eef08b34b6d5fd88fb6e9 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Thu, 10 Jul 2025 22:14:38 +0200 Subject: [PATCH 3/3] Update NEWS for GH-19068 --- NEWS | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index d4354c12b08..2061e6d5338 100644 --- a/NEWS +++ b/NEWS @@ -11,7 +11,9 @@ PHP NEWS . Fixed bug GH-18907 (Leak when creating cycle in hook). (ilutov) . Fix OSS-Fuzz #427814456. (nielsdos) . Fix OSS-Fuzz #428983568 and #428760800. (nielsdos) - . Fixed bug GH-17204 -Wuseless-escape warnings emitted by re2c. (Peter Kokot) + . Fixed bug GH-17204 (-Wuseless-escape warnings emitted by re2c). (Peter Kokot) + . Fixed bug GH-19064 (Undefined symbol 'execute_ex' on Windows ARM64). + (Demon) - Curl: . Fix memory leaks when returning refcounted value from curl callback.