original_kernel/tools/build/feature
Jiri Olsa 7b65e2034f perf tools: Allow to link with libbpf dynamicaly
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.

Committer testing:

  $ 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'
  $

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Toke Høiland-Jørgensen <toke@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Cc: Andrii Nakryiko <andriin@fb.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Jesper Dangaard Brouer <brouer@redhat.com>
Cc: Martin KaFai Lau <kafai@fb.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Song Liu <songliubraving@fb.com>
Cc: Yonghong Song <yhs@fb.com>
Cc: bpf@vger.kernel.org
Cc: netdev@vger.kernel.org
Link: http://lore.kernel.org/lkml/20191126121253.28253-1-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2019-11-26 11:17:45 -03:00
..
.gitignore
Makefile
test-all.c
test-backtrace.c
test-bionic.c
test-bpf.c
test-clang.cpp
test-compile.c
test-cplus-demangle.c
test-cxx.cpp
test-disassembler-four-args.c
test-dwarf.c
test-dwarf_getlocations.c
test-eventfd.c
test-fortify-source.c
test-get_cpuid.c
test-get_current_dir_name.c
test-gettid.c
test-glibc.c
test-gtk2-infobar.c
test-gtk2.c
test-hello.c
test-jvmti-cmlr.c
test-jvmti.c
test-libaio.c
test-libaudit.c
test-libbabeltrace.c
test-libbfd.c
test-libbpf.c
test-libcap.c
test-libcrypto.c
test-libdw-dwarf-unwind.c
test-libelf-gelf_getnote.c
test-libelf-getphdrnum.c
test-libelf-getshdrstrndx.c
test-libelf-mmap.c
test-libelf.c
test-libnuma.c
test-libopencsd.c
test-libperl.c
test-libpython-version.c
test-libpython.c
test-libslang-include-subdir.c
test-libslang.c
test-libunwind-aarch64.c
test-libunwind-arm.c
test-libunwind-debug-frame-aarch64.c
test-libunwind-debug-frame-arm.c
test-libunwind-debug-frame.c
test-libunwind-x86.c
test-libunwind-x86_64.c
test-libunwind.c
test-libzstd.c
test-llvm-version.cpp
test-llvm.cpp
test-lzma.c
test-numa_num_possible_cpus.c
test-pthread-attr-setaffinity-np.c
test-pthread-barrier.c
test-reallocarray.c
test-sched_getcpu.c
test-sdt.c
test-setns.c
test-stackprotector-all.c
test-sync-compare-and-swap.c
test-timerfd.c
test-zlib.c