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>