Re: Linux 5.4 - bpf test build fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux