Re: freeTDS configure works but make doesn't

"Vann, David" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <9F5004AC76612B4AB26CA57F4A4C48083B5401BA@ExchMail4.ds.valleyhealthlink.com>
Problem solved.

I thought for sure I had configured with LIB path settings, but this is what was needed.  I used both LIBPATH and LD_LIBRARY_PATH.  I think AIX uses LIBPATH

export OBJECT_MODE=64
export CFLAGS=-maix64 
export LIBPATH=/usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib
./configure --prefix=/usr/local --with-unixodbc=/usr/local --with-tdsver=8.0 --enable-msdblib 2>&1 | tee configure.log

After that the make worked.

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of James K. Lowden
Sent: Sunday, May 12, 2013 4:22 PM
To: [email protected]
Subject: Re: [freetds] freeTDS configure works but make doesn't

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
_______________________________________________
FreeTDS mailing list
[email protected]
http://lists.ibiblio.org/mailman/listinfo/freetds
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.