[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Heimdal PKINIT complile errors



On Thu, Nov 18, 2004 at 01:51:54PM +0100, Ted Olsson wrote:
> gen.c:253: warning: implicit declaration of function `TAILQ_FOREACH'
> gen.c:253: warning: nested extern declaration of `TAILQ_FOREACH'
> gen.c:253: error: `members' undeclared (first use in this function)
> gen.c:253: error: (Each undeclared identifier is reported only once
> gen.c:253: error: for each function it appears in.)
> gen.c:253: error: syntax error before '{' token
> gen.c:256: warning: implicit declaration of function `TAILQ_NEXT'
> gen.c:256: warning: nested extern declaration of `TAILQ_NEXT'
> gen.c:256: warning: comparison between pointer and integer

I also had problems with undefined TAILQ_* macros. My debian woody seems
to contain an older (?) version of /usr/include/sys/queue.h, where these
definitions are missing. Try using the patch enclosed.

Dan
--- heimdal-20041021/lib/asn1/gen_locl.h.orig	Thu Oct 21 14:22:19 2004
+++ heimdal-20041021/lib/asn1/gen_locl.h	Thu Oct 21 14:37:01 2004
@@ -54,6 +54,28 @@
 #include "asn1-common.h"
 #include "der.h"
 
+#define	TAILQ_EMPTY(head)	((head)->tqh_first == NULL)
+
+#define	TAILQ_FIRST(head)	((head)->tqh_first)
+
+#define TAILQ_FOREACH(var, head, field)					\
+	for ((var) = TAILQ_FIRST((head));				\
+	    (var);							\
+	    (var) = TAILQ_NEXT((var), field))
+
+#define	TAILQ_FOREACH_REVERSE(var, head, headname, field)		\
+	for ((var) = TAILQ_LAST((head), headname);			\
+	    (var);							\
+	    (var) = TAILQ_PREV((var), headname, field))
+
+#define	TAILQ_LAST(head, headname)					\
+	(*(((struct headname *)((head)->tqh_last))->tqh_last))
+
+#define TAILQ_NEXT(elm, field)	((elm)->field.tqe_next)
+
+#define	TAILQ_PREV(elm, headname, field)				\
+	(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
+	
 void generate_type (const Symbol *);
 void generate_constant (const Symbol *);
 void generate_type_encode (const Symbol *s);