From: web at affenkrieger dot de
Operating system: Mandrake Linux 9.0
PHP version: 4.2.3
PHP Bug Type: Sybase-ct (ctlib) related
Bug description: Extension doesn't work - unable to load dynamic library
Hi,
i tried to compile and use the Sybase-CT extension of PHP, but it won't
work. Here we go:
I have a Mandrake Linux 9.0 system with a fully configured Apache + PHP
webserver. PHP 4.2.3 works fine as a Apache module. I downloaded the
sources of PHP 4.2.3 from php.net and compiled the Sybase-CT extension as
a shared object:
$ ./configure --with-apxs=/path/to/apxs
--with-sybase-ct=shared,/opt/sybase-11.9.2
The Sybase ASE 11.9.2 resides in /opt/sybase-11.9.2, the libs are
available under /opt/sybase-11.9.2/lib
Compilation works fine, but when i include the new .so in the PHP.ini and
restart the Apache webserver, it throws this warning into the error_log:
> PHP Warning: Unable to load dynamic library
> '/usr/lib/php/extensions/sybase_ct.so' -
> /opt/sybase-11.9.2/lib/libsybtcl.so: undefined symbol:
> comn_free in Unknown on line 0
Trying to use Sybase functions in PHP result in segmentation faults.
$ ldd sybase_ct.so
libinsck.so => /opt/sybase-11.9.2/lib/libinsck.so (0x40008000)
libsybtcl.so => /opt/sybase-11.9.2/lib/libsybtcl.so (0x4000b000)
libintl.so.2 => /lib/libintl.so.2 (0x40038000)
^^^^^^^^^^^^^^^^
libcomn.so => /opt/sybase-11.9.2/lib/libcomn.so (0x40040000)
libct.so => /opt/sybase-11.9.2/lib/libct.so (0x40098000)
libcs.so => /opt/sybase-11.9.2/lib/libcs.so (0x400f5000)
libc.so.6 => /lib/i686/libc.so.6 (0x40102000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
It seems that the sybase_ct.so has been linked to a wrong library in /lib,
instead of $SYBASE/lib, and i found no way to tell the system, to use the
Sybase one.
/usr/lib/libintl.so & /lib/libintl.so.2 are symlinks to
/lib/libintl.so.2.0.1
It seems to be a lib of the "gettext" program.
Yes, $SYBASE/lib is added to /etc/ld.so.conf
Yes, the Sybase lib are correctly listed by 'ldconfig -p'
No, setting LD_LIBRARY_PATH doesn't affect the result of ldd
No, normally LD_LIBRARY_PATH isn't set at all.
DBD::Sybase works fine with Sybase ASE. Micheal Peppler wrote in
sybase.public.ase.linux (news:[EMAIL PROTECTED]) that it
might be a PHP compilation problem, and he knows a bit of that Sybase
stuff ;-)
Regards,
Nils.
--
Edit bug report at http://bugs.php.net/?id=22595&edit=1
--
Try a CVS snapshot: http://bugs.php.net/fix.php?id=22595&r=trysnapshot
Fixed in CVS: http://bugs.php.net/fix.php?id=22595&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=22595&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=22595&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=22595&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=22595&r=support
Expected behavior: http://bugs.php.net/fix.php?id=22595&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=22595&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=22595&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=22595&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=22595&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=22595&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=22595&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=22595&r=gnused