• Will Deacon's avatar
    tools: bpf: Use local copy of headers including uapi/linux/filter.h · f143c11b
    Will Deacon authored
    Pulling header files directly out of the kernel sources for inclusion in
    userspace programs is highly error prone, not least because it bypasses
    the kbuild infrastructure entirely and so may end up referencing other
    header files that have not been generated.
    
    Subsequent patches will cause compiler.h to pull in the ungenerated
    asm/rwonce.h file via filter.h, breaking the build for tools/bpf:
    
      | $ make -C tools/bpf
      | make: Entering directory '/linux/tools/bpf'
      |   CC       bpf_jit_disasm.o
      |   LINK     bpf_jit_disasm
      |   CC       bpf_dbg.o
      | In file included from /linux/include/uapi/linux/filter.h:9,
      |                  from /linux/tools/bpf/bpf_dbg.c:41:
      | /linux/include/linux/compiler.h:247:10: fatal error: asm/rwonce.h: No such file or directory
      |  #include <asm/rwonce.h>
      |           ^~~~~~~~~~~~~~
      | compilation terminated.
      | make: *** [Makefile:61: bpf_dbg.o] Error 1
      | make: Leaving directory '/linux/tools/bpf'
    
    Take a copy of the installed version of linux/filter.h  (i.e. the one
    created by the 'headers_install' target) into tools/include/uapi/linux/
    and adjust the BPF tool Makefile to reference the local include
    directories instead of those in the main source tree.
    
    Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
    Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Suggested-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Reported-by: default avatarXiao Yang <ice_yangxiao@163.com>
    Signed-off-by: default avatarWill Deacon <will@kernel.org>
    f143c11b
Makefile 3.35 KB