Q: DBD::Sybase vs Solaris
Hi,
this is the old question about how to get DBD::Sybase to function on Solaris 5.8, (and
_yes_ I've read the README and searched the web). I've tried several twists and all turns
out with the same kind of bugs: ...com_tds_maptoken: referenced symbol not found at ...
The problem is mentioned a few times on the net, and should be caused by the existence
of two libraries named libintl.so, and ought to be solved by setting LD_LIBRARY_PATH.
I've tried and tried and... even recompiling perl didn't help...
I _think_ that the problem is that the sybdb-library doesn't get loaded, because
the missings symbols are defined in libsybdb.so (according to nm(1)), and I believe
that the problem is that there are no referencese to that library:
ldd blib/arch/auto/DBD/Sybase/Sybase.so
libct_r.so => /local/sybase/11.9.2/lib/libct_r.so
libcs_r.so => /local/sybase/11.9.2/lib/libcs_r.so
ldd /local/sybase/11.9.2/lib/libct_r.so
ldd /local/sybase/11.9.2/lib/libcs_r.so
(no output from the last two commands)
I've tried both the *_r.so versions (to build a threaded version) and the not _r versions
of the Sybase libraries (as the _r versions fails, and there are no naming conflicts between
libs when using the _r (no /usr/lib/lib*_r.so* ) it seems that the problem is not with the
LD_LIBRARY_PATH anyway). I can't find any options to ld(1) that, at runtime, forces the
inclusion of a library, except by specifying undef symbols to be resolved (-u symbol), but
that would require soecifying all symbols in libsybdb.so...
Any hints would be appreciated!
Poul Sørensen
Infostream Services
VERSIONS
DBI v1.38
DBD::Sybase v1.01
Perl v5.8.1
SunOS 5.8
Sybase OpenClient v11.1.1
SYBASE=/local/sybase/11.9.2 (and I've tried with 12.5 too)
/local/perl/sybase is a symlink to $SYBASE
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
perl -V
Summary of my perl5 (revision 5.0 version 8 subversion 1) configuration:
Platform:
osname=solaris, osvers=2.8, archname=sun4-solaris-thread-multi-64int-ld
uname='sunos medusa.sa.asap-asp.net 5.8 generic_108528-22 sun4u sparc sunw,ultraax-i2 '
config_args='-Dmksymlinks -Dusethreads -Duseperlio -Duse64bitint -Duselongdouble -Dcf_email=perladmin@infostream.no -Dperladmin=perladmin@infostream.no -Dman1ext=1pl -Dman3ext=3pm -Dprefix=/local/perl/5.8.1 -Dprivlib=/local/perl/5.8.1/lib -Dvendorprefix=/local/perl/asap -Dvendorbin=/local/perl/asap/bin -Dvendorlib=/local/perl/asap/lib -Dldlibpthname= /local/perl/sybase/lib /local/lib /local/gnu/lib -Dlocincpth= /local/perl/sybase/include /local/include /local/gnu/include -Dloclibpth= /local/perl/sybase/lib /local/lib /local/gnu/lib -Dldflags= -L/local/perl/sybase/lib -L/local/lib -L/local/gnu/lib -Dperllibs=-lsocket -lbind -lnsl -ldl -lm -lpthread -lc -lsunmath -ldb -lgdbm -lrt -Dsitelib=/local/perl/5.8.1/lib/site_perl -Dhtml1dir=/var/tmp -Dhtml3dir=/var/tmp -Dsitehtml1=/var/tmp -Dsitehtml3=/var/tmp -Dvendorhtml1=/var/tmp -Dvendorhtml3=/var/tmp -Dotherlibdirs=/local/lib/perl -Dpager=/usr/bin/less -d'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=undef uselongdouble=define
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -I/local/perl/sybase/include -I/local/include -I/local/gnu/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O',
cppflags='-D_REENTRANT -I/local/perl/sybase/include -I/local/include -I/local/gnu/include'
ccversion='Sun WorkShop 6 2000/04/07 C 5.1', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=87654321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long long', ivsize=8, nvtype='long double', nvsize=16, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/local/perl/sybase/lib -L/local/lib -L/local/gnu/lib -L/usr/lib -L/usr/ccs/lib -L/f/opt/SUNWspro/WS6/lib '
libpth=/usr/lib /usr/ccs/lib /f/opt/SUNWspro/WS6/lib /local/perl/sybase/lib /local/lib /local/gnu/lib /usr/local/lib
libs=-lsocket -lbind -lnsl -lgdbm -ldb -ldl -lm -lpthread -lc -lsunmath
perllibs=-lsocket -lbind -lnsl -ldl -lm -lpthread -lc -lsunmath
libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -z ignore -z lazyload -z combreloc'
cccdlflags='-KPIC', lddlflags=' -G -z ignore -z lazyload -z combreloc -L/local/perl/sybase/lib -L/local/lib -L/local/gnu/lib -L/usr/lib -L/usr/ccs/lib -L/f/opt/SUNWspro/WS6/lib'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_64_BIT_INT USE_LONG_DOUBLE USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
Built under solaris
Compiled at Oct 27 2003 14:26:13
@INC:
/local/perl/5.8.1/lib/sun4-solaris-thread-multi-64int-ld
/local/perl/5.8.1/lib
/local/perl/5.8.1/lib/site_perl/sun4-solaris-thread-multi-64int-ld
/local/perl/5.8.1/lib/site_perl
/local/perl/5.8.1/lib/site_perl
/local/perl/asap/lib/sun4-solaris-thread-multi-64int-ld
/local/perl/asap/lib
/local/perl/asap/lib
/local/lib/perl
|