patches/glibc/ports-2.12.1/150-queue-header-updates.patch
author Titus von Boxberg <titus@v9g.de>
Tue Nov 06 17:02:06 2012 +0100 (2012-11-06)
changeset 3103 a8bf927f6e37
permissions -rw-r--r--
Makefile.in: Use only standard options compatible with BSD install

Don't use options specific to FSF's coreutils install.

Signed-off-by: Titus von Boxberg <titus@v9g.de>
Message-Id: <51587db99510a9ec08f8.1352226968@tschetwerikow.boxberg.lan>
Patchwork-Id: 197532
yann@2437
     1
grab some updates from FreeBSD
yann@2437
     2
yann@2437
     3
http://bugs.gentoo.org/201979
yann@2437
     4
yann@2437
     5
diff -durN glibc-2.12.1.orig/misc/sys/queue.h glibc-2.12.1/misc/sys/queue.h
yann@2437
     6
yann@2437
     7
diff -durN glibc-2.12.1.orig/misc/sys/queue.h glibc-2.12.1/misc/sys/queue.h
yann@2437
     8
--- glibc-2.12.1.orig/misc/sys/queue.h	2008-03-05 06:50:30.000000000 +0100
yann@2437
     9
+++ glibc-2.12.1/misc/sys/queue.h	2009-11-13 00:49:51.000000000 +0100
yann@2437
    10
@@ -136,6 +136,11 @@
yann@2437
    11
 		(var);							\
yann@2437
    12
 		(var) = ((var)->field.le_next))
yann@2437
    13
 
yann@2437
    14
+#define	LIST_FOREACH_SAFE(var, head, field, tvar)			\
yann@2437
    15
+	for ((var) = LIST_FIRST((head));				\
yann@2437
    16
+	    (var) && ((tvar) = LIST_NEXT((var), field), 1);		\
yann@2437
    17
+	    (var) = (tvar))
yann@2437
    18
+
yann@2437
    19
 /*
yann@2437
    20
  * List access methods.
yann@2437
    21
  */
yann@2437
    22
@@ -197,6 +202,16 @@
yann@2437
    23
 #define	SLIST_FOREACH(var, head, field)					\
yann@2437
    24
 	for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
yann@2437
    25
 
yann@2437
    26
+#define	SLIST_FOREACH_SAFE(var, head, field, tvar)			\
yann@2437
    27
+	for ((var) = SLIST_FIRST((head));				\
yann@2437
    28
+	    (var) && ((tvar) = SLIST_NEXT((var), field), 1);		\
yann@2437
    29
+	    (var) = (tvar))
yann@2437
    30
+
yann@2437
    31
+#define	SLIST_FOREACH_PREVPTR(var, varp, head, field)			\
yann@2437
    32
+	for ((varp) = &SLIST_FIRST((head));				\
yann@2437
    33
+	    ((var) = *(varp)) != NULL;					\
yann@2437
    34
+	    (varp) = &SLIST_NEXT((var), field))
yann@2437
    35
+
yann@2437
    36
 /*
yann@2437
    37
  * Singly-linked List access methods.
yann@2437
    38
  */
yann@2437
    39
@@ -242,6 +257,12 @@
yann@2437
    40
 	(head)->stqh_last = &(elm)->field.stqe_next;			\
yann@2437
    41
 } while (/*CONSTCOND*/0)
yann@2437
    42
 
yann@2437
    43
+#define	STAILQ_LAST(head, type, field)					\
yann@2437
    44
+	(STAILQ_EMPTY((head)) ?						\
yann@2437
    45
+		NULL :							\
yann@2437
    46
+	        ((struct type *)(void *)				\
yann@2437
    47
+		((char *)((head)->stqh_last) - __offsetof(struct type, field))))
yann@2437
    48
+
yann@2437
    49
 #define	STAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\
yann@2437
    50
 	if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\
yann@2437
    51
 		(head)->stqh_last = &(elm)->field.stqe_next;		\
yann@2437
    52
@@ -271,6 +292,11 @@
yann@2437
    53
 		(var);							\
yann@2437
    54
 		(var) = ((var)->field.stqe_next))
yann@2437
    55
 
yann@2437
    56
+#define STAILQ_FOREACH_SAFE(var, head, field, tvar)			\
yann@2437
    57
+	for ((var) = STAILQ_FIRST((head));				\
yann@2437
    58
+		(var) && ((tvar) = STAILQ_NEXT((var), field), 1);	\
yann@2437
    59
+		(var) = (tvar))
yann@2437
    60
+
yann@2437
    61
 #define	STAILQ_CONCAT(head1, head2) do {				\
yann@2437
    62
 	if (!STAILQ_EMPTY((head2))) {					\
yann@2437
    63
 		*(head1)->stqh_last = (head2)->stqh_first;		\
yann@2437
    64
@@ -437,11 +463,21 @@
yann@2437
    65
 		(var);							\
yann@2437
    66
 		(var) = ((var)->field.tqe_next))
yann@2437
    67
 
yann@2437
    68
+#define TAILQ_FOREACH_SAFE(var, head, field, tvar)			\
yann@2437
    69
+	for ((var) = TAILQ_FIRST((head));				\
yann@2437
    70
+		(var) && ((tvar) = TAILQ_NEXT((var), field), 1);	\
yann@2437
    71
+		(var) = (tvar))
yann@2437
    72
+
yann@2437
    73
 #define	TAILQ_FOREACH_REVERSE(var, head, headname, field)		\
yann@2437
    74
 	for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last));	\
yann@2437
    75
 		(var);							\
yann@2437
    76
 		(var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last)))
yann@2437
    77
 
yann@2437
    78
+#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar)	\
yann@2437
    79
+	for ((var) = TAILQ_LAST((head), headname);			\
yann@2437
    80
+		(var) && ((tvar) = TAILQ_PREV((var), headname, field), 1);	\
yann@2437
    81
+		(var) = (tvar))
yann@2437
    82
+
yann@2437
    83
 #define	TAILQ_CONCAT(head1, head2, field) do {				\
yann@2437
    84
 	if (!TAILQ_EMPTY(head2)) {					\
yann@2437
    85
 		*(head1)->tqh_last = (head2)->tqh_first;		\