Hi, On Wed, May 18, 2022 at 10:51:44PM +0800, Shung-Hsi Yu wrote: > On Thu, May 12, 2022 at 06:12:36PM -0700, Vincent Li wrote: > > On Thu, May 12, 2022 at 5:49 PM Vincent Li <vincent.mc.li@xxxxxxxxx> wrote: > > > > > > Hi, > > > > > > I cloned the bpf-next and tried to compile the bpf selftest. > > > > > > first I got error > > > > > > " > > > CC /usr/src/bpf > > > next/tools/testing/selftests/bpf/tools/build/bpftool/xlated_dumper.o > > > > > > make[1]: *** No rule to make target > > > '/usr/src/bpf-next/tools/include/asm-generic/bitops/find.h', needed by > > > '/usr/src/bpf-next/tools/testing/selftests/bpf/tools/build/bpftool/btf_dumper.o'. > > > Stop. > > I also ran into the same issue on bpf-next, and the error seems rather > absurd as > > 1. asm-generic/bitops/find.h was removed back in 47d8c15615c0a "include: > move find.h from asm_generic to linux", so perhaps this error has > something to do with Makefile.asm-generic > 2. normal way of building bpftool with `make tools/bpf/bpftool` still > works fine > > Anyway removing ARCH= CROSS_COMPILE= in the bpf selftests Makefile > (reverting change added in ea79020a2d9e "selftests/bpf: Enable > cross-building with clang") can be used as a workaround to get the build > working again. Adding the commit author to the thread to see if there is > better approach available. Could you share the commands that lead to this error? And did you make sure to clean the build tree? I often get errors when building tools because my toolchains changed and some dependencies in generated .*.d files do not exist anymore. I can't reproduce this specific error on today's linux-next (but found another issue with out-of-tree build that I'll investigate). This is what I run, on an x86 host for an x86 target: $ make defconfig $ cat tools/testing/selftests/bpf/config >> .config # and enable CONFIG_DEBUG_INFO_BTF $ make $ make -C tools/testing/selftests TARGETS=bpf SKIP_TARGETS= Thanks, Jean > > > Best, > Shung-Hsi > > > > I could not find find.h in > > > /usr/src/bpf-next/tools/include/asm-generic/bitops/find.h but I found > > > it in /usr/src/bpf-next/tools/include/linux/find.h, copied it to > > > /usr/src/bpf-next/tools/include/asm-generic/bitops, seems resolved the > > > problem, > > > > > > then I got another error below, > > > > > > CLNG-BPF [test_maps] map_kptr.o > > > > > > progs/map_kptr.c:7:29: error: unknown attribute 'btf_type_tag' ignored > > > [-Werror,-Wunknown-attributes] > > > > > > struct prog_test_ref_kfunc __kptr *unref_ptr; > > > > > > ^~~~~~ > > > > > > /usr/src/bpf-next/tools/testing/selftests/bpf/tools/include/bpf/bpf_helpers.h:176:31: > > > note: expanded from macro '__kptr' > > > > > > #define __kptr __attribute__((btf_type_tag("kptr"))) > > > > > > ^~~~~~~~~~~~~~~~~~~~ > > > > > > progs/map_kptr.c:8:29: error: unknown attribute 'btf_type_tag' ignored > > > [-Werror,-Wunknown-attributes] > > > > > > struct prog_test_ref_kfunc __kptr_ref *ref_ptr; > > > > > > ^~~~~~~~~~ > > > > > > /usr/src/bpf-next/tools/testing/selftests/bpf/tools/include/bpf/bpf_helpers.h:177:35: > > > note: expanded from macro '__kptr_ref' > > > > > > #define __kptr_ref __attribute__((btf_type_tag("kptr_ref"))) > > > " > > > > > > my clang is 12.0.1 and installed new clang from llvm github repository > > > > > > clang version 15.0.0 (https://github.com/llvm/llvm-project.git > > > e91a73de24d60954700d7ac0293c050ab2cbe90b) > > > > > > it resolved the problem, but now I got error > > > > > > GEN-SKEL [test_progs] test_bpf_nf.skel.h > > > > > > libbpf: failed to find BTF info for global/extern symbol 'bpf_skb_ct_lookup' > > > > > > Error: failed to link > > > '/usr/src/bpf-next/tools/testing/selftests/bpf/test_bpf_nf.o': Unknown > > > error -2 (-2) > > > > > > make: *** [Makefile:508: > > > /usr/src/bpf-next/tools/testing/selftests/bpf/test_bpf_nf.skel.h] > > > Error 254 > > > > > > running out of ideas on how to fix the compiling error. I hope I am > > > not doing something wrong :) > > > > I recompiled the bpf-next kernel tree after clang 15 installation with > > make bzImage; make modules; make and then recompiled bpf selftest, all > > compiling errors are gone, sorry for the noise. >