examples/eventdev: fix build with GCC < 5
authorThomas Monjalon <thomas@monjalon.net>
Sun, 21 Jan 2018 22:08:58 +0000 (23:08 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Sun, 21 Jan 2018 22:40:50 +0000 (23:40 +0100)
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.

Fixes: 84dde5de10a2 ("examples/eventdev: support Rx adapter")
Fixes: fa8054c8c889 ("examples/eventdev: add thread safe Tx worker pipeline")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
examples/eventdev_pipeline/pipeline_worker_generic.c
examples/eventdev_pipeline/pipeline_worker_tx.c

index 2c51f4a..c673160 100644 (file)
@@ -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;
index c0d1bd9..b254b03 100644 (file)
@@ -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;