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 <[email protected]>
---
 recipes-kernel/linux/linux-intel.inc               |  1 +
 .../linux-intel/perf-fix-build-with-binutils.patch | 60 ++++++++++++++++++++++
 2 files changed, 61 insertions(+)
 create mode 100644 
recipes-kernel/linux/linux-intel/perf-fix-build-with-binutils.patch

diff --git a/recipes-kernel/linux/linux-intel.inc 
b/recipes-kernel/linux/linux-intel.inc
index 6bd9837..cd1ecb2 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
 SRC_URI = " \
            
git://github.com/intel/linux-intel-lts.git;protocol=https;name=machine;branch=${KBRANCH};
 \
            ${KERNEL_CONFIG_URI} \
+           file://perf-fix-build-with-binutils.patch \
          "
 
 SRC_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 0000000..1470a5d
--- /dev/null
+++ b/recipes-kernel/linux/linux-intel/perf-fix-build-with-binutils.patch
@@ -0,0 +1,60 @@
+From 0ada120c883d4f1f6aafd01cf0fbb10d8bbba015 Mon Sep 17 00:00:00 2001
+From: Changbin Du <[email protected]>
+Date: Tue, 28 Jan 2020 23:29:38 +0800
+Subject: [PATCH] perf: Make perf able to build with latest libbfd
+
+libbfd has changed the bfd_section_* macros to inline functions
+bfd_section_<field> since 2019-09-18. See below two commits:
+  o http://www.sourceware.org/ml/gdb-cvs/2019-09/msg00064.html
+  o https://www.sourceware.org/ml/gdb-cvs/2019-09/msg00072.html
+
+This fix make perf able to build with both old and new libbfd.
+
+Signed-off-by: Changbin Du <[email protected]>
+Acked-by: Jiri Olsa <[email protected]>
+Cc: Peter Zijlstra <[email protected]>
+Link: http://lore.kernel.org/lkml/[email protected]
+Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
+
+Upstream-Status: Backport 
[https://github.com/torvalds/linux/commit/0ada120c883d4f1f6aafd01cf0fbb10d8bbba015]
+Signed-off-by: Anuj Mittal <[email protected]>
+---
+ tools/perf/util/srcline.c | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c
+index 6ccf6f6d09df9..5b7d6c16d33fe 100644
+--- a/tools/perf/util/srcline.c
++++ b/tools/perf/util/srcline.c
+@@ -193,16 +193,30 @@ static void find_address_in_section(bfd *abfd, asection 
*section, void *data)
+       bfd_vma pc, vma;
+       bfd_size_type size;
+       struct a2l_data *a2l = data;
++      flagword flags;
+ 
+       if (a2l->found)
+               return;
+ 
+-      if ((bfd_get_section_flags(abfd, section) & SEC_ALLOC) == 0)
++#ifdef bfd_get_section_flags
++      flags = bfd_get_section_flags(abfd, section);
++#else
++      flags = bfd_section_flags(section);
++#endif
++      if ((flags & SEC_ALLOC) == 0)
+               return;
+ 
+       pc = a2l->addr;
++#ifdef bfd_get_section_vma
+       vma = bfd_get_section_vma(abfd, section);
++#else
++      vma = bfd_section_vma(section);
++#endif
++#ifdef bfd_get_section_size
+       size = bfd_get_section_size(section);
++#else
++      size = bfd_section_size(section);
++#endif
+ 
+       if (pc < vma || pc >= vma + size)
+               return;
-- 
2.7.4

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#6394): 
https://lists.yoctoproject.org/g/meta-intel/message/6394
Mute This Topic: https://lists.yoctoproject.org/mt/71501209/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-intel/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to