aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey A. Osokin <osa@FreeBSD.org>2022-07-26 17:58:18 +0000
committerSergey A. Osokin <osa@FreeBSD.org>2022-07-26 17:59:28 +0000
commit22a9a1e09c0a6d2c20d1fdd637f0a8973443870f (patch)
tree2f78bd31b783f635a8953e3a464fdbf57b6d797f
parentdd6d86470a90b4ec66a4d73026fc52d38a231cd5 (diff)
downloadports-22a9a1e09c0a6d2c20d1fdd637f0a8973443870f.tar.gz
ports-22a9a1e09c0a6d2c20d1fdd637f0a8973443870f.zip
security/boringssl: move aarch64 support to a separate file
Bump PORTREVISION.
-rw-r--r--security/boringssl/Makefile2
-rw-r--r--security/boringssl/files/patch-crypto_CMakeLists.txt10
-rw-r--r--security/boringssl/files/patch-crypto_cpu__aarch64__freebsd.c65
-rw-r--r--security/boringssl/files/patch-crypto_cpu__aarch64__linux.c78
4 files changed, 73 insertions, 82 deletions
diff --git a/security/boringssl/Makefile b/security/boringssl/Makefile
index 45ccb2abe6b6..6bca457c80f1 100644
--- a/security/boringssl/Makefile
+++ b/security/boringssl/Makefile
@@ -1,6 +1,6 @@
PORTNAME= boringssl
PORTVERSION= 0.0.0.0.2022.07.25.01
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= security
MAINTAINER= osa@FreeBSD.org
diff --git a/security/boringssl/files/patch-crypto_CMakeLists.txt b/security/boringssl/files/patch-crypto_CMakeLists.txt
index 6755b7553615..d46e32af0db3 100644
--- a/security/boringssl/files/patch-crypto_CMakeLists.txt
+++ b/security/boringssl/files/patch-crypto_CMakeLists.txt
@@ -1,6 +1,10 @@
--- crypto/CMakeLists.txt.orig 2022-07-25 14:53:51.000000000 -0400
-+++ crypto/CMakeLists.txt 2022-07-26 11:40:36.847197000 -0400
-@@ -267,6 +267,7 @@
++++ crypto/CMakeLists.txt 2022-07-26 12:18:36.169803000 -0400
+@@ -264,9 +264,11 @@
+ cipher_extra/tls_cbc.c
+ conf/conf.c
+ cpu_aarch64_apple.c
++ cpu_aarch64_freebsd.c
cpu_aarch64_fuchsia.c
cpu_aarch64_linux.c
cpu_aarch64_win.c
@@ -8,7 +12,7 @@
cpu_arm_linux.c
cpu_arm.c
cpu_intel.c
-@@ -464,6 +465,7 @@
+@@ -464,6 +466,7 @@
endif()
SET_TARGET_PROPERTIES(crypto PROPERTIES LINKER_LANGUAGE C)
diff --git a/security/boringssl/files/patch-crypto_cpu__aarch64__freebsd.c b/security/boringssl/files/patch-crypto_cpu__aarch64__freebsd.c
new file mode 100644
index 000000000000..fe7b139f23ed
--- /dev/null
+++ b/security/boringssl/files/patch-crypto_cpu__aarch64__freebsd.c
@@ -0,0 +1,65 @@
+--- /dev/null 2022-07-26 12:16:14.406018000 -0400
++++ crypto/cpu_aarch64_freebsd.c 2022-07-26 12:15:28.130832000 -0400
+@@ -0,0 +1,62 @@
++/* Copyright (c) 2016, Google Inc.
++ *
++ * Permission to use, copy, modify, and/or distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
++ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
++ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
++ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
++
++#include "internal.h"
++
++#if defined(OPENSSL_AARCH64)
++
++
++#include <openssl/arm_arch.h>
++
++
++extern uint32_t OPENSSL_armcap_P;
++
++#if defined(OPENSSL_FREEBSD)
++#include <sys/types.h>
++#include <machine/_stdint.h>
++#include <machine/armreg.h>
++#endif
++
++#ifndef ID_AA64ISAR0_AES_VAL
++#define ID_AA64ISAR0_AES_VAL ID_AA64ISAR0_AES
++#endif
++#ifndef ID_AA64ISAR0_SHA1_VAL
++#define ID_AA64ISAR0_SHA1_VAL ID_AA64ISAR0_SHA1
++#endif
++#ifndef ID_AA64ISAR0_SHA2_VAL
++#define ID_AA64ISAR0_SHA2_VAL ID_AA64ISAR0_SHA2
++#endif
++
++void OPENSSL_cpuid_setup(void) {
++ uint64_t id_aa64isar0;
++
++ id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1);
++
++ OPENSSL_armcap_P |= ARMV7_NEON;
++
++ if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) >= ID_AA64ISAR0_AES_BASE) {
++ OPENSSL_armcap_P |= ARMV8_AES;
++ }
++ if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) == ID_AA64ISAR0_AES_PMULL) {
++ OPENSSL_armcap_P |= ARMV8_PMULL;
++ }
++ if (ID_AA64ISAR0_SHA1_VAL(id_aa64isar0) == ID_AA64ISAR0_SHA1_BASE) {
++ OPENSSL_armcap_P |= ARMV8_SHA1;
++ }
++ if (ID_AA64ISAR0_SHA2_VAL(id_aa64isar0) >= ID_AA64ISAR0_SHA2_BASE) {
++ OPENSSL_armcap_P |= ARMV8_SHA256;
++ }
++}
++
++#endif // OPENSSL_AARCH64
diff --git a/security/boringssl/files/patch-crypto_cpu__aarch64__linux.c b/security/boringssl/files/patch-crypto_cpu__aarch64__linux.c
deleted file mode 100644
index a5276e203ab0..000000000000
--- a/security/boringssl/files/patch-crypto_cpu__aarch64__linux.c
+++ /dev/null
@@ -1,78 +0,0 @@
---- crypto/cpu_aarch64_linux.c.orig 2022-01-18 16:46:15 UTC
-+++ crypto/cpu_aarch64_linux.c
-@@ -14,51 +14,49 @@
-
- #include "internal.h"
-
--#if defined(OPENSSL_AARCH64) && defined(OPENSSL_LINUX) && \
-- !defined(OPENSSL_STATIC_ARMCAP)
-+#if defined(OPENSSL_AARCH64)
-
--#include <sys/auxv.h>
-
- #include <openssl/arm_arch.h>
-
-
- extern uint32_t OPENSSL_armcap_P;
-
--void OPENSSL_cpuid_setup(void) {
-- unsigned long hwcap = getauxval(AT_HWCAP);
-+#if defined(OPENSSL_FREEBSD)
-+#include <sys/types.h>
-+#include <machine/_stdint.h>
-+#include <machine/armreg.h>
-+#endif
-
-- // See /usr/include/asm/hwcap.h on an aarch64 installation for the source of
-- // these values.
-- static const unsigned long kNEON = 1 << 1;
-- static const unsigned long kAES = 1 << 3;
-- static const unsigned long kPMULL = 1 << 4;
-- static const unsigned long kSHA1 = 1 << 5;
-- static const unsigned long kSHA256 = 1 << 6;
-- static const unsigned long kSHA512 = 1 << 21;
-+#ifndef ID_AA64ISAR0_AES_VAL
-+#define ID_AA64ISAR0_AES_VAL ID_AA64ISAR0_AES
-+#endif
-+#ifndef ID_AA64ISAR0_SHA1_VAL
-+#define ID_AA64ISAR0_SHA1_VAL ID_AA64ISAR0_SHA1
-+#endif
-+#ifndef ID_AA64ISAR0_SHA2_VAL
-+#define ID_AA64ISAR0_SHA2_VAL ID_AA64ISAR0_SHA2
-+#endif
-
-- if ((hwcap & kNEON) == 0) {
-- // Matching OpenSSL, if NEON is missing, don't report other features
-- // either.
-- return;
-- }
-+void OPENSSL_cpuid_setup(void) {
-+ uint64_t id_aa64isar0;
-
-+ id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1);
-+
- OPENSSL_armcap_P |= ARMV7_NEON;
-
-- if (hwcap & kAES) {
-+ if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) >= ID_AA64ISAR0_AES_BASE) {
- OPENSSL_armcap_P |= ARMV8_AES;
- }
-- if (hwcap & kPMULL) {
-+ if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) == ID_AA64ISAR0_AES_PMULL) {
- OPENSSL_armcap_P |= ARMV8_PMULL;
- }
-- if (hwcap & kSHA1) {
-+ if (ID_AA64ISAR0_SHA1_VAL(id_aa64isar0) == ID_AA64ISAR0_SHA1_BASE) {
- OPENSSL_armcap_P |= ARMV8_SHA1;
- }
-- if (hwcap & kSHA256) {
-+ if (ID_AA64ISAR0_SHA2_VAL(id_aa64isar0) >= ID_AA64ISAR0_SHA2_BASE) {
- OPENSSL_armcap_P |= ARMV8_SHA256;
- }
-- if (hwcap & kSHA512) {
-- OPENSSL_armcap_P |= ARMV8_SHA512;
-- }
- }
-
--#endif // OPENSSL_AARCH64 && OPENSSL_LINUX && !OPENSSL_STATIC_ARMCAP
-+#endif // OPENSSL_AARCH64