diff options
author | Alexey Neyman <stilor@att.net> | 2017-02-09 21:41:09 (GMT) |
---|---|---|
committer | Alexey Neyman <stilor@att.net> | 2017-02-10 02:05:36 (GMT) |
commit | 5273394f55d5ef3e2cbd9b4546f531c3b7a1ca5a (patch) | |
tree | e503212574214a995dd9f215258b3b3fa8fc89c5 /patches/glibc/ports-2.14.1/150-queue-header-updates.patch | |
parent | b5dc6e6c26f49be2e9b9fad92df771991a15297f (diff) |
Ports patches for glibc 2.12.1 .. 2.16
Add patches for versions that didn't have them - patches updated/retired
as necessary.
Also, disallow 2.12.2 for architectures in ports - this version did not have
ports addon.
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'patches/glibc/ports-2.14.1/150-queue-header-updates.patch')
-rw-r--r-- | patches/glibc/ports-2.14.1/150-queue-header-updates.patch | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/patches/glibc/ports-2.14.1/150-queue-header-updates.patch b/patches/glibc/ports-2.14.1/150-queue-header-updates.patch new file mode 100644 index 0000000..7cbe70e --- /dev/null +++ b/patches/glibc/ports-2.14.1/150-queue-header-updates.patch @@ -0,0 +1,85 @@ +grab some updates from FreeBSD + +http://bugs.gentoo.org/201979 + +diff -durN glibc-2.13.orig/misc/sys/queue.h glibc-2.13/misc/sys/queue.h + +diff -durN glibc-2.13.orig/misc/sys/queue.h glibc-2.13/misc/sys/queue.h +--- glibc-2.13.orig/misc/sys/queue.h 2008-03-05 06:50:30.000000000 +0100 ++++ glibc-2.13/misc/sys/queue.h 2009-11-13 00:49:51.000000000 +0100 +@@ -136,6 +136,11 @@ + (var); \ + (var) = ((var)->field.le_next)) + ++#define LIST_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = LIST_FIRST((head)); \ ++ (var) && ((tvar) = LIST_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ + /* + * List access methods. + */ +@@ -197,6 +202,16 @@ + #define SLIST_FOREACH(var, head, field) \ + for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next) + ++#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = SLIST_FIRST((head)); \ ++ (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ ++#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ ++ for ((varp) = &SLIST_FIRST((head)); \ ++ ((var) = *(varp)) != NULL; \ ++ (varp) = &SLIST_NEXT((var), field)) ++ + /* + * Singly-linked List access methods. + */ +@@ -242,6 +257,12 @@ + (head)->stqh_last = &(elm)->field.stqe_next; \ + } while (/*CONSTCOND*/0) + ++#define STAILQ_LAST(head, type, field) \ ++ (STAILQ_EMPTY((head)) ? \ ++ NULL : \ ++ ((struct type *)(void *) \ ++ ((char *)((head)->stqh_last) - __offsetof(struct type, field)))) ++ + #define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ + if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\ + (head)->stqh_last = &(elm)->field.stqe_next; \ +@@ -271,6 +292,11 @@ + (var); \ + (var) = ((var)->field.stqe_next)) + ++#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = STAILQ_FIRST((head)); \ ++ (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ + #define STAILQ_CONCAT(head1, head2) do { \ + if (!STAILQ_EMPTY((head2))) { \ + *(head1)->stqh_last = (head2)->stqh_first; \ +@@ -437,11 +463,21 @@ + (var); \ + (var) = ((var)->field.tqe_next)) + ++#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = TAILQ_FIRST((head)); \ ++ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ + #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ + for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \ + (var); \ + (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last))) + ++#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ ++ for ((var) = TAILQ_LAST((head), headname); \ ++ (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ ++ (var) = (tvar)) ++ + #define TAILQ_CONCAT(head1, head2, field) do { \ + if (!TAILQ_EMPTY(head2)) { \ + *(head1)->tqh_last = (head2)->tqh_first; \ |