[dpdk-dev] [PATCH] examples/eventdev: fix build with GCC < 5

Thomas Monjalon thomas at monjalon.net
Sun Jan 21 23:21:35 CET 2018


Some errors were seen with GCC 4.8 and 4.9.
It looks to be a bug fixed in GCC 5.

examples/eventdev_pipeline/pipeline_worker_generic.c:474:4: error:
missing initializer for field 'queue_id' of 'struct <anonymous>'

examples/eventdev_pipeline/pipeline_worker_generic.c:475:3: error:
missing initializer for field 'priority' of 'struct <anonymous>'

examples/eventdev_pipeline/pipeline_worker_tx.c:630:2: error:
missing initializer for field 'queue_id' of 'struct <anonymous>'

The workaround is to not use initializer statement,
but to use memset and standard assignment.

Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
---
 examples/eventdev_pipeline/pipeline_worker_generic.c | 8 ++++----
 examples/eventdev_pipeline/pipeline_worker_tx.c      | 6 +++---
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/examples/eventdev_pipeline/pipeline_worker_generic.c b/examples/eventdev_pipeline/pipeline_worker_generic.c
index 2c51f4a30..c673160f5 100644
--- a/examples/eventdev_pipeline/pipeline_worker_generic.c
+++ b/examples/eventdev_pipeline/pipeline_worker_generic.c
@@ -468,10 +468,10 @@ init_rx_adapter(uint16_t nb_ports)
 		rte_exit(EXIT_FAILURE, "failed to create rx adapter[%d]",
 				cdata.rx_adapter_id);
 
-	struct rte_event_eth_rx_adapter_queue_conf queue_conf = {
-		.ev.sched_type = cdata.queue_type,
-		.ev.queue_id = cdata.qid[0],
-	};
+	struct rte_event_eth_rx_adapter_queue_conf queue_conf;
+	memset(&queue_conf, 0, sizeof(queue_conf));
+	queue_conf.ev.sched_type = cdata.queue_type;
+	queue_conf.ev.queue_id = cdata.qid[0];
 
 	for (i = 0; i < nb_ports; i++) {
 		uint32_t cap;
diff --git a/examples/eventdev_pipeline/pipeline_worker_tx.c b/examples/eventdev_pipeline/pipeline_worker_tx.c
index c0d1bd9fb..b254b03f7 100644
--- a/examples/eventdev_pipeline/pipeline_worker_tx.c
+++ b/examples/eventdev_pipeline/pipeline_worker_tx.c
@@ -625,9 +625,9 @@ init_rx_adapter(uint16_t nb_ports)
 		rx_p_conf.enqueue_depth = dev_info.max_event_port_enqueue_depth;
 
 
-	struct rte_event_eth_rx_adapter_queue_conf queue_conf = {
-		.ev.sched_type = cdata.queue_type,
-	};
+	struct rte_event_eth_rx_adapter_queue_conf queue_conf;
+	memset(&queue_conf, 0, sizeof(queue_conf));
+	queue_conf.ev.sched_type = cdata.queue_type;
 
 	for (i = 0; i < nb_ports; i++) {
 		uint32_t cap;
-- 
2.15.1



More information about the dev mailing list