aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Sing <joel@sing.id.au>2026-01-19 23:51:03 +1100
committerJoel Sing <joel@sing.id.au>2026-01-26 17:35:16 +1100
commit3531763af72712ba96bd810728c338ebf7250194 (patch)
tree6eceed7fe22287150bea84e89aa39c176b771c9a
parentd0127ebaf2bfce3f616922c4cea751c0a7ac705e (diff)
downloadportable-3531763af72712ba96bd810728c338ebf7250194.tar.gz
portable-3531763af72712ba96bd810728c338ebf7250194.tar.bz2
portable-3531763af72712ba96bd810728c338ebf7250194.zip
Enable SHA assembly for elf-aarch64
-rw-r--r--configure.ac2
-rw-r--r--crypto/CMakeLists.txt12
-rw-r--r--crypto/Makefile.am3
-rw-r--r--crypto/Makefile.am.elf-aarch6415
4 files changed, 32 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 8d347b0..eb2b9ce 100644
--- a/configure.ac
+++ b/configure.ac
@@ -115,6 +115,8 @@ AC_ARG_ENABLE([asm], AS_HELP_STRING([--disable-asm], [Disable assembly]))
115AM_CONDITIONAL([OPENSSL_NO_ASM], [test "x$enable_asm" = "xno"]) 115AM_CONDITIONAL([OPENSSL_NO_ASM], [test "x$enable_asm" = "xno"])
116 116
117# Conditionally enable assembly by default 117# Conditionally enable assembly by default
118AM_CONDITIONAL([HOST_ASM_ELF_AARCH64],
119 [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "aarch64" -a "x$enable_asm" != "xno"])
118AM_CONDITIONAL([HOST_ASM_ELF_MIPS], 120AM_CONDITIONAL([HOST_ASM_ELF_MIPS],
119 [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "mips" -a "x$enable_asm" != "xno"]) 121 [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "mips" -a "x$enable_asm" != "xno"])
120AM_CONDITIONAL([HOST_ASM_ELF_MIPS64], 122AM_CONDITIONAL([HOST_ASM_ELF_MIPS64],
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index 2723d4c..d566182 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -15,6 +15,18 @@
15 15
16add_definitions(-DLIBRESSL_CRYPTO_INTERNAL) 16add_definitions(-DLIBRESSL_CRYPTO_INTERNAL)
17 17
18if(HOST_ASM_ELF_AARCH64)
19 set(CRYPTO_SRC ${CRYPTO_SRC} sha/sha1_aarch64.c sha/sha256_aarch64.c sha/sha512_aarch64.c)
20
21 set(
22 ASM_AARCH64_ELF_SRC
23 sha/sha1_aarch64_ce.S
24 sha/sha256_aarch64_ce.S
25 sha/sha256_aarch64_ce.S
26 )
27 set(CRYPTO_SRC ${CRYPTO_SRC} ${ASM_AARCH64_ELF_SRC})
28endif()
29
18if(HOST_ASM_ELF_X86_64) 30if(HOST_ASM_ELF_X86_64)
19 set(CRYPTO_SRC ${CRYPTO_SRC} aes/aes_amd64.c) 31 set(CRYPTO_SRC ${CRYPTO_SRC} aes/aes_amd64.c)
20 set(CRYPTO_SRC ${CRYPTO_SRC} bn/arch/amd64/bn_arch.c) 32 set(CRYPTO_SRC ${CRYPTO_SRC} bn/arch/amd64/bn_arch.c)
diff --git a/crypto/Makefile.am b/crypto/Makefile.am
index 1acf0f4..b03347a 100644
--- a/crypto/Makefile.am
+++ b/crypto/Makefile.am
@@ -205,6 +205,7 @@ include Makefile.am.arc4random
205libcrypto_la_SOURCES = 205libcrypto_la_SOURCES =
206EXTRA_libcrypto_la_SOURCES = 206EXTRA_libcrypto_la_SOURCES =
207 207
208include Makefile.am.elf-aarch64
208include Makefile.am.elf-mips 209include Makefile.am.elf-mips
209include Makefile.am.elf-mips64 210include Makefile.am.elf-mips64
210include Makefile.am.elf-x86_64 211include Makefile.am.elf-x86_64
@@ -212,6 +213,7 @@ include Makefile.am.macosx-x86_64
212include Makefile.am.masm-x86_64 213include Makefile.am.masm-x86_64
213include Makefile.am.mingw64-x86_64 214include Makefile.am.mingw64-x86_64
214 215
216if !HOST_ASM_ELF_AARCH64
215if !HOST_ASM_ELF_MIPS 217if !HOST_ASM_ELF_MIPS
216if !HOST_ASM_ELF_MIPS64 218if !HOST_ASM_ELF_MIPS64
217if !HOST_ASM_ELF_X86_64 219if !HOST_ASM_ELF_X86_64
@@ -225,6 +227,7 @@ endif
225endif 227endif
226endif 228endif
227endif 229endif
230endif
228 231
229if HOST_AARCH64 232if HOST_AARCH64
230if HOST_DARWIN 233if HOST_DARWIN
diff --git a/crypto/Makefile.am.elf-aarch64 b/crypto/Makefile.am.elf-aarch64
new file mode 100644
index 0000000..650e6c6
--- /dev/null
+++ b/crypto/Makefile.am.elf-aarch64
@@ -0,0 +1,15 @@
1ASM_AARCH64_ELF = sha/sha1_aarch64_ce.S
2ASM_AARCH64_ELF += sha/sha256_aarch64_ce.S
3ASM_AARCH64_ELF += sha/sha512_aarch64_ce.S
4
5EXTRA_DIST += $(ASM_AARCH64_ELF)
6
7if HOST_ASM_ELF_AARCH64
8libcrypto_la_SOURCES += sha/sha1_aarch64.c
9libcrypto_la_SOURCES += sha/sha256_aarch64.c
10libcrypto_la_SOURCES += sha/sha512_aarch64.c
11
12libcrypto_la_CPPFLAGS += -DLIBRESSL_USE_SHA_ASSEMBLY
13
14libcrypto_la_SOURCES += $(ASM_AARCH64_ELF)
15endif