commit: 95cddcfbc30c70dc7851aff9f7f43192ea36c62a Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Sat Jun 7 21:46:41 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sat Jun 7 21:46:52 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95cddcfb
dev-libs/isa-l_crypto: add 2.25.0 Closes: https://bugs.gentoo.org/923719 Closes: https://bugs.gentoo.org/924865 Signed-off-by: Sam James <sam <AT> gentoo.org> dev-libs/isa-l_crypto/Manifest | 1 + .../isa-l_crypto-2.25.0-configure-avx512.patch | 26 ++++++ .../isa-l_crypto-2.25.0-no-clobber-hardened.patch | 23 +++++ .../isa-l_crypto-2.25.0-respect-LDFLAGS.patch | 18 ++++ .../files/isa-l_crypto-2.25.0-sha1_mb-build.patch | 65 +++++++++++++ .../isa-l_crypto-2.25.0-tests-use-internal.patch | 101 +++++++++++++++++++++ .../files/isa-l_crypto-2.25.0_makefile-no-D.patch | 17 ++++ dev-libs/isa-l_crypto/isa-l_crypto-2.25.0.ebuild | 58 ++++++++++++ 8 files changed, 309 insertions(+) diff --git a/dev-libs/isa-l_crypto/Manifest b/dev-libs/isa-l_crypto/Manifest index 4934b64eadcb..826b5e3bf3d9 100644 --- a/dev-libs/isa-l_crypto/Manifest +++ b/dev-libs/isa-l_crypto/Manifest @@ -1 +1,2 @@ DIST isa-l_crypto-2.24.0.tar.gz 687392 BLAKE2B 10b5e820f9e9d25f0f013d4cfe832760363bf1f1f2759a94f733b25ebd62b52a98262969e24be1ba86d132ee6eaefc9e64c99cceb4f9ba206c848b9aeb45f9d8 SHA512 f72800a8ff9c0b2bfdd88cb6780db91bfd5763af04a6318aa3acaff0b1326e3348cb3a4aff17c99636eb291d1ff6249dcf896392a2450adacd83ddbf4c7299da +DIST isa-l_crypto-2.25.0.tar.gz 837729 BLAKE2B 18328b404a2686718fc8cf9bc596816e4521ec85440e8aad2bb40d32eabc606807617fc08c2790c4bb0a0b84648fa9820a4a6c19ac6a3cbbbc2cd96bddfd1eb9 SHA512 d63f14468258b977cf85bcb2cb5a6de1a678d51631cdbb361aed0f45a5c0ae3770bb40721b6da1cfe889cb88c2c5620a12adf2a8b0c90031f1bfe1b276641f38 diff --git a/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-configure-avx512.patch b/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-configure-avx512.patch new file mode 100644 index 000000000000..090b97dc475c --- /dev/null +++ b/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-configure-avx512.patch @@ -0,0 +1,26 @@ +https://github.com/intel/isa-l_crypto/commit/0850c01cc03e45f77d5883372dd6be983ba163ce + +From 0850c01cc03e45f77d5883372dd6be983ba163ce Mon Sep 17 00:00:00 2001 +From: Mehrdad Tahernia <[email protected]> +Date: Tue, 28 Jan 2025 11:55:20 +0800 +Subject: [PATCH] configure.ac: fix syntax for AVX512 support check + +Signed-off-by: Mehrdad Tahernia <[email protected]> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 2af2f15f..8e9b9db9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -217,7 +217,7 @@ int main(int argc, char **argv) + fi + if test x"$as_feature_level" = x"6"; then + AC_MSG_CHECKING([for additional as AVX512 support]) +- AC_LANG_CONFTEST([AC_LANG_SOURCE([[vpcompressb zmm0, k1, zmm1;]])]) ++ AC_LANG_CONFTEST([AC_LANG_SOURCE([[vpcompressb zmm0 {k1}, zmm1;]])]) + sed -i -e '/vpcompressb/!d' conftest.c + if $AS -f elf64 conftest.c 2> /dev/null; then + AC_MSG_RESULT([yes]) + diff --git a/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-no-clobber-hardened.patch b/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-no-clobber-hardened.patch new file mode 100644 index 000000000000..3dea07eecf32 --- /dev/null +++ b/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-no-clobber-hardened.patch @@ -0,0 +1,23 @@ +Don't override hardened toolchain defaults. +--- a/configure.ac ++++ b/configure.ac +@@ -311,8 +311,6 @@ my_CFLAGS="\ + -Wshadow \ + -Wstrict-prototypes \ + -Wtype-limits \ +--fstack-protector \ +--D_FORTIFY_SOURCE=2 \ + -DNO_COMPAT_ISAL_CRYPTO_API_2_24 + " + AC_SUBST([my_CFLAGS]) +--- a/make.inc ++++ b/make.inc +@@ -51,7 +51,7 @@ DEBUG = -g + DEBUG_nasm = -g + + # Default arch= build options +-CFLAGS_ = -Wall -Wchar-subscripts -Wformat-security -Wnested-externs -Wpointer-arith -Wshadow -Wstrict-prototypes -Wtype-limits -fstack-protector -D_FORTIFY_SOURCE=2 -DNO_COMPAT_ISAL_CRYPTO_API_2_24 ++CFLAGS_ = -Wall -Wchar-subscripts -Wformat-security -Wnested-externs -Wpointer-arith -Wshadow -Wstrict-prototypes -Wtype-limits -DNO_COMPAT_ISAL_CRYPTO_API_2_24 + ASFLAGS_ = -f elf64 + ARFLAGS_ = cr $@ + STRIP_gcc = strip -d -R .comment $@ diff --git a/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-respect-LDFLAGS.patch b/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-respect-LDFLAGS.patch new file mode 100644 index 000000000000..36051c73d592 --- /dev/null +++ b/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-respect-LDFLAGS.patch @@ -0,0 +1,18 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -119,6 +119,7 @@ AS_IF([test "x$intel_cet_enabled" = "xyes"], [ + ]) + + # check if LD -z options are supported ++orig_LDFLAGS="${LDFLAGS}" + LDFLAGS="\ + -Wl,-z,noexecstack \ + -Wl,-z,relro \ +@@ -283,6 +284,7 @@ else + AM_CONDITIONAL(WITH_SHANI, test "x" = "y") + AM_CONDITIONAL(DARWIN, test "x" = "y") + fi ++LDFLAGS="${orig_LDFLAGS}" + + # Check for header files + AC_CHECK_HEADERS([limits.h stdint.h stdlib.h string.h]) diff --git a/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-sha1_mb-build.patch b/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-sha1_mb-build.patch new file mode 100644 index 000000000000..b6866902be14 --- /dev/null +++ b/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-sha1_mb-build.patch @@ -0,0 +1,65 @@ +https://github.com/intel/isa-l_crypto/commit/6e62643df9ed6c2c62e287d14f192057189dda8d + +From 6e62643df9ed6c2c62e287d14f192057189dda8d Mon Sep 17 00:00:00 2001 +From: "Ivan A. Melnikov" <[email protected]> +Date: Wed, 31 Jul 2024 17:44:29 +0400 +Subject: [PATCH] sha1_mb: Add missing ISAL_ prefixes to base aliases + +Commit 0106da915b7024075fc74900ff63fa931ac15475 somehow +missed updating the base aliases, which broke build +on architectures for which SHA1 routines were not +specifically optimized, e.g. loongarch64. + +This commit addresses that. + +Fixes: 0106da915b7024075fc74900ff63fa931ac15475 +Signed-off-by: Ivan A. Melnikov <[email protected]> +--- + sha1_mb/sha1_ctx_base_aliases.c | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/sha1_mb/sha1_ctx_base_aliases.c b/sha1_mb/sha1_ctx_base_aliases.c +index 517cfc15..b0c7643c 100644 +--- a/sha1_mb/sha1_ctx_base_aliases.c ++++ b/sha1_mb/sha1_ctx_base_aliases.c +@@ -32,28 +32,28 @@ + #include "memcpy_inline.h" + + extern void +-_sha1_ctx_mgr_init_base(SHA1_HASH_CTX_MGR *mgr); +-extern SHA1_HASH_CTX * +-_sha1_ctx_mgr_submit_base(SHA1_HASH_CTX_MGR *mgr, SHA1_HASH_CTX *ctx, const void *buffer, ++_sha1_ctx_mgr_init_base(ISAL_SHA1_HASH_CTX_MGR *mgr); ++extern ISAL_SHA1_HASH_CTX * ++_sha1_ctx_mgr_submit_base(ISAL_SHA1_HASH_CTX_MGR *mgr, ISAL_SHA1_HASH_CTX *ctx, const void *buffer, + uint32_t len, ISAL_HASH_CTX_FLAG flags); +-extern SHA1_HASH_CTX * +-_sha1_ctx_mgr_flush_base(SHA1_HASH_CTX_MGR *mgr); ++extern ISAL_SHA1_HASH_CTX * ++_sha1_ctx_mgr_flush_base(ISAL_SHA1_HASH_CTX_MGR *mgr); + + void +-_sha1_ctx_mgr_init(SHA1_HASH_CTX_MGR *mgr) ++_sha1_ctx_mgr_init(ISAL_SHA1_HASH_CTX_MGR *mgr) + { + return _sha1_ctx_mgr_init_base(mgr); + } + +-SHA1_HASH_CTX * +-_sha1_ctx_mgr_submit(SHA1_HASH_CTX_MGR *mgr, SHA1_HASH_CTX *ctx, const void *buffer, uint32_t len, +- ISAL_HASH_CTX_FLAG flags) ++ISAL_SHA1_HASH_CTX * ++_sha1_ctx_mgr_submit(ISAL_SHA1_HASH_CTX_MGR *mgr, ISAL_SHA1_HASH_CTX *ctx, const void *buffer, ++ uint32_t len, ISAL_HASH_CTX_FLAG flags) + { + return _sha1_ctx_mgr_submit_base(mgr, ctx, buffer, len, flags); + } + +-SHA1_HASH_CTX * +-_sha1_ctx_mgr_flush(SHA1_HASH_CTX_MGR *mgr) ++ISAL_SHA1_HASH_CTX * ++_sha1_ctx_mgr_flush(ISAL_SHA1_HASH_CTX_MGR *mgr) + { + return _sha1_ctx_mgr_flush_base(mgr); + } + diff --git a/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-tests-use-internal.patch b/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-tests-use-internal.patch new file mode 100644 index 000000000000..f72b46874850 --- /dev/null +++ b/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0-tests-use-internal.patch @@ -0,0 +1,101 @@ +https://github.com/intel/isa-l_crypto/commit/2188e8a03357a64f768a2765bcf452401a2b12fc + +From 2188e8a03357a64f768a2765bcf452401a2b12fc Mon Sep 17 00:00:00 2001 +From: Pablo de Lara <[email protected]> +Date: Tue, 5 Nov 2024 09:07:36 +0000 +Subject: [PATCH] tests: [ACVP] use internal isa-l crypto library + +Signed-off-by: Pablo de Lara <[email protected]> +--- + tests/acvp/acvp_app.c | 2 +- + tests/acvp/acvp_app_isal_cbc.c | 3 ++- + tests/acvp/acvp_app_isal_gcm.c | 3 ++- + tests/acvp/acvp_app_isal_sha.c | 5 ++++- + tests/acvp/acvp_app_isal_xts.c | 3 ++- + tests/acvp/makefile | 2 +- + 6 files changed, 12 insertions(+), 6 deletions(-) + +diff --git a/tests/acvp/acvp_app.c b/tests/acvp/acvp_app.c +index cb811622..c144ef23 100644 +--- a/tests/acvp/acvp_app.c ++++ b/tests/acvp/acvp_app.c +@@ -33,7 +33,7 @@ + #include <string.h> + #include <getopt.h> + #include <acvp/acvp.h> +-#include <isa-l_crypto.h> ++#include "include/isal_crypto_api.h" + + #if defined(__GNUC__) || defined(__clang__) + #define ATTRIBUTE(x) __attribute__((x)) +diff --git a/tests/acvp/acvp_app_isal_cbc.c b/tests/acvp/acvp_app_isal_cbc.c +index 39d0c9f0..f5c6ddc3 100644 +--- a/tests/acvp/acvp_app_isal_cbc.c ++++ b/tests/acvp/acvp_app_isal_cbc.c +@@ -32,7 +32,8 @@ + + #include <stdlib.h> + #include <acvp/acvp.h> +-#include <isa-l_crypto.h> ++#include "include/aes_cbc.h" ++#include "include/aes_keyexp.h" + + extern uint8_t verbose; + +diff --git a/tests/acvp/acvp_app_isal_gcm.c b/tests/acvp/acvp_app_isal_gcm.c +index a1dea085..8f2f4b35 100644 +--- a/tests/acvp/acvp_app_isal_gcm.c ++++ b/tests/acvp/acvp_app_isal_gcm.c +@@ -31,7 +31,8 @@ + #include <stdlib.h> + #include <string.h> + #include <acvp/acvp.h> +-#include <isa-l_crypto.h> ++ ++#include "include/aes_gcm.h" + + extern uint8_t verbose; + +diff --git a/tests/acvp/acvp_app_isal_sha.c b/tests/acvp/acvp_app_isal_sha.c +index c15ddaa9..d09d880c 100644 +--- a/tests/acvp/acvp_app_isal_sha.c ++++ b/tests/acvp/acvp_app_isal_sha.c +@@ -31,7 +31,10 @@ + #include <stdlib.h> + #include <string.h> + #include <acvp/acvp.h> +-#include <isa-l_crypto.h> ++ ++#include "include/sha1_mb.h" ++#include "include/sha256_mb.h" ++#include "include/sha512_mb.h" + + extern uint8_t verbose; + +diff --git a/tests/acvp/acvp_app_isal_xts.c b/tests/acvp/acvp_app_isal_xts.c +index 621ab78a..da78390f 100644 +--- a/tests/acvp/acvp_app_isal_xts.c ++++ b/tests/acvp/acvp_app_isal_xts.c +@@ -30,7 +30,8 @@ + #include <stdio.h> + #include <stdlib.h> + #include <acvp/acvp.h> +-#include <isa-l_crypto.h> ++ ++#include "include/aes_xts.h" + + extern uint8_t verbose; + +diff --git a/tests/acvp/makefile b/tests/acvp/makefile +index f5d650ab..b6dd7575 100644 +--- a/tests/acvp/makefile ++++ b/tests/acvp/makefile +@@ -1,6 +1,6 @@ + ACVP_PATH = /usr/local/acvp + +-INCLUDES = -I $(ACVP_PATH)/include -L $(ACVP_PATH)/lib ++INCLUDES = -I $(ACVP_PATH)/include -L $(ACVP_PATH)/lib -I ../../ + CFLAGS = -Wall -O2 $(INCLUDES) -DNO_COMPAT_ISAL_CRYPTO_API_2_24 + LDLIBS = -lacvp -lisal_crypto + + diff --git a/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0_makefile-no-D.patch b/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0_makefile-no-D.patch new file mode 100644 index 000000000000..66bb26152605 --- /dev/null +++ b/dev-libs/isa-l_crypto/files/isa-l_crypto-2.25.0_makefile-no-D.patch @@ -0,0 +1,17 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -121,11 +121,11 @@ CCAS = $(as_filter) + EXTRA_DIST += tools/nasm-filter.sh + EXTRA_DIST += tools/nasm-cet-filter.sh + +-AM_CFLAGS = ${my_CFLAGS} ${INCLUDE} $(src_include) ${D} ++AM_CFLAGS = ${my_CFLAGS} ${INCLUDE} $(src_include) ${DIST_D} + if CPU_AARCH64 +-AM_CCASFLAGS = ${asm_args} ${INCLUDE} $(src_include) ${D} ++AM_CCASFLAGS = ${asm_args} ${INCLUDE} $(src_include) ${DIST_D} + else +-AM_CCASFLAGS = ${asm_args} ${INCLUDE} $(src_include) ${DEFS} ${D} ++AM_CCASFLAGS = ${asm_args} ${INCLUDE} $(src_include) ${DEFS} ${DIST_D} + endif + + .asm.s: diff --git a/dev-libs/isa-l_crypto/isa-l_crypto-2.25.0.ebuild b/dev-libs/isa-l_crypto/isa-l_crypto-2.25.0.ebuild new file mode 100644 index 000000000000..be8d966a69ac --- /dev/null +++ b/dev-libs/isa-l_crypto/isa-l_crypto-2.25.0.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic + +DESCRIPTION="Intelligent Storage Acceleration Library - cryptographic components" +HOMEPAGE="https://github.com/intel/isa-l_crypto" +SRC_URI="https://github.com/intel/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64" +IUSE="cpu_flags_x86_avx512f" + +# AVX512 support in yasm is still work in progress +# Note that dev-libs/isa-l-2.31.1 has a workaround for this, but that +# doesn't seem to have reached isa-l_crypto yet. +BDEPEND="amd64? ( + cpu_flags_x86_avx512f? ( >=dev-lang/nasm-2.13 ) + !cpu_flags_x86_avx512f? ( || ( + >=dev-lang/nasm-2.11.01 + >=dev-lang/yasm-1.2.0 + ) ) +)" + +PATCHES=( + "${FILESDIR}"/${PN}-2.25.0_makefile-no-D.patch + "${FILESDIR}"/${PN}-2.25.0-sha1_mb-build.patch + "${FILESDIR}"/${PN}-2.25.0-tests-use-internal.patch + "${FILESDIR}"/${PN}-2.25.0-configure-avx512.patch + "${FILESDIR}"/${PN}-2.25.0-respect-LDFLAGS.patch + "${FILESDIR}"/${PN}-2.25.0-no-clobber-hardened.patch +) + +src_prepare() { + default + + # isa-l does not support arbitrary assemblers on amd64 (and presumably x86), + # it must be either nasm or yasm. + use amd64 && unset AS + + eautoreconf +} + +src_configure() { + # Test failures with LTO (bug #924865) + # Likely related to https://github.com/intel/isa-l_crypto/issues/73 + append-flags -fno-strict-aliasing + + default +} + +src_install() { + default + find "${ED}" -name '*.la' -delete || die +}
