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

From: Jesper Dangaard Brouer <[email-masked]>
Date: Wed, 19 Feb 2020 21:06:09 +0100

On Wed, 19 Feb 2020 10:38:45 -0800
Andrii Nakryiko <[email-masked]> wrote:

> On Wed, Feb 19, 2020 at 10:29 AM Jesper Dangaard Brouer
> <[email-masked]> wrote:
> >
> > On Wed, 19 Feb 2020 09:38:50 -0800
> > Andrii Nakryiko <[email-masked]> wrote:
> >  
> > > On Wed, Feb 19, 2020 at 9:04 AM Jesper Dangaard Brouer
> > > <[email-masked]> wrote:  
> > > >
> > > > On Wed, 19 Feb 2020 08:41:27 -0800
> > > > Alexei Starovoitov <[email-masked]> wrote:
> > > >  
> > > > > On Wed, Feb 19, 2020 at 4:30 AM Jesper Dangaard Brouer
> > > > > <[email-masked]> 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