selftests/bpf: Enforce libbpf build before BPF programs are built
authorAndrii Nakryiko <andriin@fb.com>
Fri, 11 Oct 2019 22:01:45 +0000 (15:01 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Sat, 12 Oct 2019 23:15:10 +0000 (16:15 -0700)
Given BPF programs rely on libbpf's bpf_helper_defs.h, which is
auto-generated during libbpf build, libbpf build has to happen before
we attempt progs/*.c build. Enforce it as order-only dependency.

Fixes: 24f25763d6de ("libbpf: auto-generate list of BPF helper definitions")
Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20191011220146.3798961-2-andriin@fb.com
tools/testing/selftests/bpf/Makefile

index 40552fb441e58fb94ad35c221cc15e3d5988cd7b..f958643d36da4997c87d5d627c5756fd3b29052c 100644 (file)
@@ -256,7 +256,8 @@ ifeq ($(DWARF2BTF),y)
        $(BTF_PAHOLE) -J $@
 endif
 
-$(OUTPUT)/%.o: progs/%.c
+# libbpf has to be built before BPF programs due to bpf_helper_defs.h
+$(OUTPUT)/%.o: progs/%.c | $(BPFOBJ)
        ($(CLANG) $(BPF_CFLAGS) $(CLANG_CFLAGS) -O2 -target bpf -emit-llvm \
                -c $< -o - || echo "clang failed") | \
        $(LLC) -march=bpf -mcpu=$(CPU) $(LLC_FLAGS) -filetype=obj -o $@