Build failure on OpenSolaris machine.

Dr. David Kirkby david.kirkby at onetel.net
Sun Feb 20 22:52:59 CET 2011


I've tried to build GnuTLS on a Sun Ultra 27 (Intel Xeon) running OpenSolaris 
06/2009. I've built a lot of software on here without hassle, but the current 
version of GnuTLS will not build. (Version 2.2.1 builds OK, though I've not 
tried any other versions).

The fact there are copies of the gmp library in both /usr/local/lib and 
/usr/local/gcc-4.5.0/lib seems to be causing the problem. But there seems no way 
to specify where the libraries should be found.

If one builds gcc, there are options to specify where the gmp library is kept.

My GCC is configured with this option.

--with-gmp=/usr/local/gcc-4.5.0

but there seems to be no similar option for GnuTLS.

$configure
<snip>


checking whether byte ordering is bigendian... no
checking for C/C++ restrict keyword... __restrict
checking if gcc/ld supports -Wl,--output-def... no
checking if LD -Wl,--version-script works... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating gnutls-extra.pc
config.status: creating gl/Makefile
config.status: creating includes/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure: summary of build options:

   version:          2.10.4 shared 42:13:16
   Host type:        i386-pc-solaris2.11
   Install prefix:   /usr/local
   Compiler:         gcc -std=gnu99
   Warning flags:    errors:  warnings:
   Library types:    Shared=yes, Static=yes
   Valgrind:         no
   Guile wrappers:   yes
   C++ library:      yes
   OpenSSL library:  yes
   /dev/crypto:      no


$ make

<snip>

C -DPIC -o .libs/libguile_gnutls_v_1_la-core.o
libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. 
-I../../lib/includes -I../../lib/includes -I../../libextra/includes -I../.. -I. 
-Wno-strict-prototypes -I../../lib/gl -I../../lib/gl -I/usr/include/gmp 
-D_REENTRANT -pthreads -g -O2 -MT libguile_gnutls_v_1_la-errors.lo -MD -MP -MF 
.deps/libguile_gnutls_v_1_la-errors.Tpo -c errors.c  -fPIC -DPIC -o 
.libs/libguile_gnutls_v_1_la-errors.o
libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. 
-I../../lib/includes -I../../lib/includes -I../../libextra/includes -I../.. -I. 
-Wno-strict-prototypes -I../../lib/gl -I../../lib/gl -I/usr/include/gmp 
-D_REENTRANT -pthreads -g -O2 -MT libguile_gnutls_v_1_la-utils.lo -MD -MP -MF 
.deps/libguile_gnutls_v_1_la-utils.Tpo -c utils.c  -fPIC -DPIC -o 
.libs/libguile_gnutls_v_1_la-utils.o
libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. 
-I../../lib/includes -I../../lib/includes -I../../libextra/includes -I../.. -I. 
-Wno-strict-prototypes -I../../lib/gl -I../../lib/gl -I/usr/include/gmp 
-D_REENTRANT -pthreads -g -O2 -MT libguile_gnutls_extra_v_1_la-extra.lo -MD -MP 
-MF .deps/libguile_gnutls_extra_v_1_la-extra.Tpo -c extra.c  -fPIC -DPIC -o 
.libs/libguile_gnutls_extra_v_1_la-extra.o
libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. 
-I../../lib/includes -I../../lib/includes -I../../libextra/includes -I../.. -I. 
-Wno-strict-prototypes -I../../lib/gl -I../../lib/gl -I/usr/include/gmp 
-D_REENTRANT -pthreads -g -O2 -MT libguile_gnutls_v_1_la-errors.lo -MD -MP -MF 
.deps/libguile_gnutls_v_1_la-errors.Tpo -c errors.c -o 
libguile_gnutls_v_1_la-errors.o >/dev/null 2>&1
libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. 
-I../../lib/includes -I../../lib/includes -I../../libextra/includes -I../.. -I. 
-Wno-strict-prototypes -I../../lib/gl -I../../lib/gl -I/usr/include/gmp 
-D_REENTRANT -pthreads -g -O2 -MT libguile_gnutls_v_1_la-utils.lo -MD -MP -MF 
.deps/libguile_gnutls_v_1_la-utils.Tpo -c utils.c -o 
libguile_gnutls_v_1_la-utils.o >/dev/null 2>&1
mv -f .deps/libguile_gnutls_v_1_la-errors.Tpo 
.deps/libguile_gnutls_v_1_la-errors.Plo
libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. 
-I../../lib/includes -I../../lib/includes -I../../libextra/includes -I../.. -I. 
-Wno-strict-prototypes -I../../lib/gl -I../../lib/gl -I/usr/include/gmp 
-D_REENTRANT -pthreads -g -O2 -MT libguile_gnutls_extra_v_1_la-extra.lo -MD -MP 
-MF .deps/libguile_gnutls_extra_v_1_la-extra.Tpo -c extra.c -o 
libguile_gnutls_extra_v_1_la-extra.o >/dev/null 2>&1
mv -f .deps/libguile_gnutls_v_1_la-utils.Tpo .deps/libguile_gnutls_v_1_la-utils.Plo
mv -f .deps/libguile_gnutls_extra_v_1_la-extra.Tpo 
.deps/libguile_gnutls_extra_v_1_la-extra.Plo
libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. 
-I../../lib/includes -I../../lib/includes -I../../libextra/includes -I../.. -I. 
-Wno-strict-prototypes -I../../lib/gl -I../../lib/gl -I/usr/include/gmp 
-D_REENTRANT -pthreads -g -O2 -MT libguile_gnutls_v_1_la-core.lo -MD -MP -MF 
.deps/libguile_gnutls_v_1_la-core.Tpo -c core.c -o libguile_gnutls_v_1_la-core.o 
 >/dev/null 2>&1
mv -f .deps/libguile_gnutls_v_1_la-core.Tpo .deps/libguile_gnutls_v_1_la-core.Plo
/bin/sh ../../libtool --tag=CC   --mode=link gcc -std=gnu99 
-Wno-strict-prototypes  -I../../lib/gl -I../../lib/gl -I/usr/include/gmp 
-D_REENTRANT -pthreads -g -O2   -o libguile-gnutls-v-1.la -rpath /usr/local/lib 
libguile_gnutls_v_1_la-core.lo libguile_gnutls_v_1_la-errors.lo 
libguile_gnutls_v_1_la-utils.lo ../../lib/libgnutls.la ../../lib/gl/liblgnu.la 
-I/usr/include/gmp -D_REENTRANT -pthreads -lguile -lltdl  -lgmp -lsocket -lnsl 
-lm -lltdl
libtool: link: gcc -std=gnu99 -shared -Wl,-z -Wl,text -Wl,-h 
-Wl,libguile-gnutls-v-1.so.0 -o .libs/libguile-gnutls-v-1.so.0.0.0 
.libs/libguile_gnutls_v_1_la-core.o .libs/libguile_gnutls_v_1_la-errors.o 
.libs/libguile_gnutls_v_1_la-utils.o  -Wl,-z -Wl,allextract 
../../lib/gl/.libs/liblgnu.a -Wl,-z -Wl,defaultextract 
-R/export/home/drkirkby/gnutls-2.10.4/lib/.libs -R/usr/local/gcc-4.5.0/lib 
-R/usr/local/lib -R/usr/local/gcc-4.5.0/lib ../../lib/.libs/libgnutls.so -ltasn1 
-lz -lgcrypt -lgpg-error /usr/lib/libguile.so -lgmp 
/usr/local/gcc-4.5.0/lib/libgmp.so -lsocket -lnsl -lm -lltdl -lc  -pthreads 
-pthreads   -pthreads
ld: fatal: symbol `scm_cell' is multiply-defined:
	(file .libs/libguile_gnutls_v_1_la-core.o type=FUNC; file 
.libs/libguile_gnutls_v_1_la-errors.o type=FUNC);
ld: fatal: symbol `scm_double_cell' is multiply-defined:
	(file .libs/libguile_gnutls_v_1_la-core.o type=FUNC; file 
.libs/libguile_gnutls_v_1_la-errors.o type=FUNC);
ld: fatal: symbol `scm_array_handle_ref' is multiply-defined:
	(file .libs/libguile_gnutls_v_1_la-core.o type=FUNC; file 
.libs/libguile_gnutls_v_1_la-errors.o type=FUNC);
ld: fatal: symbol `scm_array_handle_set' is multiply-defined:
	(file .libs/libguile_gnutls_v_1_la-core.o type=FUNC; file 
.libs/libguile_gnutls_v_1_la-errors.o type=FUNC);
ld: fatal: symbol `scm_is_pair' is multiply-defined:
	(file .libs/libguile_gnutls_v_1_la-core.o type=FUNC; file 
.libs/libguile_gnutls_v_1_la-errors.o type=FUNC);
ld: fatal: symbol `scm_cell' is multiply-defined:
	(file .libs/libguile_gnutls_v_1_la-core.o type=FUNC; file 
.libs/libguile_gnutls_v_1_la-utils.o type=FUNC);
ld: fatal: symbol `scm_double_cell' is multiply-defined:
	(file .libs/libguile_gnutls_v_1_la-core.o type=FUNC; file 
.libs/libguile_gnutls_v_1_la-utils.o type=FUNC);
ld: fatal: symbol `scm_array_handle_ref' is multiply-defined:
	(file .libs/libguile_gnutls_v_1_la-core.o type=FUNC; file 
.libs/libguile_gnutls_v_1_la-utils.o type=FUNC);
ld: fatal: symbol `scm_array_handle_set' is multiply-defined:
	(file .libs/libguile_gnutls_v_1_la-core.o type=FUNC; file 
.libs/libguile_gnutls_v_1_la-utils.o type=FUNC);
ld: fatal: symbol `scm_is_pair' is multiply-defined:
	(file .libs/libguile_gnutls_v_1_la-core.o type=FUNC; file 
.libs/libguile_gnutls_v_1_la-utils.o type=FUNC);
ld: warning: file /usr/local/gcc-4.5.0/lib/libgmp.so: linked to 
/usr/local/gcc-4.5.0/lib/gcc/i386-pc-solaris2.10/4.5.0/../../../libgmp.so: 
attempted multiple inclusion of file
ld: fatal: file processing errors. No output written to 
.libs/libguile-gnutls-v-1.so.0.0.0
collect2: ld returned 1 exit status
make[4]: *** [libguile-gnutls-v-1.la] Error 1
make[4]: Leaving directory `/export/home/drkirkby/gnutls-2.10.4/guile/src'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/export/home/drkirkby/gnutls-2.10.4/guile/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/export/home/drkirkby/gnutls-2.10.4/guile'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/export/home/drkirkby/gnutls-2.10.4'
make: *** [all] Error 2

-- 
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?

Dave





More information about the Gnutls-devel mailing list