[gnutls-devel] minimal compile of gnutls has undefined symbols

David Marx David.M.Marx at Oracle.Com
Thu Mar 19 07:21:56 CET 2015


I am trying to compile up a minimal static gnutls library to use
with a basic TLS client, such as section 6.1.1 Simple client
example with X.509 certificate support of The GnuTLS Manual for
version 3.3, gnutls.pdf.  I am disabling everything I can find to
disable.  When I do, there are functions that are undefined, I
believe some or all of these functions are being called from
inside the gnutls library, but are ifdefed out.

set -ex
cd gnutls-3.3.13
./configure \
--prefix=/usr --mandir=/usr/share/man --bindir=/usr/bin/amd64 \
--libdir=/usr/lib/amd64 --sbindir=/usr/sbin/amd64 \
--disable-dtls-srtp-support --disable-alpn-support \
--disable-rsa-export --disable-heartbeat-support \
--disable-srp-authentication --disable-psk-authentication \
--disable-anon-authentication --disable-dhe --disable-ecdhe \
--disable-openpgp-authentication --disable-ocsp \
--disable-session-tickets --disable-openssl-compatibility \
--disable-non-suiteb-curves --disable-crywrap --disable-libdane \
--without-p11-kit --without-tpm --without-zlib --disable-shared \
--enable-static --libexecdir=/usr/lib/amd64 --sysconfdir=/etc/gnu \
--infodir=/usr/share/info \
PKG_CONFIG_PATH=/net/scapen-csx12-0/scratch/dmmarx/12a/u/components/nettle/build/prototype/i386/usr/lib/amd64/pkgconfig 
\
NETTLE_CFLAGS="-I /usr/include/gmp -I \
/net/scapen-csx12-0/scratch/dmmarx/12a/u/components/nettle/build/prototype/i386/usr/include" 
\
NETTLE_LIBS=/net/scapen-csx12-0/scratch/dmmarx/12a/u/components/nettle/build/prototype/i386/usr/lib/amd64/libnettle.a 
\
HOGWEED_LIBS=/net/scapen-csx12-0/scratch/dmmarx/12a/u/components/nettle/build/prototype/i386/usr/lib/amd64/libhogweed.a
gmake $*

I see the following undefines.

Undefined                           in file
_gnutls_free_dh_info                libgnutls.a(gnutls_auth.o)
gnutls_anon_allocate_client_credentials 
../../lib/.libs/libgnutlsxx.a(libgnutl
gnutls_anon_allocate_server_credentials 
../../lib/.libs/libgnutlsxx.a(libgnutl
gnutls_anon_free_client_credentials 
../../lib/.libs/libgnutlsxx.a(libgnutlsxx_
gnutls_anon_free_server_credentials ../../lib/.libs/libgnutlsxx.a(libgnutlsx
gnutls_anon_set_server_dh_params ../../lib/.libs/libgnutlsxx.a(libgnutls
gnutls_anon_set_server_params_function 
libgnutlsxx.a(libgnutlsxx_la-gnutlsxx.o)
gnutls_certificate_set_dh_params    ex-serv-dtls.o
gnutls_dh_get_group                 common.o
gnutls_dh_get_peers_public_bits     common.o
gnutls_dh_get_prime_bits            common.o
gnutls_dh_get_pubkey                tests.o
gnutls_dh_get_secret_bits           common.o
gnutls_dh_set_prime_bits libgnutlsxx.a(libgnutlsxx_la-gnutlsxx.o)
gnutls_psk_allocate_client_credentials 
../../lib/.libs/libgnutlsxx.a(libgnutls
gnutls_psk_free_client_credentials libgnutlsxx.a(libgnutlsxx_la-gnutlsxx.o)
gnutls_psk_free_server_credentials ../../lib/.libs/libgnutlsxx.a(libgnutlsx
gnutls_psk_server_get_username ../../lib/.libs/libgnutlsxx.a(libgnutlsxx_
gnutls_psk_set_client_credentials libgnutlsxx.a(libgnutlsxx_la-gnutlsxx.o)
gnutls_psk_set_client_credentials_function 
../../lib/.libs/libgnutlsxx.a(libg
gnutls_psk_set_server_credentials_file 
../../lib/.libs/libgnutlsxx.a(libgnutls
gnutls_psk_set_server_credentials_function 
../../lib/.libs/libgnutlsxx.a(libgn
gnutls_psk_set_server_dh_params libgnutlsxx.a(libgnutlsxx_la-gnutlsxx.o)
gnutls_psk_set_server_params_function 
libgnutlsxx.a(libgnutlsxx_la-gnutlsxx.o)

Also the --enable-static build doesn't seem to compile, as it
doesn't seem to point at static libnettle, libhogweed libraries.

Thanks.




More information about the Gnutls-devel mailing list