* [PATCH] eal/ppc: undefine AltiVec keyword vector
@ 2022-05-25 9:53 Thomas Monjalon
2022-05-25 10:01 ` Tyler Retzlaff
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Thomas Monjalon @ 2022-05-25 9:53 UTC (permalink / raw)
To: dev; +Cc: mdr, david.marchand, techboard, David Christensen
The AltiVec header file is defining "vector", except in C++ build.
The keyword "vector" may conflict easily.
As a rule, it is better to use the alternative keyword "__vector".
The DPDK header file rte_altivec.h takes care of undefining "vector",
so the applications and dependencies are free to define the name "vector".
This is a compatibility breakage for applications which were using
the keyword "vector" for its AltiVec meaning.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
doc/guides/rel_notes/release_22_07.rst | 5 +++++
lib/eal/ppc/include/rte_altivec.h | 7 +++++++
2 files changed, 12 insertions(+)
diff --git a/doc/guides/rel_notes/release_22_07.rst b/doc/guides/rel_notes/release_22_07.rst
index e49cacecef..ee60b17821 100644
--- a/doc/guides/rel_notes/release_22_07.rst
+++ b/doc/guides/rel_notes/release_22_07.rst
@@ -133,6 +133,11 @@ API Changes
Also, make sure to start the actual text at the margin.
=======================================================
+* The DPDK header file ``rte_altivec.h``,
+ which is a wrapper for the PPC header file ``altivec.h``,
+ undefines the AltiVec keyword ``vector``.
+ The alternative keyword ``__vector`` should be used instead.
+
ABI Changes
-----------
diff --git a/lib/eal/ppc/include/rte_altivec.h b/lib/eal/ppc/include/rte_altivec.h
index 1551a94544..7c088d2d16 100644
--- a/lib/eal/ppc/include/rte_altivec.h
+++ b/lib/eal/ppc/include/rte_altivec.h
@@ -9,6 +9,13 @@
/* To include altivec.h, GCC version must be >= 4.8 */
#include <altivec.h>
+/*
+ * The keyword "vector" is defined in altivec.h,
+ * and often conflicts with code in applications or dependencies.
+ * It is preferred to use the alternative keyword "__vector".
+ */
+#undef vector
+
/*
* Compilation workaround for PPC64 when AltiVec is fully enabled, e.g. std=c11.
* Otherwise there would be a type conflict between stdbool and altivec.
--
2.36.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] eal/ppc: undefine AltiVec keyword vector
2022-05-25 9:53 [PATCH] eal/ppc: undefine AltiVec keyword vector Thomas Monjalon
@ 2022-05-25 10:01 ` Tyler Retzlaff
2022-05-25 11:08 ` Ali Alnubani
2022-05-25 11:48 ` Ray Kinsella
2 siblings, 0 replies; 11+ messages in thread
From: Tyler Retzlaff @ 2022-05-25 10:01 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev, mdr, david.marchand, techboard, David Christensen
On Wed, May 25, 2022 at 11:53:07AM +0200, Thomas Monjalon wrote:
> The AltiVec header file is defining "vector", except in C++ build.
> The keyword "vector" may conflict easily.
> As a rule, it is better to use the alternative keyword "__vector".
>
> The DPDK header file rte_altivec.h takes care of undefining "vector",
> so the applications and dependencies are free to define the name "vector".
>
> This is a compatibility breakage for applications which were using
> the keyword "vector" for its AltiVec meaning.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [PATCH] eal/ppc: undefine AltiVec keyword vector
2022-05-25 9:53 [PATCH] eal/ppc: undefine AltiVec keyword vector Thomas Monjalon
2022-05-25 10:01 ` Tyler Retzlaff
@ 2022-05-25 11:08 ` Ali Alnubani
2022-05-25 11:10 ` Ali Alnubani
2022-05-25 11:48 ` Ray Kinsella
2 siblings, 1 reply; 11+ messages in thread
From: Ali Alnubani @ 2022-05-25 11:08 UTC (permalink / raw)
To: NBU-Contact-Thomas Monjalon (EXTERNAL), dev
Cc: mdr, david.marchand, techboard, David Christensen
> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Wednesday, May 25, 2022 12:53 PM
> To: dev@dpdk.org
> Cc: mdr@ashroe.eu; david.marchand@redhat.com; techboard@dpdk.org;
> David Christensen <drc@linux.vnet.ibm.com>
> Subject: [PATCH] eal/ppc: undefine AltiVec keyword vector
>
> The AltiVec header file is defining "vector", except in C++ build.
> The keyword "vector" may conflict easily.
> As a rule, it is better to use the alternative keyword "__vector".
>
> The DPDK header file rte_altivec.h takes care of undefining "vector",
> so the applications and dependencies are free to define the name "vector".
>
> This is a compatibility breakage for applications which were using
> the keyword "vector" for its AltiVec meaning.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
Build passes with latest rdma-core master (36395896) on Ubuntu 20.04.4.
Tested-by: Ali Alnubani <alialnu@nvidia.com>
Thanks,
Ali
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [PATCH] eal/ppc: undefine AltiVec keyword vector
2022-05-25 11:08 ` Ali Alnubani
@ 2022-05-25 11:10 ` Ali Alnubani
0 siblings, 0 replies; 11+ messages in thread
From: Ali Alnubani @ 2022-05-25 11:10 UTC (permalink / raw)
To: NBU-Contact-Thomas Monjalon (EXTERNAL), dev
Cc: mdr, david.marchand, techboard, David Christensen
> -----Original Message-----
> From: Ali Alnubani
> Sent: Wednesday, May 25, 2022 2:09 PM
> To: Thomas Monjalon <thomas@monjalon.net>; dev@dpdk.org
> Cc: mdr@ashroe.eu; david.marchand@redhat.com; techboard@dpdk.org;
> David Christensen <drc@linux.vnet.ibm.com>
> Subject: RE: [PATCH] eal/ppc: undefine AltiVec keyword vector
>
> > -----Original Message-----
> > From: Thomas Monjalon <thomas@monjalon.net>
> > Sent: Wednesday, May 25, 2022 12:53 PM
> > To: dev@dpdk.org
> > Cc: mdr@ashroe.eu; david.marchand@redhat.com; techboard@dpdk.org;
> > David Christensen <drc@linux.vnet.ibm.com>
> > Subject: [PATCH] eal/ppc: undefine AltiVec keyword vector
> >
> > The AltiVec header file is defining "vector", except in C++ build.
> > The keyword "vector" may conflict easily.
> > As a rule, it is better to use the alternative keyword "__vector".
> >
> > The DPDK header file rte_altivec.h takes care of undefining "vector",
> > so the applications and dependencies are free to define the name
> "vector".
> >
> > This is a compatibility breakage for applications which were using
> > the keyword "vector" for its AltiVec meaning.
> >
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > ---
>
> Build passes with latest rdma-core master (36395896) on Ubuntu 20.04.4.
Compiler: powerpc64le-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
>
> Tested-by: Ali Alnubani <alialnu@nvidia.com>
>
> Thanks,
> Ali
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] eal/ppc: undefine AltiVec keyword vector
2022-05-25 9:53 [PATCH] eal/ppc: undefine AltiVec keyword vector Thomas Monjalon
2022-05-25 10:01 ` Tyler Retzlaff
2022-05-25 11:08 ` Ali Alnubani
@ 2022-05-25 11:48 ` Ray Kinsella
2022-05-25 15:40 ` Thomas Monjalon
2 siblings, 1 reply; 11+ messages in thread
From: Ray Kinsella @ 2022-05-25 11:48 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev, david.marchand, techboard, David Christensen
Thomas Monjalon <thomas@monjalon.net> writes:
> The AltiVec header file is defining "vector", except in C++ build.
> The keyword "vector" may conflict easily.
> As a rule, it is better to use the alternative keyword "__vector".
>
> The DPDK header file rte_altivec.h takes care of undefining "vector",
> so the applications and dependencies are free to define the name "vector".
>
> This is a compatibility breakage for applications which were using
> the keyword "vector" for its AltiVec meaning.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> doc/guides/rel_notes/release_22_07.rst | 5 +++++
> lib/eal/ppc/include/rte_altivec.h | 7 +++++++
> 2 files changed, 12 insertions(+)
>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] eal/ppc: undefine AltiVec keyword vector
2022-05-25 11:48 ` Ray Kinsella
@ 2022-05-25 15:40 ` Thomas Monjalon
2022-05-25 18:02 ` Ray Kinsella
0 siblings, 1 reply; 11+ messages in thread
From: Thomas Monjalon @ 2022-05-25 15:40 UTC (permalink / raw)
To: Ray Kinsella; +Cc: dev, david.marchand, techboard, David Christensen
25/05/2022 13:48, Ray Kinsella:
>
> Thomas Monjalon <thomas@monjalon.net> writes:
>
> > The AltiVec header file is defining "vector", except in C++ build.
> > The keyword "vector" may conflict easily.
> > As a rule, it is better to use the alternative keyword "__vector".
> >
> > The DPDK header file rte_altivec.h takes care of undefining "vector",
> > so the applications and dependencies are free to define the name "vector".
> >
> > This is a compatibility breakage for applications which were using
> > the keyword "vector" for its AltiVec meaning.
> >
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > ---
> > doc/guides/rel_notes/release_22_07.rst | 5 +++++
> > lib/eal/ppc/include/rte_altivec.h | 7 +++++++
> > 2 files changed, 12 insertions(+)
> >
>
> Acked-by: Ray Kinsella <mdr@ashroe.eu>
Just to make sure, we are all OK to break compatibility of rte_altivec.h?
It means the keyword vector is not available anymore with this #include.
Please confirm it is OK to merge in DPDK 22.07.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] eal/ppc: undefine AltiVec keyword vector
2022-05-25 15:40 ` Thomas Monjalon
@ 2022-05-25 18:02 ` Ray Kinsella
2022-05-25 18:34 ` Tyler Retzlaff
0 siblings, 1 reply; 11+ messages in thread
From: Ray Kinsella @ 2022-05-25 18:02 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev, david.marchand, techboard, David Christensen
Thomas Monjalon <thomas@monjalon.net> writes:
> 25/05/2022 13:48, Ray Kinsella:
>>
>> Thomas Monjalon <thomas@monjalon.net> writes:
>>
>> > The AltiVec header file is defining "vector", except in C++ build.
>> > The keyword "vector" may conflict easily.
>> > As a rule, it is better to use the alternative keyword "__vector".
>> >
>> > The DPDK header file rte_altivec.h takes care of undefining "vector",
>> > so the applications and dependencies are free to define the name "vector".
>> >
>> > This is a compatibility breakage for applications which were using
>> > the keyword "vector" for its AltiVec meaning.
>> >
>> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>> > ---
>> > doc/guides/rel_notes/release_22_07.rst | 5 +++++
>> > lib/eal/ppc/include/rte_altivec.h | 7 +++++++
>> > 2 files changed, 12 insertions(+)
>> >
>>
>> Acked-by: Ray Kinsella <mdr@ashroe.eu>
>
> Just to make sure, we are all OK to break compatibility of rte_altivec.h?
> It means the keyword vector is not available anymore with this #include.
> Please confirm it is OK to merge in DPDK 22.07.
I did think about it yes ;-).
I can't see how it would break the ABI in the short term.
And it makes sense to preclude this keyword in the long term.
So I ack'ed - did I miss something?
--
Regards, Ray K
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] eal/ppc: undefine AltiVec keyword vector
2022-05-25 18:02 ` Ray Kinsella
@ 2022-05-25 18:34 ` Tyler Retzlaff
2022-05-26 10:18 ` Thomas Monjalon
0 siblings, 1 reply; 11+ messages in thread
From: Tyler Retzlaff @ 2022-05-25 18:34 UTC (permalink / raw)
To: Ray Kinsella
Cc: Thomas Monjalon, dev, david.marchand, techboard, David Christensen
On Wed, May 25, 2022 at 07:02:52PM +0100, Ray Kinsella wrote:
>
> Thomas Monjalon <thomas@monjalon.net> writes:
>
> > 25/05/2022 13:48, Ray Kinsella:
> >>
> >> Thomas Monjalon <thomas@monjalon.net> writes:
> >>
> >> > The AltiVec header file is defining "vector", except in C++ build.
> >> > The keyword "vector" may conflict easily.
> >> > As a rule, it is better to use the alternative keyword "__vector".
> >> >
> >> > The DPDK header file rte_altivec.h takes care of undefining "vector",
> >> > so the applications and dependencies are free to define the name "vector".
> >> >
> >> > This is a compatibility breakage for applications which were using
> >> > the keyword "vector" for its AltiVec meaning.
> >> >
> >> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> >> > ---
> >> > doc/guides/rel_notes/release_22_07.rst | 5 +++++
> >> > lib/eal/ppc/include/rte_altivec.h | 7 +++++++
> >> > 2 files changed, 12 insertions(+)
> >> >
> >>
> >> Acked-by: Ray Kinsella <mdr@ashroe.eu>
> >
> > Just to make sure, we are all OK to break compatibility of rte_altivec.h?
> > It means the keyword vector is not available anymore with this #include.
> > Please confirm it is OK to merge in DPDK 22.07.
>
> I did think about it yes ;-).
> I can't see how it would break the ABI in the short term.
> And it makes sense to preclude this keyword in the long term.
>
> So I ack'ed - did I miss something?
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
double ack, impact of break is understood as follows.
* this is not an issue with abi it is an issue with api.
* the break will cause a compile failure, the action to resolve is to
replace vector with __vector.
>
>
> --
> Regards, Ray K
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] eal/ppc: undefine AltiVec keyword vector
2022-05-25 18:34 ` Tyler Retzlaff
@ 2022-05-26 10:18 ` Thomas Monjalon
2022-05-26 11:02 ` Ray Kinsella
0 siblings, 1 reply; 11+ messages in thread
From: Thomas Monjalon @ 2022-05-26 10:18 UTC (permalink / raw)
To: Ray Kinsella, Tyler Retzlaff
Cc: dev, david.marchand, techboard, David Christensen
25/05/2022 20:34, Tyler Retzlaff:
> On Wed, May 25, 2022 at 07:02:52PM +0100, Ray Kinsella wrote:
> > Thomas Monjalon <thomas@monjalon.net> writes:
> > > 25/05/2022 13:48, Ray Kinsella:
> > >> Thomas Monjalon <thomas@monjalon.net> writes:
> > >>
> > >> > The AltiVec header file is defining "vector", except in C++ build.
> > >> > The keyword "vector" may conflict easily.
> > >> > As a rule, it is better to use the alternative keyword "__vector".
> > >> >
> > >> > The DPDK header file rte_altivec.h takes care of undefining "vector",
> > >> > so the applications and dependencies are free to define the name "vector".
> > >> >
> > >> > This is a compatibility breakage for applications which were using
> > >> > the keyword "vector" for its AltiVec meaning.
> > >> >
> > >> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > >> > ---
> > >> > doc/guides/rel_notes/release_22_07.rst | 5 +++++
> > >> > lib/eal/ppc/include/rte_altivec.h | 7 +++++++
> > >> > 2 files changed, 12 insertions(+)
> > >> >
> > >>
> > >> Acked-by: Ray Kinsella <mdr@ashroe.eu>
> > >
> > > Just to make sure, we are all OK to break compatibility of rte_altivec.h?
> > > It means the keyword vector is not available anymore with this #include.
> > > Please confirm it is OK to merge in DPDK 22.07.
> >
> > I did think about it yes ;-).
> > I can't see how it would break the ABI in the short term.
> > And it makes sense to preclude this keyword in the long term.
> >
> > So I ack'ed - did I miss something?
>
> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
>
> double ack, impact of break is understood as follows.
>
> * this is not an issue with abi it is an issue with api.
> * the break will cause a compile failure, the action to resolve is to
> replace vector with __vector.
Exactly
I'll wait few days or acks from the techboard, and will apply.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] eal/ppc: undefine AltiVec keyword vector
2022-05-26 10:18 ` Thomas Monjalon
@ 2022-05-26 11:02 ` Ray Kinsella
2022-06-01 15:04 ` Thomas Monjalon
0 siblings, 1 reply; 11+ messages in thread
From: Ray Kinsella @ 2022-05-26 11:02 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Tyler Retzlaff, dev, david.marchand, techboard, David Christensen
Thomas Monjalon <thomas@monjalon.net> writes:
> 25/05/2022 20:34, Tyler Retzlaff:
>> On Wed, May 25, 2022 at 07:02:52PM +0100, Ray Kinsella wrote:
>> > Thomas Monjalon <thomas@monjalon.net> writes:
>> > > 25/05/2022 13:48, Ray Kinsella:
>> > >> Thomas Monjalon <thomas@monjalon.net> writes:
>> > >>
>> > >> > The AltiVec header file is defining "vector", except in C++ build.
>> > >> > The keyword "vector" may conflict easily.
>> > >> > As a rule, it is better to use the alternative keyword "__vector".
>> > >> >
>> > >> > The DPDK header file rte_altivec.h takes care of undefining "vector",
>> > >> > so the applications and dependencies are free to define the name "vector".
>> > >> >
>> > >> > This is a compatibility breakage for applications which were using
>> > >> > the keyword "vector" for its AltiVec meaning.
>> > >> >
>> > >> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>> > >> > ---
>> > >> > doc/guides/rel_notes/release_22_07.rst | 5 +++++
>> > >> > lib/eal/ppc/include/rte_altivec.h | 7 +++++++
>> > >> > 2 files changed, 12 insertions(+)
>> > >> >
>> > >>
>> > >> Acked-by: Ray Kinsella <mdr@ashroe.eu>
>> > >
>> > > Just to make sure, we are all OK to break compatibility of rte_altivec.h?
>> > > It means the keyword vector is not available anymore with this #include.
>> > > Please confirm it is OK to merge in DPDK 22.07.
>> >
>> > I did think about it yes ;-).
>> > I can't see how it would break the ABI in the short term.
>> > And it makes sense to preclude this keyword in the long term.
>> >
>> > So I ack'ed - did I miss something?
>>
>> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
>>
>> double ack, impact of break is understood as follows.
>>
>> * this is not an issue with abi it is an issue with api.
>> * the break will cause a compile failure, the action to resolve is to
>> replace vector with __vector.
>
> Exactly
>
> I'll wait few days or acks from the techboard, and will apply.
+1
--
Regards, Ray K
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] eal/ppc: undefine AltiVec keyword vector
2022-05-26 11:02 ` Ray Kinsella
@ 2022-06-01 15:04 ` Thomas Monjalon
0 siblings, 0 replies; 11+ messages in thread
From: Thomas Monjalon @ 2022-06-01 15:04 UTC (permalink / raw)
To: dev
Cc: Tyler Retzlaff, david.marchand, techboard, David Christensen,
Ray Kinsella
26/05/2022 13:02, Ray Kinsella:
> Thomas Monjalon <thomas@monjalon.net> writes:
> > 25/05/2022 20:34, Tyler Retzlaff:
> >> On Wed, May 25, 2022 at 07:02:52PM +0100, Ray Kinsella wrote:
> >> > Thomas Monjalon <thomas@monjalon.net> writes:
> >> > > 25/05/2022 13:48, Ray Kinsella:
> >> > >> Thomas Monjalon <thomas@monjalon.net> writes:
> >> > >>
> >> > >> > The AltiVec header file is defining "vector", except in C++ build.
> >> > >> > The keyword "vector" may conflict easily.
> >> > >> > As a rule, it is better to use the alternative keyword "__vector".
> >> > >> >
> >> > >> > The DPDK header file rte_altivec.h takes care of undefining "vector",
> >> > >> > so the applications and dependencies are free to define the name "vector".
> >> > >> >
> >> > >> > This is a compatibility breakage for applications which were using
> >> > >> > the keyword "vector" for its AltiVec meaning.
> >> > >> >
> >> > >> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> >> > >> > ---
> >> > >> > doc/guides/rel_notes/release_22_07.rst | 5 +++++
> >> > >> > lib/eal/ppc/include/rte_altivec.h | 7 +++++++
> >> > >> > 2 files changed, 12 insertions(+)
> >> > >> >
> >> > >>
> >> > >> Acked-by: Ray Kinsella <mdr@ashroe.eu>
> >> > >
> >> > > Just to make sure, we are all OK to break compatibility of rte_altivec.h?
> >> > > It means the keyword vector is not available anymore with this #include.
> >> > > Please confirm it is OK to merge in DPDK 22.07.
> >> >
> >> > I did think about it yes ;-).
> >> > I can't see how it would break the ABI in the short term.
> >> > And it makes sense to preclude this keyword in the long term.
> >> >
> >> > So I ack'ed - did I miss something?
> >>
> >> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
> >>
> >> double ack, impact of break is understood as follows.
> >>
> >> * this is not an issue with abi it is an issue with api.
> >> * the break will cause a compile failure, the action to resolve is to
> >> replace vector with __vector.
> >
> > Exactly
> >
> > I'll wait few days or acks from the techboard, and will apply.
>
> +1
Applied
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-06-01 15:04 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-25 9:53 [PATCH] eal/ppc: undefine AltiVec keyword vector Thomas Monjalon
2022-05-25 10:01 ` Tyler Retzlaff
2022-05-25 11:08 ` Ali Alnubani
2022-05-25 11:10 ` Ali Alnubani
2022-05-25 11:48 ` Ray Kinsella
2022-05-25 15:40 ` Thomas Monjalon
2022-05-25 18:02 ` Ray Kinsella
2022-05-25 18:34 ` Tyler Retzlaff
2022-05-26 10:18 ` Thomas Monjalon
2022-05-26 11:02 ` Ray Kinsella
2022-06-01 15:04 ` Thomas Monjalon
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).