| From da612e8c1ed3c191547a25d645001b5de03aa868 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 8 May 2021 22:50:20 +0200 |
| Subject: perf tools: Fix dynamic libbpf link |
| |
| From: Jiri Olsa <jolsa@kernel.org> |
| |
| [ Upstream commit ad1237c30d975535a669746496cbed136aa5a045 ] |
| |
| 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 <jforbes@redhat.com> |
| Signed-off-by: Jiri Olsa <jolsa@kernel.org> |
| Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> |
| Cc: Ian Rogers <irogers@google.com> |
| Cc: Mark Rutland <mark.rutland@arm.com> |
| Cc: Michael Petlan <mpetlan@redhat.com> |
| Cc: Namhyung Kim <namhyung@kernel.org> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Link: http://lore.kernel.org/lkml/20210508205020.617984-1-jolsa@kernel.org |
| Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| 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 ce8516e4de34..2abbd75fbf2e 100644 |
| --- a/tools/perf/Makefile.config |
| +++ b/tools/perf/Makefile.config |
| @@ -530,6 +530,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 e2563d0154eb..0cf27354aa45 100644 |
| --- a/tools/perf/util/Build |
| +++ b/tools/perf/util/Build |
| @@ -140,7 +140,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 |
| |
| -- |
| 2.30.2 |
| |