Re: freeTDS configure works but make doesn't

"James K. Lowden" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
On Thu, 9 May 2013 13:13:40 +0000
"Vann, David" <[email protected]> wrote:

> libtool: link: /usr/local/TDS/freetds-0.91/compile gcc -D_THREAD_SAFE
> -maix64 -W declaration-after-statement -o .libs/fisql fisql.o
> terminal.o edit.o handlers.o interrupt.o  -L/usr/local/lib
> -L../../dblib/.libs
> -lsybdb ../../replacements/.libs/libreplacements.a -liconv -lcurses
> -lreadline -lpthreads -Wl,-blibpath:/usr/local/lib:/usr/lib:/lib 
>
> ld: 0711-317 ERROR: Undefined symbol: .dbcoltype 
> ld: 0711-317 ERROR: Undefined symbol: .dbcollen 
> ld: 0711-317 ERROR: Undefined symbol: .dbcolname
> ld: 0711-317 ERROR: Undefined symbol: .dbdead
> ld: 0711-317 ERROR: Undefined symbol: .dbinit
> ld: 0711-317 ERROR: Undefined symbol: .dblogin

fisql uses db-lib, and these are db-lib symbols.  You are
correctly linking to libsybdb; that's what "-lsybdb" does.  However,
the linker is not finding that library, or (unlikely) the library it
does find doesn't export those symbols.  

I would use the AIX equivalent of nm(1) to
examine ../../dblib/.libs/libsybdb.a (if that's what it's called) to
make sure e.g. dbinit is defined as a public symbol.  Potentially
there's a 32-bit version in /usr/local/lib that's hiding the 64-bit
version in your build tree.  That would explain why you can build the
32-bit version.  

I'm not sure why -L/usr/local/lib appears first among the -L options.
ISTM it shouldn't be there at all, because fisql should be linked to
the library in the build tree that will be installed when fisql is
installed.  

HTH.  

--jkl
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.