All,
I recently reported the following bug:
http://bugs.php.net/bug.php?id=44087
I'd appreciate another look. It seems that there is a problem with how
./configure is locating libraries (which has happened in the past), unless
I'm misunderstanding the purpose of the --with-libxml-dir directive.
Hans Zaunere / President / New York PHP Community
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
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
support question than a bug or an internals@ thing.
-Rasmus
Hans Zaunere wrote:
All,
I recently reported the following bug:
http://bugs.php.net/bug.php?id=44087
I'd appreciate another look. It seems that there is a problem with how
./configure is locating libraries (which has happened in the past), unless
I'm misunderstanding the purpose of the --with-libxml-dir directive.
Hans Zaunere / President / New York PHP Community
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