On Mon, Sep 13, 2021 at 11:13 AM Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> wrote: > > On Mon, Sep 13, 2021 at 7:29 AM sunyucong@xxxxxxxxx <sunyucong@xxxxxxxxx> wrote: > > > > I ran into the same issue > > > > DESCEND objtool > > DESCEND bpf/resolve_btfids > > CALL scripts/atomic/check-atomics.sh > > CALL scripts/checksyscalls.sh > > CHK include/generated/compile.h > > CC kernel/rseq.o > > CC [U] kernel/bpf/preload/iterators/iterators.o > > In file included from ./tools/lib/bpf/libbpf.h:20, > > from kernel/bpf/preload/iterators/iterators.c:10: > > ./tools/lib/bpf/libbpf_common.h:13:10: fatal error: libbpf_version.h: > > No such file or directory > > 13 | #include "libbpf_version.h" > > | ^~~~~~~~~~~~~~~~~~ > > compilation terminated. > > make[3]: *** [scripts/Makefile.userprogs:43: > > kernel/bpf/preload/iterators/iterators.o] Error 1 > > make[2]: *** [scripts/Makefile.build:540: kernel/bpf/preload] Error 2 > > make[1]: *** [scripts/Makefile.build:540: kernel/bpf] Error 2 > > make[1]: *** Waiting for unfinished jobs.... > > make: *** [Makefile:1872: kernel] Error 2 > > make: *** Waiting for unfinished jobs.... > > > > > > And I tried `make clean` in tools/lib/bpf , which didn't solve the > > make clean in tools/lib/bpf won't help, you'd need to clean kernel/bpf/preload > > > issue, had to do a full clean. To me it seems we should add > > "libbpf_version.h" along with LIBBPF_A in kernel/bpf/preload/Makefile > > LIBBPF_A should force generation of libbpf_version.h, so there is no > need to add libbpf_version.h explicitly. I wonder if maybe adding > FORCE would help, like this: > > $(LIBBPF_A): FORCE > ... > > If you can still repro this, can you please try that? You might need > to also have > > .PHONY: FORCE > FORCE: > > in that file for this to work. It should force calling into libbpf's > Makefile, even if Kbuild believes LIBBPF_A is up to date. I've hit this issue as well and could easily repro. The (LIBBPF_A): FORCE fixed it for me and I pushed this one liner to bpf-next. The later hunk wasn't necessary.