Re: [PATCH 1/1] perf build: Require at least clang 16.0.6 to build BPF skeletons

From: Arnaldo Carvalho de Melo
Date: Thu Sep 12 2024 - 10:51:21 EST


On Thu, Sep 12, 2024 at 03:40:32PM +0100, James Clark wrote:
> On 11/09/2024 13:24, Arnaldo Carvalho de Melo wrote:
> > Howard reported problems using perf features that use BPF:

> > perf $ clang -v
> > Debian clang version 15.0.6
> > Target: x86_64-pc-linux-gnu
> > Thread model: posix
> > InstalledDir: /bin
> > Found candidate GCC installation: /bin/../lib/gcc/x86_64-linux-gnu/12
> > Selected GCC installation: /bin/../lib/gcc/x86_64-linux-gnu/12
> > Candidate multilib: .;@m64
> > Selected multilib: .;@m64
> > perf $ ./perf trace -e write --max-events=1
> > libbpf: prog 'sys_enter_rename': BPF program load failed: Permission denied
> > libbpf: prog 'sys_enter_rename': -- BEGIN PROG LOAD LOG --
> > 0: R1=ctx() R10=fp0
> >
> > But it works with:
> >
> > perf $ clang -v
> > Debian clang version 16.0.6 (15~deb12u1)
> > Target: x86_64-pc-linux-gnu
> > Thread model: posix
> > InstalledDir: /bin
> > Found candidate GCC installation: /bin/../lib/gcc/x86_64-linux-gnu/12
> > Selected GCC installation: /bin/../lib/gcc/x86_64-linux-gnu/12
> > Candidate multilib: .;@m64
> > Selected multilib: .;@m64
> > perf $ ./perf trace -e write --max-events=1
> > 0.000 ( 0.009 ms): gmain/1448 write(fd: 4, buf: \1\0\0\0\0\0\0\0, count: 8) = 8 (kworker/0:0-eve)
> > perf $
> >
> > So lets make that the required version, if you happen to have a slightly
> > older version where this work, please report so that we can adjust the
> > minimum required version.

> I wasn't able to reproduce the issue with either of these versions. But I
> suppose it could be an issue with only 15.0.6.

Interesting, that complicates things, probably the best way then is to
try to build it, if it fails, mention that 15.0.6 is known to be
problematic and suggest working versions?

- Arnaldo

> $ clang -v
> Ubuntu clang version 15.0.7
> Target: x86_64-pc-linux-gnu
> Thread model: posix
> InstalledDir: /usr/bin
> Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11
> Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12
> Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12
> Candidate multilib: .;@m64
> Selected multilib: .;@m64
>
>
> Ubuntu clang version 14.0.0-1ubuntu1.1
> Target: x86_64-pc-linux-gnu
> Thread model: posix
> InstalledDir: /usr/bin
> Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11
> Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12
> Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/12
> Candidate multilib: .;@m64
> Selected multilib: .;@m64