From: Tony Ambardar <tony.ambardar@gmail.com>
To: Michael Ellerman <mpe@ellerman.id.au>
Cc: linux-arch@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
linux-kernel@vger.kernel.org, Rosen Penev <rosenp@gmail.com>,
Paul Mackerras <paulus@samba.org>,
bpf@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v2] powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h
Date: Thu, 17 Sep 2020 06:42:29 -0700 [thread overview]
Message-ID: <CAPGftE-zSi=7mdf9dCGyn5Dio3fpbTuKT+qKQRvDd-1pGgCb5g@mail.gmail.com> (raw)
In-Reply-To: <87363gpqhz.fsf@mpe.ellerman.id.au>
On Thu, 17 Sep 2020 at 04:55, Michael Ellerman <mpe@ellerman.id.au> wrote:
>
> [ Cc += linux-arch & Arnd ]
>
> Hi Tony,
>
> This looks OK to me, but I'm always a bit nervous about changes in uapi.
> I've Cc'ed linux-arch and Arnd who look after the asm-generic headers,
> which this is slightly related to, just in case.
>
I agree with the caution and would welcome any other insights.
> One minor comment below.
>
> Tony Ambardar <tony.ambardar@gmail.com> writes:
> > A few archs like powerpc have different errno.h values for macros
> > EDEADLOCK and EDEADLK. In code including both libc and linux versions of
> > errno.h, this can result in multiple definitions of EDEADLOCK in the
> > include chain. Definitions to the same value (e.g. seen with mips) do
> > not raise warnings, but on powerpc there are redefinitions changing the
> > value, which raise warnings and errors (if using "-Werror").
> >
> > Guard against these redefinitions to avoid build errors like the following,
> > first seen cross-compiling libbpf v5.8.9 for powerpc using GCC 8.4.0 with
> > musl 1.1.24:
> >
> > In file included from ../../arch/powerpc/include/uapi/asm/errno.h:5,
> > from ../../include/linux/err.h:8,
> > from libbpf.c:29:
> > ../../include/uapi/asm-generic/errno.h:40: error: "EDEADLOCK" redefined [-Werror]
> > #define EDEADLOCK EDEADLK
> >
> > In file included from toolchain-powerpc_8540_gcc-8.4.0_musl/include/errno.h:10,
> > from libbpf.c:26:
> > toolchain-powerpc_8540_gcc-8.4.0_musl/include/bits/errno.h:58: note: this is the location of the previous definition
> > #define EDEADLOCK 58
> >
> > cc1: all warnings being treated as errors
> >
> > Fixes: 95f28190aa01 ("tools include arch: Grab a copy of errno.h for arch's supported by perf")
> > Fixes: c3617f72036c ("UAPI: (Scripted) Disintegrate arch/powerpc/include/asm")
>
> I suspect that's not the right commit to tag. It just moved errno.h from
> arch/powerpc/include/asm to arch/powerpc/include/uapi/asm. It's content
> was almost identical, and entirely identical as far as EDEADLOCK was
> concerned.
>
> Prior to that the file lived in asm-powerpc/errno.h, eg:
>
> $ git cat-file -p b8b572e1015f^:include/asm-powerpc/errno.h
>
> Before that it was include/asm-ppc64/errno.h, content still the same.
>
> To go back further we'd have to look at the historical git trees, which
> is probably overkill. I'm pretty sure it's always had this problem.
>
> So we should probably drop the Fixes tags and just Cc: stable, that
> means please backport it as far back as possible.
>
Yes, you're right. Those two commits were simply where I stopped tracing back
the long chain. I'll drop them as you suggest and request a backport instead in
the next version of the patch.
Thanks for your feedback!
> cheers
>
>
> > Reported-by: Rosen Penev <rosenp@gmail.com>
> > Signed-off-by: Tony Ambardar <Tony.Ambardar@gmail.com>
> > ---
> > v1 -> v2:
> > * clean up commit description formatting
> > ---
> > arch/powerpc/include/uapi/asm/errno.h | 1 +
> > tools/arch/powerpc/include/uapi/asm/errno.h | 1 +
> > 2 files changed, 2 insertions(+)
> >
> > diff --git a/arch/powerpc/include/uapi/asm/errno.h b/arch/powerpc/include/uapi/asm/errno.h
> > index cc79856896a1..4ba87de32be0 100644
> > --- a/arch/powerpc/include/uapi/asm/errno.h
> > +++ b/arch/powerpc/include/uapi/asm/errno.h
> > @@ -2,6 +2,7 @@
> > #ifndef _ASM_POWERPC_ERRNO_H
> > #define _ASM_POWERPC_ERRNO_H
> >
> > +#undef EDEADLOCK
> > #include <asm-generic/errno.h>
> >
> > #undef EDEADLOCK
> > diff --git a/tools/arch/powerpc/include/uapi/asm/errno.h b/tools/arch/powerpc/include/uapi/asm/errno.h
> > index cc79856896a1..4ba87de32be0 100644
> > --- a/tools/arch/powerpc/include/uapi/asm/errno.h
> > +++ b/tools/arch/powerpc/include/uapi/asm/errno.h
> > @@ -2,6 +2,7 @@
> > #ifndef _ASM_POWERPC_ERRNO_H
> > #define _ASM_POWERPC_ERRNO_H
> >
> > +#undef EDEADLOCK
> > #include <asm-generic/errno.h>
> >
> > #undef EDEADLOCK
> > --
> > 2.25.1
next prev parent reply other threads:[~2020-09-17 13:50 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-16 7:42 [PATCH v1] powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h Tony Ambardar
2020-09-17 0:07 ` [PATCH v2] " Tony Ambardar
2020-09-17 11:55 ` Michael Ellerman
2020-09-17 13:42 ` Tony Ambardar [this message]
2020-09-17 14:01 ` Arnd Bergmann
[not found] ` <CAK8P3a3FVoDzNb1TOA6cRQDdEc+st7KkBL70t0FeStEziQG4+A__37056.5000850306$1600351707$gmane$org@mail.gmail.com>
2020-09-17 14:34 ` Andreas Schwab
2020-09-19 4:15 ` Tony Ambardar
2020-09-17 13:54 ` [PATCH v3] " Tony Ambardar
[not found] ` <20200921125452.32E0E21D7A@mail.kernel.org>
2020-09-22 8:38 ` Tony Ambardar
2021-04-16 4:34 ` Tony Ambardar
2021-04-16 10:41 ` Michael Ellerman
2021-04-17 1:00 ` Tony Ambardar
2021-04-19 4:00 ` Michael Ellerman
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='CAPGftE-zSi=7mdf9dCGyn5Dio3fpbTuKT+qKQRvDd-1pGgCb5g@mail.gmail.com' \
--to=tony.ambardar@gmail.com \
--cc=arnd@arndb.de \
--cc=bpf@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.org \
--cc=rosenp@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).