• Jiri Olsa's avatar
    perf tools: Allow to link with libbpf dynamicaly · 7b65e203
    Jiri Olsa authored
    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: default avatarJiri Olsa <jolsa@kernel.org>
    Tested-by: default avatarArnaldo 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.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    7b65e203
Makefile.perf 36.2 KB