On 28/08/2024 19:10, Alexey Gladkov wrote: > According to the documentation, when building a kernel with the C=2 > parameter, all source files should be checked. But this does not happen > for the kernel/bpf/ directory. > > $ touch kernel/bpf/core.c > $ make C=2 CHECK=true kernel/bpf/core.o > > Outputs: > > CHECK scripts/mod/empty.c > CALL scripts/checksyscalls.sh > DESCEND objtool > INSTALL libsubcmd_headers > CC kernel/bpf/core.o > > As can be seen the compilation is done, but CHECK is not executed. This > happens because kernel/bpf/Makefile has defined its own rule for > compilation and forgotten the macro that does the check. > > There is no need to duplicate the build code, and this rule can be > removed to use generic rules. > > Signed-off-by: Alexey Gladkov <legion@xxxxxxxxxx> Tested-by: Alan Maguire <alan.maguire@xxxxxxxxxx> The aim from the BPF side is just to share the btf_iter.c, btf_relocate.c and relo_core.c files for both libbpf and kernel build. Those files need to live in tools/lib/bpf because the libbpf standalone repo on github is built from tools/lib/bpf. Since the approach in this patch continues to support that while it doesn't break other things like check targets it's definitely preferred. Thanks for the fix! Alan > --- > kernel/bpf/Makefile | 6 ------ > kernel/bpf/btf_iter.c | 2 ++ > kernel/bpf/btf_relocate.c | 2 ++ > kernel/bpf/relo_core.c | 2 ++ > 4 files changed, 6 insertions(+), 6 deletions(-) > create mode 100644 kernel/bpf/btf_iter.c > create mode 100644 kernel/bpf/btf_relocate.c > create mode 100644 kernel/bpf/relo_core.c > > diff --git a/kernel/bpf/Makefile b/kernel/bpf/Makefile > index 0291eef9ce92..9b9c151b5c82 100644 > --- a/kernel/bpf/Makefile > +++ b/kernel/bpf/Makefile > @@ -52,9 +52,3 @@ obj-$(CONFIG_BPF_PRELOAD) += preload/ > obj-$(CONFIG_BPF_SYSCALL) += relo_core.o > obj-$(CONFIG_BPF_SYSCALL) += btf_iter.o > obj-$(CONFIG_BPF_SYSCALL) += btf_relocate.o > - > -# Some source files are common to libbpf. > -vpath %.c $(srctree)/kernel/bpf:$(srctree)/tools/lib/bpf > - > -$(obj)/%.o: %.c FORCE > - $(call if_changed_rule,cc_o_c) > diff --git a/kernel/bpf/btf_iter.c b/kernel/bpf/btf_iter.c > new file mode 100644 > index 000000000000..eab8493a1669 > --- /dev/null > +++ b/kernel/bpf/btf_iter.c > @@ -0,0 +1,2 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +#include "../../tools/lib/bpf/btf_iter.c" > diff --git a/kernel/bpf/btf_relocate.c b/kernel/bpf/btf_relocate.c > new file mode 100644 > index 000000000000..8c89c7b59ef8 > --- /dev/null > +++ b/kernel/bpf/btf_relocate.c > @@ -0,0 +1,2 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +#include "../../tools/lib/bpf/btf_relocate.c" > diff --git a/kernel/bpf/relo_core.c b/kernel/bpf/relo_core.c > new file mode 100644 > index 000000000000..6a36fbc0e5ab > --- /dev/null > +++ b/kernel/bpf/relo_core.c > @@ -0,0 +1,2 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +#include "../../tools/lib/bpf/relo_core.c"