ethdev: fix compilation with gcc 4.8

Message ID 1571832859-12659-1-git-send-email-rasland@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series ethdev: fix compilation with gcc 4.8 |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation fail apply issues

Commit Message

Raslan Darawsheh Oct. 23, 2019, 12:14 p.m. UTC
  gcc 4.8 is considering bit filed as extention rather than
c11 std with pedantic, which cause compilation failure.

This adds extention keyword exceplicitly to the struct
to avoid compilation issue on gcc 4.8

Fixes: a7658a86 ("ethdev: add HIGIG2 key field to flow API")

Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
---
 lib/librte_net/rte_higig.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Ferruh Yigit Oct. 23, 2019, 1:29 p.m. UTC | #1
On 10/23/2019 1:14 PM, Raslan Darawsheh wrote:
> gcc 4.8 is considering bit filed as extention rather than
> c11 std with pedantic, which cause compilation failure.
> 
> This adds extention keyword exceplicitly to the struct
> to avoid compilation issue on gcc 4.8
> 
> Fixes: a7658a86 ("ethdev: add HIGIG2 key field to flow API")
> 
> Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
> ---
>  lib/librte_net/rte_higig.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_net/rte_higig.h b/lib/librte_net/rte_higig.h
> index 44df666..b9cdfef 100644
> --- a/lib/librte_net/rte_higig.h
> +++ b/lib/librte_net/rte_higig.h
> @@ -103,7 +103,7 @@ struct rte_higig2_ppt_type0 {
>   *
>   * higig2 ppt type1 header.
>   */
> -RTE_STD_C11
> +__extension__
>  struct rte_higig2_ppt_type1 {
>  	uint16_t classification;
>  	uint16_t resv;
> 

Why other structs in this file with bit-field doesn't cause problem with gcc4.8,
is the problem only for "uint16_t" ?
  
Ferruh Yigit Oct. 23, 2019, 3 p.m. UTC | #2
On 10/23/2019 1:14 PM, Raslan Darawsheh wrote:
> gcc 4.8 is considering bit filed as extention rather than
> c11 std with pedantic, which cause compilation failure.
> 
> This adds extention keyword exceplicitly to the struct
> to avoid compilation issue on gcc 4.8
> 
> Fixes: a7658a86 ("ethdev: add HIGIG2 key field to flow API")
> 
> Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>

Squashed into relevant commit in next-net, thanks.

Unfortunately lost the context that why it has been marked with '__extension__'
instead of 'RTE_STD_C11', hopefully someone won't try to "fix" it in the future.
  

Patch

diff --git a/lib/librte_net/rte_higig.h b/lib/librte_net/rte_higig.h
index 44df666..b9cdfef 100644
--- a/lib/librte_net/rte_higig.h
+++ b/lib/librte_net/rte_higig.h
@@ -103,7 +103,7 @@  struct rte_higig2_ppt_type0 {
  *
  * higig2 ppt type1 header.
  */
-RTE_STD_C11
+__extension__
 struct rte_higig2_ppt_type1 {
 	uint16_t classification;
 	uint16_t resv;