Re: Linking PHP with external Libtool archive.
I have now solved my problem or at least made a work-around.
To me it seems that PHP_EVAL_LIBLINE doesn't work as well as it
used to (PHP-4.0.6 / PHP-4.0.7RC3). Basically I've turned my
config.m4 so to use PHP_ADD_LIBRARY_DEFER and PHP_ADD_LIBPATH
rather than PHP_EVAL_LIBLINE.
If I use PHP_ADD_LIBRARY instead of PHP_ADD_LIBRARY then
even configure fails. (-lyaz added but no lib path).
-- Adam
On Tue, Nov 06, 2001 at 09:22:03PM +0100, Adam Dickmeiss wrote:
> Hi,
>
> I'm attempting to link PHP with a Libtool generated library (YAZ)
> for extension PHP/YAZ.
>
> If I link with a STATIC YAZ libtool archive from PHP4 it
> doesn't work for me. That is latest CVS. I modified config.m4
> and tried four combinations of library specs by modifying file
> config.m4 - (PHP_EVAL_LIBLINE) for ext/yaz:
>
> 1. <path>/lib/libyaz.la
> 2. <path>/lib/.libs/libyaz.a
> 3. -L<path>/lib -lyaz
> 4. -L<path>/lib/.libs -lyaz
>
> Nothing works. However, if I install YAZ (make install) it
> works. What makes Libtool so confused? I've made other
> libtool apps on top of YAZ myself using first form above
> for linking.
>
> Case 1. and 2. compiles OK. However the YAZ library
> is not really linked in. YAZ symbols are undefined
> and Apache fails to load PHP itself.
>
> Case 3 results in multiple symbols. Specifically
> all symbols that YAZ define. Errors go like this:
>
> /home/adam/proj/yaz/lib/.libs/libyaz.a(odr_bool.o): In function `odr_bool':
> /home/adam/proj/yaz/odr/odr_bool.c(.text+0x0): multiple definition of `odr_bool'
> Zend/.libs/libZend.al(odr_bool.o)(.text+0x0):/home/adam/proj/tmp/yaz-1.7/odr/odr_bool.c: first
> defined here
>
> Case 4 results in linking error. Trailer goes like this:
>
> libpcre.la ext/posix/libposix.la ext/session/libsession.la ext/standard/libstandard.la
> ext/xml/libxml.la ext/yaz/libyaz.la TSRM/libtsrm.la -ldl -lyaz -lcrypt -lresolv -lm -ldl -lnsl
> -lresolv -lcrypt
> gcc: /home/adam/proj/yaz/lib/.libs/.libs/libyaz.a: No such file or directory
> gcc: /home/adam/proj/yaz/lib/.libs/.libs/libyaz.a: No such file or directory
> make[1]: *** [libphp4.la] Error 1
>
> Any suggestions appreciated.
>
> I can provide more info if needed.
>
> -- Adam
>
> --
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net
> For additional commands, e-mail: php-dev-help@lists.php.net
> To contact the list administrators, e-mail: php-list-admin@lists.php.net
--
Adam Dickmeiss mailto:adam@indexdata.dk http://www.indexdata.dk
Index Data T: +45 33410100 Mob.: 212 212 66
Thread (2 messages)