From 482378be6ed0037e261e2d3e2c6acbab30a58ad5 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Thu, 14 Nov 2024 19:42:41 +0100 Subject: [PATCH 1/2] Drop bogus ext/libxml dependency on ext/iconv There is no such dependency; only libxml2 depends on libiconv. So when php_libxml.dll is built, it needs to be linked against libiconv, or, when ext/iconv has been configured as static extension, against php8.dll. --- ext/libxml/config.w32 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ext/libxml/config.w32 b/ext/libxml/config.w32 index d836f0efcba7..539f100857a4 100644 --- a/ext/libxml/config.w32 +++ b/ext/libxml/config.w32 @@ -4,10 +4,10 @@ ARG_WITH("libxml", "LibXML support", "yes"); if (PHP_LIBXML == "yes") { if (CHECK_LIB("libxml2_a_dll.lib;libxml2_a.lib", "libxml") && - CHECK_LIB("libiconv_a.lib;iconv_a.lib;libiconv.lib;iconv.lib", "libxml") && + ((PHP_ICONV == "no" || PHP_ICONV_SHARED) && CHECK_LIB("libiconv_a.lib;iconv_a.lib;libiconv.lib;iconv.lib", "libxml") + || (PHP_ICONV == "yes" && !PHP_ICONV_SHARED)) && CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS_LIBXML", PHP_PHP_BUILD + "\\include\\libxml2") && - CHECK_HEADER_ADD_INCLUDE("libxml/tree.h", "CFLAGS_LIBXML", PHP_PHP_BUILD + "\\include\\libxml2") && - ADD_EXTENSION_DEP('libxml', 'iconv')) { + CHECK_HEADER_ADD_INCLUDE("libxml/tree.h", "CFLAGS_LIBXML", PHP_PHP_BUILD + "\\include\\libxml2")) { if (GREP_HEADER("libxml/xmlversion.h", "#define\\s+LIBXML_VERSION\\s+(\\d+)", PHP_PHP_BUILD + "\\include\\libxml2") && +RegExp.$1 >= 20904) { From 55ff3ffdb58652efbc3f63899c5cd2f75ef98a6d Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Fri, 15 Nov 2024 12:50:16 +0100 Subject: [PATCH 2/2] fix --- ext/libxml/config.w32 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ext/libxml/config.w32 b/ext/libxml/config.w32 index 539f100857a4..cc5f284dbc1c 100644 --- a/ext/libxml/config.w32 +++ b/ext/libxml/config.w32 @@ -4,8 +4,7 @@ ARG_WITH("libxml", "LibXML support", "yes"); if (PHP_LIBXML == "yes") { if (CHECK_LIB("libxml2_a_dll.lib;libxml2_a.lib", "libxml") && - ((PHP_ICONV == "no" || PHP_ICONV_SHARED) && CHECK_LIB("libiconv_a.lib;iconv_a.lib;libiconv.lib;iconv.lib", "libxml") - || (PHP_ICONV == "yes" && !PHP_ICONV_SHARED)) && + ((PHP_ICONV != "no" && !PHP_ICONV_SHARED) || CHECK_LIB("libiconv_a.lib;iconv_a.lib;libiconv.lib;iconv.lib", "libxml")) && CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS_LIBXML", PHP_PHP_BUILD + "\\include\\libxml2") && CHECK_HEADER_ADD_INCLUDE("libxml/tree.h", "CFLAGS_LIBXML", PHP_PHP_BUILD + "\\include\\libxml2")) {