On Fri, Nov 22, 2024 at 08:14:58AM -0700, Shuah Khan wrote:
The commit 7a6eb7c34a78 went in 4 years ago? DO we have a better story for the LLVM tool chain to get rid of skipping bpf and sched_ext?
Running make -C tools/testing/selftests/bpf/ gave me the following error. Does this mean we still can't include bpf in default run?
make -C tools/testing/selftests/bpf/ make: Entering directory '/linux/linux_6.12/tools/testing/selftests/bpf'
Auto-detecting system features: ... llvm: [ OFF ]
The toolchain is in a better place now and we can run with released LLVM versions. The detection above is still needed since the LLVM version needed is a bit newer than the version needed for the kernel itself, it's LLVM 18 for BPF, and not everyone has LLVM.
GEN /linux/linux_6.12/tools/testing/selftests/bpf/tools/build/bpftool/vmlinux.h libbpf: failed to find '.BTF' ELF section in /linux/linux_6.12/vmlinux Error: failed to load BTF from /linux/linux_6.12/vmlinux: No data available make[1]: *** [Makefile:209: /linux/linux_6.12/tools/testing/selftests/bpf/tools/build/bpftool/vmlinux.h] Error 195 make[1]: *** Deleting file '/linux/linux_6.12/tools/testing/selftests/bpf/tools/build/bpftool/vmlinux.h' make: *** [Makefile:369: /linux/linux_6.12/tools/testing/selftests/bpf/tools/sbin/bpftool] Error 2 make: Leaving directory '/linux/linux_6.12/tools/testing/selftests/bpf'
This bit still needs some attention - the build needs a kernel binary with BTF information built in via CONFIG_DEBUG_INFO_BTF. That is enabled by the config fragment for BTF tests but it's not compatible with the arm64 defconfig since that sets CONFIG_DEBUG_INFO_REDUCED which isn't compatible with _BTF, and in general having it missing should be handled a bit more gracefully. I believe some of the tests would run happily without the BTF information.
TBH I'm a bit surprised we even tried to do this bit with LLVM not available...