From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Ehrhardt Subject: Re: [PATCH v2] ppc64: fix compilation of when AltiVec is enabled Date: Thu, 30 Aug 2018 13:59:17 +0200 Message-ID: References: <20180830115504.28608-1-christian.ehrhardt@canonical.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Cc: Luca Boccassi , Thomas Monjalon To: adrien.mazarguil@6wind.com, dev , Gowrishankar Muthukrishnan , Chao Zhu Return-path: Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by dpdk.org (Postfix) with ESMTP id C5FD02BF7 for ; Thu, 30 Aug 2018 13:59:44 +0200 (CEST) Received: from mail-oi0-f69.google.com ([209.85.218.69]) by youngberry.canonical.com with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1fvLc0-0006Aq-Jg for dev@dpdk.org; Thu, 30 Aug 2018 11:59:44 +0000 Received: by mail-oi0-f69.google.com with SMTP id b8-v6so7259441oib.4 for ; Thu, 30 Aug 2018 04:59:44 -0700 (PDT) In-Reply-To: <20180830115504.28608-1-christian.ehrhardt@canonical.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Thu, Aug 30, 2018 at 1:55 PM Christian Ehrhardt < christian.ehrhardt@canonical.com> wrote: > The definition of almost any newer standard like --stc=3Dc11 will drop > __APPLCE_ALTIVEC__ which otherwise would be defined. > If that is the case then altivec.h will redefine bool to a type > conflicting with those defined by stdbool.h. > > This breaks compilation of 18.08 on ppc64 like: > mlx5_nl_flow.c:407:17: error: incompatible types when assigning > to type =E2=80=98__vector __bool int=E2=80=99 {aka =E2=80=98__vector(4)= __bool int=E2=80=99} > from type =E2=80=98int=E2=80=99 in_port_id_set =3D false; > > Other alternatives were pursued on [1] but they always ended up being > more complex than what would be appropriate for the issue we face. > > [1]: http://mails.dpdk.org/archives/dev/2018-August/109926.html > > Tested-by: Takeshi T Yoshimura > Reviewed-by: Adrien Mazarguil adrien.mazarguil@6wind.com After more of a decade of submitting patches I should get an email right :-= / Well V3 it will be ... > Signed-off-by: Christian Ehrhardt > --- > .../common/include/arch/ppc_64/rte_memcpy.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h > b/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h > index 75f74897b..0b3b89b56 100644 > --- a/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h > +++ b/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h > @@ -37,6 +37,17 @@ > #include > /*To include altivec.h, GCC version must >=3D 4.8 */ > #include > +/* > + * Compilation workaround for PPC64 targets when AltiVec is fully > + * enabled e.g. with std=3Dc11. Otherwise there would be a type conflict > + * of "bool" between stdbool and altivec. > + */ > +#if defined(__PPC64__) && !defined(__APPLE_ALTIVEC__) > + #undef bool > + /* redefine as in stdbool.h */ > + #define bool _Bool > +#endif > + > > #ifdef __cplusplus > extern "C" { > -- > 2.17.1 > > --=20 Christian Ehrhardt Software Engineer, Ubuntu Server Canonical Ltd