aboutsummaryrefslogtreecommitdiff
path: root/meta-linaro/recipes-kernel
diff options
context:
space:
mode:
authorRiku Voipio <riku.voipio@linaro.org>2014-11-20 15:58:11 +0200
committerRiku Voipio <riku.voipio@linaro.org>2014-11-20 16:04:43 +0200
commiteda05bb9bb77ffc3bddf7e7d8eb4f7d7a7da289b (patch)
treeacf2eae10f73ebed3cf48f5777fd3716ec1e5b4e /meta-linaro/recipes-kernel
parent8150ee57512e403416166678aaff181ec70cbb6c (diff)
downloadmeta-linaro-eda05bb9bb77ffc3bddf7e7d8eb4f7d7a7da289b.tar.gz
Add standalone perf recipe
This rule adds perf based on the linux-tools source from debian. We simply bbappend on the perf rule to get all the crosscompiling right. Perf for aarch64 doesn't compile on the included version (3.17) on aarch64, so we apply some patches as backports. Change-Id: I4cfc01b313c506b6921cd5838209a56c2c1423fe Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Diffstat (limited to 'meta-linaro/recipes-kernel')
-rw-r--r--meta-linaro/recipes-kernel/perf/files/0001-perf-tools-Fix-arm64-build-error.patch42
-rw-r--r--meta-linaro/recipes-kernel/perf/files/0001-perf-tools-Fix-build-breakage-on-arm64-targets.patch45
-rw-r--r--meta-linaro/recipes-kernel/perf/perf.bbappend21
3 files changed, 108 insertions, 0 deletions
diff --git a/meta-linaro/recipes-kernel/perf/files/0001-perf-tools-Fix-arm64-build-error.patch b/meta-linaro/recipes-kernel/perf/files/0001-perf-tools-Fix-arm64-build-error.patch
new file mode 100644
index 00000000..4a4da97c
--- /dev/null
+++ b/meta-linaro/recipes-kernel/perf/files/0001-perf-tools-Fix-arm64-build-error.patch
@@ -0,0 +1,42 @@
+From 7d885749b6de2c9a1168d566e2380207b9177108 Mon Sep 17 00:00:00 2001
+From: Mark Salter <msalter@redhat.com>
+Date: Fri, 25 Jul 2014 18:02:46 -0400
+Subject: [PATCH] perf tools: Fix arm64 build error
+
+I'm seeing the following build error on arm64:
+
+ In file included from util/event.c:3:0:
+ util/event.h:95:17: error: 'PERF_REGS_MAX' undeclared here (not in a function)
+ u64 cache_regs[PERF_REGS_MAX];
+ ^
+
+This patch adds a PERF_REGS_MAX definition for arm64.
+
+Signed-off-by: Mark Salter <msalter@redhat.com>
+Acked-by: Jean Pihet <jean.pihet@linaro.org>
+Cc: Ingo Molnar <mingo@redhat.com>
+Cc: Jean Pihet <jean.pihet@linaro.org>
+Cc: Paul Mackerras <paulus@samba.org>
+Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Link: http://lkml.kernel.org/r/1406325766-8085-1-git-send-email-msalter@redhat.com
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/arch/arm64/include/perf_regs.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/tools/perf/arch/arm64/include/perf_regs.h b/tools/perf/arch/arm64/include/perf_regs.h
+index e9441b9..1d3f39c 100644
+--- a/tools/perf/arch/arm64/include/perf_regs.h
++++ b/tools/perf/arch/arm64/include/perf_regs.h
+@@ -6,6 +6,8 @@
+ #include <asm/perf_regs.h>
+
+ #define PERF_REGS_MASK ((1ULL << PERF_REG_ARM64_MAX) - 1)
++#define PERF_REGS_MAX PERF_REG_ARM64_MAX
++
+ #define PERF_REG_IP PERF_REG_ARM64_PC
+ #define PERF_REG_SP PERF_REG_ARM64_SP
+
+--
+2.1.3
+
diff --git a/meta-linaro/recipes-kernel/perf/files/0001-perf-tools-Fix-build-breakage-on-arm64-targets.patch b/meta-linaro/recipes-kernel/perf/files/0001-perf-tools-Fix-build-breakage-on-arm64-targets.patch
new file mode 100644
index 00000000..cb039460
--- /dev/null
+++ b/meta-linaro/recipes-kernel/perf/files/0001-perf-tools-Fix-build-breakage-on-arm64-targets.patch
@@ -0,0 +1,45 @@
+From 660d13296bbbe79635d1d9d700080b88061faffb Mon Sep 17 00:00:00 2001
+From: Will Deacon <will.deacon@arm.com>
+Date: Tue, 30 Sep 2014 12:27:12 +0100
+Subject: [PATCH] perf tools: Fix build breakage on arm64 targets
+
+Attempting to build the perf tool for an arm64 target results in the
+following failure:
+
+ arch/arm64/util/unwind-libunwind.c: In function 'libunwind__arch_reg_id':
+ arch/arm64/util/unwind-libunwind.c:77:3: error: implicit declaration of function 'pr_err'
+ pr_err("unwind: invalid reg id %d\n", regnum);
+ ^
+ arch/arm64/util/unwind-libunwind.c:77:3: error: nested extern declaration of 'pr_err'
+
+This is due to commit 84f5d36f4866 ("perf tools: Move pr_* debug macros
+into debug object") moving the pr_* macros into a new header file, but
+failing to update architectures other than x86.
+
+This patch adds the missing include, and fixes the build again.
+
+Signed-off-by: Will Deacon <will.deacon@arm.com>
+Cc: Jean Pihet <jean.pihet@linaro.org>
+Cc: Jiri Olsa <jolsa@kernel.org>
+Cc: linux-arm-kernel@lists.infradead.org
+Link: http://lkml.kernel.org/r/1412076432-22045-1-git-send-email-will.deacon@arm.com
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/arch/arm64/util/unwind-libunwind.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tools/perf/arch/arm64/util/unwind-libunwind.c b/tools/perf/arch/arm64/util/unwind-libunwind.c
+index 436ee43..a87afa9 100644
+--- a/tools/perf/arch/arm64/util/unwind-libunwind.c
++++ b/tools/perf/arch/arm64/util/unwind-libunwind.c
+@@ -3,6 +3,7 @@
+ #include <libunwind.h>
+ #include "perf_regs.h"
+ #include "../../util/unwind.h"
++#include "../../util/debug.h"
+
+ int libunwind__arch_reg_id(int regnum)
+ {
+--
+2.1.3
+
diff --git a/meta-linaro/recipes-kernel/perf/perf.bbappend b/meta-linaro/recipes-kernel/perf/perf.bbappend
new file mode 100644
index 00000000..075e6739
--- /dev/null
+++ b/meta-linaro/recipes-kernel/perf/perf.bbappend
@@ -0,0 +1,21 @@
+LICENSE = "GPL-2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+
+PV = "3.17"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI = "${DEBIAN_MIRROR}/main/l/linux-tools/linux-tools_3.17.orig.tar.xz \
+ file://0001-perf-tools-Fix-arm64-build-error.patch \
+ file://0001-perf-tools-Fix-build-breakage-on-arm64-targets.patch \
+"
+
+SRC_URI[md5sum] = "6c78f25c86761a60b89235e12bc109a8"
+SRC_URI[sha256sum] = "51162320841053fcf06070b6d5a6d984fb4c429e3ba3dc6d4eec021d374b926f"
+
+S = "${WORKDIR}/linux-tools-${PV}"
+B = "${WORKDIR}/linux-tools-${PV}"
+
+do_compile_prepend() {
+ mkdir -p ${S}/include/generated
+ echo "#define UTS_RELEASE \"${PV}\"" > ${S}/include/generated/utsrelease.h
+}