All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Stephen Rothwell <sfr@canb.auug.org.au>, Ian Rogers <irogers@google.com>
Cc: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>,
	Namhyung Kim <namhyung@kernel.org>,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Next Mailing List <linux-next@vger.kernel.org>
Subject: [solved] Re: linux-next: build failure after merge of the perf tree
Date: Fri, 23 Feb 2024 17:11:13 -0300	[thread overview]
Message-ID: <Zdj74Zo10vYTZNMl@x1> (raw)
In-Reply-To: <Zdj3FyPjE5ezyfsM@x1>

On Fri, Feb 23, 2024 at 04:50:47PM -0300, Arnaldo Carvalho de Melo wrote:
> On Thu, Feb 22, 2024 at 10:06:56AM +1100, Stephen Rothwell wrote:
> > Hi all,
> > 
> > After merging the perf tree, today's linux-next build (native perf)
> > failed like this:
> > 
> > util/bpf_skel/augmented_raw_syscalls.bpf.c:329:15: error: invalid application of 'sizeof' to an incomplete type 'struct timespec64'
> >         __u32 size = sizeof(struct timespec64);
> >                      ^     ~~~~~~~~~~~~~~~~~~~
> > util/bpf_skel/augmented_raw_syscalls.bpf.c:329:29: note: forward declaration of 'struct timespec64'
> >         __u32 size = sizeof(struct timespec64);
> >                                    ^
> > 
> > Caused by commit
> > 
> >   29d16de26df1 ("perf augmented_raw_syscalls.bpf: Move 'struct timespec64' to vmlinux.h")
> > 
> > This is a ppc64 le build.
> > 
> > I have used the perf tree from next-20240221 for today.
> 
> Ok, finally I managed to secure a ppc64 machine to test this and
> sometimes I reproduce just like you reported, but sometimes I can't do
> it, didn't manage to isolate what is that makes it fail sometimes, make
> -C tools/perf clean, nuking the O= target directory, etc, when I
> reproduce it:

So I think I see the problem, I now left the build directory with a
previous build from torvalds/master, then switched to the
perf-tools-branch and tried to build from there, without first removing
the old build, it fails:

  CLANG   /tmp/build/perf-tools-next/util/bpf_skel/.tmp/augmented_raw_syscalls.bpf.o
util/bpf_skel/augmented_raw_syscalls.bpf.c:329:15: error: invalid application of 'sizeof' to an incomplete type 'struct timespec64'
  329 |         __u32 size = sizeof(struct timespec64);
      |                      ^     ~~~~~~~~~~~~~~~~~~~
util/bpf_skel/augmented_raw_syscalls.bpf.c:329:29: note: forward declaration of 'struct timespec64'
  329 |         __u32 size = sizeof(struct timespec64);
      |                                    ^
1 error generated.
make[2]: *** [Makefile.perf:1161: /tmp/build/perf-tools-next/util/bpf_skel/.tmp/augmented_raw_syscalls.bpf.o] Error 1
make[1]: *** [Makefile.perf:264: sub-make] Error 2


Because it will use what was installed before in the build dir:

[acme@ibm-p9z-16-lp5 perf-tools-next]$ ls -la /tmp/build/perf-tools-next/util/bpf_skel/vmlinux.h 
-rw-r--r--. 1 acme acme 4319 Feb 23 14:59 /tmp/build/perf-tools-next/util/bpf_skel/vmlinux.h
[acme@ibm-p9z-16-lp5 perf-tools-next]$

And that one doesn't have 'struct timespec64':

[acme@ibm-p9z-16-lp5 perf-tools-next]$ grep timespec64 /tmp/build/perf-tools-next/util/bpf_skel/vmlinux.h 
[acme@ibm-p9z-16-lp5 perf-tools-next]$

If I remove that directory contents:

[acme@ibm-p9z-16-lp5 perf-tools-next]$ rm -rf /tmp/build/perf-tools-next/
[acme@ibm-p9z-16-lp5 perf-tools-next]$ mkdir /tmp/build/perf-tools-next/
[acme@ibm-p9z-16-lp5 perf-tools-next]$

And then try to build again:

make -k O=/tmp/build/perf-tools-next/ -C tools/perf install-bin

It works.

I reproduced the problem on x86_64, so, on this transition period, the
problem happens, probably we need to robustify the installation of
tools/perf/util/bpf_skel/vmlinux/vmlinux.h in the O= target directory,
but if you just make sure the build directory is clean before trying to
build it, this time, it should work, wdyt?

Ian, ideas?

- Arnaldo

  reply	other threads:[~2024-02-23 20:11 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-21 23:06 linux-next: build failure after merge of the perf tree Stephen Rothwell
2024-02-23 19:50 ` Arnaldo Carvalho de Melo
2024-02-23 20:11   ` Arnaldo Carvalho de Melo [this message]
2024-02-23 20:34     ` [solved] " Namhyung Kim
2024-02-24 15:05       ` Arnaldo Carvalho de Melo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Zdj74Zo10vYTZNMl@x1 \
    --to=acme@kernel.org \
    --cc=acme@redhat.com \
    --cc=arnaldo.melo@gmail.com \
    --cc=irogers@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=namhyung@kernel.org \
    --cc=sfr@canb.auug.org.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.