Jani is right, this is not a PHP bug. You need to configure your system
correctly to make sure the libs are checked in the right order for
They are - per the bug report, the ordering is correct:
# ldconfig -p | grep -i xml2
libxml2.so.2 (libc6,x86-64) => /usr/local/lib/libxml2.so.2
libxml2.so.2 (libc6,x86-64) => /usr/lib64/libxml2.so.2
libxml2.so (libc6,x86-64) => /usr/local/lib/libxml2.so
libxml2.so (libc6,x86-64) => /usr/lib64/libxml2.so
shared libraries and also make sure that other components that rely on
libxml2 aren't pulling it in from another place. PHP is not going to
pull it in from 2 different places. Really more of a php-install list
So this appears to be the crux of it. As rrichards points out in his latest
bug comment, removing --with-xsl makes the linking work. However, I've
already built my own libxslt for just these dependency reasons (against the
newly built libxml2), and ordering/linking appears correct:
# ldconfig -p | grep xslt
libxslt.so.1 (libc6,x86-64) => /usr/local/lib/libxslt.so.1
libxslt.so.1 (libc6,x86-64) => /usr/lib64/libxslt.so.1
libxslt.so (libc6,x86-64) => /usr/local/lib/libxslt.so
libxslt.so (libc6,x86-64) => /usr/lib64/libxslt.so
libexslt.so.0 (libc6,x86-64) => /usr/local/lib/libexslt.so.0
libexslt.so.0 (libc6,x86-64) => /usr/lib64/libexslt.so.0
libexslt.so (libc6,x86-64) => /usr/local/lib/libexslt.so
libexslt.so (libc6,x86-64) => /usr/lib64/libexslt.so
# ldd /usr/local/lib/libxslt.so.1
libxml2.so.2 => /usr/local/lib/libxml2.so.2 (0x0000002a95699000)
libz.so.1 => /usr/lib64/libz.so.1 (0x0000002a958d8000)
libm.so.6 => /lib64/tls/libm.so.6 (0x0000002a959eb000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a95b71000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000002a95da7000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
# ldd libexslt.so.0
libgcrypt.so.11 => /usr/lib64/libgcrypt.so.11 (0x0000002a95673000)
libgpg-error.so.0 => /usr/lib64/libgpg-error.so.0 (0x0000002a957be000)
libxslt.so.1 => /usr/local/lib/libxslt.so.1 (0x0000002a958c1000)
libxml2.so.2 => /usr/local/lib/libxml2.so.2 (0x0000002a959f9000)
libz.so.1 => /usr/lib64/libz.so.1 (0x0000002a95c38000)
libm.so.6 => /lib64/tls/libm.so.6 (0x0000002a95d4b000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a95ed1000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x0000002a96107000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000002a9621f000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
So again, all appears kosher to me. Supplying the --with-xsl=/usr/local
should point PHP to my compiled version of the library, and
--with-libxml-dir=/usr/local should do similar for its respective library.
And each library is linking to the underlying same libxml2 version, so there
aren't two different ones in use, that I can see.
H