summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Remmet <j.remmet@phytec.de>2020-06-18 13:53:47 +0200
committerStefan Müller-Klieser <s.mueller-klieser@phytec.de>2020-07-03 14:01:58 +0200
commit3254026bb388a6ee31e0ea917f7791fc35996bb6 (patch)
tree746961eccd8c08c03c994b3bd1842d6f96f0bafc
parenta83016f7bd1e8b77f6df1a39e144234f8cd31b54 (diff)
downloadmeta-phytec-3254026bb388a6ee31e0ea917f7791fc35996bb6.tar.bz2
meta-phytec-3254026bb388a6ee31e0ea917f7791fc35996bb6.zip
HACK: linux-common: add perf build patch
Patch applies to v4.9, v4.14, v4.19, v5.4 and is needed till v5.6 This hotfix should be replaces by new kernel tags containing this patch. Th patch let perf build with the binutils used in dunfell. Signed-off-by: Jan Remmet <j.remmet@phytec.de> Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de>
-rw-r--r--recipes-kernel/linux/linux-common.inc1
-rw-r--r--recipes-kernel/linux/linux-common/0001-perf-Make-perf-able-to-build-with-latest-libbfd.patch60
2 files changed, 61 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-common.inc b/recipes-kernel/linux/linux-common.inc
index 75e6497..082a1fe 100644
--- a/recipes-kernel/linux/linux-common.inc
+++ b/recipes-kernel/linux/linux-common.inc
@@ -14,6 +14,7 @@ SRC_URI_append = " \
${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'file://docker.cfg', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'file://systemd.cfg', '', d)} \
${@bb.utils.contains('DEBUG_BUILD', '1', 'file://debugging.cfg', '', d)} \
+ file://0001-perf-Make-perf-able-to-build-with-latest-libbfd.patch \
"
INC_PR = "r0"
diff --git a/recipes-kernel/linux/linux-common/0001-perf-Make-perf-able-to-build-with-latest-libbfd.patch b/recipes-kernel/linux/linux-common/0001-perf-Make-perf-able-to-build-with-latest-libbfd.patch
new file mode 100644
index 0000000..4ca79db
--- /dev/null
+++ b/recipes-kernel/linux/linux-common/0001-perf-Make-perf-able-to-build-with-latest-libbfd.patch
@@ -0,0 +1,60 @@
+From 0ada120c883d4f1f6aafd01cf0fbb10d8bbba015 Mon Sep 17 00:00:00 2001
+From: Changbin Du <changbin.du@gmail.com>
+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 <changbin.du@gmail.com>
+Acked-by: Jiri Olsa <jolsa@redhat.com>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Link: http://lore.kernel.org/lkml/20200128152938.31413-1-changbin.du@gmail.com
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ 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 6ccf6f6d09df..5b7d6c16d33f 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.23.0
+