Re: Problem with multiple libxml - SOLVED
| From: | dan | Date: | Thu, 19 Aug 2010 15:32:01 +0000 |
| Subject: | Re: Problem with multiple libxml - SOLVED | ||
| References: | 1 2 | Groups: | php.install |
| Request: | Send a blank email to php-install+get-19964@lists.php.net to get a copy of this message | ||
[~ksvee] [luc]
This mail to share the solution to my problem (see further down).
Any tries to get proper options or env settings to ./configure failed. I finally hacked the generated Makefile to carefully prepend every reference to /usr/local by /usr/local/libxml2 within any include path and any loader path. Here the modified lines : CPPFLAGS = -I/usr/local/libxml2/include EXTRA_LDFLAGS = -avoid-version -module -Wl,-R/usr/local/libxml2/lib:/usr/local/lib -L/usr/local/libxml2/lib -L/usr/local/lib -L/usr/lib/mysql EXTRA_LDFLAGS_PROGRAM = -Wl,-R/usr/local/libxml2/lib:/usr/local/lib -L/usr/local/libxml2/lib -L/usr/local/lib -L/usr/lib/mysql INCLUDES = [...] -I/usr/local/libxml2/include -I/usr/local/libxml2/include/libxml2 -I/usr/local/include -I$(top_builddir)/TSRM -I$(top_builddir)/Zend NATIVE_RPATHS = -Wl,-rpath,/usr/local/libxml2/lib -Wl,-rpath,/usr/local/lib -Wl,-rpath,/usr/lib/mysql PHP_LDFLAGS = -Wl,-R/usr/local/libxml2/lib:/usr/local/lib -L/usr/local/libxml2/lib -L/usr/local/lib -L/usr/lib/mysql PHP_RPATHS = -R /usr/local/libxml2/lib -R /usr/local/lib -R /usr/lib/mysql May thanks to Ken and Luc for the help. Dan.Hello, I'm trying to compile PHP 5.3.3 on a linux system. I need to compile with libxml and libxslt support. The libraries I want to use are located under /usr/local/libxml2 To achieve my goal I run configure with : ./configure --prefix=/usr/local/apache3 --with-apxs2=/usr/local/apache3/bin/apxs --with-curl --with-mysql=/usr --with-pdo-mysql=/usr --with-libxml-dir=/usr/local/libxml2 --with-xsl=/usr/local/libxml2 --enable-mbstring --with-mcrypt After that, I make, and make install, and apache runs fine with php. MY PROBLEM : ------------ I already have older versions of libxml and libxslt located under /usr/local When looking at the results of phpinfo(), I can see that those libraries have been linked to, instead of the newer ones located in /usr/local/libxml2. The problem seems to arise somewhere within libtool which is called by the Makefile, and generates a linker invocation which explicitly references the old libraries with erroneous full path names (libexslt.so, libxslt.so and libxml2.so) : gcc -shared ext/date/.libs/php_date.o ... lots of .o files ... -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/usr/lib/mysql -Wl,--rpath -Wl,/usr/local/libxml2/lib -L/usr/local/lib -L/usr/lib/mysql -L/usr/local/libxml2/lib -lcrypt /usr/local/lib/libexslt.so ... lots of other sometimes redundant libraries ... /usr/local/lib/libxslt.so /usr/local/lib/libxml2.so ... -Wl,-soname -Wl,libphp5.so -o .libs/libphp5.so Is there any wizard out there to give me a hint how I could fix that ?