Link error in 1.9.{91,92,93,94}

Nicholas nicholas at
Mon Oct 30 18:01:55 CET 2006

Hope you can help even if this is more of a GNU make question.
I get the following linker error

Making all in kbx
make[2]: Entering directory `/usr/src/packages/SOURCES/gnupg-1.9.94/kbx'
gcc  -g -O2 -Wall   -o kbxutil  kbxutil.o keybox-util.o keybox-init.o 
keybox-blob.o keybox-file.o keybox-search.o keybox-update.o keybox-openpgp.o 
keybox-dump.o ../jnlib/libjnlib.a ../gl/libgnu.a -L/usr/local/lib -lksba 
-lgpg-error -L/usr/local/lib -lgcrypt -lgpg-error 
-lgpg-error  ../common/libcommon.a -ldl
../jnlib/libjnlib.a(utf8conv.o)(.text+0x5a0): In function `do_utf8_to_native':
/usr/src/packages/SOURCES/gnupg-1.9.94/jnlib/utf8conv.c:574: undefined 
reference to `libiconv_open'
several more undefined references to libiconv, libiconv_open and 
libiconv_close omitted
collect2: ld returned 1 exit status

Some more details to help or obsure:

Running GNU/Linux, distro. is SuSE 9.2,
SuSE updated kernel 2.6.8-24.25-default
On Athlon i686 machine

gpg configured with
./configure --enable-noexecstack --enable-dsa2 --enable-m-guard 
--with-gpg-error-prefix=/usr/local --with-libassuan-prefix=/usr/local 
--with-ksba-prefix=/usr/local --with-pth-prefix=/usr/local 
--with-libiconv-prefix=/usr/local --with-libgcrypt-prefix=/usr/local 
--with-photo-viewer=/opt/kde3/bin/kuickshow --enable-symcryptrun 
--enable-selinux-support --disable-scdaemon --disable-ldap 
--with-dirmngr-pgm=/usr/local/bin/ --with-libintl-prefix=/usr/local 

libgpg-error = 1.4
libassuan = 0.9.3
libksba = 1.0.0
pth = 2.0.7
libiconv = 1.11
libgcrypt = 1.2.3
dirmngr = 0.9.6
pinentry = 0.7.2

If I run gcc directly in kbx (and at the several other points where the same 
type of error occurs) and include "-liconv" I can compile. This is obviously 
seriously dumb way to go about fixing the problem even though I have finished 
the compile that way. The Makefile seems ok, the variables for libiconv are 
pointing to /usr/local (why -rpath?):
LIBICONV = /usr/local/lib/ -Wl,-rpath -Wl,/usr/local/lib
LTLIBICONV = -L/usr/local/lib -liconv -R/usr/local/lib
and these variables are set in the subdirectories' Makefiles too. I don't know 
enough about the tool-chain to see why "-liconv" isn't passed to gcc.

compiling with
gcc (GCC) 3.3.4 (pre 3.3.5 20040809)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
Url : /pipermail/attachments/20061031/baa1d786/attachment.pgp

More information about the Gnupg-users mailing list