Subject: Re: bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p

From: Ted Zlatanov <[email-masked]>
Date: Thu, 11 Dec 2014 17:58:36 -0500

On Thu, 11 Dec 2014 23:03:57 +0200 Eli Zaretskii <[email-masked]> wrote: 

EZ> In gnutls.c, of course.

All right, fixed in emacs-24 and can be merged forward to master:

commit 301a4014a72964a8ec0078055c273d045d94fe42
Author: Ted Zlatanov <[email-masked]>
Date:   Thu Dec 11 17:55:36 2014 -0500

    Always define `gnutls-available-p' even if GnuTLS is not available.
    
    Fixes: debbugs:19346
    
    * gnutls.c (Fgnutls_available_p syms_of_gnutls): Move later for
    clarity.  Let the availability check return Qnil when the GnuTLS
    integration is not available, instead of erroring out.
    
    * gnutls.h: Always declare syms_of_gnutls.
    
    * emacs.c (main): Always include gnutls.h and run syms_of_gnutls.

Lars, you can revert your patch if you want, after this is merged in.

EZ> The generic solution is for the code that links to each module to
EZ> provide the function, and for the module to provide the value.

EZ> This is all part of the "protocol" between Emacs and the modules,
EZ> which includes a header file, an import library, and a bunch of
EZ> interfaces each module needs to implement.

OK. I'll keep this in mind for when we get to that point.  It makes a
lot of sense.

Thanks
Ted