[freetds] freetds on solaris 11: symbol scope specifies local binding (same problem)

Justin T Pryzby justinp at norchemlab.com
Mon Sep 23 14:20:33 EDT 2013

On Mon, Sep 23, 2013 at 01:42:27PM -0400, James K. Lowden wrote:
> On Mon, 23 Sep 2013 08:53:31 +0100 "Marco A. Ferra" <MAFerra at isq.pt> wrote:
> > Regarding Justin Pryzby's question on "freetds on solaris 11: symbol
> > scope specifies local binding" [1] I'm also having a hard time
> > compiling FreeTDS 0.91 from source on Solaris 11. The error is:

> My GNU ld manual doesn't mention options such as those on your command
> line, e.g. allextract and defaultextract.  Since those options are
> accepted by the linker, I have to believe you're using the Solaris
> linker.  Perhaps Solaris's compiler, too?  
Not sure about Marco, but I wasn't; ./configure gives:

checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking if the linker (/usr/bin/ld) is GNU ld... no
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... solaris2.11 ld.so
checking how to hardcode library paths into programs... immediate
checking if libtool supports shared libraries... yes
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... no

There *is* a linker script being used:
> libtool: link: echo "{ global:" > .libs/libct.so.4.0.0.exp
> libtool: link: cat .libs/libct.exp | /usr/bin/gsed -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 -Wl,-Bsymbolic   -pthreads

I guess that is the problem, but I don't know how to fix it and unable
to find a magic set of compile options to work around it (besides
disable-shared, which ultimately precludes compiling DBD::Sybase).

This also doesn't fix it:
./configure CC=gcc LD=gld


More information about the FreeTDS mailing list