[meta-intel] [rocko] [PATCH 3/4] linux-intel/4.14: Fix 32-bit perf issue

California Sullivan california.l.sullivan at intel.com
Wed Dec 20 15:53:24 PST 2017


Perf fails to compile for 32-bit without this patch. I have requested
for Bruce to submit it upstream.

Signed-off-by: California Sullivan <california.l.sullivan at intel.com>
(commit	f0a462b71ff11089c6449b62cc4b415ae1568897 upstream)
[Fixed location]
Signed-off-by: California Sullivan <california.l.sullivan at intel.com>
---
 ...01-perf-x86-32-explicitly-include-errno.h.patch | 41 ++++++++++++++++++++++
 common/recipes-kernel/linux/linux-intel_4.14.bb    |  3 ++
 2 files changed, 44 insertions(+)
 create mode 100644 common/recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch

diff --git a/common/recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch b/common/recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch
new file mode 100644
index 00000000..5c8b27c7
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch
@@ -0,0 +1,41 @@
+From 57af599929263e7bb6f2f369c9e4bc1e440528a9 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield at windriver.com>
+Date: Mon, 21 Aug 2017 13:52:53 -0400
+Subject: [PATCH 1/1] perf: x86-32: explicitly include <errno.h>
+
+Upstream-Status: submitted
+
+The 32bit x86 perf build does not find the system definitions of error
+return values, hence we end up with:
+
+| In file included from util/libunwind/x86_32.c:32:0:
+| util/libunwind/../../arch/x86/util/unwind-libunwind.c: In function 'libunwind__x86_reg_id':
+| util/libunwind/../../arch/x86/util/unwind-libunwind.c:109:11: error: 'EINVAL' undeclared (first use in this function); did you mean 'UNW_EINVAL'?
+|    return -EINVAL;
+|            ^~~~~~
+|            UNW_EINVAL
+
+By explicitly including errno.h, we can fix this build without impacting
+other architectures.
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>
+---
+
+ tools/perf/util/libunwind/x86_32.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tools/perf/util/libunwind/x86_32.c b/tools/perf/util/libunwind/x86_32.c
+index 957ffff72428..d781f7bdeb88 100644
+--- a/tools/perf/util/libunwind/x86_32.c
++++ b/tools/perf/util/libunwind/x86_32.c
+@@ -20,6 +20,7 @@
+ #define LIBUNWIND__ARCH_REG_IP PERF_REG_X86_IP
+ #define LIBUNWIND__ARCH_REG_SP PERF_REG_X86_SP
+ 
++#include <errno.h>
+ #include "unwind.h"
+ #include "debug.h"
+ #include "libunwind-x86.h"
+-- 
+2.14.3
+
diff --git a/common/recipes-kernel/linux/linux-intel_4.14.bb b/common/recipes-kernel/linux/linux-intel_4.14.bb
index 03bf15c3..dd44aa1f 100644
--- a/common/recipes-kernel/linux/linux-intel_4.14.bb
+++ b/common/recipes-kernel/linux/linux-intel_4.14.bb
@@ -3,6 +3,9 @@ require linux-intel.inc
 KBRANCH = "4.14/yocto/base"
 KMETA_BRANCH = "yocto-4.9"
 
+# Fix for 32-bit perf issue. Remove when patch is backported to 4.14.
+SRC_URI_append = " file://0001-perf-x86-32-explicitly-include-errno.h.patch"
+
 LINUX_VERSION ?= "4.14.0"
 SRCREV_machine ?= "bebc6082da0a9f5d47a1ea2edc099bf671058bd4"
 SRCREV_meta ?= "f4e37e151102d89c4d0e110c88eb3b3c36bdeaa4"
-- 
2.14.3



More information about the meta-intel mailing list