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

From: Alexei Starovoitov
Date: Wed Jul 01 2020 - 12:39:01 EST


On Tue, Jun 30, 2020 at 10:37 AM Will Deacon <will@xxxxxxxxxx> 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@xxxxxxxxxx>
> Cc: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> Suggested-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
> Reported-by: Xiao Yang <ice_yangxiao@xxxxxxx>
> Signed-off-by: Will Deacon <will@xxxxxxxxxx>

Acked-by: Alexei Starovoitov <ast@xxxxxxxxxx>