diff --git a/security/openssl-devel/Makefile b/security/openssl-devel/Makefile --- a/security/openssl-devel/Makefile +++ b/security/openssl-devel/Makefile @@ -2,7 +2,7 @@ PORTNAME= openssl DISTVERSION= 3.0.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= security devel MASTER_SITES= https://www.openssl.org/source/ \ ftp://ftp.cert.dfn.de/pub/tools/net/openssl/source/ diff --git a/security/openssl-devel/files/patch-D33062 b/security/openssl-devel/files/patch-D33062 new file mode 100644 --- /dev/null +++ b/security/openssl-devel/files/patch-D33062 @@ -0,0 +1,65 @@ +Fix detection of ARM CPU features + +See also: + * https://github.com/openssl/openssl/pull/17082 + * https://github.com/openssl/openssl/pull/17084 + +--- Configurations/10-main.conf.orig 2021-11-19 18:20:18 UTC ++++ Configurations/10-main.conf +@@ -1061,6 +1061,14 @@ my %targets = ( + perlasm_scheme => "elf", + }, + ++ "BSD-aarch64" => { ++ inherit_from => [ "BSD-generic64" ], ++ lib_cppflags => add("-DL_ENDIAN"), ++ bn_ops => "SIXTY_FOUR_BIT_LONG", ++ asm_arch => 'aarch64', ++ perlasm_scheme => "linux64", ++ }, ++ + "bsdi-elf-gcc" => { + inherit_from => [ "BASE_unix" ], + CC => "gcc", +--- util/perl/OpenSSL/config.pm.orig 2021-11-19 18:21:33 UTC ++++ util/perl/OpenSSL/config.pm +@@ -745,6 +745,7 @@ EOF + [ 'ia64-.*-.*bsd.*', { target => "BSD-ia64" } ], + [ 'x86_64-.*-dragonfly.*', { target => "BSD-x86_64" } ], + [ 'amd64-.*-.*bsd.*', { target => "BSD-x86_64" } ], ++ [ 'arm64-.*-.*bsd.*', { target => "BSD-aarch64" } ], + [ '.*86.*-.*-.*bsd.*', + sub { + # mimic ld behaviour when it's looking for libc... +--- crypto/armcap.c.orig 2021-09-07 11:46:32 UTC ++++ crypto/armcap.c +@@ -112,20 +112,23 @@ static unsigned long getauxval(unsigned long key) + * ARM puts the feature bits for Crypto Extensions in AT_HWCAP2, whereas + * AArch64 used AT_HWCAP. + */ ++# ifndef AT_HWCAP ++# define AT_HWCAP 16 ++# endif ++# ifndef AT_HWCAP2 ++# define AT_HWCAP2 26 ++# endif + # if defined(__arm__) || defined (__arm) +-# define HWCAP 16 +- /* AT_HWCAP */ ++# define HWCAP AT_HWCAP + # define HWCAP_NEON (1 << 12) + +-# define HWCAP_CE 26 +- /* AT_HWCAP2 */ ++# define HWCAP_CE AT_HWCAP2 + # define HWCAP_CE_AES (1 << 0) + # define HWCAP_CE_PMULL (1 << 1) + # define HWCAP_CE_SHA1 (1 << 2) + # define HWCAP_CE_SHA256 (1 << 3) + # elif defined(__aarch64__) +-# define HWCAP 16 +- /* AT_HWCAP */ ++# define HWCAP AT_HWCAP + # define HWCAP_NEON (1 << 1) + + # define HWCAP_CE HWCAP