[gnutls-devel] Missing function. Where is version_to_entry defined?
JONES, BILL
rj7252 at att.com
Thu Feb 12 09:59:54 CET 2015
GNUTLS Team,
So I did some digging around...
as previously stated, make --recon check produces this link command:
echo " CCLD " gc;/bin/bash ../libtool --silent --tag=CC --mode=link cc -no-install -R/appl/local-201501ss/lib -R/usr/lib -L/appl/local-201501ss/lib -L/opt/solarisstudio12.3/lib -L/opt/solarisstudio12.3/lib -o gc gc.o ../lib/libgnutls.la ../gl/libgnu.la libutils.la -lsocket -lnsl -lnsl -lintl -lgen
If I add "../lib/algorithms/libgnutls_alg.la" to it link so:
echo " CCLD " gc;/bin/bash ../libtool --silent --tag=CC --mode=link cc -no-install -R/appl/local-201501ss/lib -R/usr/lib -L/appl/local-201501ss/lib -L/opt/solarisstudio12.3/lib -L/opt/solarisstudio12.3/lib -o gc gc.o ../lib/libgnutls.la ../gl/libgnu.la ../lib/algorithms/libgnutls_alg.la libutils.la -lsocket -lnsl -lnsl -lintl -lgen
gc now compiles.
So the original question was, what library is "version_to_entry" defined in...
Answer: libgnutls_alg.a
Next question: What is missing in the Makefile to not include this in the CCLD for the "gc" test?
Additionally, why isn't this included in the list of libs for libgnutls-openssl.la
Robert W. Jones (Bill)
AT&T
From: JONES, BILL
Sent: Wednesday, February 11, 2015 1:22 PM
To: 'Daniel Kahn Gillmor'; 'bugs at gnutls.org'
Subject: RE: [gnutls-devel] Missing function. Where is version_to_entry defined?
Daniel,
nm -v ../lib/.libs/libgnutls.so shows:
[296] | 1790680| 128|FUNC |LOCL |2 |10 |version_to_entry
Bill
From: JONES, BILL
Sent: Wednesday, February 11, 2015 12:44 PM
To: 'Daniel Kahn Gillmor'; bugs at gnutls.org<mailto:bugs at gnutls.org>
Subject: RE: [gnutls-devel] Missing function. Where is version_to_entry defined?
Daniel,
Here is the original problem:
Making all in extra^M
make[2]: Entering directory `/appl/local_build/build-ss/gnutls-3.3.11/extra'^M
Making all in includes^M
make[3]: Entering directory `/appl/local_build/build-ss/gnutls-3.3.11/extra/includes'^M
make[3]: Nothing to be done for `all'.^M
make[3]: Leaving directory `/appl/local_build/build-ss/gnutls-3.3.11/extra/includes'^M
make[3]: Entering directory `/appl/local_build/build-ss/gnutls-3.3.11/extra'^M
CC gnutls_openssl.lo^M
CC openssl_compat.lo^M
CCLD libgnutls-openssl.la^M
Undefined first referenced^M
symbol in file^M
nanosleep .libs/gnutls_openssl.o (symbol belongs to implicit dependency /usr/lib/librt.so.1)^M
version_to_entry .libs/gnutls_openssl.o^M
ld: fatal: symbol referencing errors. No output written to .libs/libgnutls-openssl.so.27.0.2^M
make[3]: *** [libgnutls-openssl.la] Error 2^M
make[3]: Leaving directory `/appl/local_build/build-ss/gnutls-3.3.11/extra'^M
make[2]: *** [all-recursive] Error 1^M
make[2]: Leaving directory `/appl/local_build/build-ss/gnutls-3.3.11/extra'^M
make[1]: *** [all-recursive] Error 1^M
make[1]: Leaving directory `/appl/local_build/build-ss/gnutls-3.3.11'^M
make: *** [all] Error 2^M
So one thread said...you don't need openssl support (and the question why not went unanswered), but the recommendation was to add "--disable-openssl-compatibility"
So I did, and now here is the next problem:
Making check in tests
make[1]: Entering directory `/appl/local_build/build-ss/gnutls-3.3.11/tests'
Making check in .
make[2]: Entering directory `/appl/local_build/build-ss/gnutls-3.3.11/tests'
make mini-record-2 simple gc set_pkcs12_cred certder certuniqueid mpi certificate_set_x509_crl dn parse_ca moredn record-s
izes hostname-check cve-2008-4989 pkcs12_s2k chainverify record-sizes-range crq_key_id x509sign-verify cve-2009-1415 cve-20
09-1416 crq_apis init_roundtrip pkcs12_s2k_pem dn2 mini-eagain nul-in-x509-names x509_altname pkcs12_encode mini-x509 mini-
rehandshake rng-fork mini-eagain-dtls resume-dtls x509cert x509cert-tl infoaccess mini-dtls-hello-verify mini-tdb mini-dtls
-rehandshake mini-alpn mini-dtls-large mini-termination mini-x509-cas mini-x509-2 pkcs12_simple mini-emsgsize-dtls chainver
ify-unsorted mini-overhead mini-dtls-heartbeat mini-x509-callbacks key-openssl priorities mini-dtls-srtp rsa-encrypt-decryp
t mini-loss-time mini-record mini-dtls-record mini-handshake-timeout mini-record-range mini-cert-status mini-rsa-psk global
-init sec-params fips-test mini-global-load name-constraints x509-extensions long-session-id mini-x509-callbacks-intr crlve
rify init_fds mini-rehandshake-2 ocsp openpgp-auth openpgp-auth2 openpgp-keyring pgps2kgnu x509self x509dn anonself pskse
lf dhepskself resume setcredcrash openpgpself \
rfc2253-escape-test
make[3]: Entering directory `/appl/local_build/build-ss/gnutls-3.3.11/tests'
make[3]: `mini-record-2' is up to date.
make[3]: `simple' is up to date.
CCLD gc
Undefined first referenced
symbol in file
version_to_entry gc.o
ld: fatal: symbol referencing errors. No output written to gc
make[3]: *** [gc] Error 2
make[3]: Leaving directory `/appl/local_build/build-ss/gnutls-3.3.11/tests'
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `/appl/local_build/build-ss/gnutls-3.3.11/tests'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/appl/local_build/build-ss/gnutls-3.3.11/tests'
make: *** [check-recursive] Error 1
Here is the output from "make --recon check"
make[2]: `mini-record-2' is up to date.
make[2]: `simple' is up to date.
rm -f gc
echo " CCLD " gc;/bin/bash ../libtool --silent --tag=CC --mode=link cc -no-install -R/appl/local-201501ss/lib -R/usr/lib -L/appl/local-201501ss/lib -L/opt/solarisstudio12.3/lib -L/opt/solarisstudio12.3/lib -o gc gc.o ../lib/libgnutls.la ../gl/libgnu.la libutils.la -lsocket -lnsl -lnsl -lintl -lgen
So what lib is missing version_to_entry?...and why? I expect that if this gets worked out, I can remove the "--disable-openssl-compatibility"
*NOTE...maybe unrelated: I also found that the code the handle _Bool type was messed up:
make[5]: Entering directory `/appl/local_build/build-ss/gnutls-3.3.11/src/libopts'^M
CC libopts_la-libopts.lo^M
"/appl/local_build/src/gnutls/gnutls-3.3.11/src/libopts/compat/compat.h", line 188: invalid type combination^M
"/appl/local_build/src/gnutls/gnutls-3.3.11/src/libopts/compat/compat.h", line 188: warning: typedef declares no type
name^M
cc: acomp failed for /appl/local_build/src/gnutls/gnutls-3.3.11/src/libopts/libopts.c^M
and I fixed that by doing this:
1. Added local stdbool.h from gettext-0.19.4/gettext-runtime/gnulib-lib/stdbool.h to gnutls-3.3.11/src/libopts/compat/stdbool.h
2. In src/libopts/compat/compat.h and src/libopts/autoopts/options.h
Changed:
#ifdef HAVE_STDBOOL_H
# include <stdbool.h>
#else
# include "stdbool.h"
typedef enum { false = 0, true = 1 } _Bool;
# define bool _Bool
/* The other macros must be usable in preprocessor directives. */
# define false 0
# define true 1
#endif
To:
#ifdef HAVE_STDBOOL_H
# include <stdbool.h> /* Only for C99 in Solaris */
#else
# include "stdbool.h" /* does a better job of correctly defining _Bool depending on environment */
/* typedef enum { false = 0, true = 1 } _Bool;
/*# define bool _Bool
/*
/* /* The other macros must be usable in preprocessor directives. */
/*# define false 0
/*# define true 1
*/
#endif
Hardware: Sun T5220
cc is: SolarisStudio12
Starting from just SolarisStudio12 plus current patches...
I have these tools built, in this order:
gnu/make-3.82
gnu/libsigsegv-2.10
gnu/m4-1.4.17
gnu/readline-6.3
gnupg/zlib-1.2.8
gnu/ncurses-5.9
sourceforge/pcre-8.36
gnu/libiconv-1.14
gnu/grep-2.19
sourceforge/expat-2.1.0
gnu/tar-1.28
gnu/texinfo-5.2
sourceforge/flex-2.5.39
gnu/bison-3.0.2
sourceforge/flex-2.5.39
gnu/gmp-6.0.0
mpfr.org/mpfr-3.1.2
gnu/mpc-1.0.2
gnu/pth-2.0.7
gnu/gzip-1.6
gnu/libunistring-0.9.4
gnu/libidn-1.29
gnu/libtasn1-4.2
tukaani/xz-5.2.0
gnu/sed-4.2.2
xmlsoft.org/libxml2-2.9.2
openssl/openssl-1.0.1j
openldap.org/openldap-2.4.40
libssh2/libssh2-1.4.3
curl.haxx.se/curl-7.39.0
gnu/coreutils-8.23
gnu/gettext-0.19.4
gnu/gawk-4.1.1
sourceforge/tcl8.6.3
sourceforge/expect5.45
sourceforge/tk8.6.3
gnu/dejagnu-1.5.1
sourceware/libffi-3.2.1
gnu/nettle-2.7.1
pari.math.u-bordeaux.fr/pari-2.7.2
pkgconfig/pkg-config-0.28
gnome/glib-2.42.1
gnu/patch-2.6.1
gnu/autoconf-2.69
gnu/automake-1.14.1
gnu/libtool-2.4.4
ivmaisoft.com/libatomic_ops-7.4.2
hboehm.info/gc-7.2f
gnu/guile-2.0.11
Tried this package (autogen-5.18.4), but it does not pass tests because it's not properly finding libintl_gettext during linking...so this was skipped.
Currently building: gnutls/gnutls-3.3.11
Need this to move on to other tools.
Robert W. Jones (Bill)
AT&T
-----Original Message-----
From: Daniel Kahn Gillmor [mailto:dkg at fifthhorseman.net]
Sent: Wednesday, February 11, 2015 11:59 AM
To: JONES, BILL; bugs at gnutls.org<mailto:bugs at gnutls.org>
Subject: Re: [gnutls-devel] Missing function. Where is version_to_entry defined?
On Wed 2015-02-11 11:04:30 -0500, JONES, BILL wrote:
> Which library is the version_to_entry function defined.
>
> It's used in many places in gnutls...not just related to openssl.
>
> gnutls/gnutls-3.3.11/lib/gnutls_dtls.c: v = version_to_entry(version);
> gnutls/gnutls-3.3.11/lib/gnutls_int.h: s->security_parameters.pversion = version_to_entry(v);
> gnutls/gnutls-3.3.11/lib/algorithms/protocols.c:const version_entry_st *version_to_entry(gnutls_protocol_t version)
the function is defined here in lib/algorithms/protocols.c.
> gnutls/gnutls-3.3.11/lib/gnutls_handshake.c: version_to_entry(_gnutls_version_max
> gnutls/gnutls-3.3.11/lib/gnutls_session_pack.c: version_to_entry(version);
> gnutls/gnutls-3.3.11/lib/gnutls_session_pack.c: version_to_entry(version);
> gnutls/gnutls-3.3.11/lib/algorithms.h:const version_entry_st *version_to_entry(gnutls_protocol_t c);
the function is declared here in lib/algorithms/protocols.h
If that's not what you're asking, can you clarify? are you running into
specific problems? if so, can you show what the problems are
specifically?
--dkg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/attachments/20150212/fd4fc007/attachment-0001.html>
More information about the Gnutls-devel
mailing list