java/7169: /usr/ccs/bin/ld: Unsatisfied symbols: libiconv, libiconv_open, libiconv_close

Bruno Haible bruno@clisp.org
Tue Jul 2 12:27:00 GMT 2002


The following reply was made to PR java/7169; it has been noted by GNATS.

From: Bruno Haible <bruno@clisp.org>
To: tromey@redhat.com
Cc: dave.anglin@nrc.ca, gcc-gnats@gcc.gnu.org
Subject: Re: java/7169: /usr/ccs/bin/ld: Unsatisfied symbols: libiconv, libiconv_open, libiconv_close
Date: Tue, 2 Jul 2002 21:19:22 +0200 (CEST)

 Dave Anglin writes:
 
 > I think what is happening is that the GNU version of
 > libiconv installed in /opt/gnu is not found
 > ...
 > ../gcc/configure --with-gnu-as --with-as=/opt/gnu/bin/as --enable-shared --disable-nls --prefix=/opt/gnu
 
 It is generally a bad idea to configure and install *any* program or
 library with the same --prefix as you use for configuring gcc. The
 reason is that many gcc versions/installations are broken in the sense
 that they will look for include files in $prefix/include but not look
 for libraries in $prefix/lib - or vice versa.
 
 libiconv installs its header in $prefix/include and its library in
 $prefix/lib. If gcc now looks in one of these directories but not the
 other, you get the link error that you saw.
 
 You can check this theory by looking what the preprocessor does and
 what the linker does when you call it though
 
   XGCC="stage1/xgcc -Bstage1/ -B/opt/gnu/hppa2.0w-hp-hpux11.11/bin/ \
     -DIN_GCC    -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes \
     -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long \
     -DHAVE_CONFIG_H"
 
 For the preprocessor, use "$XGCC -v  -E -".
 For the linker, use "$XGCC -v -v dummy.o -o /tmp/a.out"
 
 > Ok.  This could be a minor problem in the libiconv autoconf macros.
 > We've run into the odd bit of confusion in this area before.
 
 I can recommend the gettext 0.11.2 macros for iconv.m4 and gettext.m4;
 they appear to be bug-free. Of course, when you upgrade gettext.m4 you
 also need to run gettextize of the same version and commit its changes
 and your changes to the CVS.
 
 I can't comment on details of the gcc/aclocal.m4 contents because the
 gettext and iconv macros used there look quite old to me and have been
 patched by other people.
 
 > If you install libiconv in a place that is going to be visible to gcc,
 > then it seems like you can't pretend it doesn't exist.  What do you
 > think about that?  I'd agree that it would be best if the autoconf
 > macros automatically detected this situation
 
 The gettext 0.11.2 macro automatically does this; i.e. it will look for
 iconv.h and libiconv.{a,so} in $prefix/include and $prefix/lib,
 respectively, removing the need for --with-libiconv-prefix in most
 cases.
 
 Bruno



More information about the Gcc-prs mailing list