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

James K. Lowden jklowden at freetds.org
Thu Sep 26 21:05:24 EDT 2013

On Mon, 23 Sep 2013 15:42:12 -0700
Justin T Pryzby <justinp at norchemlab.com> wrote:

> > It's also not perfectly obvious you need any symbol-management
> > shenanigans.  If I were writing my own Makefile, I'd begin with 
> I tried that exactly, same error:
> ~/src/freetds-0.91/src/ctlib$ ld
> -o .libs/libct.so.4.0.0 .libs/ct.o .libs/cs.o .libs/blk.o .libs/ctutil.o ../tds/.libs/libtds.a ../replacements/.libs/libreplacements.a
> -lnsl -lsocket -lc  -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

Let's take the linker at its word, then.  It says strlen in ct.o is
specified as local binding.  What does nm(1) say of strlen
in .lib/ct.o? 

My guess is that when you decode the nm output, the symbol will in
fact be "local", whatever that means, which will lead us back to the
options used to compile it.  

> On Mon, Sep 23, 2013 at 05:47:01PM -0400, James K. Lowden wrote:
> > (Here I am on the FreeTDS list helping someone use an Oracle
> > product. The future is a weird place.)  
> Thanks for that :)  

You're welcome.  Linker problems can be a bear, because linkers are
black magic.  We all learn by doing.  Well, at least some of us!  ;-)  


More information about the FreeTDS mailing list