mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-23 11:15:13 +03:00
208 lines
6.3 KiB
Diff
208 lines
6.3 KiB
Diff
--- a/CONFIG
|
|
+++ b/CONFIG
|
|
@@ -168,6 +168,9 @@
|
|
|
|
# Build ISA-L library
|
|
CONFIG_ISAL=y
|
|
+CONFIG_ISAL_INC_DIR=
|
|
+CONFIG_ISAL_LIB_DIR=
|
|
+CONFIG_ISAL_PKG_CONFIG=n
|
|
|
|
# Build ISA-L-crypto library
|
|
CONFIG_ISAL_CRYPTO=y
|
|
--- a/Makefile
|
|
+++ b/Makefile
|
|
@@ -18,7 +18,9 @@
|
|
DIRS-$(CONFIG_APPS) += app
|
|
DIRS-y += test
|
|
DIRS-$(CONFIG_IPSEC_MB) += ipsecbuild
|
|
+ifneq ($(CONFIG_ISAL_PKG_CONFIG),y)
|
|
DIRS-$(CONFIG_ISAL) += isalbuild
|
|
+endif
|
|
DIRS-$(CONFIG_ISAL_CRYPTO) += isalcryptobuild
|
|
DIRS-$(CONFIG_VFIO_USER) += vfiouserbuild
|
|
DIRS-$(CONFIG_SMA) += proto
|
|
@@ -60,10 +62,12 @@
|
|
DPDK_DEPS += ipsecbuild
|
|
endif
|
|
|
|
+ifneq ($(CONFIG_ISAL_PKG_CONFIG),y)
|
|
ifeq ($(CONFIG_ISAL),y)
|
|
ISALBUILD = isalbuild
|
|
LIB += isalbuild
|
|
DPDK_DEPS += isalbuild
|
|
+endif
|
|
ifeq ($(CONFIG_ISAL_CRYPTO),y)
|
|
ISALCRYPTOBUILD = isalcryptobuild
|
|
LIB += isalcryptobuild
|
|
--- a/configure
|
|
+++ b/configure
|
|
@@ -57,6 +57,8 @@
|
|
echo " Implies --without-dpdk."
|
|
echo " --with-idxd Build the IDXD library and accel framework plug-in module."
|
|
echo " --without-idxd Disabled while experimental. Only built for x86 when enabled."
|
|
+ echo " --with-system-isal Build against a system isa-l version. By default, the isa-l"
|
|
+ echo " submodule in spdk tree will be used."
|
|
echo " --with-crypto Build isa-l-crypto and vbdev crypto module. No path required."
|
|
echo " --without-crypto Disable isa-l-crypto and vbdev crypto module."
|
|
echo " --with-fio[=DIR] Build fio_plugin."
|
|
@@ -428,6 +430,22 @@
|
|
--without-dpdk)
|
|
CONFIG[DPDK_DIR]=
|
|
;;
|
|
+ --with-system-isal)
|
|
+ # Can we use pkg-config?
|
|
+ if command -v "pkg-config" > /dev/null 2>&1 && pkg-config --exists libisal; then
|
|
+ isal_libdir=$(pkg-config --variable=libdir libisal)
|
|
+ isal_libdir=$(readlink -f $isal_libdir)
|
|
+ isal_incdir=$(pkg-config --variable=includedir libisal)
|
|
+ echo "Using isa-l lib dir $isal_libdir"
|
|
+ CONFIG[ISAL_LIB_DIR]=$isal_libdir
|
|
+ CONFIG[ISAL_INC_DIR]=$isal_incdir
|
|
+ CONFIG[ISAL_PKG_CONFIG]=y
|
|
+ CFLAGS="${CFLAGS:+$CFLAGS }$(pkg-config --cflags libisal)"
|
|
+ else
|
|
+ echo "libisal.pc not found, aborting"
|
|
+ exit 1
|
|
+ fi
|
|
+ ;;
|
|
--with-wpdk=*)
|
|
check_dir "$i"
|
|
CONFIG[WPDK_DIR]=$(readlink -f ${i#*=})
|
|
@@ -1170,87 +1188,16 @@
|
|
exit 1
|
|
fi
|
|
|
|
-if [[ $arch == x86_64* ]] || [[ $arch == aarch64* ]]; then
|
|
+if [[ "${CONFIG[ISAL_PKG_CONFIG]}" = "y" ]]; then
|
|
+ echo "Using system ISA-L"
|
|
CONFIG[ISAL]=y
|
|
- # make sure the submodule is initialized
|
|
- if [ ! -f "$rootdir"/isa-l/autogen.sh ]; then
|
|
- echo "ISA-L is required but was not found, please init the submodule with:"
|
|
- echo " git submodule update --init"
|
|
- echo "and then re-run this script."
|
|
- exit 1
|
|
- fi
|
|
- # for x86 only, check the nasm version for ISA-L and IPSEC
|
|
- if [[ $arch == x86_64* ]]; then
|
|
- ver=$(nasm -v 2> /dev/null | awk '{print $3}' | awk -Fr '{print $1}')
|
|
- if lt "$ver" 2.14; then
|
|
- CONFIG[ISAL]=n
|
|
- # IPSEC has nasm requirement and DPDK crypto relies on IPSEC
|
|
- CONFIG[IPSEC_MB]=n
|
|
- echo "WARNING: ISA-L & DPDK crypto cannot be used as nasm ver must be 2.14 or newer."
|
|
- fi
|
|
- fi
|
|
- # check gas version on aarch64
|
|
- if [[ $arch == aarch64* ]]; then
|
|
- ver=$(as --version 2> /dev/null | awk 'NR==1{print $7}')
|
|
- if lt "$ver" 2.24; then
|
|
- # ISA-L, compression & crypto require gas version 2.24 or newer.
|
|
- CONFIG[ISAL]=n
|
|
- echo "Notice: ISA-L, compression & crypto require GAS version 2.24 or newer. Turning off default ISA-L and crypto features."
|
|
- elif lt "$ver" 2.34; then
|
|
- #For gas v2.24~v2.34, sve2 instructions are not supported. To workaround it, sve2 optimization should be disabled
|
|
- ISAL_CRYPTO_OPTS+=("--disable-sve2")
|
|
- fi
|
|
- fi
|
|
else
|
|
- # for PPC
|
|
CONFIG[ISAL]=n
|
|
- echo "WARNING: ISA-L cannot be used due to architecture incompatibility."
|
|
+ echo "WARNING: ISA-L not installed."
|
|
fi
|
|
|
|
-# now either configure ISA-L or disable unavailable features
|
|
-if [[ "${CONFIG[ISAL]}" = "y" ]]; then
|
|
- cd $rootdir/isa-l
|
|
- ISAL_LOG=$rootdir/isa-l/spdk-isal.log
|
|
- if [[ -n "${CONFIG[CROSS_PREFIX]}" ]]; then
|
|
- ISAL_OPTS=("--host=${CONFIG[CROSS_PREFIX]}")
|
|
- else
|
|
- ISAL_OPTS=()
|
|
- fi
|
|
- echo -n "Configuring ISA-L (logfile: $ISAL_LOG)..."
|
|
- ./autogen.sh &> $ISAL_LOG
|
|
- ./configure CFLAGS="-fPIC -g -O2" "${ISAL_OPTS[@]}" --enable-shared=no >> $ISAL_LOG 2>&1
|
|
- echo "done."
|
|
- cd $rootdir
|
|
-else
|
|
- echo "Without ISA-L, there is no software support for crypto or compression,"
|
|
- echo "so these features will be disabled."
|
|
- CONFIG[CRYPTO]=n
|
|
- CONFIG[VBDEV_COMPRESS]=n
|
|
- CONFIG[DPDK_COMPRESSDEV]=n
|
|
-fi
|
|
-
|
|
# ISA-L-crypto complements ISA-L functionality, it is only enabled together with ISA-L
|
|
if [[ "${CONFIG[ISAL]}" = "y" ]]; then
|
|
- if [ ! -f "$rootdir"/isa-l-crypto/autogen.sh ]; then
|
|
- echo "ISA-L-crypto is required but was not found, please init the submodule with:"
|
|
- echo " git submodule update --init"
|
|
- echo "and then re-run this script."
|
|
- exit 1
|
|
- fi
|
|
-
|
|
- cd $rootdir/isa-l-crypto
|
|
- ISAL_CRYPTO_LOG=$rootdir/isa-l-crypto/spdk-isal-crypto.log
|
|
- if [[ -n "${CONFIG[CROSS_PREFIX]}" ]]; then
|
|
- ISAL_CRYPTO_OPTS+=("--host=${CONFIG[CROSS_PREFIX]}")
|
|
- fi
|
|
- ISAL_CRYPTO_OPTS+=("--enable-shared=no")
|
|
- echo -n "Configuring ISA-L-crypto (logfile: $ISAL_CRYPTO_LOG)..."
|
|
- ./autogen.sh &> $ISAL_CRYPTO_LOG
|
|
- ./configure CFLAGS="-fPIC -g -O2" "${ISAL_CRYPTO_OPTS[@]}" >> $ISAL_CRYPTO_LOG 2>&1
|
|
- echo "done."
|
|
- cd $rootdir
|
|
- CONFIG[ISAL_CRYPTO]=y
|
|
-else
|
|
CONFIG[ISAL_CRYPTO]=n
|
|
fi
|
|
|
|
--- a/lib/accel/accel_sw.c
|
|
+++ b/lib/accel/accel_sw.c
|
|
@@ -22,8 +22,8 @@
|
|
#endif
|
|
|
|
#ifdef SPDK_CONFIG_ISAL
|
|
-#include "../isa-l/include/igzip_lib.h"
|
|
-#ifdef SPDK_CONFIG_ISAL_CRYPTO
|
|
+#include "isa-l/igzip_lib.h"
|
|
+#if defined(SPDK_CONFIG_ISAL_CRYPTO)
|
|
#include "../isa-l-crypto/include/aes_xts.h"
|
|
#endif
|
|
#endif
|
|
--- a/lib/util/crc16.c
|
|
+++ b/lib/util/crc16.c
|
|
@@ -11,7 +11,7 @@
|
|
*/
|
|
|
|
#ifdef SPDK_CONFIG_ISAL
|
|
-#include "isa-l/include/crc.h"
|
|
+#include "isa-l/crc.h"
|
|
|
|
uint16_t
|
|
spdk_crc16_t10dif(uint16_t init_crc, const void *buf, size_t len)
|
|
--- a/lib/util/crc32c.c
|
|
+++ b/lib/util/crc32c.c
|
|
@@ -8,7 +8,7 @@
|
|
|
|
#ifdef SPDK_CONFIG_ISAL
|
|
#define SPDK_HAVE_ISAL
|
|
-#include <isa-l/include/crc.h>
|
|
+#include <isa-l/crc.h>
|
|
#elif defined(__aarch64__) && defined(__ARM_FEATURE_CRC32)
|
|
#define SPDK_HAVE_ARM_CRC
|
|
#include <arm_acle.h>
|
|
--- a/lib/util/xor.c
|
|
+++ b/lib/util/xor.c
|
|
@@ -85,7 +85,7 @@
|
|
}
|
|
|
|
#ifdef SPDK_CONFIG_ISAL
|
|
-#include "isa-l/include/raid.h"
|
|
+#include "isa-l/raid.h"
|
|
|
|
#define SPDK_XOR_BUF_ALIGN 32
|
|
|