X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=mk%2Ftoolchain%2Fgcc%2Frte.toolchain-compat.mk;h=01ac7e2325df550ecc2463a2161df7f035c92d97;hb=ea978e7c2255ed34046ae1c0dfbb908529c67e12;hp=e40e103ba9caa99b3c9def7d0b127fb3f72332fb;hpb=3031749c2df04a63cdcef186dcce3781e61436e8;p=dpdk.git diff --git a/mk/toolchain/gcc/rte.toolchain-compat.mk b/mk/toolchain/gcc/rte.toolchain-compat.mk index e40e103ba9..01ac7e2325 100644 --- a/mk/toolchain/gcc/rte.toolchain-compat.mk +++ b/mk/toolchain/gcc/rte.toolchain-compat.mk @@ -38,17 +38,17 @@ #find out GCC version -GCC_MAJOR_VERSION = $(shell $(CC) -dumpversion | cut -f1 -d.) +GCC_MAJOR = $(shell echo __GNUC__ | $(CC) -E -x c - | tail -n 1) +GCC_MINOR = $(shell echo __GNUC_MINOR__ | $(CC) -E -x c - | tail -n 1) +GCC_VERSION = $(GCC_MAJOR)$(GCC_MINOR) -# if GCC is not 4.x -ifneq ($(GCC_MAJOR_VERSION),4) +# if GCC is older than 4.x +ifeq ($(shell test $(GCC_VERSION) -lt 40 && echo 1), 1) MACHINE_CFLAGS = -$(warning You are not using GCC 4.x. This is neither supported, nor tested.) +$(warning You are using GCC < 4.x. This is neither supported, nor tested.) else - GCC_MINOR_VERSION = $(shell $(CC) -dumpversion | cut -f2 -d.) - # GCC graceful degradation # GCC 4.2.x - added support for generic target # GCC 4.3.x - added support for core2, ssse3, sse4.1, sse4.2 @@ -56,19 +56,24 @@ else # GCC 4.5.x - added support for atom # GCC 4.6.x - added support for corei7, corei7-avx # GCC 4.7.x - added support for fsgsbase, rdrnd, f16c, core-avx-i, core-avx2 - - ifeq ($(shell test $(GCC_MINOR_VERSION) -le 7 && echo 1), 1) +# GCC 4.9.x - added support for armv8-a+crc +# + ifeq ($(shell test $(GCC_VERSION) -le 49 && echo 1), 1) + MACHINE_CFLAGS := $(patsubst -march=armv8-a+crc,-march=armv8-a+crc -D__ARM_FEATURE_CRC32=1,$(MACHINE_CFLAGS)) + MACHINE_CFLAGS := $(patsubst -march=armv8-a+crc+crypto,-march=armv8-a+crc+crypto -D__ARM_FEATURE_CRC32=1,$(MACHINE_CFLAGS)) + endif + ifeq ($(shell test $(GCC_VERSION) -le 47 && echo 1), 1) MACHINE_CFLAGS := $(patsubst -march=core-avx-i,-march=corei7-avx,$(MACHINE_CFLAGS)) MACHINE_CFLAGS := $(patsubst -march=core-avx2,-march=core-avx2,$(MACHINE_CFLAGS)) endif - ifeq ($(shell test $(GCC_MINOR_VERSION) -lt 6 && echo 1), 1) + ifeq ($(shell test $(GCC_VERSION) -lt 46 && echo 1), 1) MACHINE_CFLAGS := $(patsubst -march=corei7-avx,-march=core2 -maes -mpclmul -mavx,$(MACHINE_CFLAGS)) MACHINE_CFLAGS := $(patsubst -march=corei7,-march=core2 -maes -mpclmul,$(MACHINE_CFLAGS)) endif - ifeq ($(shell test $(GCC_MINOR_VERSION) -lt 5 && echo 1), 1) + ifeq ($(shell test $(GCC_VERSION) -lt 45 && echo 1), 1) MACHINE_CFLAGS := $(patsubst -march=atom,-march=core2 -mssse3,$(MACHINE_CFLAGS)) endif - ifeq ($(shell test $(GCC_MINOR_VERSION) -lt 4 && echo 1), 1) + ifeq ($(shell test $(GCC_VERSION) -lt 44 && echo 1), 1) MACHINE_CFLAGS := $(filter-out -mavx -mpclmul -maes,$(MACHINE_CFLAGS)) ifneq ($(findstring SSE4_2, $(CPUFLAGS)),) MACHINE_CFLAGS += -msse4.2 @@ -77,13 +82,17 @@ else MACHINE_CFLAGS += -msse4.1 endif endif - ifeq ($(shell test $(GCC_MINOR_VERSION) -lt 3 && echo 1), 1) + ifeq ($(shell test $(GCC_VERSION) -lt 43 && echo 1), 1) MACHINE_CFLAGS := $(filter-out -msse% -mssse%,$(MACHINE_CFLAGS)) MACHINE_CFLAGS := $(patsubst -march=core2,-march=generic,$(MACHINE_CFLAGS)) MACHINE_CFLAGS += -msse3 endif - ifeq ($(shell test $(GCC_MINOR_VERSION) -lt 2 && echo 1), 1) + ifeq ($(shell test $(GCC_VERSION) -lt 42 && echo 1), 1) MACHINE_CFLAGS := $(filter-out -march% -mtune% -msse%,$(MACHINE_CFLAGS)) endif -endif + # Disable thunderx PMD for gcc < 4.7 + ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1) + CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD=d + endif +endif