Re: Kernel 5.5.4 build fail for BPF-selftests with latest LLVM

Jesper Dangaard Brouer
2020-02-19T20:06:33Z

On Wed, 19 Feb 2020 10:38:45 -0800
Andrii Nakryiko <andrii.nakryiko@gmail.com> wrote:

> On Wed, Feb 19, 2020 at 10:29 AM Jesper Dangaard Brouer
> <brouer@redhat.com> wrote:
> >
> > On Wed, 19 Feb 2020 09:38:50 -0800
> > Andrii Nakryiko <andrii.nakryiko@gmail.com> wrote:
> >
> > > On Wed, Feb 19, 2020 at 9:04 AM Jesper Dangaard Brouer
> > > <brouer@redhat.com> wrote:
> > > >
> > > > On Wed, 19 Feb 2020 08:41:27 -0800
> > > > Alexei Starovoitov <alexei.starovoitov@gmail.com> wrote:
> > > >
> > > > > On Wed, Feb 19, 2020 at 4:30 AM Jesper Dangaard Brouer
> > > > > <brouer@redhat.com> wrote:
> > > > > >
> > > > > > I'm willing to help out, such that we can do either version or feature
> > > > > > detection, to either skip compiling specific test programs or at least
> > > > > > give users a proper warning of they are using a too "old" LLVM version.
> > > > > ...
> > > > > > progs/test_core_reloc_bitfields_probed.c:47:13: error: use of unknown builtin '__builtin_preserve_field_info' [-Wimplicit-function-declaration]
> > > > > > out->ub1 = BPF_CORE_READ_BITFIELD_PROBED(in, ub1);
> > > > >
> > > > > imo this is proper warning message already.
> > > >
> > > > This is an error, not a warning. The build breaks as the make process stops.
> > > >
> > >
> > > Latest Clang was a requirement for building and running all selftests
> > > for a long time now. There were few previous discussions on mailing
> > > list about this and each time the conclusion was the same: latest
> > > Clang is a requirement for BPF selftests.
> >
> > The latest Clang is 9.0.1, and it doesn't build with that.
>
> Latest as in "latest built from sources".

When I download a specific kernel release, how can I know what LLVM
git-hash or version I need (to use BPF-selftests)?

Do you think it is reasonable to require end-users to compile their own
bleeding edge version of LLVM, to use BPF-selftests?

I do hope that some end-users of BPF-selftests will be CI-systems.
That also implies that CI-system maintainers need to constantly do
"latest built from sources" of LLVM git-tree to keep up. Is that a
reasonable requirement when buying a CI-system in the cloud?

--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer