RE: [PHP-DEV] Bug #44087
| From: | Hans Zaunere | Date: | Tue, 04 Mar 2008 12:42:13 +0000 |
| Subject: | RE: [PHP-DEV] Bug #44087 | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-35944@lists.php.net to get a copy of this message | ||
> 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