[freetds] freeTDS configure works but make doesn't

James K. Lowden jklowden at freetds.org
Sun May 12 16:22:26 EDT 2013


On Thu, 9 May 2013 13:13:40 +0000
"Vann, David" <dvann2 at valleyhealthlink.com> 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


More information about the FreeTDS mailing list