Re: linux-next: build failure after merge of the perf tree

Stephen Rothwell
2023-03-22T22:54:58Z

[-- Attachment #1: Type: text/plain, Size: 2730 bytes --]

Hi Ian,

On Wed, 22 Mar 2023 11:37:31 -0700 Ian Rogers <irogers@google.com> wrote:
>
> On Tue, Mar 21, 2023 at 2:40 PM Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> >
> > Hi all,
> >
> > On Fri, 17 Mar 2023 09:50:25 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> > >
> > > After merging the perf tree, today's linux-next build (native perf)
> > > failed like this:
> > >
> > > Auto-detecting system features:
> > > ... clang-bpf-co-re: [ [32mon [m ]
> > > ... llvm: [ [31mOFF [m ]
> > > ... libcap: [ [32mon [m ]
> > > ... libbfd: [ [32mon [m ]
> > >
> > > make[1]: *** Deleting file '/home/sfr/next/perf/util/bpf_skel/vmlinux.h'
> > > libbpf: failed to find '.BTF' ELF section in /boot/vmlinux-6.0.0-5-powerpc64le
> > > Error: failed to load BTF from /boot/vmlinux-6.0.0-5-powerpc64le: No data available
> > > make[1]: *** [Makefile.perf:1075: /home/sfr/next/perf/util/bpf_skel/vmlinux.h] Error 195
> > > make[1]: *** Waiting for unfinished jobs....
> > > make: *** [Makefile.perf:236: sub-make] Error 2
> > > Command exited with non-zero status 2
> > >
> > > To be clear this is a native build of perf on a PPC64le host using this
> > > command line:
> > >
> > > make -C tools/perf -f Makefile.perf -s -O -j60 O=../perf EXTRA_CFLAGS=-Wno-psabi
> > >
> > > (I could probably remove the EXTRA_CLFAGS now that I am building with
> > > gcc 12.2)
> > >
> > > I don't know which commit caused this.
> > >
> > > I have used the perf tree from next-20230316 for today.
> >
> > I am still getting this build failure.
>
> The build failure is intentional as not having BPF skeleton support in
> the perf tool will remove features. I've just sent:
> https://lore.kernel.org/lkml/20230322183108.1380882-1-irogers@google.com/
> Which will recommend adding NO_BPF_SKEL=1 to your build options when
> this failure occurs. I didn't think a features test was appropriate
> for this as the feature test would basically replicate the vmlinux.h
> generation and I didn't want to move that support through the build
> system.

I was trying to understand why this step fails, but from the error
messages, it seems to require something to be present in the distro
supplied kernel image? Is there something missing from the ppc
build process? Or toolchain? Why is it looking at the installed
kernel and not the built kernel? Does the perf build now depend on the
kernel being built first?

I will add NO_BPF_SKEL=1 to my build from tomorrow, but surely that
means that we miss some perf build testing :-(
--
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]