[dpdk-dev] [PATCH] ethdev: fix compilation issue with strict flags

Van Haaren, Harry harry.van.haaren at intel.com
Thu Apr 13 11:36:08 CEST 2017


> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Shahaf Shuler
> Sent: Thursday, April 13, 2017 6:29 AM
> To: thomas.monjalon at 6wind.com
> Cc: adrien.mazarguil at 6wind.com; nelio.laranjeiro at 6wind.com; dev at dpdk.org
> Subject: [dpdk-dev] [PATCH] ethdev: fix compilation issue with strict flags
> 
> Compilation error seen while compiling mlx5 in debug mode
> under RHEL 7.3:
> 
> rte_ethdev.h:1670:7: error: type of bit-field 'state' is a GCC extension
>     [-Werror=pedantic]
> 
> Address it by removing the unnecessary bit-field width limitation.
> 
> Fixes: d52268a8b24b ("ethdev: expose device states")
> 
> Signed-off-by: Shahaf Shuler <shahafs at mellanox.com>
> ---
>  lib/librte_ether/rte_ethdev.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index d07253874..2d1bc12aa 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -1667,7 +1667,7 @@ struct rte_eth_dev {
>  	 * received packets before passing them to the driver for transmission.
>  	 */
>  	struct rte_eth_rxtx_callback *pre_tx_burst_cbs[RTE_MAX_QUEUES_PER_PORT];
> -	enum rte_eth_dev_state state:8; /**< Flag indicating the port state */
> +	enum rte_eth_dev_state state; /**< Flag indicating the port state */
>  } __rte_cache_aligned;
> 
>  struct rte_eth_dev_sriov {


What is the guidelines of changing ABI of an @internal structure?

If I understand correctly, this @internal structure shouldn't be allocated in the app - so we can extend it at the end without breaking ABI.

Since the state is at the end of the struct, I think this change is safe.

ABI Validate tool with GCC 5.4.0 says ABI compatible, so

Acked-by: Harry van Haaren <harry.van.haaren at intel.com>


More information about the dev mailing list