[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);