Subject: Re: bug#8825: 24.0.50; Problem with builtin gnutls on Windows

From: Ted Zlatanov <[email-masked]>
Date: Sat, 18 Jun 2011 21:26:28 -0500

On Sun, 19 Jun 2011 02:13:38 +0200 Juanma Barranquero <[email-masked]> wrote: 

>> Ted seems to indicate that "--with-gnutls" is necessary.
JB> Not on Windows. configure.bat tests for gnutls/gnutls.h and enables
JB> GnuTLS if found. There's the option --without-gnutls to disable that
JB> check.

n> Debugger entered--Lisp error: (void-function gnutls-boot)
n>   gnutls-boot(#<process tls> gnutls-x509pki (:priority "NORMAL"
n> :hostname "imap.aim.com" :loglevel 0 :trustfiles nil :crlfiles
n> nil :keylist nil :verify-flags nil :verify-error nil
n> :verify-hostname-error nil :callbacks nil))

JB> That backtrace means that the executable you are using wasn't compiled
JB> with GnuTLS support. Apparently Sean's binary tarballs (including
JB> emacs-20110613-bin-i386.zip) are built without it.

Sorry if I've confused anyone.  I don't use W32 Emacs builds so I'm not
too knowledgeable about DLLs and bindings.  I am 100% sure, however,
that if `gnutls-boot' is a void function, this means that Emacs was
compiled without HAVE_GNUTLS.  That's what Juanma is saying too.

My understanding is that all the DLL function calls happen when calling
the GnuTLS API, but `gnutls-boot' is in src/gnutls.c and thus can't be
missing because of a DLL.  `gnutls-boot' will in turns call the GnuTLS
API, which are all the wrapped fn_gnutls_* functions,
e.g. `fn_gnutls_init'.  *Those* functions are in the GnuTLS DLLs.

I hope that's helpful.
Ted