[PATCH 01/18] tools: bpf: Use local copy of headers including uapi/linux/filter.h

Alexei Starovoitov alexei.starovoitov at gmail.com
Wed Jul 1 12:38:46 EDT 2020


On Tue, Jun 30, 2020 at 10:37 AM Will Deacon <will at kernel.org> wrote:
>
> 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: Alexei Starovoitov <ast at kernel.org>
> Cc: Masahiro Yamada <yamada.masahiro at socionext.com>
> Suggested-by: Daniel Borkmann <daniel at iogearbox.net>
> Reported-by: Xiao Yang <ice_yangxiao at 163.com>
> Signed-off-by: Will Deacon <will at kernel.org>

Acked-by: Alexei Starovoitov <ast at kernel.org>



More information about the linux-arm-kernel mailing list