[dpdk-dev] [PATCH] net/mlx: update C compliance standard

Yongseok Koh yskoh at mellanox.com
Fri Jun 30 20:25:38 CEST 2017


Hi,



Thanks,
Yongseok

> On Jun 30, 2017, at 11:14 AM, Yongseok Koh <yskoh at mellanox.com> wrote:
> 
> 
>> On Jun 30, 2017, at 10:47 AM, Ferruh Yigit <ferruh.yigit at intel.com> wrote:
>> 
>> On 6/30/2017 6:19 PM, Adrien Mazarguil wrote:
>>> This commit addresses a compilation issue against Glibc >= 2.25, which
>>> implements assert() through a nonstandard ({ }) construct. Such constructs
>>> can normally not be used without __extension__ keyword when -pedantic is
>>> enabled, as is the case when compiling mlx4 and mlx5 PMDs in debug mode.
>>> 
>>> While assert.h checks for the compiler ability to support GNU extensions,
>>> Clang, unlike GCC, does not allow the above syntax when combining
>>> -std=gnu99 with -pedantic.
>>> 
>>> Work around missing keyword by moving these PMDs to a stricter compliance
>>> standard without GNU extensions but properly checked by Glibc. Doing so is
>>> supported on the DPDK side since includes have been cleaned up.
>>> 
>>> Signed-off-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>
>> 
>> Applied to dpdk-next-net/master, thanks.
> This breaks debug-enabled build of mlx5 as mlx5 isn't ready yet!
Specifically, the following errors happen. It might be better to later make the
change for mlx5 with further cleanup.

  CC mlx5_flow.o
In file included from /.autodirect/swgwork/yskoh/git/mellanox/dpdk.org/drivers/net/mlx5/mlx5.h:68:0,
                 from /.autodirect/swgwork/yskoh/git/mellanox/dpdk.org/drivers/net/mlx5/mlx5_rxtx_vec_sse.c:62:
/.autodirect/swgwork/yskoh/git/mellanox/dpdk.org/drivers/net/mlx5/mlx5_rxtx.h:258:2: error: type of bit-field ‘elts_n’ is a GCC extension [-Werror=pedantic]
  uint16_t elts_n:4; /* (*elts)[] length (in log2). */
  ^
In file included from /.autodirect/swgwork/yskoh/git/mellanox/dpdk.org/drivers/net/mlx5/mlx5.h:68:0,
                 from /.autodirect/swgwork/yskoh/git/mellanox/dpdk.org/drivers/net/mlx5/mlx5_rxtx.c:65:
/.autodirect/swgwork/yskoh/git/mellanox/dpdk.org/drivers/net/mlx5/mlx5_rxtx.h:258:2: error: type of bit-field ‘elts_n’ is a GCC extension [-Werror=pedantic]
  uint16_t elts_n:4; /* (*elts)[] length (in log2). */
  ^
In file included from /.autodirect/swgwork/yskoh/git/mellanox/dpdk.org/drivers/net/mlx5/mlx5.h:68:0,
                 from /.autodirect/swgwork/yskoh/git/mellanox/dpdk.org/drivers/net/mlx5/mlx5_rxq.c:67:
/.autodirect/swgwork/yskoh/git/mellanox/dpdk.org/drivers/net/mlx5/mlx5_rxtx.h:258:2: error: type of bit-field ‘elts_n’ is a GCC extension [-Werror=pedantic]
  uint16_t elts_n:4; /* (*elts)[] length (in log2). */

Thanks,
Yongseok


More information about the dev mailing list