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 <[email protected]>
---
 ...sts.txt-exclude-host-system-headers.patch} | 17 ++++---
 ...ow-to-pass-compiler-and-linker-flags.patch | 29 ------------
 ...0002-cmake-exclude-Yocto-build-flags.patch | 45 +++++++++++++++++++
 ...mb_2021.3.bb => intel-crypto-mb_2021.5.bb} | 13 +++---
 4 files changed, 60 insertions(+), 44 deletions(-)
 rename 
recipes-oneapi/crypto/intel-crypto-mb/{0003-CMakeLists.txt-exclude-host-system-headers.patch
 => 0001-CMakeLists.txt-exclude-host-system-headers.patch} (61%)
 delete mode 100644 
recipes-oneapi/crypto/intel-crypto-mb/0001-GNU.cmake-allow-to-pass-compiler-and-linker-flags.patch
 create mode 100644 
recipes-oneapi/crypto/intel-crypto-mb/0002-cmake-exclude-Yocto-build-flags.patch
 rename recipes-oneapi/crypto/{intel-crypto-mb_2021.3.bb => 
intel-crypto-mb_2021.5.bb} (64%)

diff --git 
a/recipes-oneapi/crypto/intel-crypto-mb/0003-CMakeLists.txt-exclude-host-system-headers.patch
 
b/recipes-oneapi/crypto/intel-crypto-mb/0001-CMakeLists.txt-exclude-host-system-headers.patch
similarity index 61%
rename from 
recipes-oneapi/crypto/intel-crypto-mb/0003-CMakeLists.txt-exclude-host-system-headers.patch
rename to 
recipes-oneapi/crypto/intel-crypto-mb/0001-CMakeLists.txt-exclude-host-system-headers.patch
index f9c4a923..58ed1c9a 100644
--- 
a/recipes-oneapi/crypto/intel-crypto-mb/0003-CMakeLists.txt-exclude-host-system-headers.patch
+++ 
b/recipes-oneapi/crypto/intel-crypto-mb/0001-CMakeLists.txt-exclude-host-system-headers.patch
@@ -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 <[email protected]>
-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 <[email protected]>
 ---
+ 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}>
diff --git 
a/recipes-oneapi/crypto/intel-crypto-mb/0001-GNU.cmake-allow-to-pass-compiler-and-linker-flags.patch
 
b/recipes-oneapi/crypto/intel-crypto-mb/0001-GNU.cmake-allow-to-pass-compiler-and-linker-flags.patch
deleted file mode 100644
index 49adf8f1..00000000
--- 
a/recipes-oneapi/crypto/intel-crypto-mb/0001-GNU.cmake-allow-to-pass-compiler-and-linker-flags.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From c440800cae91f857949255cc63993426bdaefb26 Mon Sep 17 00:00:00 2001
-From: Naveen Saini <[email protected]>
-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 <[email protected]>
----
- 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
-
diff --git 
a/recipes-oneapi/crypto/intel-crypto-mb/0002-cmake-exclude-Yocto-build-flags.patch
 
b/recipes-oneapi/crypto/intel-crypto-mb/0002-cmake-exclude-Yocto-build-flags.patch
new file mode 100644
index 00000000..62b56ea2
--- /dev/null
+++ 
b/recipes-oneapi/crypto/intel-crypto-mb/0002-cmake-exclude-Yocto-build-flags.patch
@@ -0,0 +1,45 @@
+From b4549bb765d279b5ba042c6340e1dd69d0890b64 Mon Sep 17 00:00:00 2001
+From: Naveen Saini <[email protected]>
+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 <[email protected]>
+---
+ 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
+
diff --git a/recipes-oneapi/crypto/intel-crypto-mb_2021.3.bb 
b/recipes-oneapi/crypto/intel-crypto-mb_2021.5.bb
similarity index 64%
rename from recipes-oneapi/crypto/intel-crypto-mb_2021.3.bb
rename to recipes-oneapi/crypto/intel-crypto-mb_2021.5.bb
index 68010a4a..ed1839d3 100644
--- a/recipes-oneapi/crypto/intel-crypto-mb_2021.3.bb
+++ b/recipes-oneapi/crypto/intel-crypto-mb_2021.5.bb
@@ -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}'"
-- 
2.17.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#7467): 
https://lists.yoctoproject.org/g/meta-intel/message/7467
Mute This Topic: https://lists.yoctoproject.org/mt/89814505/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-intel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to