[dpdk-dev,2/3] event/octeontx: fix compilation for gcc < 4.6

Message ID 20170406121428.16883-2-ferruh.yigit@intel.com (mailing list archive)
State Superseded, archived
Headers

Checks

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

Commit Message

Ferruh Yigit April 6, 2017, 12:14 p.m. UTC
  -Ofast option supported from gcc4.6 [1], for older versions using
"-O3 -ffast-math" instead.

[1] build error:
cc1: error: invalid option argument ‘-Ofast’

Also struct initialization build error [2] fixed.

[2] build error:
.../event/octeontx/ssovf_mbox.c: In function ‘mbox_send_request’:
.../event/octeontx/ssovf_mbox.c:95:9: error: unknown field ‘u64’
specified in initializer

Fixes: 32ff26393bb2 ("event/octeontx: add SSO HW device operations")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/event/octeontx/Makefile     | 9 +++++++++
 drivers/event/octeontx/ssovf_mbox.c | 2 +-
 2 files changed, 10 insertions(+), 1 deletion(-)
  

Comments

Jerin Jacob April 6, 2017, 12:26 p.m. UTC | #1
-----Original Message-----
> Date: Thu,  6 Apr 2017 13:14:27 +0100
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>, Bruce Richardson
>  <bruce.richardson@intel.com>, Harry van Haaren
>  <harry.van.haaren@intel.com>, Thomas Monjalon <thomas.monjalon@6wind.com>
> Cc: dev@dpdk.org, Ferruh Yigit <ferruh.yigit@intel.com>
> Subject: [PATCH 2/3] event/octeontx: fix compilation for gcc < 4.6
> X-Mailer: git-send-email 2.8.4
> 
> -Ofast option supported from gcc4.6 [1], for older versions using
> "-O3 -ffast-math" instead.
> 
> [1] build error:
> cc1: error: invalid option argument ‘-Ofast’
> 
> Also struct initialization build error [2] fixed.
> 
> [2] build error:
> .../event/octeontx/ssovf_mbox.c: In function ‘mbox_send_request’:
> .../event/octeontx/ssovf_mbox.c:95:9: error: unknown field ‘u64’
> specified in initializer
> 
> Fixes: 32ff26393bb2 ("event/octeontx: add SSO HW device operations")
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>

Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>

> ---
>  drivers/event/octeontx/Makefile     | 9 +++++++++
>  drivers/event/octeontx/ssovf_mbox.c | 2 +-
>  2 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/event/octeontx/Makefile b/drivers/event/octeontx/Makefile
> index b26e35b..aca3d09 100644
> --- a/drivers/event/octeontx/Makefile
> +++ b/drivers/event/octeontx/Makefile
> @@ -50,10 +50,19 @@ SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_worker.c
>  SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_evdev.c
>  SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_probe.c
>  SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_mbox.c
> +
>  ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
>  CFLAGS_ssovf_worker.o += -fno-prefetch-loop-arrays
> +
> +ifeq ($(shell test $(GCC_VERSION) -ge 46 && echo 1), 1)
> +CFLAGS_ssovf_worker.o += -Ofast
> +else
> +CFLAGS_ssovf_worker.o += -O3 -ffast-math
>  endif
> +
> +else
>  CFLAGS_ssovf_worker.o += -Ofast
> +endif
>  
>  # install this header file
>  SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF)-include := rte_pmd_octeontx_ssovf.h
> diff --git a/drivers/event/octeontx/ssovf_mbox.c b/drivers/event/octeontx/ssovf_mbox.c
> index 0435f6d..f42969c 100644
> --- a/drivers/event/octeontx/ssovf_mbox.c
> +++ b/drivers/event/octeontx/ssovf_mbox.c
> @@ -92,7 +92,7 @@ mbox_send_request(struct mbox *m, struct octeontx_mbox_hdr *hdr,
>  			const void *txmsg, uint16_t txsize)
>  {
>  	struct mbox_ram_hdr old_hdr;
> -	struct mbox_ram_hdr new_hdr = {.u64 = 0};
> +	struct mbox_ram_hdr new_hdr = {{0}};
>  	uint64_t *ram_mbox_hdr = (uint64_t *)m->ram_mbox_base;
>  	uint8_t *ram_mbox_msg = m->ram_mbox_base + sizeof(struct mbox_ram_hdr);
>  
> -- 
> 2.9.3
>
  

Patch

diff --git a/drivers/event/octeontx/Makefile b/drivers/event/octeontx/Makefile
index b26e35b..aca3d09 100644
--- a/drivers/event/octeontx/Makefile
+++ b/drivers/event/octeontx/Makefile
@@ -50,10 +50,19 @@  SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_worker.c
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_evdev.c
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_probe.c
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += ssovf_mbox.c
+
 ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
 CFLAGS_ssovf_worker.o += -fno-prefetch-loop-arrays
+
+ifeq ($(shell test $(GCC_VERSION) -ge 46 && echo 1), 1)
+CFLAGS_ssovf_worker.o += -Ofast
+else
+CFLAGS_ssovf_worker.o += -O3 -ffast-math
 endif
+
+else
 CFLAGS_ssovf_worker.o += -Ofast
+endif
 
 # install this header file
 SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF)-include := rte_pmd_octeontx_ssovf.h
diff --git a/drivers/event/octeontx/ssovf_mbox.c b/drivers/event/octeontx/ssovf_mbox.c
index 0435f6d..f42969c 100644
--- a/drivers/event/octeontx/ssovf_mbox.c
+++ b/drivers/event/octeontx/ssovf_mbox.c
@@ -92,7 +92,7 @@  mbox_send_request(struct mbox *m, struct octeontx_mbox_hdr *hdr,
 			const void *txmsg, uint16_t txsize)
 {
 	struct mbox_ram_hdr old_hdr;
-	struct mbox_ram_hdr new_hdr = {.u64 = 0};
+	struct mbox_ram_hdr new_hdr = {{0}};
 	uint64_t *ram_mbox_hdr = (uint64_t *)m->ram_mbox_base;
 	uint8_t *ram_mbox_msg = m->ram_mbox_base + sizeof(struct mbox_ram_hdr);