diff options
author | Lijian Zhang <Lijian.Zhang@arm.com> | 2018-08-07 11:11:58 +0800 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2018-08-17 11:39:30 +0000 |
commit | f315410543a023f8ae6ed352a342fac961d4cfa4 (patch) | |
tree | 0b425045d4e45889a7cabda66ac98f74977c1c1d | |
parent | a0c29a9a8af284891e8805092a6cd379ea9d3657 (diff) |
fix compiling warnings with GCC
GCC 7 plus Ubuntu-16.04 default ccache 3.2.4 reports warnings on switch case fall-through code,
which is commonly seen in DPDK code, which will cause image building failure finally.
It requires newer ccache version to support -Wimplicit-fallthrough.
To suppress the warning, if GCC is version 7 or higher, and it's old ccache version,
will disable the fall-through check.
dpdk-18.05/drivers/net/ark/ark_ethdev_rx.h:39:0,
from dpdk-18.05/drivers/net/ark/ark_ethdev_rx.c:36:
dpdk-18.05/arm64-armv8a-linuxapp-gcc/include/rte_mbuf.h: In function ‘rte_pktmbuf_alloc_bulk’:
dpdk-18.05/arm64-armv8a-linuxapp-gcc/include/rte_mbuf.h:1292:7: error: this statement may fall through [-Werror=implicit-fallthrough=]
idx++;
~~~^~
Change-Id: I4d12492471fadef9d349ba9e853a6799512f76f5
Signed-off-by: Lijian Zhang <Lijian.Zhang@arm.com>
-rw-r--r-- | dpdk/Makefile | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/dpdk/Makefile b/dpdk/Makefile index 053fe765205..a1e2cb08b4e 100644 --- a/dpdk/Makefile +++ b/dpdk/Makefile @@ -164,6 +164,21 @@ else DPDK_EXTRA_CFLAGS := -g -O0 endif +# -Wimplicit-fallthrough was introduced starting from GCC 7, +# and it requires newer version of ccache. +# Disable fallthrough warning for old ccache version. +ifeq ($(DPDK_CC),gcc) +GCC_VER_V = "7.0.0" +CCACHE_VER_V = "3.4.1" +GCC_VER = $(shell gcc --version | grep ^gcc | sed 's/^.* //g') +CCACHE_VER = $(shell ccache --version | grep ^ccache | sed 's/^.* //g') +ifeq ($(shell expr "$(GCC_VER)" ">=" "$(GCC_VER_V)"),1) +ifeq ($(shell expr "$(CCACHE_VER)" "<" "$(CCACHE_VER_V)"),1) +DPDK_EXTRA_CFLAGS += -Wimplicit-fallthrough=0 +endif +endif +endif + ifeq ($(AESNI),y) IPSEC_MB_BUILD_PATH := $(B)/intel-ipsec-mb-$(IPSEC_MB_VER) DPDK_EXTRA_CFLAGS += -L$(IPSEC_MB_BUILD_PATH) -I$(IPSEC_MB_BUILD_PATH) |