[libvirt] [PATCHv2] build: fix build with newer gnutls

Eric Blake eblake at redhat.com
Wed May 29 14:51:27 UTC 2013


Building with gnutls 3.2.0 (such as shipped with current cygwin) fails
with:

rpc/virnettlscontext.c: In function 'virNetTLSSessionGetKeySize':
rpc/virnettlscontext.c:1358:5: error: implicit declaration of function 'gnutls_cipher_get_key_size' [-Wimplicit-function-declaration]

Yeah, it's stupid that gnutls broke API by moving their declaration
into a new header without including that header from the old one,
but it's easy enough to work around, all without breaking on gnutls
1.4.1 (hello RHEL 5) that lacked the new header.

* src/rpc/virnettlscontext.c (includes): Include additional header.
* configure.ac (gnutls): Check for <gnutls/crypto.h>.

Signed-off-by: Eric Blake <eblake at redhat.com>
---

This version passed testing; pushing under the build-breaker rule.

 configure.ac               | 7 +++++--
 src/rpc/virnettlscontext.c | 3 +++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 2055637..8efbb04 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1103,10 +1103,13 @@ if test "x$with_gnutls" != "xno"; then
     dnl it explicitly for the calls to gcry_control/check_version
     GNUTLS_LIBS="$GNUTLS_LIBS -lgcrypt"

-    dnl We're not using gcrypt deprecated features so define GCRYPT_NO_DEPRECATED
-    dnl to avoid deprecated warnings
+    dnl We're not using gcrypt deprecated features so define
+    dnl GCRYPT_NO_DEPRECATED to avoid deprecated warnings
     GNUTLS_CFLAGS="$GNUTLS_CFLAGS -DGCRYPT_NO_DEPRECATED"

+    dnl gnutls 3.x moved some declarations to a new header
+    AC_CHECK_HEADERS([gnutls/crypto.h], [], [], [[#include <gnutls/gnutls.h>]])
+
     with_gnutls=yes
   fi

diff --git a/src/rpc/virnettlscontext.c b/src/rpc/virnettlscontext.c
index e29c439..f2ac551 100644
--- a/src/rpc/virnettlscontext.c
+++ b/src/rpc/virnettlscontext.c
@@ -25,6 +25,9 @@
 #include <stdlib.h>

 #include <gnutls/gnutls.h>
+#if HAVE_GNULTLS_CRYPTO_H
+# include <gnutls/crypto.h>
+#endif
 #include <gnutls/x509.h>
 #include "gnutls_1_0_compat.h"

-- 
1.8.1.4




More information about the libvir-list mailing list