* [dpdk-dev] [PATCH] rte_trace: fix build on PPC64
@ 2020-04-27 21:58 Thinh Tran
2020-04-28 7:57 ` Jerin Jacob
0 siblings, 1 reply; 6+ messages in thread
From: Thinh Tran @ 2020-04-27 21:58 UTC (permalink / raw)
To: dev; +Cc: drc, Thinh Tran
The AltiVec header file breaks boolean type:
In file included from ../lib/librte_mempool/rte_mempool_trace_fp.h:18:0,
from ../lib/librte_mempool/rte_mempool.h:54,
from ../lib/librte_mbuf/rte_mbuf.h:38,
from ../lib/librte_net/rte_ether.h:23,
from ../drivers/common/mlx5/mlx5_nl.h:10,
from ../drivers/common/mlx5/mlx5_nl.c:23:
../lib/librte_eal/include/rte_trace_point.h: In function
‘__rte_trace_point_fp_is_enabled’:
../lib/librte_eal/include/rte_trace_point.h:226:9: error: incompatible
types when returning type ‘int’ but ‘__vector __bool int {aka
__vector(4) __bool int}’ was expected
return false;
This is the same as
https://git.dpdk.org/dpdk/commit/?id=725f5dd
and yet, there is no better solution for it
Signed-off-by: Thinh Tran <thinhtr@linux.vnet.ibm.com>
---
lib/librte_eal/include/rte_trace_point.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/lib/librte_eal/include/rte_trace_point.h b/lib/librte_eal/include/rte_trace_point.h
index 4d956ec16..2ede9e3ba 100644
--- a/lib/librte_eal/include/rte_trace_point.h
+++ b/lib/librte_eal/include/rte_trace_point.h
@@ -26,6 +26,12 @@ extern "C" {
#include <rte_common.h>
#include <rte_compat.h>
+#if defined(__PPC64__) && !defined(__APPLE_ALTIVEC__)
+#undef bool
+/* redefine as in stdbool.h */
+#define bool _Bool
+#endif
+
/** The tracepoint object. */
typedef uint64_t rte_trace_point_t;
--
2.17.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] [PATCH] rte_trace: fix build on PPC64
2020-04-27 21:58 [dpdk-dev] [PATCH] rte_trace: fix build on PPC64 Thinh Tran
@ 2020-04-28 7:57 ` Jerin Jacob
2020-04-28 8:52 ` David Marchand
2020-04-28 15:01 ` Thinh Tran
0 siblings, 2 replies; 6+ messages in thread
From: Jerin Jacob @ 2020-04-28 7:57 UTC (permalink / raw)
To: Thinh Tran; +Cc: dpdk-dev, David Christensen
On Tue, Apr 28, 2020 at 3:29 AM Thinh Tran <thinhtr@linux.vnet.ibm.com> wrote:
>
> The AltiVec header file breaks boolean type:
>
> In file included from ../lib/librte_mempool/rte_mempool_trace_fp.h:18:0,
> from ../lib/librte_mempool/rte_mempool.h:54,
> from ../lib/librte_mbuf/rte_mbuf.h:38,
> from ../lib/librte_net/rte_ether.h:23,
> from ../drivers/common/mlx5/mlx5_nl.h:10,
> from ../drivers/common/mlx5/mlx5_nl.c:23:
> ../lib/librte_eal/include/rte_trace_point.h: In function
> ‘__rte_trace_point_fp_is_enabled’:
> ../lib/librte_eal/include/rte_trace_point.h:226:9: error: incompatible
> types when returning type ‘int’ but ‘__vector __bool int {aka
> __vector(4) __bool int}’ was expected
> return false;
>
> This is the same as
> https://git.dpdk.org/dpdk/commit/?id=725f5dd
>
> and yet, there is no better solution for it
>
> Signed-off-by: Thinh Tran <thinhtr@linux.vnet.ibm.com>
> ---
> lib/librte_eal/include/rte_trace_point.h | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/lib/librte_eal/include/rte_trace_point.h b/lib/librte_eal/include/rte_trace_point.h
> index 4d956ec16..2ede9e3ba 100644
> --- a/lib/librte_eal/include/rte_trace_point.h
> +++ b/lib/librte_eal/include/rte_trace_point.h
> @@ -26,6 +26,12 @@ extern "C" {
> #include <rte_common.h>
> #include <rte_compat.h>
>
> +#if defined(__PPC64__) && !defined(__APPLE_ALTIVEC__)
> +#undef bool
> +/* redefine as in stdbool.h */
> +#define bool _Bool
> +#endif
NACK.
Please move the fix to rte_common.h or similar as it not specific to trace.
if you do so, the following hack also not need.
https://git.dpdk.org/dpdk/commit/?id=725f5dd
> +
> /** The tracepoint object. */
> typedef uint64_t rte_trace_point_t;
>
> --
> 2.17.1
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] [PATCH] rte_trace: fix build on PPC64
2020-04-28 7:57 ` Jerin Jacob
@ 2020-04-28 8:52 ` David Marchand
2020-04-28 15:01 ` Thinh Tran
1 sibling, 0 replies; 6+ messages in thread
From: David Marchand @ 2020-04-28 8:52 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Thinh Tran, dpdk-dev, David Christensen
On Tue, Apr 28, 2020 at 9:58 AM Jerin Jacob <jerinjacobk@gmail.com> wrote:
>
> On Tue, Apr 28, 2020 at 3:29 AM Thinh Tran <thinhtr@linux.vnet.ibm.com> wrote:
> >
> > The AltiVec header file breaks boolean type:
> >
> > In file included from ../lib/librte_mempool/rte_mempool_trace_fp.h:18:0,
> > from ../lib/librte_mempool/rte_mempool.h:54,
> > from ../lib/librte_mbuf/rte_mbuf.h:38,
> > from ../lib/librte_net/rte_ether.h:23,
> > from ../drivers/common/mlx5/mlx5_nl.h:10,
> > from ../drivers/common/mlx5/mlx5_nl.c:23:
> > ../lib/librte_eal/include/rte_trace_point.h: In function
> > ‘__rte_trace_point_fp_is_enabled’:
> > ../lib/librte_eal/include/rte_trace_point.h:226:9: error: incompatible
> > types when returning type ‘int’ but ‘__vector __bool int {aka
> > __vector(4) __bool int}’ was expected
> > return false;
> >
> > This is the same as
> > https://git.dpdk.org/dpdk/commit/?id=725f5dd
> >
> > and yet, there is no better solution for it
> >
> > Signed-off-by: Thinh Tran <thinhtr@linux.vnet.ibm.com>
> > ---
> > lib/librte_eal/include/rte_trace_point.h | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/lib/librte_eal/include/rte_trace_point.h b/lib/librte_eal/include/rte_trace_point.h
> > index 4d956ec16..2ede9e3ba 100644
> > --- a/lib/librte_eal/include/rte_trace_point.h
> > +++ b/lib/librte_eal/include/rte_trace_point.h
> > @@ -26,6 +26,12 @@ extern "C" {
> > #include <rte_common.h>
> > #include <rte_compat.h>
> >
> > +#if defined(__PPC64__) && !defined(__APPLE_ALTIVEC__)
> > +#undef bool
> > +/* redefine as in stdbool.h */
> > +#define bool _Bool
> > +#endif
>
> NACK.
>
> Please move the fix to rte_common.h or similar as it not specific to trace.
> if you do so, the following hack also not need.
> https://git.dpdk.org/dpdk/commit/?id=725f5dd
+1
--
David Marchand
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] [PATCH] rte_trace: fix build on PPC64
2020-04-28 7:57 ` Jerin Jacob
2020-04-28 8:52 ` David Marchand
@ 2020-04-28 15:01 ` Thinh Tran
2020-04-28 15:04 ` David Marchand
1 sibling, 1 reply; 6+ messages in thread
From: Thinh Tran @ 2020-04-28 15:01 UTC (permalink / raw)
To: Jerin Jacob; +Cc: dpdk-dev, David Christensen
Agreed, this is not rte_trace issue. Moving to rte_common.h does not
work neither, because altivec.h is included after and redefine bool
This conflict happens on PPC64, I'll create a different patch.
Thanks,
Thinh Tran
On 4/28/2020 2:57 AM, Jerin Jacob wrote:
> On Tue, Apr 28, 2020 at 3:29 AM Thinh Tran <thinhtr@linux.vnet.ibm.com> wrote:
>>
>> The AltiVec header file breaks boolean type:
>>
>> In file included from ../lib/librte_mempool/rte_mempool_trace_fp.h:18:0,
>> from ../lib/librte_mempool/rte_mempool.h:54,
>> from ../lib/librte_mbuf/rte_mbuf.h:38,
>> from ../lib/librte_net/rte_ether.h:23,
>> from ../drivers/common/mlx5/mlx5_nl.h:10,
>> from ../drivers/common/mlx5/mlx5_nl.c:23:
>> ../lib/librte_eal/include/rte_trace_point.h: In function
>> ‘__rte_trace_point_fp_is_enabled’:
>> ../lib/librte_eal/include/rte_trace_point.h:226:9: error: incompatible
>> types when returning type ‘int’ but ‘__vector __bool int {aka
>> __vector(4) __bool int}’ was expected
>> return false;
>>
>> This is the same as
>> https://git.dpdk.org/dpdk/commit/?id=725f5dd
>>
>> and yet, there is no better solution for it
>>
>> Signed-off-by: Thinh Tran <thinhtr@linux.vnet.ibm.com>
>> ---
>> lib/librte_eal/include/rte_trace_point.h | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/lib/librte_eal/include/rte_trace_point.h b/lib/librte_eal/include/rte_trace_point.h
>> index 4d956ec16..2ede9e3ba 100644
>> --- a/lib/librte_eal/include/rte_trace_point.h
>> +++ b/lib/librte_eal/include/rte_trace_point.h
>> @@ -26,6 +26,12 @@ extern "C" {
>> #include <rte_common.h>
>> #include <rte_compat.h>
>>
>> +#if defined(__PPC64__) && !defined(__APPLE_ALTIVEC__)
>> +#undef bool
>> +/* redefine as in stdbool.h */
>> +#define bool _Bool
>> +#endif
>
> NACK.
>
> Please move the fix to rte_common.h or similar as it not specific to trace.
> if you do so, the following hack also not need.
> https://git.dpdk.org/dpdk/commit/?id=725f5dd
>
>> +
>> /** The tracepoint object. */
>> typedef uint64_t rte_trace_point_t;
>>
>> --
>> 2.17.1
>>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] [PATCH] rte_trace: fix build on PPC64
2020-04-28 15:01 ` Thinh Tran
@ 2020-04-28 15:04 ` David Marchand
2020-04-28 15:26 ` Thinh Tran
0 siblings, 1 reply; 6+ messages in thread
From: David Marchand @ 2020-04-28 15:04 UTC (permalink / raw)
To: Thinh Tran; +Cc: Jerin Jacob, dpdk-dev, David Christensen
On Tue, Apr 28, 2020 at 5:02 PM Thinh Tran <thinhtr@linux.vnet.ibm.com> wrote:
>
> Agreed, this is not rte_trace issue. Moving to rte_common.h does not
> work neither, because altivec.h is included after and redefine bool
> This conflict happens on PPC64, I'll create a different patch.
Please look at Ori patch.
Thanks.
http://patchwork.dpdk.org/patch/69426/
--
David Marchand
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] [PATCH] rte_trace: fix build on PPC64
2020-04-28 15:04 ` David Marchand
@ 2020-04-28 15:26 ` Thinh Tran
0 siblings, 0 replies; 6+ messages in thread
From: Thinh Tran @ 2020-04-28 15:26 UTC (permalink / raw)
To: David Marchand; +Cc: Jerin Jacob, dpdk-dev, David Christensen
I looked at it, but I have a simpler patch below that can resolve the
conflict, including after removing previous patches in mlx4/mlx5
Thanks,
Thinh Tran
diff --git a/lib/librte_eal/ppc/include/rte_memcpy.h
b/lib/librte_eal/ppc/include/rte_memcpy.h
index 25311ba1d..abeede231 100644
--- a/lib/librte_eal/ppc/include/rte_memcpy.h
+++ b/lib/librte_eal/ppc/include/rte_memcpy.h
@@ -11,6 +11,10 @@
/*To include altivec.h, GCC version must >= 4.8 */
#include <altivec.h>
+/* redefine as in stdbool.h */
+#undef bool
+#define bool _Bool
+
#ifdef __cplusplus
extern "C" {
#endif
On 4/28/2020 10:04 AM, David Marchand wrote:
> On Tue, Apr 28, 2020 at 5:02 PM Thinh Tran <thinhtr@linux.vnet.ibm.com> wrote:
>>
>> Agreed, this is not rte_trace issue. Moving to rte_common.h does not
>> work neither, because altivec.h is included after and redefine bool
>> This conflict happens on PPC64, I'll create a different patch.
>
> Please look at Ori patch.
> Thanks.
>
> http://patchwork.dpdk.org/patch/69426/
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-04-28 15:26 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-27 21:58 [dpdk-dev] [PATCH] rte_trace: fix build on PPC64 Thinh Tran
2020-04-28 7:57 ` Jerin Jacob
2020-04-28 8:52 ` David Marchand
2020-04-28 15:01 ` Thinh Tran
2020-04-28 15:04 ` David Marchand
2020-04-28 15:26 ` Thinh Tran
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).