On 9/24/19 9:43 AM, Yonghong Song wrote:
On 9/24/19 8:26 AM, Shuah Khan wrote:
Hi Alexei and Daniel,
bpf test doesn't build on Linux 5.4 mainline. Do you know what's happening here.
make -C tools/testing/selftests/bpf/
-c progs/test_core_reloc_ptr_as_arr.c -o - || echo "clang failed") | \ llc -march=bpf -mcpu=generic -filetype=obj -o /mnt/data/lkml/linux_5.4/tools/testing/selftests/bpf/test_core_reloc_ptr_as_arr.o
progs/test_core_reloc_ptr_as_arr.c:25:6: error: use of unknown builtin '__builtin_preserve_access_index' [-Wimplicit-function-declaration] if (BPF_CORE_READ(&out->a, &in[2].a)) ^ ./bpf_helpers.h:533:10: note: expanded from macro 'BPF_CORE_READ' __builtin_preserve_access_index(src)) ^ progs/test_core_reloc_ptr_as_arr.c:25:6: warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'const void *' [-Wint-conversion] if (BPF_CORE_READ(&out->a, &in[2].a)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./bpf_helpers.h:533:10: note: expanded from macro 'BPF_CORE_READ' __builtin_preserve_access_index(src)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning and 1 error generated. llc: error: llc: <stdin>:1:1: error: expected top-level entity clang failed
Also
make TARGETS=bpf kselftest fails as well. Dependency between tools/lib/bpf and the test. How can we avoid this type of dependency or resolve it in a way it doesn't result in build failures?
Thanks, Shuah.
The clang __builtin_preserve_access_index() intrinsic is introduced in LLVM9 (which just released last week) and the builtin and other CO-RE features are only supported in LLVM10 (current development branch) with more bug fixes and added features.
I think we should do a feature test for llvm version and only enable these tests when llvm version >= 10.
Yes. If new tests depend on a particular llvm revision, the failing the build is a regression. I would like to see older tests that don't have dependency build and run.
thanks, -- Shuah