• Wang Nan's avatar
    bpf tools: Introduce 'bpf' library and add bpf feature check · 1b76c13e
    Wang Nan authored
    This is the first patch of libbpf. The goal of libbpf is to create a
    standard way for accessing eBPF object files. This patch creates
    'Makefile' and 'Build' for it, allows 'make' to build libbpf.a and
    libbpf.so, 'make install' to put them into proper directories.
    Most part of Makefile is borrowed from traceevent.
    
    Before building, it checks the existence of libelf in Makefile, and deny
    to build if not found. Instead of throwing an error if libelf not found,
    the error raises in a phony target "elfdep". This design is to ensure
    'make clean' still workable even if libelf is not found.
    
    Because libbpf requires 'kern_version' field set for 'union bpf_attr'
    (bpfdep" is used for that dependency), Kernel BPF API is also checked
    by intruducing a new feature check 'bpf' into tools/build/feature,
    which checks the existence and version of linux/bpf.h. When building
    libbpf, it searches that file from include/uapi/linux in kernel source
    tree (controlled by FEATURE_CHECK_CFLAGS-bpf). Since it searches kernel
    source tree it reside, installing of newest kernel headers is not
    required, except we are trying to port these files to an old kernel.
    
    To avoid checking that file when perf building, the newly introduced
    'bpf' feature check doesn't added into FEATURE_TESTS and
    FEATURE_DISPLAY by default in tools/build/Makefile.feature, but added
    into libbpf's specific.
    Signed-off-by: default avatarWang Nan <wangnan0@huawei.com>
    Acked-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
    Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: He Kuang <hekuang@huawei.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kaixu Xia <xiakaixu@huawei.com>
    Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Zefan Li <lizefan@huawei.com>
    Bcc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1435716878-189507-4-git-send-email-wangnan0@huawei.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    1b76c13e
Build 21 Bytes