freetds on solaris 11: symbol scope specifies local binding

Justin T Pryzby <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
Hi Everyone,

I'm trying to use DBD::Sybase which depends on freetds, which I'm
trying to compile under solaris 11.

./configure && make ends with:

make[3]: Entering directory `/export/home/justinp/src/freetds-0.91/src/ctlib'
/bin/sh ../../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../include  -I../../include -D_FREETDS_LIBRARY_SOURCE -D_REENTRANT -D_THREAD_SAFE -DDEBUG=1 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -D_REENTRANT -pthreads -g -O2 -Wdeclaration-after-statement -MT ct.lo -MD -MP -MF .deps/ct.Tpo -c -o ct.lo ct.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -D_FREETDS_LIBRARY_SOURCE -D_REENTRANT -D_THREAD_SAFE -DDEBUG=1 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -D_REENTRANT -pthreads -g -O2 -Wdeclaration-after-statement -MT ct.lo -MD -MP -MF .deps/ct.Tpo -c ct.c  -fPIC -DPIC -o .libs/ct.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -D_FREETDS_LIBRARY_SOURCE -D_REENTRANT -D_THREAD_SAFE -DDEBUG=1 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -D_REENTRANT -pthreads -g -O2 -Wdeclaration-after-statement -MT ct.lo -MD -MP -MF .deps/ct.Tpo -c ct.c -o ct.o >/dev/null 2>&1

[...]

/bin/sh ../../libtool --tag=CC   --mode=link gcc -D_REENTRANT -pthreads -g -O2 -Wdeclaration-after-statement -version-info 4:0:0 -export-symbols-regex '^(cs_|ct_|blk_).*'         -o libct.la -rpath /usr/local/lib ct.lo cs.lo blk.lo ctutil.lo  ../tds/libtds.la ../replacements/libreplacements.la -lnsl -lsocket    
libtool: link: /usr/gnu/bin/nm -B  .libs/ct.o .libs/cs.o .libs/blk.o .libs/ctutil.o   ../tds/.libs/libtds.a ../replacements/.libs/libreplacements.a | sed -n -e 's/^.*[  ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[         ][      ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | /usr/gnu/bin/sed 's/.* //' | sort | uniq > .libs/libct.exp
libtool: link: /usr/gnu/bin/grep -E -e "^(cs_|ct_|blk_).*" ".libs/libct.exp" > ".libs/libct.expT"
libtool: link: mv -f ".libs/libct.expT" ".libs/libct.exp"
libtool: link: echo "{ global:" > .libs/libct.so.4.0.0.exp
libtool: link: cat .libs/libct.exp | /usr/gnu/bin/sed -e "s/\(.*\)/\1;/" >> .libs/libct.so.4.0.0.exp
libtool: link: echo "local: *; };" >> .libs/libct.so.4.0.0.exp

libtool: link:  gcc -shared -Wl,-z -Wl,text -Wl,-M -Wl,.libs/libct.so.4.0.0.exp -Wl,-h -Wl,libct.so.4 -o .libs/libct.so.4.0.0  .libs/ct.o .libs/cs.o .libs/blk.o .libs/ctutil.o  -Wl,-z -Wl,allextract ../tds/.libs/libtds.a ../replacements/.libs/libreplacements.a -Wl,-z -Wl,defaultextract  -lnsl -lsocket -lc  -pthreads   -pthreads
Undefined                       first referenced
 symbol                             in file
strlen                              .libs/ct.o  (symbol scope specifies local binding)
ld: fatal: symbol referencing errors. No output written to .libs/libct.so.4.0.0
collect2: ld returned 1 exit status

Any suggestions?  I've tried various things like --disable-shared
(which works, but then causes DBD::Sybase to fail), --disable-rpath
(no effect), nightly development snapshot (no effect) running the link
commands manually, all with no resolution.

Thanks,
Justin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.