-
Notifications
You must be signed in to change notification settings - Fork 6.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[libsodium] Fix arm builds (android NDK r26) (#37932)
- Loading branch information
Showing
5 changed files
with
128 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters