• Wang Nan's avatar
    perf clang: Compile BPF script using builtin clang support · edd695b0
    Wang Nan authored
    After this patch, perf utilizes builtin clang support to build BPF
    script, no longer depend on external clang, but fallbacking to it
    if for some reason the builtin compiling framework fails.
    
    Test:
    
      $ type clang
      -bash: type: clang: not found
      $ cat ~/.perfconfig
      $ echo '#define LINUX_VERSION_CODE 0x040700' > ./test.c
      $ cat ./tools/perf/tests/bpf-script-example.c >> ./test.c
      $ ./perf record -v --dry-run -e ./test.c 2>&1 | grep builtin
      bpf: successfull builtin compilation
      $
    
    Can't pass cflags so unable to include kernel headers now. Will be fixed
    by following commits.
    
    Committer notes:
    
    Make sure '-v' comes before the '-e ./test.c' in the command line otherwise the
    'verbose' variable will not be set when the bpf event is parsed and thus the
    pr_debug indicating a 'successfull builtin compilation' will not be output, as
    the debug level (1) will be less than what 'verbose' has at that point (0).
    Signed-off-by: default avatarWang Nan <wangnan0@huawei.com>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexei Starovoitov <ast@fb.com>
    Cc: He Kuang <hekuang@huawei.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Joe Stringer <joe@ovn.org>
    Cc: Zefan Li <lizefan@huawei.com>
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/20161126070354.141764-16-wangnan0@huawei.com
    [ Spell check/reflow successfull pr_debug string ]
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    edd695b0
bpf-loader.c 39.8 KB