DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/2] mlx: fix compilation with recent Glibc
@ 2016-06-10 15:09 Adrien Mazarguil
  2016-06-10 15:09 ` [dpdk-dev] [PATCH 2/2] mlx: regenerate autoconf file automatically Adrien Mazarguil
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Adrien Mazarguil @ 2016-06-10 15:09 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

Various BSD ioctl macros are not exposed anymore when _XOPEN_SOURCE is
defined, and linux/if.h now conflicts with net/if.h.

Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
---
 drivers/net/mlx4/Makefile      | 1 +
 drivers/net/mlx4/mlx4.c        | 7 +++----
 drivers/net/mlx5/Makefile      | 1 +
 drivers/net/mlx5/mlx5.h        | 1 -
 drivers/net/mlx5/mlx5_ethdev.c | 7 +++----
 drivers/net/mlx5/mlx5_mac.c    | 1 -
 6 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/drivers/net/mlx4/Makefile b/drivers/net/mlx4/Makefile
index d2f5692..6ec33a6 100644
--- a/drivers/net/mlx4/Makefile
+++ b/drivers/net/mlx4/Makefile
@@ -48,6 +48,7 @@ CFLAGS += -O3
 CFLAGS += -std=gnu99 -Wall -Wextra
 CFLAGS += -g
 CFLAGS += -I.
+CFLAGS += -D_DEFAULT_SOURCE
 CFLAGS += -D_XOPEN_SOURCE=600
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -libverbs
diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index 9ed1491..5000eb1 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -54,7 +54,6 @@
 #include <sys/ioctl.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
-#include <linux/if.h>
 #include <linux/ethtool.h>
 #include <linux/sockios.h>
 #include <fcntl.h>
@@ -4771,7 +4770,7 @@ mlx4_link_update_unlocked(struct rte_eth_dev *dev, int wait_to_complete)
 	memset(&dev_link, 0, sizeof(dev_link));
 	dev_link.link_status = ((ifr.ifr_flags & IFF_UP) &&
 				(ifr.ifr_flags & IFF_RUNNING));
-	ifr.ifr_data = &edata;
+	ifr.ifr_data = (void *)&edata;
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		WARN("ioctl(SIOCETHTOOL, ETHTOOL_GSET) failed: %s",
 		     strerror(errno));
@@ -4930,7 +4929,7 @@ mlx4_dev_get_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 
 	if (mlx4_is_secondary())
 		return -E_RTE_SECONDARY;
-	ifr.ifr_data = &ethpause;
+	ifr.ifr_data = (void *)&ethpause;
 	priv_lock(priv);
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		ret = errno;
@@ -4980,7 +4979,7 @@ mlx4_dev_set_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 
 	if (mlx4_is_secondary())
 		return -E_RTE_SECONDARY;
-	ifr.ifr_data = &ethpause;
+	ifr.ifr_data = (void *)&ethpause;
 	ethpause.autoneg = fc_conf->autoneg;
 	if (((fc_conf->mode & RTE_FC_FULL) == RTE_FC_FULL) ||
 	    (fc_conf->mode & RTE_FC_RX_PAUSE))
diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile
index 92bfa07..a25649b 100644
--- a/drivers/net/mlx5/Makefile
+++ b/drivers/net/mlx5/Makefile
@@ -59,6 +59,7 @@ CFLAGS += -O3
 CFLAGS += -std=gnu99 -Wall -Wextra
 CFLAGS += -g
 CFLAGS += -I.
+CFLAGS += -D_DEFAULT_SOURCE
 CFLAGS += -D_XOPEN_SOURCE=600
 CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -Wno-strict-prototypes
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index 2487662..fb4f95a 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -39,7 +39,6 @@
 #include <limits.h>
 #include <net/if.h>
 #include <netinet/in.h>
-#include <linux/if.h>
 
 /* Verbs header. */
 /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index 36b369e..9a8d1d9 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -44,7 +44,6 @@
 #include <sys/ioctl.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
-#include <linux/if.h>
 #include <linux/ethtool.h>
 #include <linux/sockios.h>
 #include <fcntl.h>
@@ -617,7 +616,7 @@ mlx5_link_update_unlocked(struct rte_eth_dev *dev, int wait_to_complete)
 	memset(&dev_link, 0, sizeof(dev_link));
 	dev_link.link_status = ((ifr.ifr_flags & IFF_UP) &&
 				(ifr.ifr_flags & IFF_RUNNING));
-	ifr.ifr_data = &edata;
+	ifr.ifr_data = (void *)&edata;
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		WARN("ioctl(SIOCETHTOOL, ETHTOOL_GSET) failed: %s",
 		     strerror(errno));
@@ -767,7 +766,7 @@ mlx5_dev_get_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 	if (mlx5_is_secondary())
 		return -E_RTE_SECONDARY;
 
-	ifr.ifr_data = &ethpause;
+	ifr.ifr_data = (void *)&ethpause;
 	priv_lock(priv);
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		ret = errno;
@@ -818,7 +817,7 @@ mlx5_dev_set_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 	if (mlx5_is_secondary())
 		return -E_RTE_SECONDARY;
 
-	ifr.ifr_data = &ethpause;
+	ifr.ifr_data = (void *)&ethpause;
 	ethpause.autoneg = fc_conf->autoneg;
 	if (((fc_conf->mode & RTE_FC_FULL) == RTE_FC_FULL) ||
 	    (fc_conf->mode & RTE_FC_RX_PAUSE))
diff --git a/drivers/net/mlx5/mlx5_mac.c b/drivers/net/mlx5/mlx5_mac.c
index c9cea48..f6b27bb 100644
--- a/drivers/net/mlx5/mlx5_mac.c
+++ b/drivers/net/mlx5/mlx5_mac.c
@@ -38,7 +38,6 @@
 #include <inttypes.h>
 #include <errno.h>
 #include <netinet/in.h>
-#include <linux/if.h>
 #include <sys/ioctl.h>
 #include <arpa/inet.h>
 
-- 
2.1.4

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH 2/2] mlx: regenerate autoconf file automatically
  2016-06-10 15:09 [dpdk-dev] [PATCH 1/2] mlx: fix compilation with recent Glibc Adrien Mazarguil
@ 2016-06-10 15:09 ` Adrien Mazarguil
  2016-06-13 12:53 ` [dpdk-dev] [PATCH 1/2] mlx: fix compilation with recent Glibc Bruce Richardson
  2016-06-14  9:22 ` [dpdk-dev] [PATCH] mlx: fix compilation with older Glibc Adrien Mazarguil
  2 siblings, 0 replies; 10+ messages in thread
From: Adrien Mazarguil @ 2016-06-10 15:09 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

Mellanox PMDs must be rebuilt if a Verbs update would cause the autoconf
file to differ.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
---
 drivers/net/mlx4/Makefile | 13 +++++++++++--
 drivers/net/mlx5/Makefile | 13 +++++++++++--
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/drivers/net/mlx4/Makefile b/drivers/net/mlx4/Makefile
index 6ec33a6..ca6e483 100644
--- a/drivers/net/mlx4/Makefile
+++ b/drivers/net/mlx4/Makefile
@@ -99,7 +99,9 @@ ifndef V
 AUTOCONF_OUTPUT := >/dev/null
 endif
 
-mlx4_autoconf.h: $(RTE_SDK)/scripts/auto-config-h.sh
+mlx4_autoconf.h.new: FORCE
+
+mlx4_autoconf.h.new: $(RTE_SDK)/scripts/auto-config-h.sh
 	$Q $(RM) -f -- '$@'
 	$Q sh -- '$<' '$@' \
 		RSS_SUPPORT \
@@ -119,9 +121,16 @@ mlx4_autoconf.h: $(RTE_SDK)/scripts/auto-config-h.sh
 		enum IBV_EXP_QP_BURST_CREATE_DISABLE_ETH_LOOPBACK \
 		$(AUTOCONF_OUTPUT)
 
+# Create mlx4_autoconf.h or update it in case it differs from the new one.
+
+mlx4_autoconf.h: mlx4_autoconf.h.new
+	$Q [ -f '$@' ] && \
+		cmp '$<' '$@' $(AUTOCONF_OUTPUT) || \
+		mv '$<' '$@'
+
 mlx4.o: mlx4_autoconf.h
 
 clean_mlx4: FORCE
-	$Q rm -f -- mlx4_autoconf.h
+	$Q rm -f -- mlx4_autoconf.h mlx4_autoconf.h.new
 
 clean: clean_mlx4
diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile
index a25649b..81061fe 100644
--- a/drivers/net/mlx5/Makefile
+++ b/drivers/net/mlx5/Makefile
@@ -107,7 +107,9 @@ ifndef V
 AUTOCONF_OUTPUT := >/dev/null
 endif
 
-mlx5_autoconf.h: $(RTE_SDK)/scripts/auto-config-h.sh
+mlx5_autoconf.h.new: FORCE
+
+mlx5_autoconf.h.new: $(RTE_SDK)/scripts/auto-config-h.sh
 	$Q $(RM) -f -- '$@'
 	$Q sh -- '$<' '$@' \
 		HAVE_EXP_QUERY_DEVICE \
@@ -148,9 +150,16 @@ mlx5_autoconf.h: $(RTE_SDK)/scripts/auto-config-h.sh
 		enum IBV_EXP_RECEIVE_WQ_CVLAN_INSERTION \
 		$(AUTOCONF_OUTPUT)
 
+# Create mlx5_autoconf.h or update it in case it differs from the new one.
+
+mlx5_autoconf.h: mlx5_autoconf.h.new
+	$Q [ -f '$@' ] && \
+		cmp '$<' '$@' $(AUTOCONF_OUTPUT) || \
+		mv '$<' '$@'
+
 $(SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD):.c=.o): mlx5_autoconf.h
 
 clean_mlx5: FORCE
-	$Q rm -f -- mlx5_autoconf.h
+	$Q rm -f -- mlx5_autoconf.h mlx5_autoconf.h.new
 
 clean: clean_mlx5
-- 
2.1.4

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] mlx: fix compilation with recent Glibc
  2016-06-10 15:09 [dpdk-dev] [PATCH 1/2] mlx: fix compilation with recent Glibc Adrien Mazarguil
  2016-06-10 15:09 ` [dpdk-dev] [PATCH 2/2] mlx: regenerate autoconf file automatically Adrien Mazarguil
@ 2016-06-13 12:53 ` Bruce Richardson
  2016-06-13 13:08   ` Bruce Richardson
  2016-06-14  9:22 ` [dpdk-dev] [PATCH] mlx: fix compilation with older Glibc Adrien Mazarguil
  2 siblings, 1 reply; 10+ messages in thread
From: Bruce Richardson @ 2016-06-13 12:53 UTC (permalink / raw)
  To: Adrien Mazarguil; +Cc: dev

On Fri, Jun 10, 2016 at 05:09:31PM +0200, Adrien Mazarguil wrote:
> Various BSD ioctl macros are not exposed anymore when _XOPEN_SOURCE is
> defined, and linux/if.h now conflicts with net/if.h.
> 
> Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] mlx: fix compilation with recent Glibc
  2016-06-13 12:53 ` [dpdk-dev] [PATCH 1/2] mlx: fix compilation with recent Glibc Bruce Richardson
@ 2016-06-13 13:08   ` Bruce Richardson
  0 siblings, 0 replies; 10+ messages in thread
From: Bruce Richardson @ 2016-06-13 13:08 UTC (permalink / raw)
  To: Adrien Mazarguil; +Cc: dev

On Mon, Jun 13, 2016 at 01:53:28PM +0100, Bruce Richardson wrote:
> On Fri, Jun 10, 2016 at 05:09:31PM +0200, Adrien Mazarguil wrote:
> > Various BSD ioctl macros are not exposed anymore when _XOPEN_SOURCE is
> > defined, and linux/if.h now conflicts with net/if.h.
> > 
> > Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
> > Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> 
Patchset applied to dpdk-next-net/rel_16_07

/Bruce

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH] mlx: fix compilation with older Glibc
  2016-06-10 15:09 [dpdk-dev] [PATCH 1/2] mlx: fix compilation with recent Glibc Adrien Mazarguil
  2016-06-10 15:09 ` [dpdk-dev] [PATCH 2/2] mlx: regenerate autoconf file automatically Adrien Mazarguil
  2016-06-13 12:53 ` [dpdk-dev] [PATCH 1/2] mlx: fix compilation with recent Glibc Bruce Richardson
@ 2016-06-14  9:22 ` Adrien Mazarguil
  2016-06-17 16:29   ` Ferruh Yigit
  2 siblings, 1 reply; 10+ messages in thread
From: Adrien Mazarguil @ 2016-06-14  9:22 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

A missing define in the previous patch causes additional compilation
issues.

Fixes: 3025206f5060 ("mlx: fix compilation with recent Glibc")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
---
 drivers/net/mlx4/Makefile | 1 +
 drivers/net/mlx5/Makefile | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/net/mlx4/Makefile b/drivers/net/mlx4/Makefile
index ca6e483..efed953 100644
--- a/drivers/net/mlx4/Makefile
+++ b/drivers/net/mlx4/Makefile
@@ -48,6 +48,7 @@ CFLAGS += -O3
 CFLAGS += -std=gnu99 -Wall -Wextra
 CFLAGS += -g
 CFLAGS += -I.
+CFLAGS += -D_BSD_SOURCE
 CFLAGS += -D_DEFAULT_SOURCE
 CFLAGS += -D_XOPEN_SOURCE=600
 CFLAGS += $(WERROR_FLAGS)
diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile
index 283d8eb..66687e8 100644
--- a/drivers/net/mlx5/Makefile
+++ b/drivers/net/mlx5/Makefile
@@ -60,6 +60,7 @@ CFLAGS += -O3
 CFLAGS += -std=gnu99 -Wall -Wextra
 CFLAGS += -g
 CFLAGS += -I.
+CFLAGS += -D_BSD_SOURCE
 CFLAGS += -D_DEFAULT_SOURCE
 CFLAGS += -D_XOPEN_SOURCE=600
 CFLAGS += $(WERROR_FLAGS)
-- 
2.1.4

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] mlx: fix compilation with older Glibc
  2016-06-14  9:22 ` [dpdk-dev] [PATCH] mlx: fix compilation with older Glibc Adrien Mazarguil
@ 2016-06-17 16:29   ` Ferruh Yigit
  2016-06-20  9:25     ` Adrien Mazarguil
  0 siblings, 1 reply; 10+ messages in thread
From: Ferruh Yigit @ 2016-06-17 16:29 UTC (permalink / raw)
  To: Adrien Mazarguil, Bruce Richardson; +Cc: dev

On 6/14/2016 10:22 AM, Adrien Mazarguil wrote:
> A missing define in the previous patch causes additional compilation
> issues.
> 
> Fixes: 3025206f5060 ("mlx: fix compilation with recent Glibc")
> 
> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>

"older Glibc" or "recent Glibc" can be very hard to trace from git
history later.

Does it make sense to add glibc version info for the failing ones or
fixed one?

Thanks,
ferruh

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] mlx: fix compilation with older Glibc
  2016-06-17 16:29   ` Ferruh Yigit
@ 2016-06-20  9:25     ` Adrien Mazarguil
  2016-06-20 10:04       ` Bruce Richardson
  0 siblings, 1 reply; 10+ messages in thread
From: Adrien Mazarguil @ 2016-06-20  9:25 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: Bruce Richardson, dev

On Fri, Jun 17, 2016 at 05:29:53PM +0100, Ferruh Yigit wrote:
> On 6/14/2016 10:22 AM, Adrien Mazarguil wrote:
> > A missing define in the previous patch causes additional compilation
> > issues.
> > 
> > Fixes: 3025206f5060 ("mlx: fix compilation with recent Glibc")
> > 
> > Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> 
> "older Glibc" or "recent Glibc" can be very hard to trace from git
> history later.

I wasn't sure about the exact version, it appears to be 2.19 and/or 2.20,
where _BSD_SOURCE was modified and subsequently removed.

I suggest squashing this patch into the original broken commit ("mlx: fix
compilation with recent Glibc") if possible, I did not submit a v2 as it is
already applied on dpdk-next-net.

> Does it make sense to add glibc version info for the failing ones or
> fixed one?

Depends if we can modify the first commit. If we do, let's squash them
together before adding version information, otherwise let's modify the
second one only.

I can submit a v2 that overrides both commits or only the second one, tell
me what you think is best.

-- 
Adrien Mazarguil
6WIND

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] mlx: fix compilation with older Glibc
  2016-06-20  9:25     ` Adrien Mazarguil
@ 2016-06-20 10:04       ` Bruce Richardson
  2016-06-20 13:31         ` [dpdk-dev] [PATCH v2] mlx: fix compilation with Glibc 2.20 Adrien Mazarguil
  0 siblings, 1 reply; 10+ messages in thread
From: Bruce Richardson @ 2016-06-20 10:04 UTC (permalink / raw)
  To: Ferruh Yigit, dev, adrien.mazarguil

On Mon, Jun 20, 2016 at 11:25:18AM +0200, Adrien Mazarguil wrote:
> On Fri, Jun 17, 2016 at 05:29:53PM +0100, Ferruh Yigit wrote:
> > On 6/14/2016 10:22 AM, Adrien Mazarguil wrote:
> > > A missing define in the previous patch causes additional compilation
> > > issues.
> > > 
> > > Fixes: 3025206f5060 ("mlx: fix compilation with recent Glibc")
> > > 
> > > Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> > 
> > "older Glibc" or "recent Glibc" can be very hard to trace from git
> > history later.
> 
> I wasn't sure about the exact version, it appears to be 2.19 and/or 2.20,
> where _BSD_SOURCE was modified and subsequently removed.
> 
> I suggest squashing this patch into the original broken commit ("mlx: fix
> compilation with recent Glibc") if possible, I did not submit a v2 as it is
> already applied on dpdk-next-net.
> 
> > Does it make sense to add glibc version info for the failing ones or
> > fixed one?
> 
> Depends if we can modify the first commit. If we do, let's squash them
> together before adding version information, otherwise let's modify the
> second one only.
> 
> I can submit a v2 that overrides both commits or only the second one, tell
> me what you think is best.
> 
> -- 

While I don't like squashing or modifying already-applied commits on the next
tree, since this is for a compilation issue, I may be able to make an exception.

To evaluate it, please send on the proposed updated commit message for the
combined commits. I assume the code to be squashed is as in this V1 patch.

Regards,
/Bruce

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH v2] mlx: fix compilation with Glibc 2.20
  2016-06-20 10:04       ` Bruce Richardson
@ 2016-06-20 13:31         ` Adrien Mazarguil
  2016-06-20 15:24           ` Bruce Richardson
  0 siblings, 1 reply; 10+ messages in thread
From: Adrien Mazarguil @ 2016-06-20 13:31 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Ferruh Yigit, dev

Since _BSD_SOURCE was deprecated in favor of _DEFAULT_SOURCE in Glibc 2.19
and entirely removed in 2.20, various BSD ioctl macros are not exposed
anymore when _XOPEN_SOURCE is defined, and linux/if.h now conflicts with
net/if.h.

Add _DEFAULT_SOURCE and keep _BSD_SOURCE for compatibility with older
versions.

Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
---
 drivers/net/mlx4/Makefile      | 2 ++
 drivers/net/mlx4/mlx4.c        | 7 +++----
 drivers/net/mlx5/Makefile      | 2 ++
 drivers/net/mlx5/mlx5.h        | 1 -
 drivers/net/mlx5/mlx5_ethdev.c | 7 +++----
 drivers/net/mlx5/mlx5_mac.c    | 1 -
 6 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/net/mlx4/Makefile b/drivers/net/mlx4/Makefile
index f3268fb..efed953 100644
--- a/drivers/net/mlx4/Makefile
+++ b/drivers/net/mlx4/Makefile
@@ -48,6 +48,8 @@ CFLAGS += -O3
 CFLAGS += -std=gnu99 -Wall -Wextra
 CFLAGS += -g
 CFLAGS += -I.
+CFLAGS += -D_BSD_SOURCE
+CFLAGS += -D_DEFAULT_SOURCE
 CFLAGS += -D_XOPEN_SOURCE=600
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -libverbs
diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index 9faea6c..6228688 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -54,7 +54,6 @@
 #include <sys/ioctl.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
-#include <linux/if.h>
 #include <linux/ethtool.h>
 #include <linux/sockios.h>
 #include <fcntl.h>
@@ -4771,7 +4770,7 @@ mlx4_link_update_unlocked(struct rte_eth_dev *dev, int wait_to_complete)
 	memset(&dev_link, 0, sizeof(dev_link));
 	dev_link.link_status = ((ifr.ifr_flags & IFF_UP) &&
 				(ifr.ifr_flags & IFF_RUNNING));
-	ifr.ifr_data = &edata;
+	ifr.ifr_data = (void *)&edata;
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		WARN("ioctl(SIOCETHTOOL, ETHTOOL_GSET) failed: %s",
 		     strerror(errno));
@@ -4933,7 +4932,7 @@ mlx4_dev_get_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 
 	if (mlx4_is_secondary())
 		return -E_RTE_SECONDARY;
-	ifr.ifr_data = &ethpause;
+	ifr.ifr_data = (void *)&ethpause;
 	priv_lock(priv);
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		ret = errno;
@@ -4983,7 +4982,7 @@ mlx4_dev_set_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 
 	if (mlx4_is_secondary())
 		return -E_RTE_SECONDARY;
-	ifr.ifr_data = &ethpause;
+	ifr.ifr_data = (void *)&ethpause;
 	ethpause.autoneg = fc_conf->autoneg;
 	if (((fc_conf->mode & RTE_FC_FULL) == RTE_FC_FULL) ||
 	    (fc_conf->mode & RTE_FC_RX_PAUSE))
diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile
index 2711a87..66687e8 100644
--- a/drivers/net/mlx5/Makefile
+++ b/drivers/net/mlx5/Makefile
@@ -60,6 +60,8 @@ CFLAGS += -O3
 CFLAGS += -std=gnu99 -Wall -Wextra
 CFLAGS += -g
 CFLAGS += -I.
+CFLAGS += -D_BSD_SOURCE
+CFLAGS += -D_DEFAULT_SOURCE
 CFLAGS += -D_XOPEN_SOURCE=600
 CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -Wno-strict-prototypes
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index 17d4e6e..8349e5b 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -39,7 +39,6 @@
 #include <limits.h>
 #include <net/if.h>
 #include <netinet/in.h>
-#include <linux/if.h>
 
 /* Verbs header. */
 /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index 32af304..757f8e4 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -44,7 +44,6 @@
 #include <sys/ioctl.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
-#include <linux/if.h>
 #include <linux/ethtool.h>
 #include <linux/sockios.h>
 #include <fcntl.h>
@@ -657,7 +656,7 @@ mlx5_link_update_unlocked(struct rte_eth_dev *dev, int wait_to_complete)
 	memset(&dev_link, 0, sizeof(dev_link));
 	dev_link.link_status = ((ifr.ifr_flags & IFF_UP) &&
 				(ifr.ifr_flags & IFF_RUNNING));
-	ifr.ifr_data = &edata;
+	ifr.ifr_data = (void *)&edata;
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		WARN("ioctl(SIOCETHTOOL, ETHTOOL_GSET) failed: %s",
 		     strerror(errno));
@@ -864,7 +863,7 @@ mlx5_dev_get_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 	if (mlx5_is_secondary())
 		return -E_RTE_SECONDARY;
 
-	ifr.ifr_data = &ethpause;
+	ifr.ifr_data = (void *)&ethpause;
 	priv_lock(priv);
 	if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) {
 		ret = errno;
@@ -915,7 +914,7 @@ mlx5_dev_set_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 	if (mlx5_is_secondary())
 		return -E_RTE_SECONDARY;
 
-	ifr.ifr_data = &ethpause;
+	ifr.ifr_data = (void *)&ethpause;
 	ethpause.autoneg = fc_conf->autoneg;
 	if (((fc_conf->mode & RTE_FC_FULL) == RTE_FC_FULL) ||
 	    (fc_conf->mode & RTE_FC_RX_PAUSE))
diff --git a/drivers/net/mlx5/mlx5_mac.c b/drivers/net/mlx5/mlx5_mac.c
index c9cea48..f6b27bb 100644
--- a/drivers/net/mlx5/mlx5_mac.c
+++ b/drivers/net/mlx5/mlx5_mac.c
@@ -38,7 +38,6 @@
 #include <inttypes.h>
 #include <errno.h>
 #include <netinet/in.h>
-#include <linux/if.h>
 #include <sys/ioctl.h>
 #include <arpa/inet.h>
 
-- 
2.1.4

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH v2] mlx: fix compilation with Glibc 2.20
  2016-06-20 13:31         ` [dpdk-dev] [PATCH v2] mlx: fix compilation with Glibc 2.20 Adrien Mazarguil
@ 2016-06-20 15:24           ` Bruce Richardson
  0 siblings, 0 replies; 10+ messages in thread
From: Bruce Richardson @ 2016-06-20 15:24 UTC (permalink / raw)
  To: Adrien Mazarguil; +Cc: Ferruh Yigit, dev

On Mon, Jun 20, 2016 at 03:31:46PM +0200, Adrien Mazarguil wrote:
> Since _BSD_SOURCE was deprecated in favor of _DEFAULT_SOURCE in Glibc 2.19
> and entirely removed in 2.20, various BSD ioctl macros are not exposed
> anymore when _XOPEN_SOURCE is defined, and linux/if.h now conflicts with
> net/if.h.
> 
> Add _DEFAULT_SOURCE and keep _BSD_SOURCE for compatibility with older
> versions.
> 
> Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>

Applied to dpdk-next-net in place of previous incomplete fix.

/Bruce

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-06-20 15:24 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-10 15:09 [dpdk-dev] [PATCH 1/2] mlx: fix compilation with recent Glibc Adrien Mazarguil
2016-06-10 15:09 ` [dpdk-dev] [PATCH 2/2] mlx: regenerate autoconf file automatically Adrien Mazarguil
2016-06-13 12:53 ` [dpdk-dev] [PATCH 1/2] mlx: fix compilation with recent Glibc Bruce Richardson
2016-06-13 13:08   ` Bruce Richardson
2016-06-14  9:22 ` [dpdk-dev] [PATCH] mlx: fix compilation with older Glibc Adrien Mazarguil
2016-06-17 16:29   ` Ferruh Yigit
2016-06-20  9:25     ` Adrien Mazarguil
2016-06-20 10:04       ` Bruce Richardson
2016-06-20 13:31         ` [dpdk-dev] [PATCH v2] mlx: fix compilation with Glibc 2.20 Adrien Mazarguil
2016-06-20 15:24           ` Bruce Richardson

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).