git: 22a9a1e09c0a - main - security/boringssl: move aarch64 support to a separate file

From: Sergey A. Osokin <osa_at_FreeBSD.org>
Date: Tue, 26 Jul 2022 17:59:36 UTC
The branch main has been updated by osa:

URL: https://cgit.FreeBSD.org/ports/commit/?id=22a9a1e09c0a6d2c20d1fdd637f0a8973443870f

commit 22a9a1e09c0a6d2c20d1fdd637f0a8973443870f
Author:     Sergey A. Osokin <osa@FreeBSD.org>
AuthorDate: 2022-07-26 17:58:18 +0000
Commit:     Sergey A. Osokin <osa@FreeBSD.org>
CommitDate: 2022-07-26 17:59:28 +0000

    security/boringssl: move aarch64 support to a separate file
    
    Bump PORTREVISION.
---
 security/boringssl/Makefile                        |  2 +-
 .../boringssl/files/patch-crypto_CMakeLists.txt    | 10 ++-
 .../files/patch-crypto_cpu__aarch64__freebsd.c     | 65 ++++++++++++++++++
 .../files/patch-crypto_cpu__aarch64__linux.c       | 78 ----------------------
 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