intel-crypto-mb: upgrade 2021.3 -> 2021.5

Intel IPP Cryptography uses multiple implementations of each function,
optimized for various CPUs, and the library version targeted
for any CPU contains all of these implementations.

With the dispatcher, the library detects an available CPU in a runtime
and chooses the best for the current hardware version of a function, hence
ignore Yocto march, mtune values and let the project
pass those values along with the right optimization flags.

https://github.com/intel/ipp-crypto/blob/ippcp_2021.5/OVERVIEW.md#dispatcher

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
This commit is contained in:
Naveen Saini 2022-03-16 11:07:59 +08:00 committed by Anuj Mittal
parent 39027f7038
commit f8ce4df052
4 changed files with 60 additions and 44 deletions

View File

@ -1,19 +1,22 @@
From 7b575fc23d246373425c3682e83634203aadc4a6 Mon Sep 17 00:00:00 2001
From efedbf9080c19241c2aa9ee7ba901245d38c8fa2 Mon Sep 17 00:00:00 2001
From: Naveen Saini <naveen.kumar.saini@intel.com>
Date: Thu, 17 Jun 2021 12:35:36 +0800
Subject: [PATCH 3/4] CMakeLists.txt: exclude host system headers
Date: Mon, 7 Mar 2022 16:44:24 +0800
Subject: [PATCH 1/2] CMakeLists.txt: exclude host system headers
Upstream-Status: Inappropriate
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
---
sources/ippcp/crypto_mb/CMakeLists.txt | 1 -
1 file changed, 1 deletion(-)
diff --git a/sources/ippcp/crypto_mb/CMakeLists.txt b/sources/ippcp/crypto_mb/CMakeLists.txt
index d1f3994..db9635b 100644
index c4cc82a..4094f34 100644
--- a/sources/ippcp/crypto_mb/CMakeLists.txt
+++ b/sources/ippcp/crypto_mb/CMakeLists.txt
@@ -75,7 +75,6 @@ endif()
include_directories(
${MB_INCLUDE_DIRS}
@@ -82,7 +82,6 @@ include_directories(
${CRYPTO_MB_INCLUDE_DIR}
${OPENSSL_INCLUDE_DIR}
$<$<C_COMPILER_ID:Intel>:$ENV{ROOT}/compiler/include $ENV{ROOT}/compiler/include/icc>
- $<$<NOT:$<C_COMPILER_ID:Intel>>:${CMAKE_SYSTEM_INCLUDE_PATH}>
$<$<OR:$<C_COMPILER_ID:Intel>,$<BOOL:${MSVC_IDE}>>:$ENV{INCLUDE}>

View File

@ -1,29 +0,0 @@
From c440800cae91f857949255cc63993426bdaefb26 Mon Sep 17 00:00:00 2001
From: Naveen Saini <naveen.kumar.saini@intel.com>
Date: Wed, 16 Jun 2021 20:54:33 +0800
Subject: [PATCH 1/4] GNU.cmake: allow to pass compiler and linker flags
Upstream-Status: Inappropriate
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
---
sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake b/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake
index 5d148a1..4cb2289 100644
--- a/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake
+++ b/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake
@@ -56,7 +56,8 @@ set(LINK_FLAGS_DYNAMIC "${LINK_FLAGS_DYNAMIC} ${CRYPTO_MB_SOURCES_DIR}/cmake/dll
# Compiler flags
# Tells the compiler to align functions and loops
-set(CMAKE_C_FLAGS " -falign-functions=32 -falign-loops=32")
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -falign-functions=32 -falign-loops=32")
+
# Ensures that compilation takes place in a freestanding environment
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffreestanding")
--
2.17.1

View File

@ -0,0 +1,45 @@
From b4549bb765d279b5ba042c6340e1dd69d0890b64 Mon Sep 17 00:00:00 2001
From: Naveen Saini <naveen.kumar.saini@intel.com>
Date: Thu, 10 Mar 2022 14:30:01 +0800
Subject: [PATCH 2/2] cmake: exclude Yocto build flags
Ipp-crypto has its own set of flags and -march values,
which causes conflict with default -march=nehalem in gcc
Upstream-Status: Inappropriate
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
---
sources/ippcp/crypto_mb/src/CMakeLists.txt | 2 +-
sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sources/ippcp/crypto_mb/src/CMakeLists.txt b/sources/ippcp/crypto_mb/src/CMakeLists.txt
index 1ca1a8c..5284d62 100644
--- a/sources/ippcp/crypto_mb/src/CMakeLists.txt
+++ b/sources/ippcp/crypto_mb/src/CMakeLists.txt
@@ -81,7 +81,7 @@ endif()
set(MB_LIB_TARGET ${MB_DYN_LIB_TARGET})
set_source_files_properties(${CRYPTO_MB_SOURCES} PROPERTIES COMPILE_DEFINITIONS "${AVX512_LIBRARY_DEFINES}"
- COMPILE_FLAGS "${AVX512_CFLAGS} ${CMAKE_ASM_FLAGS} ${CMAKE_C_FLAGS_SECURITY}")
+ COMPILE_FLAGS "${AVX512_CFLAGS} ${CMAKE_C_FLAGS_SECURITY}")
# Don't specify architectural flags for the assembler for this sources, because of the bug in Intel® C Compiler under MacOS: error: invalid instruction mnemonic 'vkmovb'
# The bug has been fixed since version 2021.3. This is a workaround to support older versions of Intel® C Compiler.
diff --git a/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake b/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake
index a2abeeb..aadd6e2 100644
--- a/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake
+++ b/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake
@@ -58,7 +58,7 @@ set(LINK_FLAGS_DYNAMIC "${LINK_FLAGS_DYNAMIC} ${CRYPTO_MB_SOURCES_DIR}/cmake/dll
# Compiler flags
# Tells the compiler to align functions and loops
-set(CMAKE_C_FLAGS " -falign-functions=32 -falign-loops=32")
+set(CMAKE_C_FLAGS " -falign-functions=32 -falign-loops=32 ${TOOLCHAIN_OPTIONS}")
# Ensures that compilation takes place in a freestanding environment
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffreestanding")
--
2.17.1

View File

@ -9,12 +9,11 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://../../../LICENSE;md5=e787af283468feca985d6b865d27d95b"
SRC_URI = " \
git://github.com/intel/ipp-crypto;protocol=https;branch=ipp-crypto_2021_3 \
file://0001-GNU.cmake-allow-to-pass-compiler-and-linker-flags.patch;striplevel=4 \
file://0003-CMakeLists.txt-exclude-host-system-headers.patch;striplevel=4 \
git://github.com/intel/ipp-crypto;protocol=https;branch=ipp-crypto_2021_5 \
file://0001-CMakeLists.txt-exclude-host-system-headers.patch;striplevel=4 \
file://0002-cmake-exclude-Yocto-build-flags.patch;striplevel=4 \
"
SRCREV = "d9d13aaaf8889753fb58a13c2652c39b67c2076b"
SRCREV = "2b8c5c82c87e3fe37f132f632557367d9bc8a69b"
S = "${WORKDIR}/git/sources/ippcp/crypto_mb"
@ -23,7 +22,5 @@ DEPENDS = "openssl"
inherit cmake pkgconfig
COMPATIBLE_HOST = '(x86_64).*-linux'
# error: 'SHA512_Init' is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations]
CFLAGS:append = " -Wno-error=deprecated-declarations"
EXTRA_OECMAKE += " -DARCH=intel64"
EXTRA_OECMAKE += " -DTOOLCHAIN_OPTIONS='${TOOLCHAIN_OPTIONS}'"