• Jiri Benc's avatar
    selftests, bpf: Fix makefile dependencies on libbpf · d888eaac
    Jiri Benc authored
    When building bpf selftest with make -j, I'm randomly getting build failures
    such as this one:
    
      In file included from progs/bpf_flow.c:19:
      [...]/tools/testing/selftests/bpf/tools/include/bpf/bpf_helpers.h:11:10: fatal error: 'bpf_helper_defs.h' file not found
      #include "bpf_helper_defs.h"
               ^~~~~~~~~~~~~~~~~~~
    
    The file that fails the build varies between runs but it's always in the
    progs/ subdir.
    
    The reason is a missing make dependency on libbpf for the .o files in
    progs/. There was a dependency before commit 3ac2e20f but that commit
    removed it to prevent unneeded rebuilds. However, that only works if libbpf
    has been built already; the 'wildcard' prerequisite does not trigger when
    there's no bpf_helper_defs.h generated yet.
    
    Keep the libbpf as an order-only prerequisite to satisfy both goals. It is
    always built before the progs/ objects but it does not trigger unnecessary
    rebuilds by itself.
    
    Fixes: 3ac2e20f ("selftests/bpf: BPF object files should depend only on libbpf headers")
    Signed-off-by: default avatarJiri Benc <jbenc@redhat.com>
    Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/bpf/ee84ab66436fba05a197f952af23c98d90eb6243.1632758415.git.jbenc@redhat.com
    d888eaac
Makefile 19.6 KB