Re: freetds on solaris 11: symbol scope specifies local binding (same problem)
"James K. Lowden" <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 23 Sep 2013 15:42:12 -0700 Justin T Pryzby <[email protected]> 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! ;-) --jkl