summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/lttng/babeltrace
diff options
context:
space:
mode:
authorTudor Florea <tudor.florea@enea.com>2015-10-09 22:59:03 +0200
committerTudor Florea <tudor.florea@enea.com>2015-10-09 22:59:03 +0200
commit972dcfcdbfe75dcfeb777150c136576cf1a71e99 (patch)
tree97a61cd7e293d7ae9d56ef7ed0f81253365bb026 /meta/recipes-kernel/lttng/babeltrace
downloadpoky-972dcfcdbfe75dcfeb777150c136576cf1a71e99.tar.gz
initial commit for Enea Linux 5.0 arm
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'meta/recipes-kernel/lttng/babeltrace')
-rw-r--r--meta/recipes-kernel/lttng/babeltrace/0001-Fix-Support-out-of-tree-builds-in-babeltrace.patch17
-rw-r--r--meta/recipes-kernel/lttng/babeltrace/0001-Fix-don-t-perform-unaligned-integer-read-writes.patch252
-rw-r--r--meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch54
3 files changed, 323 insertions, 0 deletions
diff --git a/meta/recipes-kernel/lttng/babeltrace/0001-Fix-Support-out-of-tree-builds-in-babeltrace.patch b/meta/recipes-kernel/lttng/babeltrace/0001-Fix-Support-out-of-tree-builds-in-babeltrace.patch
new file mode 100644
index 0000000000..258eedd3ba
--- /dev/null
+++ b/meta/recipes-kernel/lttng/babeltrace/0001-Fix-Support-out-of-tree-builds-in-babeltrace.patch
@@ -0,0 +1,17 @@
1Upstream-Status: backport
2
3babeltrace: Fix support out of tree builds in babeltrace
4
5Signed-off-by: Lars Persson <larper@axis.com>
6
7diff --git a/formats/lttng-live/Makefile.am b/formats/lttng-live/Makefile.am
8index c834699..2c6b0bd 100644
9--- a/formats/lttng-live/Makefile.am
10+++ b/formats/lttng-live/Makefile.am
11@@ -1,4 +1,4 @@
12-AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include -I$(top_builddir)/include
13+AM_CFLAGS = $(PACKAGE_CFLAGS) -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)
14
15 lib_LTLIBRARIES = libbabeltrace-lttng-live.la
16
17
diff --git a/meta/recipes-kernel/lttng/babeltrace/0001-Fix-don-t-perform-unaligned-integer-read-writes.patch b/meta/recipes-kernel/lttng/babeltrace/0001-Fix-don-t-perform-unaligned-integer-read-writes.patch
new file mode 100644
index 0000000000..ea0aad699d
--- /dev/null
+++ b/meta/recipes-kernel/lttng/babeltrace/0001-Fix-don-t-perform-unaligned-integer-read-writes.patch
@@ -0,0 +1,252 @@
1From 6a0b6cd5133db9e3c72914d4e5dd7fc792360934 Mon Sep 17 00:00:00 2001
2From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
3Date: Wed, 16 Jul 2014 10:58:48 -0400
4Subject: [PATCH] Fix: don't perform unaligned integer read/writes
5
6Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7
8Upstream-Status: Backport
9Signed-off-by: Saul Wold <sgw@linux.intel.com>
10
11---
12 formats/ctf/types/integer.c | 108 ++++++++++++++++++++++++++++----------------
13 1 file changed, 70 insertions(+), 38 deletions(-)
14
15diff --git a/formats/ctf/types/integer.c b/formats/ctf/types/integer.c
16index 189943e..85931be 100644
17--- a/formats/ctf/types/integer.c
18+++ b/formats/ctf/types/integer.c
19@@ -62,7 +62,7 @@ int _aligned_integer_read(struct bt_stream_pos *ppos,
20 {
21 uint8_t v;
22
23- v = *(const uint8_t *) ctf_get_pos_addr(pos);
24+ memcpy(&v, ctf_get_pos_addr(pos), sizeof(v));
25 integer_definition->value._unsigned = v;
26 break;
27 }
28@@ -70,7 +70,7 @@ int _aligned_integer_read(struct bt_stream_pos *ppos,
29 {
30 uint16_t v;
31
32- v = *(const uint16_t *) ctf_get_pos_addr(pos);
33+ memcpy(&v, ctf_get_pos_addr(pos), sizeof(v));
34 integer_definition->value._unsigned =
35 rbo ? GUINT16_SWAP_LE_BE(v) : v;
36 break;
37@@ -79,7 +79,7 @@ int _aligned_integer_read(struct bt_stream_pos *ppos,
38 {
39 uint32_t v;
40
41- v = *(const uint32_t *) ctf_get_pos_addr(pos);
42+ memcpy(&v, ctf_get_pos_addr(pos), sizeof(v));
43 integer_definition->value._unsigned =
44 rbo ? GUINT32_SWAP_LE_BE(v) : v;
45 break;
46@@ -88,7 +88,7 @@ int _aligned_integer_read(struct bt_stream_pos *ppos,
47 {
48 uint64_t v;
49
50- v = *(const uint64_t *) ctf_get_pos_addr(pos);
51+ memcpy(&v, ctf_get_pos_addr(pos), sizeof(v));
52 integer_definition->value._unsigned =
53 rbo ? GUINT64_SWAP_LE_BE(v) : v;
54 break;
55@@ -102,7 +102,7 @@ int _aligned_integer_read(struct bt_stream_pos *ppos,
56 {
57 int8_t v;
58
59- v = *(const int8_t *) ctf_get_pos_addr(pos);
60+ memcpy(&v, ctf_get_pos_addr(pos), sizeof(v));
61 integer_definition->value._signed = v;
62 break;
63 }
64@@ -110,7 +110,7 @@ int _aligned_integer_read(struct bt_stream_pos *ppos,
65 {
66 int16_t v;
67
68- v = *(const int16_t *) ctf_get_pos_addr(pos);
69+ memcpy(&v, ctf_get_pos_addr(pos), sizeof(v));
70 integer_definition->value._signed =
71 rbo ? (int16_t) GUINT16_SWAP_LE_BE(v) : v;
72 break;
73@@ -119,7 +119,7 @@ int _aligned_integer_read(struct bt_stream_pos *ppos,
74 {
75 int32_t v;
76
77- v = *(const int32_t *) ctf_get_pos_addr(pos);
78+ memcpy(&v, ctf_get_pos_addr(pos), sizeof(v));
79 integer_definition->value._signed =
80 rbo ? (int32_t) GUINT32_SWAP_LE_BE(v) : v;
81 break;
82@@ -128,7 +128,7 @@ int _aligned_integer_read(struct bt_stream_pos *ppos,
83 {
84 int64_t v;
85
86- v = *(const int64_t *) ctf_get_pos_addr(pos);
87+ memcpy(&v, ctf_get_pos_addr(pos), sizeof(v));
88 integer_definition->value._signed =
89 rbo ? (int64_t) GUINT64_SWAP_LE_BE(v) : v;
90 break;
91@@ -163,48 +163,80 @@ int _aligned_integer_write(struct bt_stream_pos *ppos,
92 if (pos->dummy)
93 goto end;
94 if (!integer_declaration->signedness) {
95- uint64_t v = integer_definition->value._unsigned;
96-
97 switch (integer_declaration->len) {
98- case 8: *(uint8_t *) ctf_get_pos_addr(pos) = (uint8_t) v;
99+ case 8:
100+ {
101+ uint8_t v = integer_definition->value._unsigned;
102+
103+ memcpy(ctf_get_pos_addr(pos), &v, sizeof(v));
104 break;
105+ }
106 case 16:
107- *(uint16_t *) ctf_get_pos_addr(pos) = rbo ?
108- GUINT16_SWAP_LE_BE((uint16_t) v) :
109- (uint16_t) v;
110+ {
111+ uint16_t v = integer_definition->value._unsigned;
112+
113+ if (rbo)
114+ v = GUINT16_SWAP_LE_BE(v);
115+ memcpy(ctf_get_pos_addr(pos), &v, sizeof(v));
116 break;
117+ }
118 case 32:
119- *(uint32_t *) ctf_get_pos_addr(pos) = rbo ?
120- GUINT32_SWAP_LE_BE((uint32_t) v) :
121- (uint32_t) v;
122+ {
123+ uint32_t v = integer_definition->value._unsigned;
124+
125+ if (rbo)
126+ v = GUINT32_SWAP_LE_BE(v);
127+ memcpy(ctf_get_pos_addr(pos), &v, sizeof(v));
128 break;
129+ }
130 case 64:
131- *(uint64_t *) ctf_get_pos_addr(pos) = rbo ?
132- GUINT64_SWAP_LE_BE(v) : v;
133+ {
134+ uint64_t v = integer_definition->value._unsigned;
135+
136+ if (rbo)
137+ v = GUINT64_SWAP_LE_BE(v);
138+ memcpy(ctf_get_pos_addr(pos), &v, sizeof(v));
139 break;
140+ }
141 default:
142 assert(0);
143 }
144 } else {
145- int64_t v = integer_definition->value._signed;
146-
147 switch (integer_declaration->len) {
148- case 8: *(int8_t *) ctf_get_pos_addr(pos) = (int8_t) v;
149+ case 8:
150+ {
151+ uint8_t v = integer_definition->value._signed;
152+
153+ memcpy(ctf_get_pos_addr(pos), &v, sizeof(v));
154 break;
155+ }
156 case 16:
157- *(int16_t *) ctf_get_pos_addr(pos) = rbo ?
158- (int16_t) GUINT16_SWAP_LE_BE((int16_t) v) :
159- (int16_t) v;
160+ {
161+ int16_t v = integer_definition->value._signed;
162+
163+ if (rbo)
164+ v = GUINT16_SWAP_LE_BE(v);
165+ memcpy(ctf_get_pos_addr(pos), &v, sizeof(v));
166 break;
167+ }
168 case 32:
169- *(int32_t *) ctf_get_pos_addr(pos) = rbo ?
170- (int32_t) GUINT32_SWAP_LE_BE((int32_t) v) :
171- (int32_t) v;
172+ {
173+ int32_t v = integer_definition->value._signed;
174+
175+ if (rbo)
176+ v = GUINT32_SWAP_LE_BE(v);
177+ memcpy(ctf_get_pos_addr(pos), &v, sizeof(v));
178 break;
179+ }
180 case 64:
181- *(int64_t *) ctf_get_pos_addr(pos) = rbo ?
182- GUINT64_SWAP_LE_BE(v) : v;
183+ {
184+ int64_t v = integer_definition->value._signed;
185+
186+ if (rbo)
187+ v = GUINT64_SWAP_LE_BE(v);
188+ memcpy(ctf_get_pos_addr(pos), &v, sizeof(v));
189 break;
190+ }
191 default:
192 assert(0);
193 }
194@@ -237,23 +269,23 @@ int ctf_integer_read(struct bt_stream_pos *ppos, struct bt_definition *definitio
195 if (!integer_declaration->signedness) {
196 if (integer_declaration->byte_order == LITTLE_ENDIAN)
197 bt_bitfield_read_le(mmap_align_addr(pos->base_mma) +
198- pos->mmap_base_offset, unsigned long,
199+ pos->mmap_base_offset, unsigned char,
200 pos->offset, integer_declaration->len,
201 &integer_definition->value._unsigned);
202 else
203 bt_bitfield_read_be(mmap_align_addr(pos->base_mma) +
204- pos->mmap_base_offset, unsigned long,
205+ pos->mmap_base_offset, unsigned char,
206 pos->offset, integer_declaration->len,
207 &integer_definition->value._unsigned);
208 } else {
209 if (integer_declaration->byte_order == LITTLE_ENDIAN)
210 bt_bitfield_read_le(mmap_align_addr(pos->base_mma) +
211- pos->mmap_base_offset, unsigned long,
212+ pos->mmap_base_offset, unsigned char,
213 pos->offset, integer_declaration->len,
214 &integer_definition->value._signed);
215 else
216 bt_bitfield_read_be(mmap_align_addr(pos->base_mma) +
217- pos->mmap_base_offset, unsigned long,
218+ pos->mmap_base_offset, unsigned char,
219 pos->offset, integer_declaration->len,
220 &integer_definition->value._signed);
221 }
222@@ -286,23 +318,23 @@ int ctf_integer_write(struct bt_stream_pos *ppos, struct bt_definition *definiti
223 if (!integer_declaration->signedness) {
224 if (integer_declaration->byte_order == LITTLE_ENDIAN)
225 bt_bitfield_write_le(mmap_align_addr(pos->base_mma) +
226- pos->mmap_base_offset, unsigned long,
227+ pos->mmap_base_offset, unsigned char,
228 pos->offset, integer_declaration->len,
229 integer_definition->value._unsigned);
230 else
231 bt_bitfield_write_be(mmap_align_addr(pos->base_mma) +
232- pos->mmap_base_offset, unsigned long,
233+ pos->mmap_base_offset, unsigned char,
234 pos->offset, integer_declaration->len,
235 integer_definition->value._unsigned);
236 } else {
237 if (integer_declaration->byte_order == LITTLE_ENDIAN)
238 bt_bitfield_write_le(mmap_align_addr(pos->base_mma) +
239- pos->mmap_base_offset, unsigned long,
240+ pos->mmap_base_offset, unsigned char,
241 pos->offset, integer_declaration->len,
242 integer_definition->value._signed);
243 else
244 bt_bitfield_write_be(mmap_align_addr(pos->base_mma) +
245- pos->mmap_base_offset, unsigned long,
246+ pos->mmap_base_offset, unsigned char,
247 pos->offset, integer_declaration->len,
248 integer_definition->value._signed);
249 }
250--
2511.8.3.1
252
diff --git a/meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch b/meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch
new file mode 100644
index 0000000000..8e81d2d781
--- /dev/null
+++ b/meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch
@@ -0,0 +1,54 @@
1From cae67efbd9ddf2cee6bbefec076dc8933ababc43 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Fredrik=20Markstr=C3=B6m?= <fredrik.markstrom@gmail.com>
3Date: Fri, 16 May 2014 10:10:38 +0800
4Subject: [PATCH] Fix: Align buffers from objstack_alloc on sizeof(void *)
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Upstream-Status: Backport
10
11The buffers from objstack_alloc will store pointers, so they must
12be aligned on a pointer's size, or else it will cause issues on the
13CPUs which do not support unaligned addresses access.
14
15Signed-off-by: Fredrik Markstrom <fredrik.markstrom@gmail.com>
16Signed-off-by: Roy Li <rongqing.li@windriver.com>
17Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
18---
19 formats/ctf/metadata/objstack.c | 5 ++++-
20 1 file changed, 4 insertions(+), 1 deletion(-)
21
22diff --git a/formats/ctf/metadata/objstack.c b/formats/ctf/metadata/objstack.c
23index 9e264a4..14d9252 100644
24--- a/formats/ctf/metadata/objstack.c
25+++ b/formats/ctf/metadata/objstack.c
26@@ -27,6 +27,7 @@
27 #include <stdlib.h>
28 #include <babeltrace/list.h>
29 #include <babeltrace/babeltrace-internal.h>
30+#include <babeltrace/align.h>
31
32 #define OBJSTACK_INIT_LEN 128
33 #define OBJSTACK_POISON 0xcc
34@@ -39,7 +40,7 @@ struct objstack_node {
35 struct bt_list_head node;
36 size_t len;
37 size_t used_len;
38- char data[];
39+ char __attribute__ ((aligned (sizeof(void *)))) data[];
40 };
41
42 BT_HIDDEN
43@@ -118,6 +119,8 @@ void *objstack_alloc(struct objstack *objstack, size_t len)
44 struct objstack_node *last_node;
45 void *p;
46
47+ len = ALIGN(len, sizeof(void *));
48+
49 /* Get last node */
50 last_node = bt_list_entry(objstack->head.prev,
51 struct objstack_node, node);
52--
531.7.10.4
54