summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch')
-rw-r--r--meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch55
1 files changed, 27 insertions, 28 deletions
diff --git a/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch b/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
index 30fe9a14df..3be5095f07 100644
--- a/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
+++ b/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
@@ -1,4 +1,4 @@
1From 3eb12a6ba0bce149717eaabeb1505d379b3d705a Mon Sep 17 00:00:00 2001 1From 263e4100a849f28f62fcfcc1456e9e6de8ee836b Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 25 Feb 2019 13:41:41 +0800 3Date: Mon, 25 Feb 2019 13:41:41 +0800
4Subject: [PATCH] don't use glibc-specific qsort_r 4Subject: [PATCH] don't use glibc-specific qsort_r
@@ -12,16 +12,16 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
12Signed-off-by: Andrej Valek <andrej.valek@siemens.com> 12Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
13 13
14--- 14---
15 src/basic/sort-util.h | 14 ------------ 15 src/basic/sort-util.h | 14 --------------
16 src/libsystemd/sd-hwdb/hwdb-util.c | 19 +++++++++++----- 16 src/libsystemd/sd-hwdb/hwdb-util.c | 19 ++++++++++++++-----
17 src/shared/format-table.c | 36 ++++++++++++++++++++---------- 17 src/shared/format-table.c | 36 ++++++++++++++++++++++++------------
18 3 files changed, 38 insertions(+), 31 deletions(-) 18 3 files changed, 38 insertions(+), 31 deletions(-)
19 19
20Index: systemd-stable/src/basic/sort-util.h 20diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
21=================================================================== 21index a8dc3bb..9541061 100644
22--- systemd-stable.orig/src/basic/sort-util.h 22--- a/src/basic/sort-util.h
23+++ systemd-stable/src/basic/sort-util.h 23+++ b/src/basic/sort-util.h
24@@ -54,17 +54,3 @@ static inline void _qsort_safe(void *bas 24@@ -54,17 +54,3 @@ static inline void _qsort_safe(void *base, size_t nmemb, size_t size, __compar_f
25 int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \ 25 int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \
26 _qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \ 26 _qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \
27 }) 27 })
@@ -39,11 +39,11 @@ Index: systemd-stable/src/basic/sort-util.h
39- int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \ 39- int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \
40- qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \ 40- qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \
41- }) 41- })
42Index: systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c 42diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c
43=================================================================== 43index 5c75216..3986fc8 100644
44--- systemd-stable.orig/src/libsystemd/sd-hwdb/hwdb-util.c 44--- a/src/libsystemd/sd-hwdb/hwdb-util.c
45+++ systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c 45+++ b/src/libsystemd/sd-hwdb/hwdb-util.c
46@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie) 46@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie) {
47 47
48 DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free); 48 DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
49 49
@@ -60,7 +60,7 @@ Index: systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c
60 } 60 }
61 61
62 static int trie_node_add_value(struct trie *trie, struct trie_node *node, 62 static int trie_node_add_value(struct trie *trie, struct trie_node *node,
63@@ -158,7 +162,10 @@ static int trie_node_add_value(struct tr 63@@ -158,7 +162,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
64 .value_off = v, 64 .value_off = v,
65 }; 65 };
66 66
@@ -72,7 +72,7 @@ Index: systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c
72 if (val) { 72 if (val) {
73 /* At this point we have 2 identical properties on the same match-string. 73 /* At this point we have 2 identical properties on the same match-string.
74 * Since we process files in order, we just replace the previous value. */ 74 * Since we process files in order, we just replace the previous value. */
75@@ -184,7 +191,9 @@ static int trie_node_add_value(struct tr 75@@ -184,7 +191,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
76 .line_number = line_number, 76 .line_number = line_number,
77 }; 77 };
78 node->values_count++; 78 node->values_count++;
@@ -83,11 +83,11 @@ Index: systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c
83 return 0; 83 return 0;
84 } 84 }
85 85
86Index: systemd-stable/src/shared/format-table.c 86diff --git a/src/shared/format-table.c b/src/shared/format-table.c
87=================================================================== 87index 612402c..04638b2 100644
88--- systemd-stable.orig/src/shared/format-table.c 88--- a/src/shared/format-table.c
89+++ systemd-stable/src/shared/format-table.c 89+++ b/src/shared/format-table.c
90@@ -1246,31 +1246,33 @@ static int cell_data_compare(TableData * 90@@ -1243,30 +1243,32 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t
91 return CMP(index_a, index_b); 91 return CMP(index_a, index_b);
92 } 92 }
93 93
@@ -95,7 +95,6 @@ Index: systemd-stable/src/shared/format-table.c
95+static Table *user_table; 95+static Table *user_table;
96+static int table_data_compare(const void *x, const void *y) { 96+static int table_data_compare(const void *x, const void *y) {
97+ const size_t *a = x, *b=y; 97+ const size_t *a = x, *b=y;
98 size_t i;
99 int r; 98 int r;
100 99
101- assert(t); 100- assert(t);
@@ -115,8 +114,8 @@ Index: systemd-stable/src/shared/format-table.c
115 return 1; 114 return 1;
116 115
117 /* Order other lines by the sorting map */ 116 /* Order other lines by the sorting map */
118- for (i = 0; i < t->n_sort_map; i++) { 117- for (size_t i = 0; i < t->n_sort_map; i++) {
119+ for (i = 0; i < user_table->n_sort_map; i++) { 118+ for (size_t i = 0; i < user_table->n_sort_map; i++) {
120 TableData *d, *dd; 119 TableData *d, *dd;
121 120
122- d = t->data[*a + t->sort_map[i]]; 121- d = t->data[*a + t->sort_map[i]];
@@ -131,8 +130,8 @@ Index: systemd-stable/src/shared/format-table.c
131 } 130 }
132 131
133 /* Order identical lines by the order there were originally added in */ 132 /* Order identical lines by the order there were originally added in */
134@@ -1798,7 +1800,12 @@ int table_print(Table *t, FILE *f) { 133@@ -1844,7 +1846,12 @@ int table_print(Table *t, FILE *f) {
135 for (i = 0; i < n_rows; i++) 134 for (size_t i = 0; i < n_rows; i++)
136 sorted[i] = i * t->n_columns; 135 sorted[i] = i * t->n_columns;
137 136
138- typesafe_qsort_r(sorted, n_rows, table_data_compare, t); 137- typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
@@ -145,8 +144,8 @@ Index: systemd-stable/src/shared/format-table.c
145 } 144 }
146 145
147 if (t->display_map) 146 if (t->display_map)
148@@ -2375,7 +2382,12 @@ int table_to_json(Table *t, JsonVariant 147@@ -2440,7 +2447,12 @@ int table_to_json(Table *t, JsonVariant **ret) {
149 for (i = 0; i < n_rows; i++) 148 for (size_t i = 0; i < n_rows; i++)
150 sorted[i] = i * t->n_columns; 149 sorted[i] = i * t->n_columns;
151 150
152- typesafe_qsort_r(sorted, n_rows, table_data_compare, t); 151- typesafe_qsort_r(sorted, n_rows, table_data_compare, t);