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 <thin...@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 <thin...@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