[php-src] PHP-8.4: Fix GH-24533: Accept z.lib from zlib 1.3.2 CMake builds on Windows (#24539)
| From: | Lazizbek Ergashev via GitHub | Date: | Thu, 22 Oct 2026 16:45:44 +0000 |
| Subject: | [php-src] PHP-8.4: Fix GH-24533: Accept z.lib from zlib 1.3.2 CMake builds on Windows (#24539) | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-142587@lists.php.net to get a copy of this message | ||
Author: Lazizbek Ergashev (lazerg)
Committer: GitHub (web-flow)
Pusher: shivammathur
Date: 2026-10-22T22:14:05+05:30
Commit: https://github.com/php/php-src/commit/3d3d3665a7364e25cdcefbfca3caafed44d32a2b
Raw diff: https://github.com/php/php-src/commit/3d3d3665a7364e25cdcefbfca3caafed44d32a2b.diff
Fix GH-24533: Accept z.lib from zlib 1.3.2 CMake builds on Windows (#24539)
* Fix GH-24533: Accept z.lib from zlib 1.3.2 CMake builds on Windows
* Prefer static zs.lib and add NEWS entry
* Accept zlib 1.3.2 lib names in the other zlib lookups
Changed paths:
M NEWS
M ext/curl/config.w32
M ext/gd/config.w32
M ext/mysqlnd/config.w32
M ext/zip/config.w32
M ext/zlib/config.w32
Diff:
diff --git a/NEWS b/NEWS
index 4c87bae60971..b2a90382e70f 100644
--- a/NEWS
+++ b/NEWS
@@ -146,6 +146,8 @@ PHP NEWS
- Zlib:
. Fixed use-after-free when an error handler removes a failing zlib.inflate
filter (GH-24176). (Edmond)
+ . Fixed bug GH-24533 (zlib.lib could not be found because zlib 1.3.2
+ CMake build does not emit it). (Lazizbek Ergashev)
22 Oct 2026, PHP 8.4.27
diff --git a/ext/curl/config.w32 b/ext/curl/config.w32
index 7d336b4fae91..c71f2a39812d 100644
--- a/ext/curl/config.w32
+++ b/ext/curl/config.w32
@@ -19,8 +19,8 @@ if (PHP_CURL != "no") {
SETUP_OPENSSL("curl", PHP_CURL) > 0 &&
CHECK_LIB("winmm.lib", "curl", PHP_CURL) &&
CHECK_LIB("wldap32.lib", "curl", PHP_CURL) &&
- (((PHP_ZLIB=="no") && (CHECK_LIB("zlib_a.lib;zlib.lib",
"curl", PHP_CURL))) ||
- (PHP_ZLIB_SHARED && CHECK_LIB("zlib.lib", "curl", PHP_CURL)) ||
(PHP_ZLIB == "yes" && (!PHP_ZLIB_SHARED))) &&
+ (((PHP_ZLIB=="no") && (CHECK_LIB("zlib_a.lib;zlib.lib;zs.lib;z.lib",
"curl", PHP_CURL))) ||
+ (PHP_ZLIB_SHARED && CHECK_LIB("zlib.lib;zs.lib;z.lib", "curl",
PHP_CURL)) || (PHP_ZLIB == "yes" && (!PHP_ZLIB_SHARED))) &&
!isNaN(ver_num) &&
(ver_num <= parseInt("0x073b00") || ver_num > parseInt("0x073b00")
&&
CHECK_LIB("normaliz.lib", "curl", PHP_CURL) &&
diff --git a/ext/gd/config.w32 b/ext/gd/config.w32
index 939755bf539d..8894b7f584f2 100644
--- a/ext/gd/config.w32
+++ b/ext/gd/config.w32
@@ -16,8 +16,8 @@ if (PHP_GD != "no") {
CHECK_HEADER_ADD_INCLUDE("png.h", "CFLAGS_GD", PHP_GD + ";" +
PHP_PHP_BUILD + "\\include\\libpng12")) &&
(CHECK_LIB("libiconv_a.lib;libiconv.lib", "gd", PHP_GD) ||
CHECK_LIB("iconv_a.lib;iconv.lib", "gd", PHP_GD)) &&
CHECK_HEADER_ADD_INCLUDE("iconv.h", "CFLAGS_GD", PHP_GD) &&
- (((PHP_ZLIB=="no") && (CHECK_LIB("zlib_a.lib;zlib.lib",
"gd", PHP_GD) )) ||
- (PHP_ZLIB_SHARED && CHECK_LIB("zlib.lib", "gd", PHP_GD)) ||
(PHP_ZLIB == "yes" && (!PHP_ZLIB_SHARED)))
+ (((PHP_ZLIB=="no") && (CHECK_LIB("zlib_a.lib;zlib.lib;zs.lib;z.lib",
"gd", PHP_GD) )) ||
+ (PHP_ZLIB_SHARED && CHECK_LIB("zlib.lib;zs.lib;z.lib", "gd",
PHP_GD)) || (PHP_ZLIB == "yes" && (!PHP_ZLIB_SHARED)))
) {
if (CHECK_LIB("libXpm_a.lib", "gd", PHP_GD) &&
diff --git a/ext/mysqlnd/config.w32 b/ext/mysqlnd/config.w32
index e9ff75f237ce..0c2be6daadbe 100644
--- a/ext/mysqlnd/config.w32
+++ b/ext/mysqlnd/config.w32
@@ -28,8 +28,8 @@ if (PHP_MYSQLND != "no") {
"mysqlnd_wireprotocol.c " +
"php_mysqlnd.c ";
EXTENSION("mysqlnd", mysqlnd_source, false,
"/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
- if ((((PHP_ZLIB=="no") && (CHECK_LIB("zlib_a.lib;zlib.lib",
"mysqlnd", PHP_MYSQLND))) ||
- (PHP_ZLIB_SHARED && CHECK_LIB("zlib.lib", "mysqlnd", PHP_MYSQLND))
||
+ if ((((PHP_ZLIB=="no") &&
(CHECK_LIB("zlib_a.lib;zlib.lib;zs.lib;z.lib", "mysqlnd", PHP_MYSQLND))) ||
+ (PHP_ZLIB_SHARED && CHECK_LIB("zlib.lib;zs.lib;z.lib", "mysqlnd",
PHP_MYSQLND)) ||
(PHP_ZLIB == "yes" && (!PHP_ZLIB_SHARED))) &&
CHECK_HEADER_ADD_INCLUDE("zlib.h", "CFLAGS", "..\\zlib;" +
php_usual_include_suspects)
)
diff --git a/ext/zip/config.w32 b/ext/zip/config.w32
index c0226f897646..6f0644baaf99 100644
--- a/ext/zip/config.w32
+++ b/ext/zip/config.w32
@@ -6,7 +6,7 @@ if (PHP_ZIP != "no") {
if (CHECK_HEADER_ADD_INCLUDE("zip.h", "CFLAGS_ZIP", PHP_PHP_BUILD +
"\\include;" + PHP_EXTRA_INCLUDES) &&
CHECK_HEADER_ADD_INCLUDE("zipconf.h", "CFLAGS_ZIP", PHP_PHP_BUILD +
"\\lib\\libzip\\include;" + PHP_EXTRA_LIBS + "\\libzip\\include;" + PHP_ZIP)
&&
(PHP_ZIP_SHARED && CHECK_LIB("libzip.lib", "zip", PHP_ZIP) ||
- CHECK_LIB("libzip_a.lib", "zip", PHP_ZIP) &&
CHECK_LIB("libbz2_a.lib", "zip", PHP_ZIP) &&
CHECK_LIB("zlib_a.lib", "zip", PHP_ZIP) &&
CHECK_LIB("liblzma_a.lib", "zip", PHP_ZIP))
+ CHECK_LIB("libzip_a.lib", "zip", PHP_ZIP) &&
CHECK_LIB("libbz2_a.lib", "zip", PHP_ZIP) &&
CHECK_LIB("zlib_a.lib;zs.lib", "zip", PHP_ZIP) &&
CHECK_LIB("liblzma_a.lib", "zip", PHP_ZIP))
) {
EXTENSION('zip', 'php_zip.c zip_stream.c');
ADD_EXTENSION_DEP('zip', 'pcre');
diff --git a/ext/zlib/config.w32 b/ext/zlib/config.w32
index 3bc24d88e173..7a743818dcda 100644
--- a/ext/zlib/config.w32
+++ b/ext/zlib/config.w32
@@ -3,7 +3,7 @@
ARG_ENABLE("zlib", "ZLIB support", "yes");
if (PHP_ZLIB == "yes") {
- if (CHECK_LIB("zlib_a.lib;zlib.lib", "zlib", PHP_ZLIB) &&
+ if (CHECK_LIB("zlib_a.lib;zlib.lib;zs.lib;z.lib", "zlib", PHP_ZLIB) &&
CHECK_HEADER_ADD_INCLUDE("zlib.h", "CFLAGS", "..\\zlib;" +
php_usual_include_suspects)) {
EXTENSION("zlib", "zlib.c zlib_fopen_wrapper.c zlib_filter.c",
PHP_ZLIB_SHARED, "/D ZLIB_EXPORTS /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");