Fix libxml2 2.12.x build issues. https://github.com/php/php-src/commit/8a95e616b91ac0eeedba90a61e36e652919763f2 https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082 --- a/ext/dom/document.c 2020-09-30 00:15:55.000000000 -0500 +++ b/ext/dom/document.c 2024-05-19 14:58:38.000000000 -0500 @@ -27,6 +27,7 @@ #if HAVE_LIBXML && HAVE_DOM #include "php_dom.h" #include +#include #ifdef LIBXML_SCHEMAS_ENABLED #include #include --- a/ext/libxml/libxml.c 2019-01-09 03:54:13.000000000 -0600 +++ b/ext/libxml/libxml.c 2024-05-20 15:38:21.000000000 -0500 @@ -470,7 +470,11 @@ return 1; } -static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg) +#if LIBXML_VERSION >= 21200 +static void _php_list_set_error_structure(const xmlError *error, const char *msg) +#else +static void _php_list_set_error_structure(xmlError *error, const char *msg) +#endif { xmlError error_copy; int ret; @@ -728,7 +732,11 @@ va_end(args); } +#if LIBXML_VERSION >= 21200 +PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error) +#else PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error) +#endif { _php_list_set_error_structure(error, NULL); @@ -1001,9 +1009,7 @@ Retrieve last error from libxml */ static PHP_FUNCTION(libxml_get_last_error) { - xmlErrorPtr error; - - error = xmlGetLastError(); + const xmlError *error = xmlGetLastError(); if (error) { object_init_ex(return_value, libxmlerror_class_entry); --- a/ext/libxml/php_libxml.h 2019-01-09 03:54:13.000000000 -0600 +++ b/ext/libxml/php_libxml.h 2024-05-20 15:37:55.000000000 -0500 @@ -36,6 +36,7 @@ #include "ext/standard/php_smart_str.h" #include +#include #define LIBXML_SAVE_NOEMPTYTAG 1<<2