Skip to content

PHP 8.2.13 fails to build against libxml 2.12.1 and libxslt 1.1.39 #12789

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ricky-rockstar opened this issue Nov 26, 2023 · 3 comments
Closed

Comments

@ricky-rockstar
Copy link

Description

The following build:

export PKG_CONFIG_PATH=/build/Python-3.12.0/lib/pkgconfig:/build/libntlm-1.6/lib64/pkgconfig:/build/gsasl-2.2.0/lib64/pkgconfig:/build/cyrus-sasl-2.1.28/lib64/pkgconfig:/build/krb5-1.21.2/lib64/pkgconfig:/build/icu4c-74_1/lib64/pkgconfig:/build/libxml2-v2.12.1/lib64/pkgconfig:/build/libxslt-v1.1.39/lib/pkgconfig:/build/openssl-3.2.0/lib64/pkgconfig:/build/nghttp2-1.58.0/lib/pkgconfig:/build/ruby-3.1.2/lib/pkgconfig:/build/libssh2-1.11.0/lib64/pkgconfig:/build/openssh-9.5p1/lib64/pkgconfig:/build/openldap-2.6.6/lib64/pkgconfig:/build/curl-8.4.0/lib64/pkgconfig:/build/libzip/lib64/pkgconfig:/build/freetype-2.13.2/lib64/pkgconfig:/build/libwebp-1.3.2/lib64/pkgconfig:/build/oniguruma-6.9.9/lib64/pkgconfig:/build/apr-1.7.4/lib64/pkgconfig:/build/apr-util-1.6.3/lib64/pkgconfig:/build/pcre-8.45/lib64/pkgconfig:/build/pcre2-10.42/lib64/pkgconfig

./configure --disable-all --prefix=/resources/php --bindir=/resources/php/bin --sbindir=/resources/php/sbin --with-config-file-path=/resources/php/lib/osDo-not-modify-this-php_ini --with-config-file-scan-dir=/configuration/php/ini --disable-debug --enable-opcache=shared --enable-huge-code-pages --enable-intl=shared --enable-ftp=shared --enable-session=shared --enable-xml=shared --with-apxs2=/resources/apache2/bin/apxs --with-layout=GNU --enable-filter=shared --with-zlib=shared --enable-simplexml=shared --enable-dom=shared --with-openssl=shared,/build/openssl-3.2.0 --with-readline=shared --with-iconv=shared --enable-phar=shared --enable-xmlwriter=shared --enable-xmlreader=shared --enable-bcmath=shared --with-bz2=shared --enable-calendar=shared --enable-ctype=shared --with-curl --enable-exif=shared --enable-fileinfo=shared --enable-ftp=shared --enable-gd --with-jpeg --with-webp --with-freetype --with-mysqli=shared --disable-phpdbg --enable-fpm=shared --with-fpm-systemd --with-fpm-acl --with-gettext=shared --with-libxml --with-libdir=lib64 --with-ldap=/build/openldap-2.6.6 --with-ldap-sasl=/build/openldap-2.6.6 --with-kerberos --enable-posix=shared --enable-soap=shared --enable-sockets=shared --with-tidy=shared,/build/libtidy --enable-tokenizer=shared --with-xsl=shared --enable-mbstring=shared --with-zip --with-external-pcre

fails with

/bin/sh /source/php-8.2.13/libtool --silent --preserve-dup-deps --tag CC --mode=compile cc -Imain/ -I/source/php-8.2.13/main/ -I/source/php-8.2.13/include -I/source/php-8.2.13/main -I/source/php-8.2.13 -I/source/php-8.2.13/ext/date/lib -I/build/libxml2-v2.12.1/include/libxml2 -I/build/icu4c-74_1/include -I/build/krb5-1.21.2/include -I/build/openssl-3.2.0/include -I/build/pcre2-10.42/include -I/build/curl-8.4.0/include -I/usr/include/libpng16 -I/build/libwebp-1.3.2/include -I/build/libwebp-1.3.2/include/webp -I/build/freetype-2.13.2/include/freetype2 -I/build/openldap-2.6.6/include -I/build/cyrus-sasl-2.1.28/include -I/build/oniguruma-6.9.9/include -I/source/php-8.2.13/ext/mbstring/libmbfl -I/source/php-8.2.13/ext/mbstring/libmbfl/mbfl -I/build/libtidy/include -I/build/libxslt-v1.1.39/include -I/build/libzip/include -I/source/php-8.2.13/TSRM -I/source/php-8.2.13/Zend -D_GNU_SOURCE -fno-common -Wstrict-prototypes -Wformat-truncation -Wlogical-op -Wduplicated-cond -Wno-clobbered -Wall -Wextra -Wno-strict-aliasing -Wno-unused-parameter -Wno-sign-compare -g -O2 -fvisibility=hidden -Wimplicit-fallthrough=1 -DZEND_SIGNALS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -c main/internal_functions.c -o main/internal_functions.lo -MMD -MF main/internal_functions.dep -MT main/internal_functions.lo
In file included from main/internal_functions.c:27:
/source/php-8.2.13/ext/libxml/php_libxml.h: In function ?php_libxml_sanitize_parse_ctxt_options?:
/source/php-8.2.13/ext/libxml/php_libxml.h:148:6: error: dereferencing pointer to incomplete type ?xmlParserCtxt? {aka ?struct _xmlParserCtxt?}
ctxt->loadsubset = 0;
^~
make: *** [Makefile:2440: main/internal_functions.lo] Error 1

But replacing

libxml2-v2.12.1 with libxml2-v2.9.14 AND libxslt-v1.1.39 with libxslt-v1.1.35

Resolves the problem and PHP 8.2.13 builds correctly.

So I have the following questions:

  1. Is this intentional?
  2. If so, what is the most recent version of libxml2 and libxslt that PHP 8.2.13 supports?
  3. Is there any intention to support libxml2-v2.12.1? (as it introduces some nice sounding memory behaviour)

Thank you

PHP Version

PHP 8.2.13

Operating System

Oracle Unbreakable Linux

@nielsdos
Copy link
Member

Hi @ricky-rockstar

This seems to be a duplicate of #12702 which is already resolved.
I just tested again and it works on the latest development branch of PHP-8.2. The fix will be in PHP 8.2.14 (or you can check out the current development branch).
The reason it broke is because libxml has changed some include files.

Is this intentional?

No

If so, what is the most recent version of libxml2 and libxslt that PHP 8.2.13 supports?

Not intentional, but 2.11.5 works on 8.2.13. 2.12 will be supported in 8.2.14.

Is there any intention to support libxml2-v2.12.1? (as it introduces some nice sounding memory behaviour)

Yes ;)

@nielsdos nielsdos closed this as not planned Won't fix, can't repro, duplicate, stale Nov 26, 2023
@ricky-rockstar
Copy link
Author

thanks so much - that's brilliant news

@DevDorrejo
Copy link

good to know and good i found this, i was becoming crazy on compile the ext xmlwriter and xmlreader

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants