summaryrefslogtreecommitdiff
path: root/net-im/libsignal-node/files/patch-boringssl-aarch64
diff options
context:
space:
mode:
Diffstat (limited to 'net-im/libsignal-node/files/patch-boringssl-aarch64')
-rw-r--r--net-im/libsignal-node/files/patch-boringssl-aarch6475
1 files changed, 75 insertions, 0 deletions
diff --git a/net-im/libsignal-node/files/patch-boringssl-aarch64 b/net-im/libsignal-node/files/patch-boringssl-aarch64
new file mode 100644
index 000000000000..2922772cabe1
--- /dev/null
+++ b/net-im/libsignal-node/files/patch-boringssl-aarch64
@@ -0,0 +1,75 @@
+--- ../boring-e1c719c0964ba37e6935355e9bf19821b072797e/boring-sys/deps/boringssl/src/crypto/CMakeLists.txt.orig 2022-08-16 17:41:13.291238000 +0200
++++ ../boring-e1c719c0964ba37e6935355e9bf19821b072797e/boring-sys/deps/boringssl/src/crypto/CMakeLists.txt 2022-08-16 17:41:48.826715000 +0200
+@@ -264,6 +264,7 @@ add_library(
+ cipher_extra/tls_cbc.c
+ cmac/cmac.c
+ conf/conf.c
++ cpu-aarch64-freebsd.c
+ cpu-aarch64-fuchsia.c
+ cpu-aarch64-linux.c
+ cpu-aarch64-win.c
+--- ../boring-e1c719c0964ba37e6935355e9bf19821b072797e/boring-sys/deps/boringssl/src/crypto/cpu-aarch64-freebsd.c.orig 2022-08-16 17:42:08.418245000 +0200
++++ ../boring-e1c719c0964ba37e6935355e9bf19821b072797e/boring-sys/deps/boringssl/src/crypto/cpu-aarch64-freebsd.c 2022-08-16 17:40:34.409448000 +0200
+@@ -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