All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Namhyung Kim <namhyung@kernel.org>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org
Subject: Re: [BUG] perf tools: Build failure in v6.16-rc1
Date: Wed, 11 Jun 2025 10:14:32 -0300	[thread overview]
Message-ID: <aEmBOO0bSJYSvX2i@x1> (raw)
In-Reply-To: <20250611092542.F4ooE2FL@linutronix.de>

On Wed, Jun 11, 2025 at 11:25:42AM +0200, Sebastian Andrzej Siewior wrote:
> On 2025-06-10 11:34:44 [-0700], Namhyung Kim wrote:
> > Hello,
> Hi,
> 
> > I've updated the perf-tools-next to v6.16-rc1 and found a build error
> > like below on alpine linux 3.18.
> > 
> >   In file included from bench/futex.c:6:
> >   /usr/include/sys/prctl.h:88:8: error: redefinition of 'struct prctl_mm_map'
> >      88 | struct prctl_mm_map {
> >         |        ^~~~~~~~~~~~
> >   In file included from bench/futex.c:5:
> >   /linux/tools/include/uapi/linux/prctl.h:134:8: note: originally defined here
> >     134 | struct prctl_mm_map {
> >         |        ^~~~~~~~~~~~
> >   make[4]: *** [/linux/tools/build/Makefile.build:86: /build/bench/futex.o] Error 1
> > 
> > git bisect says it's the first commit introduced the failure.
> 
> Hmm. So your /usr/include/sys/prctl.h and
> /linux/tools/include/uapi/linux/prctl.h both provide struct
> prctl_mm_map but their include guard must be different.
> 
> My /usr/include/sys/prctl.h is provided by glibc and contains the
> prctl() declaration. It includes also linux/prctl.h.
> The tools/include/uapi/linux/prctl.h is the same as
> /usr/include/linux/prctl.h.
> 
> The /usr/include/sys/prctl.h on alpine linux is different. This is
> probably coming from musl. It contains the PR_* definition and the
> prctl() declaration. So it clashes here because now the one struct is
> available twice.
> 
> The man page for prctl(2) says:
> |       #include <linux/prctl.h>  /* Definition of PR_* constants */
> |       #include <sys/prctl.h>
> 
> so musl doesn't follow this.
> 
> To align with the other builds, I guess the following help:

So I noticed this as well in perf-tools/perf-tools, I'm trying with your
patch applied, lets see...

- Arnaldo
 
> diff --git a/tools/perf/bench/futex.c b/tools/perf/bench/futex.c
> index 26382e4d8d4ce..540261f299b1d 100644
> --- a/tools/perf/bench/futex.c
> +++ b/tools/perf/bench/futex.c
> @@ -2,7 +2,6 @@
>  #include <err.h>
>  #include <stdio.h>
>  #include <stdlib.h>
> -#include <linux/prctl.h>
>  #include <sys/prctl.h>
>  
>  #include "futex.h"
> 
> Sebastian

  reply	other threads:[~2025-06-11 13:14 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-10 18:34 [BUG] perf tools: Build failure in v6.16-rc1 Namhyung Kim
2025-06-11  9:25 ` Sebastian Andrzej Siewior
2025-06-11 13:14   ` Arnaldo Carvalho de Melo [this message]
2025-06-11 14:55     ` Arnaldo Carvalho de Melo
2025-06-11 15:06       ` Sebastian Andrzej Siewior
2025-06-11 19:01         ` Arnaldo Carvalho de Melo
2025-06-11 21:50           ` Namhyung Kim
2025-06-12  6:25           ` Sebastian Andrzej Siewior

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=aEmBOO0bSJYSvX2i@x1 \
    --to=acme@kernel.org \
    --cc=bigeasy@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=namhyung@kernel.org \
    /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.