mirror of
https://git.yoctoproject.org/poky
synced 2026-03-17 04:39:40 +01:00
lttng-tools: fix alignment issue
Fix alignment issue in lttng-tools (From OE-Core rev: 539b77a29eb24b3896c9c436c0b4ce61c6b72b34) Signed-off-by: Roy Li <rongqing.li@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
From 9dc4d3a8dcc7cfb6991e760e78f614afd593bf66 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Fredrik=20Markstr=C3=B6m?= <fredrik.markstrom@gmail.com>
|
||||
Date: Tue, 1 Apr 2014 17:46:23 +0200
|
||||
Subject: [PATCH v2] Fix: alignment problems on targets not supporting unaligned
|
||||
access.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream-Status: Submitted (https://www.mail-archive.com/lttng-dev@lists.lttng.org/msg06012.html)
|
||||
|
||||
Accessing floats, doubles and 64 bit int at unaligned addresses is not
|
||||
supported on all configurations of arm processors and if it is it's
|
||||
emulated and slow. This patch replaces direct assignments with memcpy.
|
||||
|
||||
Signed-off-by: Fredrik Markström <fredrik.markstrom@gmail.com>
|
||||
Signed-off-by: Roy Li <rongqing.li@windriver.com>
|
||||
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
||||
---
|
||||
src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c b/src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c
|
||||
index 762d604..8c6dc96 100644
|
||||
--- a/src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c
|
||||
+++ b/src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c
|
||||
@@ -222,7 +222,7 @@ int visit_node_load(struct filter_parser_ctx *ctx, struct ir_op *node)
|
||||
if (!insn)
|
||||
return -ENOMEM;
|
||||
insn->op = FILTER_OP_LOAD_S64;
|
||||
- *(int64_t *) insn->data = node->u.load.u.num;
|
||||
+ memcpy(insn->data, &node->u.load.u.num, sizeof(int64_t));
|
||||
ret = bytecode_push(&ctx->bytecode, insn, 1, insn_len);
|
||||
free(insn);
|
||||
return ret;
|
||||
@@ -237,7 +237,7 @@ int visit_node_load(struct filter_parser_ctx *ctx, struct ir_op *node)
|
||||
if (!insn)
|
||||
return -ENOMEM;
|
||||
insn->op = FILTER_OP_LOAD_DOUBLE;
|
||||
- *(double *) insn->data = node->u.load.u.flt;
|
||||
+ memcpy(insn->data, &node->u.load.u.flt, sizeof(double));
|
||||
ret = bytecode_push(&ctx->bytecode, insn, 1, insn_len);
|
||||
free(insn);
|
||||
return ret;
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
@@ -18,6 +18,7 @@ PV = "v2.3.1"
|
||||
SRC_URI = "git://git.lttng.org/lttng-tools.git;branch=stable-2.3 \
|
||||
file://runtest.patch \
|
||||
file://run-ptest \
|
||||
file://Fix-alignment-problems-on-targets-not-supporting-una.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
@@ -18,6 +18,7 @@ PV = "v2.4.0"
|
||||
SRC_URI = "git://git.lttng.org/lttng-tools.git;branch=stable-2.4 \
|
||||
file://runtest-2.4.0.patch \
|
||||
file://run-ptest \
|
||||
file://Fix-alignment-problems-on-targets-not-supporting-una.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
Reference in New Issue
Block a user