[dpdk-stable] patch 'net/mlx5: fix build on PPC64' has been queued to LTS release 17.11.5

Yongseok Koh yskoh at mellanox.com
Fri Nov 30 00:11:37 CET 2018


Hi,

FYI, your patch has been queued to LTS release 17.11.5

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Yongseok

---
>From a8cbfdf37a4d6b207bed3e1825956c8bb9f21499 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas at monjalon.net>
Date: Wed, 7 Nov 2018 17:00:28 +0100
Subject: [PATCH] net/mlx5: fix build on PPC64

[ upstream commit 725f5dd0bfb50192a2d2341d4cc69084c2c4e03d ]

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 at canonical.com>
Suggested-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>
Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
Tested-by: David Wilder <dwilder at us.ibm.com>
Acked-by: Chao Zhu <chaozhu at linux.vnet.ibm.com>
---
 drivers/net/mlx5/mlx5_utils.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_utils.h b/drivers/net/mlx5/mlx5_utils.h
index e48352f37..572296575 100644
--- a/drivers/net/mlx5/mlx5_utils.h
+++ b/drivers/net/mlx5/mlx5_utils.h
@@ -43,6 +43,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)) + \
-- 
2.11.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-29 15:01:49.710766496 -0800
+++ 0103-net-mlx5-fix-build-on-PPC64.patch	2018-11-29 15:01:45.273961000 -0800
@@ -1,8 +1,10 @@
-From 725f5dd0bfb50192a2d2341d4cc69084c2c4e03d Mon Sep 17 00:00:00 2001
+From a8cbfdf37a4d6b207bed3e1825956c8bb9f21499 Mon Sep 17 00:00:00 2001
 From: Thomas Monjalon <thomas at monjalon.net>
 Date: Wed, 7 Nov 2018 17:00:28 +0100
 Subject: [PATCH] net/mlx5: fix build on PPC64
 
+[ upstream commit 725f5dd0bfb50192a2d2341d4cc69084c2c4e03d ]
+
 The AltiVec header file breaks boolean type:
 
 error: incompatible types when initializing type
@@ -25,10 +27,10 @@
  1 file changed, 10 insertions(+)
 
 diff --git a/drivers/net/mlx5/mlx5_utils.h b/drivers/net/mlx5/mlx5_utils.h
-index 886f60e61..97092c749 100644
+index e48352f37..572296575 100644
 --- a/drivers/net/mlx5/mlx5_utils.h
 +++ b/drivers/net/mlx5/mlx5_utils.h
-@@ -15,6 +15,16 @@
+@@ -43,6 +43,16 @@
  
  #include "mlx5_defs.h"
  


More information about the stable mailing list