[freetds] linking problems with current CVS

Frediano Ziglio freddyz77 at tin.it
Tue Feb 3 15:20:34 EST 2004


Il mar, 2004-02-03 alle 18:32, Lowden, James K ha scritto:
> I'm trying to track down what changed that would cause linker errors generating the ct-lib shared library:
> 
> gcc	-shared	\
> 	.libs/ct.o	\
> 	.libs/cs.o	\
> 	.libs/blk.o	\
> 	.libs/ctutil.o	\
> 	-Wl,--whole-archive	\
> 	../tds/.libs/libtds_objects.a	\
> 	../replacements/.libs/libreplacements.a	\
> 	-Wl,--no-whole-archive	\
> 	../tds/.libs/libtds_objects.a	\
> 	../replacements/.libs/libreplacements.a	\
> 	-Wl,-Bsymbolic	\
> 	-Wl,-soname	\
> 	-Wl,libct.so.3	\
> 	-Wl,-retain-symbols-file	\
> 	-Wl,.libs/libct.exp	\
> 	-o .libs/libct.so.3.0
> .libs/ct.o: In function `_ct_get_msgstr':
> src/ctlib/ct.c:133: undefined reference to `asprintf'
> .libs/ct.o: In function `_ctclient_msg':
> src/ctlib/ct.c:160: undefined reference to `free'
> .libs/ct.o: In function `ct_con_alloc':
> src/ctlib/ct.c:195: undefined reference to `malloc'
> .libs/ct.o: In function `ct_callback':
> src/ctlib/ct.c:228: undefined reference to `__sF'
> src/ctlib/ct.c:228: undefined reference to `fprintf'
> .libs/ct.o: In function `ct_con_props':
> src/ctlib/ct.c:268: undefined reference to `malloc'
> src/ctlib/ct.c:269: undefined reference to `strcpy'
> src/ctlib/ct.c:273: undefined reference to `malloc'
> src/ctlib/ct.c:274: undefined reference to `strncpy'
> src/ctlib/ct.c:304: undefined reference to `free'
> src/ctlib/ct.c:306: undefined reference to `malloc'
> src/ctlib/ct.c:309: undefined reference to `memcpy'
> src/ctlib/ct.c:353: undefined reference to `free'
> src/ctlib/ct.c:398: undefined reference to `strncpy'
> src/ctlib/ct.c:411: undefined reference to `memcpy'
> 
> (full pathname output shortened for readability)
> 

Since I got no problems with -Wl,-Bsymbolic for ODBC I added for
dblib/ctlib too... Try to remove this option from Makefile.am... It's
strange linker did not find free/malloc and others libc functions...
I added also -export-symbols-regex option (it's a libtool option, not a
linker option). This option limit symbol exporting. It's used to
privatize unwanted symbols. My aim is to limit all tds stuff for
dblib/ctlib so to avoid future library incompatibility due to libTDS
changes or header changes.

freddy77





More information about the FreeTDS mailing list