From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Xing, Beilei" Subject: Re: [PATCH 12/13] ethdev: fix C++ errors in flow API (MPLS, GRE) Date: Tue, 25 Apr 2017 01:18:38 +0000 Message-ID: <94479800C636CB44BD422CB454846E01315E8D46@SHSMSX101.ccr.corp.intel.com> References: <7bcb59287ddea099179915808ecf056be62ad742.1493048352.git.adrien.mazarguil@6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable To: Adrien Mazarguil , "dev@dpdk.org" Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 605129E3 for ; Tue, 25 Apr 2017 03:18:42 +0200 (CEST) In-Reply-To: <7bcb59287ddea099179915808ecf056be62ad742.1493048352.git.adrien.mazarguil@6wind.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > -----Original Message----- > From: Adrien Mazarguil [mailto:adrien.mazarguil@6wind.com] > Sent: Monday, April 24, 2017 11:53 PM > To: dev@dpdk.org > Cc: Xing, Beilei > Subject: [PATCH 12/13] ethdev: fix C++ errors in flow API (MPLS, GRE) >=20 > This commit addresses the following compilation errors: >=20 > In file included from build/include/rte_flow_driver.h:50:0, > from /tmp/check-includes.sh.1397.cc:1: > build/include/rte_flow.h:631:1: error: C99 designator 'label_tc_s' outsi= de > aggregate initializer > [...] > build/include/rte_flow.h:631:1: error: initializer-string for array of > chars is too long [-fpermissive] > [...] > build/include/rte_flow.h:650:1: sorry, unimplemented: non-trivial > designated initializers not supported [...] >=20 > C++ does not support the C99-style designated initializers used in this > file for the default item masks. While the resulting symbols are primaril= y useful > to PMDs (written in C), they are exposed as part of the public API for > documentation purposes and to assist application writers. >=20 > Considering that: >=20 > - using pre-C99 initialization style for compatibility with C++ would > render them difficult to understand (all struct members must be > initialized) > - using both initialization styles would be needlessly verbose > - not exposing them at all would defeat their purpose > - applications do not normally need these symbols at run time >=20 > This commit hides these symbols from C++ applications. Specific C++ initi= alizers > will be added later if necessary. >=20 > Fixes: 7cd048321d1d ("ethdev: add MPLS and GRE flow API items") >=20 > Cc: Beilei Xing > Signed-off-by: Adrien Mazarguil > --- > lib/librte_ether/rte_flow.h | 4 ++++ > 1 file changed, 4 insertions(+) >=20 > diff --git a/lib/librte_ether/rte_flow.h b/lib/librte_ether/rte_flow.h in= dex > bc7bc45..abd4c6a 100644 > --- a/lib/librte_ether/rte_flow.h > +++ b/lib/librte_ether/rte_flow.h > @@ -652,9 +652,11 @@ struct rte_flow_item_mpls { }; >=20 > /** Default mask for RTE_FLOW_ITEM_TYPE_MPLS. */ > +#ifndef __cplusplus > static const struct rte_flow_item_mpls rte_flow_item_mpls_mask =3D { > .label_tc_s =3D "\xff\xff\xf0", > }; > +#endif >=20 > /** > * RTE_FLOW_ITEM_TYPE_GRE. > @@ -671,9 +673,11 @@ struct rte_flow_item_gre { }; >=20 > /** Default mask for RTE_FLOW_ITEM_TYPE_GRE. */ > +#ifndef __cplusplus > static const struct rte_flow_item_gre rte_flow_item_gre_mask =3D { > .protocol =3D 0xffff, > }; > +#endif >=20 > /** > * Matching pattern item definition. > -- > 2.1.4 Acked-by: Beilei Xing Thanks.