diff --git a/Fix-dynamic-libbpf-link.patch b/Fix-dynamic-libbpf-link.patch new file mode 100644 index 0000000..d72517e --- /dev/null +++ b/Fix-dynamic-libbpf-link.patch @@ -0,0 +1,69 @@ +From ad1237c30d975535a669746496cbed136aa5a045 Mon Sep 17 00:00:00 2001 +From: Jiri Olsa +Date: Sat, 8 May 2021 22:50:20 +0200 +Subject: perf tools: Fix dynamic libbpf link + +Justin reported broken build with LIBBPF_DYNAMIC=1. + +When linking libbpf dynamically we need to use perf's +hashmap object, because it's not exported in libbpf.so +(only in libbpf.a). + +Following build is now passing: + + $ make LIBBPF_DYNAMIC=1 + BUILD: Doing 'make -j8' parallel build + ... + $ ldd perf | grep libbpf + libbpf.so.0 => /lib64/libbpf.so.0 (0x00007fa7630db000) + +Fixes: eee19501926d ("perf tools: Grab a copy of libbpf's hashmap") +Reported-by: Justin M. Forbes +Signed-off-by: Jiri Olsa +Cc: Alexander Shishkin +Cc: Ian Rogers +Cc: Mark Rutland +Cc: Michael Petlan +Cc: Namhyung Kim +Cc: Peter Zijlstra +Link: http://lore.kernel.org/lkml/20210508205020.617984-1-jolsa@kernel.org +Signed-off-by: Arnaldo Carvalho de Melo +--- + tools/perf/Makefile.config | 1 + + tools/perf/util/Build | 7 +++++++ + 2 files changed, 8 insertions(+) + +diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config +index 0d6619064a838..406a9519145e5 100644 +--- a/tools/perf/Makefile.config ++++ b/tools/perf/Makefile.config +@@ -540,6 +540,7 @@ ifndef NO_LIBELF + ifdef LIBBPF_DYNAMIC + ifeq ($(feature-libbpf), 1) + EXTLIBS += -lbpf ++ $(call detected,CONFIG_LIBBPF_DYNAMIC) + else + dummy := $(error Error: No libbpf devel library found, please install libbpf-devel); + endif +diff --git a/tools/perf/util/Build b/tools/perf/util/Build +index 8c0d9f368ebcf..b64bdc1a7026d 100644 +--- a/tools/perf/util/Build ++++ b/tools/perf/util/Build +@@ -145,7 +145,14 @@ perf-$(CONFIG_LIBELF) += symbol-elf.o + perf-$(CONFIG_LIBELF) += probe-file.o + perf-$(CONFIG_LIBELF) += probe-event.o + ++ifdef CONFIG_LIBBPF_DYNAMIC ++ hashmap := 1 ++endif + ifndef CONFIG_LIBBPF ++ hashmap := 1 ++endif ++ ++ifdef hashmap + perf-y += hashmap.o + endif + +-- +cgit 1.2.3-1.el7 + diff --git a/kernel-tools.spec b/kernel-tools.spec index 39e687b..2b69041 100644 --- a/kernel-tools.spec +++ b/kernel-tools.spec @@ -111,6 +111,9 @@ Patch0: 0001-iio-Use-event-header-from-kernel-tree.patch # rpmlint cleanup Patch6: 0002-perf-Don-t-make-sourced-script-executable.patch +# This goes away with rc2 +Patch7: Fix-dynamic-libbpf-link.patch + Name: kernel-tools Summary: Assortment of tools for the Linux kernel License: GPLv2 @@ -204,6 +207,7 @@ cd linux-%{kversion} %patch0 -p1 %patch6 -p1 +%patch7 -p1 # END OF PATCH APPLICATIONS