• Song Liu's avatar
    perf bpf: Fix building perf with BUILD_BPF_SKEL=1 by default in more distros · f7c4e85b
    Song Liu authored
    Arnaldo reported that building all his containers with BUILD_BPF_SKEL=1
    to then make this the default he found problems in some distros where
    the system linux/bpf.h file was being used and lacked this:
    
       util/bpf_skel/bperf_leader.bpf.c:13:20: error: use of undeclared identifier 'BPF_F_PRESERVE_ELEMS'
               __uint(map_flags, BPF_F_PRESERVE_ELEMS);
    
    So use instead the vmlinux.h file generated by bpftool from BTF info.
    
    This fixed these as well, getting the build back working on debian:11,
    debian:experimental and ubuntu:21.10:
    
      In file included from In file included from util/bpf_skel/bperf_leader.bpf.cutil/bpf_skel/bpf_prog_profiler.bpf.c::33:
      :
      In file included from In file included from /usr/include/linux/bpf.h/usr/include/linux/bpf.h::1111:
      :
      /usr/include/linux/types.h/usr/include/linux/types.h::55::1010:: In file included from  util/bpf_skel/bperf_follower.bpf.c:3fatal errorfatal error:
      : : In file included from /usr/include/linux/bpf.h:'asm/types.h' file not found11'asm/types.h' file not found:
    
      /usr/include/linux/types.h:5:10: fatal error: 'asm/types.h' file not found
      #include <asm/types.h>#include <asm/types.h>
    
               ^~~~~~~~~~~~~         ^~~~~~~~~~~~~
    
      #include <asm/types.h>
               ^~~~~~~~~~~~~
      1 error generated.
    Reported-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: default avatarSong Liu <song@kernel.org>
    Tested-by: default avatarAthira Rajeev <atrajeev@linux.vnet.ibm.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/CF175681-8101-43D1-ABDB-449E644BE986@fb.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    f7c4e85b
bpf_prog_profiler.bpf.c 2.24 KB