[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