summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnuj Mittal <anuj.mittal@intel.com>2020-02-24 07:51:09 +0800
committerAnuj Mittal <anuj.mittal@intel.com>2020-02-24 09:53:22 +0800
commit2b0a523adeb5ab8b20135375dccb3cacce582fbe (patch)
tree1ce05b40cebf786f075ceef817511259a3a92d6b
parent275f5901ea200790b1430e3cf6959f8c75645594 (diff)
downloadmeta-intel-2b0a523adeb5ab8b20135375dccb3cacce582fbe.tar.gz
linux-intel: backport commit from mainline to fix perf builds
Fixes errors: | <builddir>/build/tmp/work/intel_core2_32-poky-linux/perf/1.0-r9/recipe-sysroot-native/usr/bin/i686-poky-linux/../../libexec/i686-poky-linux/gcc/i686-poky-linux/9.2.0/ld: <builddir>/build/tmp/work/intel_core2_32-poky-linux/perf/1.0-r9/perf-1.0/perf-in.o: in function `find_address_in_section': /usr/src/debug/perf/1.0-r9/perf-1.0/tools/perf/util/srcline.c:200: undefined reference to `bfd_get_section_flags' | <builddir>/build/tmp/work/intel_core2_32-poky-linux/perf/1.0-r9/recipe-sysroot-native/usr/bin/i686-poky-linux/../../libexec/i686-poky-linux/gcc/i686-poky-linux/9.2.0/ld: /usr/src/debug/perf/1.0-r9/perf-1.0/tools/perf/util/srcline.c:204: undefined reference to `bfd_get_section_vma' | <builddir>/build/tmp/work/intel_core2_32-poky-linux/perf/1.0-r9/recipe-sysroot-native/usr/bin/i686-poky-linux/../../libexec/i686-poky-linux/gcc/i686-poky-linux/9.2.0/ld: /usr/src/debug/perf/1.0-r9/perf-1.0/tools/perf/util/srcline.c:205: undefined reference to `bfd_get_section_size' | collect2: error: ld returned 1 exit status Also see: http://git.openembedded.org/openembedded-core/commit/?id=16e943690bdbdf2e60a2fe33950697278018c7d1 Include the patch in recipe untils it's not available in linux-intel LTS tree. Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-rw-r--r--recipes-kernel/linux/linux-intel.inc1
-rw-r--r--recipes-kernel/linux/linux-intel/perf-fix-build-with-binutils.patch60
2 files changed, 61 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-intel.inc b/recipes-kernel/linux/linux-intel.inc
index 6bd9837d..cd1ecb23 100644
--- a/recipes-kernel/linux/linux-intel.inc
+++ b/recipes-kernel/linux/linux-intel.inc
@@ -8,6 +8,7 @@ KERNEL_CONFIG_URI ?= "git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;n
8SRC_URI = " \ 8SRC_URI = " \
9 git://github.com/intel/linux-intel-lts.git;protocol=https;name=machine;branch=${KBRANCH}; \ 9 git://github.com/intel/linux-intel-lts.git;protocol=https;name=machine;branch=${KBRANCH}; \
10 ${KERNEL_CONFIG_URI} \ 10 ${KERNEL_CONFIG_URI} \
11 file://perf-fix-build-with-binutils.patch \
11 " 12 "
12 13
13SRC_URI_append_core2-32-intel-common = " file://disable_skylake_sound.cfg" 14SRC_URI_append_core2-32-intel-common = " file://disable_skylake_sound.cfg"
diff --git a/recipes-kernel/linux/linux-intel/perf-fix-build-with-binutils.patch b/recipes-kernel/linux/linux-intel/perf-fix-build-with-binutils.patch
new file mode 100644
index 00000000..1470a5d7
--- /dev/null
+++ b/recipes-kernel/linux/linux-intel/perf-fix-build-with-binutils.patch
@@ -0,0 +1,60 @@
1From 0ada120c883d4f1f6aafd01cf0fbb10d8bbba015 Mon Sep 17 00:00:00 2001
2From: Changbin Du <changbin.du@gmail.com>
3Date: Tue, 28 Jan 2020 23:29:38 +0800
4Subject: [PATCH] perf: Make perf able to build with latest libbfd
5
6libbfd has changed the bfd_section_* macros to inline functions
7bfd_section_<field> since 2019-09-18. See below two commits:
8 o http://www.sourceware.org/ml/gdb-cvs/2019-09/msg00064.html
9 o https://www.sourceware.org/ml/gdb-cvs/2019-09/msg00072.html
10
11This fix make perf able to build with both old and new libbfd.
12
13Signed-off-by: Changbin Du <changbin.du@gmail.com>
14Acked-by: Jiri Olsa <jolsa@redhat.com>
15Cc: Peter Zijlstra <peterz@infradead.org>
16Link: http://lore.kernel.org/lkml/20200128152938.31413-1-changbin.du@gmail.com
17Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
18
19Upstream-Status: Backport [https://github.com/torvalds/linux/commit/0ada120c883d4f1f6aafd01cf0fbb10d8bbba015]
20Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
21---
22 tools/perf/util/srcline.c | 16 +++++++++++++++-
23 1 file changed, 15 insertions(+), 1 deletion(-)
24
25diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c
26index 6ccf6f6d09df9..5b7d6c16d33fe 100644
27--- a/tools/perf/util/srcline.c
28+++ b/tools/perf/util/srcline.c
29@@ -193,16 +193,30 @@ static void find_address_in_section(bfd *abfd, asection *section, void *data)
30 bfd_vma pc, vma;
31 bfd_size_type size;
32 struct a2l_data *a2l = data;
33+ flagword flags;
34
35 if (a2l->found)
36 return;
37
38- if ((bfd_get_section_flags(abfd, section) & SEC_ALLOC) == 0)
39+#ifdef bfd_get_section_flags
40+ flags = bfd_get_section_flags(abfd, section);
41+#else
42+ flags = bfd_section_flags(section);
43+#endif
44+ if ((flags & SEC_ALLOC) == 0)
45 return;
46
47 pc = a2l->addr;
48+#ifdef bfd_get_section_vma
49 vma = bfd_get_section_vma(abfd, section);
50+#else
51+ vma = bfd_section_vma(section);
52+#endif
53+#ifdef bfd_get_section_size
54 size = bfd_get_section_size(section);
55+#else
56+ size = bfd_section_size(section);
57+#endif
58
59 if (pc < vma || pc >= vma + size)
60 return;