Subject: bug#9929: closed (Re: bug#9929: 24.0.91; Compile failure at gnutls.c)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 04 Nov 2011 22:20:02 +0000

Your bug report

#9929: 24.0.91; Compile failure at gnutls.c

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
9929: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9929
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#9929: 24.0.91; Compile failure at gnutls.c
From: Glenn Morris <[email-masked]>
To: [email-masked]
Date: Fri, 04 Nov 2011 18:17:03 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 24.0.92

I have increased the minimum GnuTLS version in configure.in to 2.6.6.

Subject: 24.0.91; Compile failure at gnutls.c
From: David J Fussner <[email-masked]>
To: [email-masked]
Date: Tue, 1 Nov 2011 10:33:34 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Compilation of the latest pretest fails with this recipe:

./configure

make

gnutls.c: In function 'Fgnutls_boot':
gnutls.c:962: error: 'GNUTLS_CERT_NOT_ACTIVATED' undeclared (first use
in this function)
gnutls.c:962: error: (Each undeclared identifier is reported only once
gnutls.c:962: error: for each function it appears in.)
gnutls.c:966: error: 'GNUTLS_CERT_EXPIRED' undeclared (first use in
this function)
make[1]: *** [gnutls.o] Error 1
make[1]: Leaving directory `/home/Downloads/emacs-24.0.91/src'
make: *** [src] Error 2

This is Slackware GNU/Linux 12

pkg-config --modversion gnutls: 2.6.2

gcc (GCC) 4.1.2
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is
NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

Selected parts of config.log, in case it helps:

configure:11710: checking for gnutls >= 2.6.0
configure:11714: result: yes
configure:11718: checking LIBGNUTLS_CFLAGS
configure:11721: result:  
configure:11724: checking LIBGNUTLS_LIBS
configure:11727: result: -lgnutls  
configure:11764: checking for gnutls_certificate_set_verify_function
configure:11764: gcc -std=gnu99 -o conftest  -g -O2
-I/usr/include/librsvg-2 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include
-I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-I/usr/include/freetype2 -I/usr/include/libpng12
-Wl,-znocombreloc  conftest.c -lgnutls   -lgtk-x11-2.0 -lgdk-x11-2.0
-latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo
-lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0   -lWand -lMagick
-lrsvg-2 -lgdk_pixbuf-2.0 -lm -lgobject-2.0 -lgmodule-2.0 -ldl
-lglib-2.0   -lX11 -lpthread   -ldbus-1   >&5 /tmp/ccgDoSOW.o: In
function `main': /home/Downloads/emacs-24.0.91/conftest.c:138:
undefined reference to `gnutls_certificate_set_verify_function'
collect2: ld returned 1 exit status
configure:11764: $? = 1
configure: failed program was:
| /* confdefs.h */
....
| #define HAVE_GNUTLS 1
| /* end confdefs.h.  */
| /* Define gnutls_certificate_set_verify_function to an innocuous
variant, in case <limits.h> declares
gnutls_certificate_set_verify_function.
|    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
| #define gnutls_certificate_set_verify_function
innocuous_gnutls_certificate_set_verify_function
|
| /* System header to define __stub macros and hopefully few prototypes,
|     which can conflict with char
gnutls_certificate_set_verify_function (); below.
|     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|     <limits.h> exists even on freestanding compilers.  */
|
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
|
| #undef gnutls_certificate_set_verify_function
|
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char gnutls_certificate_set_verify_function ();
| /* The GNU C library defines this for functions which it implements
|     to always fail with ENOSYS.  Some functions are actually named
|     something starting with __ and the normal name is an alias.  */
| #if defined __stub_gnutls_certificate_set_verify_function || defined
__stub___gnutls_certificate_set_verify_function
| choke me
| #endif
| 
| int
| main ()
| {
| return gnutls_certificate_set_verify_function ();
|   ;
|   return 0;
| }

./configure --without-gnutls works fine:

In GNU Emacs 24.0.91.1 (i686-pc-linux-gnu, GTK+ Version 2.10.13)
 of 2011-10-31 on font
Windowing system distributor `The X.Org Foundation', version
11.0.10300000 configured using `configure  '--without-gnutls''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: C
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.ISO8859-1
  value of $XMODIFIERS: nil
  locale-coding-system: iso-latin-1-unix
  default enable-multibyte-characters: t

There was, by the way, the same problem compiling 24.0.90.  I'm happy to
test fixes, or indeed upgrade gnutls if necessary.

Many thanks,

David.