[~ksvee] [luc]
This mail to share the solution to my problem (see further down).
>
>> 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 ?
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.
|