From f0a462b71ff11089c6449b62cc4b415ae1568897 Mon Sep 17 00:00:00 2001 From: California Sullivan Date: Mon, 18 Dec 2017 14:16:21 -0800 Subject: linux-intel/4.14: Fix 32-bit perf issue Perf fails to compile for 32-bit without this patch. I have requested for Bruce to submit it upstream. Signed-off-by: California Sullivan --- ...01-perf-x86-32-explicitly-include-errno.h.patch | 41 ++++++++++++++++++++++ recipes-kernel/linux/linux-intel_4.14.bb | 3 ++ 2 files changed, 44 insertions(+) create mode 100644 recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch (limited to 'recipes-kernel') diff --git a/recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch b/recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch new file mode 100644 index 00000000..5c8b27c7 --- /dev/null +++ b/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 +Date: Mon, 21 Aug 2017 13:52:53 -0400 +Subject: [PATCH 1/1] perf: x86-32: explicitly include + +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 +--- + + 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 + #include "unwind.h" + #include "debug.h" + #include "libunwind-x86.h" +-- +2.14.3 + diff --git a/recipes-kernel/linux/linux-intel_4.14.bb b/recipes-kernel/linux/linux-intel_4.14.bb index 03bf15c3..dd44aa1f 100644 --- a/recipes-kernel/linux/linux-intel_4.14.bb +++ b/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" -- cgit v1.2.3-54-g00ecf