summaryrefslogtreecommitdiff
path: root/meta/recipes-kernel/lttng
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-kernel/lttng')
-rw-r--r--meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch54
-rw-r--r--meta/recipes-kernel/lttng/babeltrace_1.2.1.bb4
2 files changed, 57 insertions, 1 deletions
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 @@
+From cae67efbd9ddf2cee6bbefec076dc8933ababc43 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Fredrik=20Markstr=C3=B6m?= <fredrik.markstrom@gmail.com>
+Date: Fri, 16 May 2014 10:10:38 +0800
+Subject: [PATCH] Fix: Align buffers from objstack_alloc on sizeof(void *)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Backport
+
+The buffers from objstack_alloc will store pointers, so they must
+be aligned on a pointer's size, or else it will cause issues on the
+CPUs which do not support unaligned addresses access.
+
+Signed-off-by: Fredrik Markstrom <fredrik.markstrom@gmail.com>
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
+---
+ formats/ctf/metadata/objstack.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/formats/ctf/metadata/objstack.c b/formats/ctf/metadata/objstack.c
+index 9e264a4..14d9252 100644
+--- a/formats/ctf/metadata/objstack.c
++++ b/formats/ctf/metadata/objstack.c
+@@ -27,6 +27,7 @@
+ #include <stdlib.h>
+ #include <babeltrace/list.h>
+ #include <babeltrace/babeltrace-internal.h>
++#include <babeltrace/align.h>
+
+ #define OBJSTACK_INIT_LEN 128
+ #define OBJSTACK_POISON 0xcc
+@@ -39,7 +40,7 @@ struct objstack_node {
+ struct bt_list_head node;
+ size_t len;
+ size_t used_len;
+- char data[];
++ char __attribute__ ((aligned (sizeof(void *)))) data[];
+ };
+
+ BT_HIDDEN
+@@ -118,6 +119,8 @@ void *objstack_alloc(struct objstack *objstack, size_t len)
+ struct objstack_node *last_node;
+ void *p;
+
++ len = ALIGN(len, sizeof(void *));
++
+ /* Get last node */
+ last_node = bt_list_entry(objstack->head.prev,
+ struct objstack_node, node);
+--
+1.7.10.4
+
diff --git a/meta/recipes-kernel/lttng/babeltrace_1.2.1.bb b/meta/recipes-kernel/lttng/babeltrace_1.2.1.bb
index 5c105d803b..542491b645 100644
--- a/meta/recipes-kernel/lttng/babeltrace_1.2.1.bb
+++ b/meta/recipes-kernel/lttng/babeltrace_1.2.1.bb
@@ -14,7 +14,9 @@ SRCREV = "66c2a20b4391fb5c7f870aeb0dde854f0ae1fc79"
PV = "1.2.1+git${SRCPV}"
SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-1.2 \
- file://0001-Fix-Support-out-of-tree-builds-in-babeltrace.patch"
+ file://0001-Fix-Support-out-of-tree-builds-in-babeltrace.patch \
+ file://Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch \
+"
S = "${WORKDIR}/git"