[dpdk-dev] [PATCH] net/mlx: fix compile errors with ignore pedantic pragma

Adrien Mazarguil adrien.mazarguil at 6wind.com
Mon Sep 19 16:59:59 CEST 2016


Hi Bruce,

On Mon, Sep 19, 2016 at 03:36:54PM +0100, Bruce Richardson wrote:
> With recent gcc versions, e.g. gcc 6.1, compilation of mlx drivers with
> debug enabled produces lots of errors complaining that "pedantic" is
> not a warning level that can be ignored.
> 
> error: ‘-pedantic’ is not an option that controls warnings [-Werror=pragmas]
>  #pragma GCC diagnostic ignored "-pedantic"
>                                  ^~~~~~~~~~~
> 
> These errors can be removed by changing the "-pedantic" to "-Wpedantic".

Nice to have a workaround, I thought they did not keep the option at all.
However after testing:

- It does not seem to work with GCC 4.6 and older, they prefer -pedantic:
  "warning: unknown option after `#pragma GCC diagnostic' kind".

- GCC 4.9 (possibly 5.x as well) does not care, can use either -pedantic or
  -Wpedantic.

- GCC 6 can only supports -Wpedantic.

Note we're working toward removing the need for these #pragma in the first
place as soon as possible, however in the meantime I fear that checking the
GCC version is necessary.

> Fixes: 7fae69eeff13 ("mlx4: new poll mode driver")
> Fixes: 771fa900b73a ("mlx5: introduce new driver for Mellanox ConnectX-4 adapters")
> 
> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> ---
>  drivers/net/mlx4/mlx4.c         | 8 ++++----
>  drivers/net/mlx5/mlx5.c         | 8 ++++----
>  drivers/net/mlx5/mlx5.h         | 8 ++++----
>  drivers/net/mlx5/mlx5_ethdev.c  | 4 ++--
>  drivers/net/mlx5/mlx5_fdir.c    | 8 ++++----
>  drivers/net/mlx5/mlx5_mac.c     | 8 ++++----
>  drivers/net/mlx5/mlx5_mr.c      | 8 ++++----
>  drivers/net/mlx5/mlx5_prm.h     | 4 ++--
>  drivers/net/mlx5/mlx5_rss.c     | 8 ++++----
>  drivers/net/mlx5/mlx5_rxmode.c  | 8 ++++----
>  drivers/net/mlx5/mlx5_rxq.c     | 8 ++++----
>  drivers/net/mlx5/mlx5_rxtx.c    | 8 ++++----
>  drivers/net/mlx5/mlx5_rxtx.h    | 8 ++++----
>  drivers/net/mlx5/mlx5_stats.c   | 4 ++--
>  drivers/net/mlx5/mlx5_trigger.c | 4 ++--
>  drivers/net/mlx5/mlx5_txq.c     | 8 ++++----
>  drivers/net/mlx5/mlx5_vlan.c    | 4 ++--
>  17 files changed, 58 insertions(+), 58 deletions(-)
> 
> diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
> index efe60cf..5bdeac9 100644
> --- a/drivers/net/mlx4/mlx4.c
> +++ b/drivers/net/mlx4/mlx4.c
> @@ -61,16 +61,16 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/verbs.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_ether.h>
>  #include <rte_ethdev.h>
> @@ -87,7 +87,7 @@
>  #include <rte_alarm.h>
>  #include <rte_memory.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* Generated configuration header. */
> diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
> index 7264968..1a0a2be 100644
> --- a/drivers/net/mlx5/mlx5.c
> +++ b/drivers/net/mlx5/mlx5.c
> @@ -43,16 +43,16 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/verbs.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_malloc.h>
>  #include <rte_ethdev.h>
> @@ -60,7 +60,7 @@
>  #include <rte_common.h>
>  #include <rte_kvargs.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5.h"
> diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
> index 3a86609..65241a6 100644
> --- a/drivers/net/mlx5/mlx5.h
> +++ b/drivers/net/mlx5/mlx5.h
> @@ -43,16 +43,16 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/verbs.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_ether.h>
>  #include <rte_ethdev.h>
> @@ -60,7 +60,7 @@
>  #include <rte_interrupts.h>
>  #include <rte_errno.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5_utils.h"
> diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
> index 130e15d..17588a5 100644
> --- a/drivers/net/mlx5/mlx5_ethdev.c
> +++ b/drivers/net/mlx5/mlx5_ethdev.c
> @@ -50,7 +50,7 @@
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_atomic.h>
>  #include <rte_ethdev.h>
> @@ -60,7 +60,7 @@
>  #include <rte_alarm.h>
>  #include <rte_malloc.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5.h"
> diff --git a/drivers/net/mlx5/mlx5_fdir.c b/drivers/net/mlx5/mlx5_fdir.c
> index 73eb00e..070edde 100644
> --- a/drivers/net/mlx5/mlx5_fdir.c
> +++ b/drivers/net/mlx5/mlx5_fdir.c
> @@ -40,23 +40,23 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/verbs.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_ether.h>
>  #include <rte_malloc.h>
>  #include <rte_ethdev.h>
>  #include <rte_common.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5.h"
> diff --git a/drivers/net/mlx5/mlx5_mac.c b/drivers/net/mlx5/mlx5_mac.c
> index f6b27bb..4fcfd3b 100644
> --- a/drivers/net/mlx5/mlx5_mac.c
> +++ b/drivers/net/mlx5/mlx5_mac.c
> @@ -44,22 +44,22 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/verbs.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_ether.h>
>  #include <rte_ethdev.h>
>  #include <rte_common.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5.h"
> diff --git a/drivers/net/mlx5/mlx5_mr.c b/drivers/net/mlx5/mlx5_mr.c
> index 67dfefa..0a36384 100644
> --- a/drivers/net/mlx5/mlx5_mr.c
> +++ b/drivers/net/mlx5/mlx5_mr.c
> @@ -34,20 +34,20 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/verbs.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_mempool.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5.h"
> diff --git a/drivers/net/mlx5/mlx5_prm.h b/drivers/net/mlx5/mlx5_prm.h
> index 5db219b..4383009 100644
> --- a/drivers/net/mlx5/mlx5_prm.h
> +++ b/drivers/net/mlx5/mlx5_prm.h
> @@ -37,11 +37,11 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/mlx5_hw.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* Get CQE owner bit. */
> diff --git a/drivers/net/mlx5/mlx5_rss.c b/drivers/net/mlx5/mlx5_rss.c
> index 639e935..0bed74e 100644
> --- a/drivers/net/mlx5/mlx5_rss.c
> +++ b/drivers/net/mlx5/mlx5_rss.c
> @@ -40,21 +40,21 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/verbs.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_malloc.h>
>  #include <rte_ethdev.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5.h"
> diff --git a/drivers/net/mlx5/mlx5_rxmode.c b/drivers/net/mlx5/mlx5_rxmode.c
> index 8b58555..173e6e8 100644
> --- a/drivers/net/mlx5/mlx5_rxmode.c
> +++ b/drivers/net/mlx5/mlx5_rxmode.c
> @@ -38,20 +38,20 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/verbs.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_ethdev.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5.h"
> diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
> index 29c137c..99027d2 100644
> --- a/drivers/net/mlx5/mlx5_rxq.c
> +++ b/drivers/net/mlx5/mlx5_rxq.c
> @@ -40,25 +40,25 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/verbs.h>
>  #include <infiniband/arch.h>
>  #include <infiniband/mlx5_hw.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_mbuf.h>
>  #include <rte_malloc.h>
>  #include <rte_ethdev.h>
>  #include <rte_common.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5.h"
> diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
> index fce3381..a13cbc7 100644
> --- a/drivers/net/mlx5/mlx5_rxtx.c
> +++ b/drivers/net/mlx5/mlx5_rxtx.c
> @@ -39,18 +39,18 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/verbs.h>
>  #include <infiniband/mlx5_hw.h>
>  #include <infiniband/arch.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_mbuf.h>
>  #include <rte_mempool.h>
> @@ -59,7 +59,7 @@
>  #include <rte_branch_prediction.h>
>  #include <rte_ether.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5.h"
> diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h
> index f6e2cba..952f88c 100644
> --- a/drivers/net/mlx5/mlx5_rxtx.h
> +++ b/drivers/net/mlx5/mlx5_rxtx.h
> @@ -40,22 +40,22 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/verbs.h>
>  #include <infiniband/mlx5_hw.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_mbuf.h>
>  #include <rte_mempool.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5_utils.h"
> diff --git a/drivers/net/mlx5/mlx5_stats.c b/drivers/net/mlx5/mlx5_stats.c
> index 2d3cb51..f2b5781 100644
> --- a/drivers/net/mlx5/mlx5_stats.c
> +++ b/drivers/net/mlx5/mlx5_stats.c
> @@ -33,11 +33,11 @@
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_ethdev.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5.h"
> diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
> index e9b9a29..d4dccd8 100644
> --- a/drivers/net/mlx5/mlx5_trigger.c
> +++ b/drivers/net/mlx5/mlx5_trigger.c
> @@ -33,14 +33,14 @@
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_ether.h>
>  #include <rte_ethdev.h>
>  #include <rte_interrupts.h>
>  #include <rte_alarm.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5.h"
> diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
> index 6fe61c4..476ce79 100644
> --- a/drivers/net/mlx5/mlx5_txq.c
> +++ b/drivers/net/mlx5/mlx5_txq.c
> @@ -40,23 +40,23 @@
>  /* Verbs header. */
>  /* ISO C doesn't support unnamed structs/unions, disabling -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <infiniband/verbs.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_mbuf.h>
>  #include <rte_malloc.h>
>  #include <rte_ethdev.h>
>  #include <rte_common.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5_utils.h"
> diff --git a/drivers/net/mlx5/mlx5_vlan.c b/drivers/net/mlx5/mlx5_vlan.c
> index 4719e69..64e599d 100644
> --- a/drivers/net/mlx5/mlx5_vlan.c
> +++ b/drivers/net/mlx5/mlx5_vlan.c
> @@ -38,12 +38,12 @@
>  
>  /* DPDK headers don't like -pedantic. */
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic ignored "-pedantic"
> +#pragma GCC diagnostic ignored "-Wpedantic"
>  #endif
>  #include <rte_ethdev.h>
>  #include <rte_common.h>
>  #ifdef PEDANTIC
> -#pragma GCC diagnostic error "-pedantic"
> +#pragma GCC diagnostic error "-Wpedantic"
>  #endif
>  
>  #include "mlx5_utils.h"
> -- 
> 2.7.4
> 

-- 
Adrien Mazarguil
6WIND


More information about the dev mailing list