From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <adrien.mazarguil@6wind.com>
Received: from mail-wm0-f53.google.com (mail-wm0-f53.google.com [74.125.82.53])
 by dpdk.org (Postfix) with ESMTP id 4B92A688B
 for <dev@dpdk.org>; Wed, 26 Apr 2017 14:07:48 +0200 (CEST)
Received: by mail-wm0-f53.google.com with SMTP id w64so48426294wma.0
 for <dev@dpdk.org>; Wed, 26 Apr 2017 05:07:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=6wind-com.20150623.gappssmtp.com; s=20150623;
 h=from:to:subject:date:message-id:in-reply-to:references;
 bh=GIEPefk6A3HPa19L+RoccRzyRLSq5nPee2KksVhp5sQ=;
 b=dx+knn30xn8wVjZ9/wteWccdYV8KL+ZlRHKjcgsn0mlKEF5ipmnU/c51GA4HMoxvVl
 koISBuzmloA5bTwUzwD4gwEM7GTc58mT93OitvaJZK3Cdg1J/GB44Yx7X3soc81Dy5P1
 Vud6GauHNsfYRBnKBDQOdi+GMQXo50V2v3xMKSdOEgNXtbYsLNDT9bxdbjFJqA6pBAsB
 DncFZGI2DylWrBe+DCY4//CqhXX1kq1yfeus4ooP+BY7dWBfO4QTeP2t94FDi4c+FYw+
 14x/hPix/k/zTOU2twJppE2nCWpgN/YECAV65bIfMjb8ihNF7UDE4wo1ADUx2s9L9L2o
 hC1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to
 :references;
 bh=GIEPefk6A3HPa19L+RoccRzyRLSq5nPee2KksVhp5sQ=;
 b=uWp0yBo7yxgYO859kw4u/RcavWmzNHzIbMHHQobM2cwQY9uuA+/DyQ6C5HzBG89XIz
 F21sMM4jf0SUdYkjCj6L+hEwe5hMs39bdiu0BAdwo1tv1/R+wdRVvf/N5W1kcTunbIiB
 tcqYz0U74kyYqPzu9z2NrPrQTTHe5v3KkJKdYMIxo/DZvcc/ObIQA3ImC2aNq+5LkLj1
 7ICfUTexqc147niyO77byXq9FuQxmgPq5AbhrsH7wCmvt1PiIvsNyJjK0iJ+XLj6eezO
 TQWCxHm9Yh4fVSRC77fh2eOsvdcO5yAW2XTZrPpW/wZKiIo9EOOLTGUDMdgP2M1NI2by
 yScA==
X-Gm-Message-State: AN3rC/7ZFNogGoJncL1qxnUEenoQCvlCHmEcGBd4obHx6VvmI1ZDZ2Tb
 rr5UBAhA8JYkVzR83OI=
X-Received: by 10.28.35.213 with SMTP id j204mr5074740wmj.41.1493208467685;
 Wed, 26 Apr 2017 05:07:47 -0700 (PDT)
Received: from 6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78])
 by smtp.gmail.com with ESMTPSA id g21sm42254wrg.22.2017.04.26.05.07.46
 for <dev@dpdk.org> (version=TLS1_2 cipher=AES128-SHA bits=128/128);
 Wed, 26 Apr 2017 05:07:46 -0700 (PDT)
From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
To: dev@dpdk.org
Date: Wed, 26 Apr 2017 14:07:20 +0200
Message-Id: <585dcdd594139bfa4f47616a5c090f2236b916d0.1493208189.git.adrien.mazarguil@6wind.com>
X-Mailer: git-send-email 2.1.4
In-Reply-To: <cover.1493208189.git.adrien.mazarguil@6wind.com>
References: <cover.1493108423.git.adrien.mazarguil@6wind.com>
 <cover.1493208189.git.adrien.mazarguil@6wind.com>
Subject: [dpdk-dev] [PATCH v3 12/14] ethdev: fix C++ errors in flow API
	(MPLS, GRE)
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 26 Apr 2017 12:07:48 -0000

This commit addresses the following compilation errors:

 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' outside
    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
 [...]

C++ does not support the C99-style designated initializers used in this
file for the default item masks. While the resulting symbols are primarily
useful to PMDs (written in C), they are exposed as part of the public API
for documentation purposes and to assist application writers.

Considering that:

- 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

This commit hides these symbols from C++ applications. Specific C++
initializers will be added later if necessary.

Fixes: 7cd048321d1d ("ethdev: add MPLS and GRE flow API items")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
---
 lib/librte_ether/rte_flow.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/librte_ether/rte_flow.h b/lib/librte_ether/rte_flow.h
index 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 {
 };
 
 /** Default mask for RTE_FLOW_ITEM_TYPE_MPLS. */
+#ifndef __cplusplus
 static const struct rte_flow_item_mpls rte_flow_item_mpls_mask = {
 	.label_tc_s = "\xff\xff\xf0",
 };
+#endif
 
 /**
  * RTE_FLOW_ITEM_TYPE_GRE.
@@ -671,9 +673,11 @@ struct rte_flow_item_gre {
 };
 
 /** Default mask for RTE_FLOW_ITEM_TYPE_GRE. */
+#ifndef __cplusplus
 static const struct rte_flow_item_gre rte_flow_item_gre_mask = {
 	.protocol = 0xffff,
 };
+#endif
 
 /**
  * Matching pattern item definition.
-- 
2.1.4