Re: [PATCH] perf tools: Allow to link with libbpf dynamicaly

From: Arnaldo Carvalho de Melo
Date: Tue Nov 26 2019 - 08:38:21 EST


Em Tue, Nov 26, 2019 at 01:12:53PM +0100, Jiri Olsa escreveu:
> Currently we support only static linking with kernel's
> libbpf (tools/lib/bpf). This patch adds libbpf package
> detection and support to link perf with it dynamically.
>
> The libbpf package status is displayed with:
>
> $ make VF=1
> Auto-detecting system features:
> ...
> ... libbpf: [ on ]
>
> It's not checked by default, because it's quite new.
> Once it's on most distros we can switch it on.
>
> For the same reason it's not added to the test-all check.
>
> Perf does not need advanced version of libbpf, so we can
> check just for the base bpf_object__open function.
>
> Adding new compile variable to detect libbpf package and
> link bpf dynamically:
>
> $ make LIBBPF_DYNAMIC=1
> ...
> LINK perf
> $ ldd perf | grep bpf
> libbpf.so.0 => /lib64/libbpf.so.0 (0x00007f46818bc000)
>
> If libbpf is not installed, build stops with:
>
> Makefile.config:486: *** Error: No libbpf devel library found,\
> please install libbpf-devel. Stop.

Thanks, tested with how I build it:

$ make LIBBPF_DYNAMIC=1 -C tools/perf O=/tmp/build/perf
make: Entering directory '/home/acme/git/perf/tools/perf'
BUILD: Doing 'make -j8' parallel build
Makefile.config:493: *** Error: No libbpf devel library found, please install libbpf-devel. Stop.
make[1]: *** [Makefile.perf:225: sub-make] Error 2
make: *** [Makefile:70: all] Error 2
make: Leaving directory '/home/acme/git/perf/tools/perf'
$

works as well as advertised, applied.

- Arnaldo