Skip to Content.
Sympa Menu

freetds - Re: [freetds] FreeTDS 0.82 Tests on Solaris - libiconv Undefined Symbols

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Frediano Ziglio <freddy77 AT gmail.com>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] FreeTDS 0.82 Tests on Solaris - libiconv Undefined Symbols
  • Date: Thu, 29 Jul 2010 09:10:57 +0200

Hi,
about iconv and configure is normal, the test just detect proper
signature. In this case const is required so testing for no-const
gave error you reported. About in_addr warning the fix was committed
on early 2009 as a post-0.82 patch, You can find patched version at
http://freetds.sourceforge.net/ or
http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/. About linking
problem yesterday I back ported a patch at
http://freetds.sourceforge.net/, updated version which include this
patch should be available in a couple of days (I can send an updated
version if you prefer).

Regards
Frediano Ziglio

2010/7/27 Richard Head Jr. <hsomob1999 AT yahoo.com>:
> I saw a similar problem here:
> https://lists.ibiblio.org/sympa/arc/freetds/2009q1/024229.html
>
>
> In my case, libiconv is resolved but config.log shows there are other
> issues:
>
> configure:11602: checking how to link with libiconv
> configure:11604: result: -liconv
> configure:11615: checking for iconv declaration
> configure:11649: gcc -c -g -O2  -D_FREETDS_LIBRARY_SOURCE conftest.c >&5
> conftest.c:32: error: conflicting types for `libiconv'
> /usr/local/include/iconv.h:83: error: previous declaration of `libiconv'
> configure:11655: $? = 1
> configure: failed program was:
> | /* confdefs.h.  */
> |
> | #define PACKAGE_NAME "FreeTDS"
> | #define PACKAGE_TARNAME "freetds"
> | #define PACKAGE_VERSION "0.82"
> | #define PACKAGE_STRING "FreeTDS 0.82"
> | #define PACKAGE_BUGREPORT ""
> | #define PACKAGE "freetds"
> | #define VERSION "0.82"
> | #define _GNU_SOURCE 1
> | #define _FILE_OFFSET_BITS 64
> | #define STDC_HEADERS 1
> | #define HAVE_SYS_TYPES_H 1
> | #define HAVE_SYS_STAT_H 1
> | #define HAVE_STDLIB_H 1
> | #define HAVE_STRING_H 1
> | #define HAVE_MEMORY_H 1
> | #define HAVE_STRINGS_H 1
> | #define HAVE_INTTYPES_H 1
> | #define HAVE_UNISTD_H 1
> | #define HAVE_DLFCN_H 1
> | #define HAVE_ICONV 1
> | /* end confdefs.h.  */
> |
> | #include <stdlib.h>
> | #include <iconv.h>
> | extern
> | #ifdef __cplusplus
> | "C"
> | #endif
> | #if defined(__STDC__) || defined(__cplusplus)
> | size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char *
> *outbuf, size_t *outbytesleft);
> | #else
> | size_t iconv();
> | #endif
> |
> | int
> | main ()
> | {
> |
> |   ;
> |   return 0;
> | }
> configure:11683: result:
>         extern size_t iconv (iconv_t cd, const char * *inbuf, size_t
> *inbytesleft, char * *outbuf, size_t *outbytesleft);
>
>
> Here's the test output:
>
> Making check in include
> make[1]: Entering directory
> `/mounts/sysadm/mss/usr/src/freetds-0.82/include'
> echo '#define FREETDS_SYSCONFDIR "/mounts/sysadm/mss/etc"'
> >freetds_sysconfdir.h
> make[1]: Leaving directory `/mounts/sysadm/mss/usr/src/freetds-0.82/include'
> Making check in src
> make[1]: Entering directory `/mounts/sysadm/mss/usr/src/freetds-0.82/src'
> Making check in replacements
> make[2]: Entering directory
> `/mounts/sysadm/mss/usr/src/freetds-0.82/src/replacements'
> if /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
> -I. -I../../include  -I../../include -D_FREETDS_LIBRARY_SOURCE -D_REENTRANT
> -D_THREAD_SAFE -DDEBUG=1 -Wall -Wstrict-prototypes -Wmissing-prototypes
> -Wno-long-long -D_REENTRANT -pthreads -g -O2 -MT asprintf.lo -MD -MP -MF
> ".deps/asprintf.Tpo" -c -o asprintf.lo asprintf.c; \
> then mv -f ".deps/asprintf.Tpo" ".deps/asprintf.Plo"; else rm -f
> ".deps/asprintf.Tpo"; exit 1; fi
>  gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include
> -D_FREETDS_LIBRARY_SOURCE -D_REENTRANT -D_THREAD_SAFE -DDEBUG=1 -Wall
> -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -D_REENTRANT
> -pthreads -g -O2 -MT asprintf.lo -MD -MP -MF .deps/asprintf.Tpo -c
> asprintf.c  -fPIC -DPIC -o .libs/asprintf.o
>  gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include
> -D_FREETDS_LIBRARY_SOURCE -D_REENTRANT -D_THREAD_SAFE -DDEBUG=1 -Wall
> -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -D_REENTRANT
> -pthreads -g -O2 -MT asprintf.lo -MD -MP -MF .deps/asprintf.Tpo -c
> asprintf.c -o asprintf.o >/dev/null 2>&1
> if /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
> -I. -I../../include  -I../../include -D_FREETDS_LIBRARY_SOURCE -D_REENTRANT
> -D_THREAD_SAFE -DDEBUG=1 -Wall -Wstrict-prototypes -Wmissing-prototypes
> -Wno-long-long -D_REENTRANT -pthreads -g -O2 -MT vasprintf.lo -MD -MP -MF
> ".deps/vasprintf.Tpo" -c -o vasprintf.lo vasprintf.c; \
> then mv -f ".deps/vasprintf.Tpo" ".deps/vasprintf.Plo"; else rm -f
> ".deps/vasprintf.Tpo"; exit 1; fi
>  gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include
> -D_FREETDS_LIBRARY_SOURCE -D_REENTRANT -D_THREAD_SAFE -DDEBUG=1 -Wall
> -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -D_REENTRANT
> -pthreads -g -O2 -MT vasprintf.lo -MD -MP -MF .deps/vasprintf.Tpo -c
> vasprintf.c  -fPIC -DPIC -o .libs/vasprintf.o
>  gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include
> -D_FREETDS_LIBRARY_SOURCE -D_REENTRANT -D_THREAD_SAFE -DDEBUG=1 -Wall
> -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -D_REENTRANT
> -pthreads -g -O2 -MT vasprintf.lo -MD -MP -MF .deps/vasprintf.Tpo -c
> vasprintf.c -o vasprintf.o >/dev/null 2>&1
> /bin/bash ../../libtool --tag=CC --mode=link gcc -D_REENTRANT -pthreads -g
> -O2   -o libreplacements.la   iconv.lo gettimeofday.lo asprintf.lo
> vasprintf.lo readpassphrase.lo
> rm -fr  .libs/libreplacements.a .libs/libreplacements.la
> ar cru .libs/libreplacements.a .libs/iconv.o .libs/gettimeofday.o
> .libs/asprintf.o .libs/vasprintf.o .libs/readpassphrase.o
> ranlib .libs/libreplacements.a
> creating libreplacements.la
> (cd .libs && rm -f libreplacements.la && ln -s ../libreplacements.la
> libreplacements.la)
> make[2]: Leaving directory
> `/mounts/sysadm/mss/usr/src/freetds-0.82/src/replacements'
> Making check in tds
> make[2]: Entering directory
> `/mounts/sysadm/mss/usr/src/freetds-0.82/src/tds'
> make  check-recursive
> make[3]: Entering directory
> `/mounts/sysadm/mss/usr/src/freetds-0.82/src/tds'
> Making check in unittests
> make[4]: Entering directory
> `/mounts/sysadm/mss/usr/src/freetds-0.82/src/tds/unittests'
> make  t0001 t0002 t0003 t0004 t0005 t0006 t0007 t0008 dynamic1 convert
> dataread utf8_1 utf8_2 utf8_3 numeric iconv_fread
> make[5]: Entering directory
> `/mounts/sysadm/mss/usr/src/freetds-0.82/src/tds/unittests'
> if gcc -DHAVE_CONFIG_H -I. -I. -I../../../include  -I../../../include
> -I./.. -I../ -D_FREETDS_LIBRARY_SOURCE -D_REENTRANT -D_THREAD_SAFE
> -DDEBUG=1 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long
> -D_REENTRANT -pthreads -g -O2 -MT t0001.o -MD -MP -MF ".deps/t0001.Tpo" -c
> -o t0001.o t0001.c; \
> then mv -f ".deps/t0001.Tpo" ".deps/t0001.Po"; else rm -f
> ".deps/t0001.Tpo"; exit 1; fi
> In file included from common.h:22,
>                 from t0001.c:19:
> ../../../include/tds.h:1422: warning: `struct in_addr' declared inside
> parameter list
> ../../../include/tds.h:1422: warning: its scope is only this definition or
> declaration, which is probably not what you want
> ../../../include/tds.h:1422: warning: parameter has incomplete type
> if gcc -DHAVE_CONFIG_H -I. -I. -I../../../include  -I../../../include
> -I./.. -I../ -D_FREETDS_LIBRARY_SOURCE -D_REENTRANT -D_THREAD_SAFE
> -DDEBUG=1 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long
> -D_REENTRANT -pthreads -g -O2 -MT common.o -MD -MP -MF ".deps/common.Tpo"
> -c -o common.o common.c; \
> then mv -f ".deps/common.Tpo" ".deps/common.Po"; else rm -f
> ".deps/common.Tpo"; exit 1; fi
> In file included from common.h:22,
>                 from common.c:1:
> ../../../include/tds.h:1422: warning: `struct in_addr' declared inside
> parameter list
> ../../../include/tds.h:1422: warning: its scope is only this definition or
> declaration, which is probably not what you want
> ../../../include/tds.h:1422: warning: parameter has incomplete type
> /bin/bash ../../../libtool --tag=CC --mode=link gcc -D_REENTRANT -pthreads
> -g -O2 -no-install  -o t0001  t0001.o common.o  ../libtds.la
> ../../replacements/libreplacements.la -lnsl -lsocket
> gcc -D_REENTRANT -pthreads -g -O2 -o t0001 t0001.o common.o  
> ../.libs/libtds.a ../../replacements/.libs/libreplacements.a -lnsl -lsocket
> Undefined                       first referenced
>  symbol                             in file
> libiconv_close                      ../.libs/libtds.a(iconv.o)
> libiconv_open                       ../.libs/libtds.a(iconv.o)
> libiconv                            ../.libs/libtds.a(iconv.o)
> ld: fatal: Symbol referencing errors. No output written to t0001
> collect2: ld returned 1 exit status
> make[5]: *** [t0001] Error 1
> make[5]: Leaving directory
> `/mounts/sysadm/mss/usr/src/freetds-0.82/src/tds/unittests'
> make[4]: *** [check-am] Error 2
> make[4]: Leaving directory
> `/mounts/sysadm/mss/usr/src/freetds-0.82/src/tds/unittests'
> make[3]: *** [check-recursive] Error 1
> make[3]: Leaving directory `/mounts/sysadm/mss/usr/src/freetds-0.82/src/tds'
> make[2]: *** [check] Error 2
> make[2]: Leaving directory `/mounts/sysadm/mss/usr/src/freetds-0.82/src/tds'
> make[1]: *** [check-recursive] Error 1
> make[1]: Leaving directory `/mounts/sysadm/mss/usr/src/freetds-0.82/src'
> make: *** [check-recursive] Error 1
>
>




Archive powered by MHonArc 2.6.24.

Top of Page