summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas F Herbert <therbert@redhat.com>2017-08-29 16:07:51 -0400
committerSergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>2017-09-12 18:42:32 +0000
commit4b0ac82a739bf7f1233ebb61269e27aa4cf9ab36 (patch)
tree6bb4c5a9c3cc6b16859143c89ec12eadc4cd5051
parentd9226b25f145c64e5bc4a38c3fee7e9b2eaac2de (diff)
Add option to build without multi-buffer crypto.
JIRA VPP-498 This patch also allows RPMs to be built without multi- buffer crypto for some RPM based downstream distros that don't have sufficiently new nasm or don't have an USA export license for multi-buffer crypto. The default is to build WITH multi-buffer crypto for x86-64. This patch allows optional building without multi-buffer crypto. To build without multi-buffer crypto, set the AESNI environment variable to n. To build rpm packages without multi-buffer crypto, build the rpms with the option turned off. make build AESNI=n or.. make pkg-rpm --without aesni ---How to test this patch on a Centos build.--- Build as above and verify that nasm isn't executed during the build process. vpp may be installed and the dpdk plugin may be inspected to verify that the multi-buffer code isn't present. Change-Id: I8c5cfd4cdd9eb2b96772a687eaa54560806e001b Signed-off-by: Thomas F Herbert <therbert@redhat.com>
-rw-r--r--Makefile3
-rw-r--r--dpdk/Makefile5
-rw-r--r--extras/rpm/vpp.spec12
3 files changed, 15 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 01da7d12982..c08115d47e5 100644
--- a/Makefile
+++ b/Makefile
@@ -17,6 +17,7 @@ CCACHE_DIR?=$(BR)/.ccache
GDB?=gdb
PLATFORM?=vpp
SAMPLE_PLUGIN?=no
+export AESNI?=y
,:=,
define disable_plugins
@@ -94,7 +95,7 @@ endif
RPM_DEPENDS += chrpath libffi-devel rpm-build
ifeq ($(OS_ID),fedora)
RPM_DEPENDS += nasm
-else
+else ifeq ($(findstring y,$(AESNI)),y)
RPM_DEPENDS += https://kojipkgs.fedoraproject.org//packages/nasm/2.12.02/2.fc26/x86_64/nasm-2.12.02-2.fc26.x86_64.rpm
endif
diff --git a/dpdk/Makefile b/dpdk/Makefile
index afe50c4ba7b..4e0ad4f3690 100644
--- a/dpdk/Makefile
+++ b/dpdk/Makefile
@@ -34,14 +34,13 @@ DPDK_17.08_TARBALL_MD5_CKSUM := 0641f59ea8ea98afefa7cfa2699f6241
DPDK_SOURCE := $(B)/dpdk-$(DPDK_VERSION)
MACHINE=$(shell uname -m)
-AESNI ?= n
ISA_L_CRYPTO_LIB := n
IPSEC_MB_VER ?= 0.46
ISA_L_CRYPTO_VER := 2.18.0
ifeq ($(MACHINE),$(filter $(MACHINE),x86_64))
-AESNI = y
+ AESNI ?= y
# DPDK pre 17.08 depends on ISA-L Crypto library for GCM PMD
ifneq ($(firstword $(sort $(DPDK_VERSION), 17.08)), 17.08)
ISA_L_CRYPTO_LIB = y
@@ -49,6 +48,8 @@ AESNI = y
$(info Building ISA-L Crypto $(ISA_L_CRYPTO_VER) library)
endif
$(info Building IPSec-MB $(IPSEC_MB_VER) library)
+else
+ AESNI ?= N
endif
AESNIMB_LIB_TARBALL := v$(IPSEC_MB_VER).tar.gz
diff --git a/extras/rpm/vpp.spec b/extras/rpm/vpp.spec
index 439e6bdaf41..6c14b039b3f 100644
--- a/extras/rpm/vpp.spec
+++ b/extras/rpm/vpp.spec
@@ -1,3 +1,4 @@
+%bcond_without aesni
%define _vpp_build_dir build-tool-native
%define _unitdir /lib/systemd/system
%define _topdir %(pwd)
@@ -41,7 +42,9 @@ BuildRequires: python-devel, python-virtualenv
%endif
BuildRequires: glibc-static, java-1.8.0-openjdk, java-1.8.0-openjdk-devel yum-utils, redhat-lsb
BuildRequires: apr-devel
+%if %{with aesni}
BuildRequires: nasm
+%endif
BuildRequires: numactl-devel
BuildRequires: autoconf automake libtool byacc bison flex
@@ -120,8 +123,13 @@ This package contains the python bindings for the vpp api
groupadd -f -r vpp
%build
-make bootstrap
-make -C build-root PLATFORM=vpp TAG=%{_vpp_tag} install-packages
+%if %{with aesni}
+ make bootstrap
+ make -C build-root PLATFORM=vpp TAG=%{_vpp_tag} install-packages
+%else
+ make bootstrap AESNI=n
+ make -C build-root PLATFORM=vpp AESNI=n TAG=%{_vpp_tag} install-packages
+%endif
cd %{_mu_build_dir}/../src/vpp-api/python && %py2_build
%install