scripts/addToolsVersion: properly handle .in vs. .in.2
While most components have their version in the .in file, some
have it in the .in.2 (eg. elf2flt).
Currently, to handle this case, we indiscriminately munge both files,
but this is wrong: in the elf2flt case, if we add a binutils version,
we do not want it to be added to elf2flt, and conversely.
So, for each tool, we need to explicitly know what file to munge.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
1 grab some updates from FreeBSD
3 http://bugs.gentoo.org/201979
5 diff -durN glibc-2.12.1.orig/misc/sys/queue.h glibc-2.12.1/misc/sys/queue.h
7 diff -durN glibc-2.12.1.orig/misc/sys/queue.h glibc-2.12.1/misc/sys/queue.h
8 --- glibc-2.12.1.orig/misc/sys/queue.h 2008-03-05 06:50:30.000000000 +0100
9 +++ glibc-2.12.1/misc/sys/queue.h 2009-11-13 00:49:51.000000000 +0100
12 (var) = ((var)->field.le_next))
14 +#define LIST_FOREACH_SAFE(var, head, field, tvar) \
15 + for ((var) = LIST_FIRST((head)); \
16 + (var) && ((tvar) = LIST_NEXT((var), field), 1); \
20 * List access methods.
23 #define SLIST_FOREACH(var, head, field) \
24 for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
26 +#define SLIST_FOREACH_SAFE(var, head, field, tvar) \
27 + for ((var) = SLIST_FIRST((head)); \
28 + (var) && ((tvar) = SLIST_NEXT((var), field), 1); \
31 +#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \
32 + for ((varp) = &SLIST_FIRST((head)); \
33 + ((var) = *(varp)) != NULL; \
34 + (varp) = &SLIST_NEXT((var), field))
37 * Singly-linked List access methods.
40 (head)->stqh_last = &(elm)->field.stqe_next; \
41 } while (/*CONSTCOND*/0)
43 +#define STAILQ_LAST(head, type, field) \
44 + (STAILQ_EMPTY((head)) ? \
46 + ((struct type *)(void *) \
47 + ((char *)((head)->stqh_last) - __offsetof(struct type, field))))
49 #define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
50 if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\
51 (head)->stqh_last = &(elm)->field.stqe_next; \
54 (var) = ((var)->field.stqe_next))
56 +#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \
57 + for ((var) = STAILQ_FIRST((head)); \
58 + (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
61 #define STAILQ_CONCAT(head1, head2) do { \
62 if (!STAILQ_EMPTY((head2))) { \
63 *(head1)->stqh_last = (head2)->stqh_first; \
66 (var) = ((var)->field.tqe_next))
68 +#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \
69 + for ((var) = TAILQ_FIRST((head)); \
70 + (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
73 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \
74 for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \
76 (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last)))
78 +#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \
79 + for ((var) = TAILQ_LAST((head), headname); \
80 + (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \
83 #define TAILQ_CONCAT(head1, head2, field) do { \
84 if (!TAILQ_EMPTY(head2)) { \
85 *(head1)->tqh_last = (head2)->tqh_first; \