mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-17 06:57:52 +08:00
11ed79186f
Upstream patch, adjusted. Cherry-picked from https://github.com/microsoft/vcpkg/pull/35851. Fixes https://github.com/microsoft/vcpkg/issues/37423,
120 lines
3.7 KiB
Diff
120 lines
3.7 KiB
Diff
diff --git a/configure.ac b/configure.ac
|
|
index df83ef5..be67d34 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -398,11 +398,6 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
|
|
have_armcrypto=no
|
|
AC_MSG_CHECKING(for ARM crypto instructions set)
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
- #ifdef __clang__
|
|
- # pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
|
|
- #elif defined(__GNUC__)
|
|
- # pragma GCC target("+simd+crypto")
|
|
- #endif
|
|
#ifndef __ARM_FEATURE_CRYPTO
|
|
# define __ARM_FEATURE_CRYPTO 1
|
|
#endif
|
|
@@ -411,6 +406,12 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
|
|
#endif
|
|
|
|
#include <arm_neon.h>
|
|
+
|
|
+ #ifdef __clang__
|
|
+ # pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
|
|
+ #elif defined(__GNUC__)
|
|
+ # pragma GCC target("+simd+crypto")
|
|
+ #endif
|
|
]], [[
|
|
vaeseq_u8(vmovq_n_u8(0), vmovq_n_u8(0));
|
|
|
|
diff --git a/src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.c b/src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.c
|
|
index 825de8a..a01f60c 100644
|
|
--- a/src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.c
|
|
+++ b/src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.c
|
|
@@ -17,12 +17,6 @@
|
|
|
|
#include "aegis128l_armcrypto.h"
|
|
|
|
-#ifdef __clang__
|
|
-#pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
|
|
-#elif defined(__GNUC__)
|
|
-#pragma GCC target("+simd+crypto")
|
|
-#endif
|
|
-
|
|
#ifndef __ARM_FEATURE_CRYPTO
|
|
#define __ARM_FEATURE_CRYPTO 1
|
|
#endif
|
|
@@ -32,6 +26,12 @@
|
|
|
|
#include <arm_neon.h>
|
|
|
|
+#ifdef __clang__
|
|
+#pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
|
|
+#elif defined(__GNUC__)
|
|
+#pragma GCC target("+simd+crypto")
|
|
+#endif
|
|
+
|
|
#define AES_BLOCK_LENGTH 16
|
|
|
|
typedef uint8x16_t aes_block_t;
|
|
diff --git a/src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.c b/src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.c
|
|
index e1ebd57..058e207 100644
|
|
--- a/src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.c
|
|
+++ b/src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.c
|
|
@@ -17,12 +17,6 @@
|
|
|
|
#include "aegis256_armcrypto.h"
|
|
|
|
-#ifdef __clang__
|
|
-#pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
|
|
-#elif defined(__GNUC__)
|
|
-#pragma GCC target("+simd+crypto")
|
|
-#endif
|
|
-
|
|
#ifndef __ARM_FEATURE_CRYPTO
|
|
#define __ARM_FEATURE_CRYPTO 1
|
|
#endif
|
|
@@ -32,6 +26,12 @@
|
|
|
|
#include <arm_neon.h>
|
|
|
|
+#ifdef __clang__
|
|
+#pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
|
|
+#elif defined(__GNUC__)
|
|
+#pragma GCC target("+simd+crypto")
|
|
+#endif
|
|
+
|
|
#define AES_BLOCK_LENGTH 16
|
|
|
|
typedef uint8x16_t aes_block_t;
|
|
diff --git a/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c b/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c
|
|
index 0a5a128..aa76f5c 100644
|
|
--- a/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c
|
|
+++ b/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c
|
|
@@ -19,12 +19,6 @@
|
|
#define __vectorcall
|
|
#endif
|
|
|
|
-#ifdef __clang__
|
|
-#pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
|
|
-#elif defined(__GNUC__)
|
|
-#pragma GCC target("+simd+crypto")
|
|
-#endif
|
|
-
|
|
#ifndef __ARM_FEATURE_CRYPTO
|
|
#define __ARM_FEATURE_CRYPTO 1
|
|
#endif
|
|
@@ -34,6 +28,12 @@
|
|
|
|
#include <arm_neon.h>
|
|
|
|
+#ifdef __clang__
|
|
+#pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
|
|
+#elif defined(__GNUC__)
|
|
+#pragma GCC target("+simd+crypto")
|
|
+#endif
|
|
+
|
|
#define ABYTES crypto_aead_aes256gcm_ABYTES
|
|
#define NPUBBYTES crypto_aead_aes256gcm_NPUBBYTES
|
|
#define KEYBYTES crypto_aead_aes256gcm_KEYBYTES
|