summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Monjalon <thomas@monjalon.net>2018-11-07 17:00:28 +0100
committerFerruh Yigit <ferruh.yigit@intel.com>2018-11-14 00:35:53 +0100
commit725f5dd0bfb50192a2d2341d4cc69084c2c4e03d (patch)
tree5f0e998b647a282f2b2ae48537eb488d0a9d950f
parentba46f5e60f03fdc357e5fcbc370eb2812c3120ff (diff)
downloaddpdk-725f5dd0bfb50192a2d2341d4cc69084c2c4e03d.zip
dpdk-725f5dd0bfb50192a2d2341d4cc69084c2c4e03d.tar.gz
dpdk-725f5dd0bfb50192a2d2341d4cc69084c2c4e03d.tar.xz
net/mlx5: fix build on PPC64
The AltiVec header file breaks boolean type: error: incompatible types when initializing type '__vector _bool int' {aka '_vector(4) __bool int'} using type 'int' If __APPLE_ALTIVEC__ is defined, then bool type is redefined and conflicts with stdbool.h. There is no good solution to fix it for the whole project without breaking something else, so a workaround is inserted in mlx5 PMD. This workaround is not compatible with C++ but there is no C++ in DPDK. Suggested-by: Christian Ehrhardt <christian.ehrhardt@canonical.com> Suggested-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Tested-by: David Wilder <dwilder@us.ibm.com> Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
-rw-r--r--drivers/net/mlx5/mlx5_utils.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/mlx5/mlx5_utils.h b/drivers/net/mlx5/mlx5_utils.h
index 886f60e..97092c7 100644
--- a/drivers/net/mlx5/mlx5_utils.h
+++ b/drivers/net/mlx5/mlx5_utils.h
@@ -15,6 +15,16 @@
#include "mlx5_defs.h"
+/*
+ * Compilation workaround for PPC64 when AltiVec is fully enabled, e.g. std=c11.
+ * Otherwise there would be a type conflict between stdbool and altivec.
+ */
+#if defined(__PPC64__) && !defined(__APPLE_ALTIVEC__)
+#undef bool
+/* redefine as in stdbool.h */
+#define bool _Bool
+#endif
+
/* Bit-field manipulation. */
#define BITFIELD_DECLARE(bf, type, size) \
type bf[(((size_t)(size) / (sizeof(type) * CHAR_BIT)) + \