X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=dpdk%2FMakefile;h=9f7faa3477a2c44a804aceb523a9c5b0d866e614;hb=008dbe109ce2714be69ffb6549a0c0198a07f7d0;hp=799d9c4cb1ffa74f1684ac392df332754d8db76b;hpb=4fcfbeaf02c68c4590b00c7c1c9069f6f515a0a9;p=vpp.git diff --git a/dpdk/Makefile b/dpdk/Makefile index 799d9c4cb1f..9f7faa3477a 100644 --- a/dpdk/Makefile +++ b/dpdk/Makefile @@ -22,29 +22,37 @@ DPDK_DOWNLOAD_DIR ?= $(HOME)/Downloads DPDK_DEBUG ?= n DPDK_MLX4_PMD ?= n DPDK_MLX5_PMD ?= n +DPDK_TAP_PMD ?= n +DPDK_FAILSAFE_PMD ?= n B := $(DPDK_BUILD_DIR) I := $(DPDK_INSTALL_DIR) -DPDK_VERSION ?= 18.02.1 -PKG_SUFFIX ?= vpp1 +DPDK_VERSION ?= 18.08 +PKG_SUFFIX ?= vpp3 DPDK_BASE_URL ?= http://fast.dpdk.org/rel DPDK_TARBALL := dpdk-$(DPDK_VERSION).tar.xz DPDK_TAR_URL := $(DPDK_BASE_URL)/$(DPDK_TARBALL) -DPDK_17.11_TARBALL_MD5_CKSUM := 53ee9e054a8797c9e67ffa0eb5d0c701 -DPDK_18.02.1_TARBALL_MD5_CKSUM := 3bbb5468f662e1f7472d4abc5c4cf08e -DPDK_SOURCE := $(B)/dpdk-stable-$(DPDK_VERSION) +DPDK_18.05_TARBALL_MD5_CKSUM := 9fc86367cd9407ff6a8dfea56c4eddc4 +DPDK_18.08_TARBALL_MD5_CKSUM := da5e7fb25ab063c47e53929fb8c58be5 MACHINE=$(shell uname -m) +# replace dot with space, and if 3rd word exists we deal with stable dpdk rel +ifeq ($(word 3,$(subst ., ,$(DPDK_VERSION))),) +DPDK_SOURCE := $(B)/dpdk-$(DPDK_VERSION) +else +DPDK_SOURCE := $(B)/dpdk-stable-$(DPDK_VERSION) +endif + NASM_BASE_URL := http://www.nasm.us/pub/nasm/releasebuilds -NASM_VER := 2.13.01 +NASM_VER := 2.13.03 NASM_TARBALL := nasm-$(NASM_VER).tar.xz NASM_TAR_URL := $(NASM_BASE_URL)/$(NASM_VER)/$(NASM_TARBALL) NASM_SOURCE := $(B)/nasm-$(NASM_VER) -ifeq ($(DPDK_VERSION),17.11) -IPSEC_MB_VER ?= 0.47 -else +ifneq (,$(findstring 18.02,$(DPDK_VERSION))) IPSEC_MB_VER ?= 0.48 +else +IPSEC_MB_VER ?= 0.49 endif ifeq ($(MACHINE),$(filter $(MACHINE),x86_64)) @@ -78,7 +86,8 @@ DPDK_TUNE ?= core-avx2 # ARM64 ############################################################################## else ifeq ($(MACHINE),aarch64) -export CROSS="" +CROSS := +export CROSS DPDK_TARGET ?= arm64-armv8a-linuxapp-$(DPDK_CC) DPDK_MACHINE ?= armv8a DPDK_TUNE ?= generic @@ -121,6 +130,7 @@ ifneq (,$(findstring $(MIDR_PARTNUM),$(CPU_PART_CAVIUM_THUNDERX) \ $(CPU_PART_CAVIUM_THUNDERX_81XX) $(CPU_PART_CAVIUM_THUNDERX_83XX))) DPDK_TARGET = arm64-thunderx-linuxapp-$(DPDK_CC) DPDK_MACHINE = thunderx +DPDK_CACHE_LINE_SIZE := 128 else $(warning Unknown Cavium CPU) endif @@ -142,7 +152,11 @@ JOBS := $(if $(shell [ -f /proc/cpuinfo ] && head /proc/cpuinfo),\ $(shell grep -c ^processor /proc/cpuinfo), 2) # compiler/linker custom arguments +ifeq ($(DPDK_CC),clang) +DPDK_CPU_CFLAGS := -fPIE -fPIC +else DPDK_CPU_CFLAGS := -pie -fPIC +endif ifeq ($(DPDK_DEBUG),n) DPDK_EXTRA_CFLAGS := -g -mtune=$(DPDK_TUNE) @@ -150,6 +164,26 @@ 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) +endif + DPDK_MAKE_EXTRA_ARGS += AESNI_MULTI_BUFFER_LIB_PATH=$(AESNIMB_LIB_SOURCE) # assemble DPDK make arguments @@ -197,11 +231,12 @@ $(B)/custom-config: $(B)/.patch.ok Makefile $(call set,RTE_LIBRTE_PMD_AESNI_GCM,$(AESNI)) $(call set,RTE_LIBRTE_MLX4_PMD,$(DPDK_MLX4_PMD)) $(call set,RTE_LIBRTE_MLX5_PMD,$(DPDK_MLX5_PMD)) + $(call set,RTE_LIBRTE_PMD_SOFTNIC,n) $(call set,RTE_LIBRTE_MLX4_DLOPEN_DEPS,$(DPDK_MLX4_PMD)) $(call set,RTE_LIBRTE_MLX5_DLOPEN_DEPS,$(DPDK_MLX5_PMD)) + $(call set,RTE_LIBRTE_PMD_TAP,$(DPDK_TAP_PMD)) + $(call set,RTE_LIBRTE_PMD_FAILSAFE,$(DPDK_FAILSAFE_PMD)) @# not needed - $(call set,RTE_LIBRTE_PMD_TAP,n) - $(call set,RTE_LIBRTE_TIMER,n) $(call set,RTE_LIBRTE_CFGFILE,n) $(call set,RTE_LIBRTE_LPM,n) $(call set,RTE_LIBRTE_ACL,n) @@ -299,7 +334,7 @@ build-nasm: build-ipsec-mb: mkdir -p $(I)/lib/ # Do not build GCM stuff if we are building ISA_L - make -C $(AESNIMB_LIB_SOURCE) -j \ + make -C $(AESNIMB_LIB_SOURCE) -j SHARED=n \ EXTRA_CFLAGS=-fPIC NASM=$(NASM_SOURCE)/nasm cp $(AESNIMB_LIB_SOURCE)/libIPSec_MB.a $(I)/lib/