diff options
| author | Joel Sing <joel@sing.id.au> | 2026-01-19 23:51:03 +1100 |
|---|---|---|
| committer | Joel Sing <joel@sing.id.au> | 2026-01-26 17:35:16 +1100 |
| commit | 3531763af72712ba96bd810728c338ebf7250194 (patch) | |
| tree | 6eceed7fe22287150bea84e89aa39c176b771c9a | |
| parent | d0127ebaf2bfce3f616922c4cea751c0a7ac705e (diff) | |
| download | portable-3531763af72712ba96bd810728c338ebf7250194.tar.gz portable-3531763af72712ba96bd810728c338ebf7250194.tar.bz2 portable-3531763af72712ba96bd810728c338ebf7250194.zip | |
Enable SHA assembly for elf-aarch64
| -rw-r--r-- | configure.ac | 2 | ||||
| -rw-r--r-- | crypto/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | crypto/Makefile.am | 3 | ||||
| -rw-r--r-- | crypto/Makefile.am.elf-aarch64 | 15 |
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])) | |||
| 115 | AM_CONDITIONAL([OPENSSL_NO_ASM], [test "x$enable_asm" = "xno"]) | 115 | AM_CONDITIONAL([OPENSSL_NO_ASM], [test "x$enable_asm" = "xno"]) |
| 116 | 116 | ||
| 117 | # Conditionally enable assembly by default | 117 | # Conditionally enable assembly by default |
| 118 | AM_CONDITIONAL([HOST_ASM_ELF_AARCH64], | ||
| 119 | [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "aarch64" -a "x$enable_asm" != "xno"]) | ||
| 118 | AM_CONDITIONAL([HOST_ASM_ELF_MIPS], | 120 | AM_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"]) |
| 120 | AM_CONDITIONAL([HOST_ASM_ELF_MIPS64], | 122 | AM_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 | ||
| 16 | add_definitions(-DLIBRESSL_CRYPTO_INTERNAL) | 16 | add_definitions(-DLIBRESSL_CRYPTO_INTERNAL) |
| 17 | 17 | ||
| 18 | if(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}) | ||
| 28 | endif() | ||
| 29 | |||
| 18 | if(HOST_ASM_ELF_X86_64) | 30 | if(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 | |||
| 205 | libcrypto_la_SOURCES = | 205 | libcrypto_la_SOURCES = |
| 206 | EXTRA_libcrypto_la_SOURCES = | 206 | EXTRA_libcrypto_la_SOURCES = |
| 207 | 207 | ||
| 208 | include Makefile.am.elf-aarch64 | ||
| 208 | include Makefile.am.elf-mips | 209 | include Makefile.am.elf-mips |
| 209 | include Makefile.am.elf-mips64 | 210 | include Makefile.am.elf-mips64 |
| 210 | include Makefile.am.elf-x86_64 | 211 | include Makefile.am.elf-x86_64 |
| @@ -212,6 +213,7 @@ include Makefile.am.macosx-x86_64 | |||
| 212 | include Makefile.am.masm-x86_64 | 213 | include Makefile.am.masm-x86_64 |
| 213 | include Makefile.am.mingw64-x86_64 | 214 | include Makefile.am.mingw64-x86_64 |
| 214 | 215 | ||
| 216 | if !HOST_ASM_ELF_AARCH64 | ||
| 215 | if !HOST_ASM_ELF_MIPS | 217 | if !HOST_ASM_ELF_MIPS |
| 216 | if !HOST_ASM_ELF_MIPS64 | 218 | if !HOST_ASM_ELF_MIPS64 |
| 217 | if !HOST_ASM_ELF_X86_64 | 219 | if !HOST_ASM_ELF_X86_64 |
| @@ -225,6 +227,7 @@ endif | |||
| 225 | endif | 227 | endif |
| 226 | endif | 228 | endif |
| 227 | endif | 229 | endif |
| 230 | endif | ||
| 228 | 231 | ||
| 229 | if HOST_AARCH64 | 232 | if HOST_AARCH64 |
| 230 | if HOST_DARWIN | 233 | if 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 @@ | |||
| 1 | ASM_AARCH64_ELF = sha/sha1_aarch64_ce.S | ||
| 2 | ASM_AARCH64_ELF += sha/sha256_aarch64_ce.S | ||
| 3 | ASM_AARCH64_ELF += sha/sha512_aarch64_ce.S | ||
| 4 | |||
| 5 | EXTRA_DIST += $(ASM_AARCH64_ELF) | ||
| 6 | |||
| 7 | if HOST_ASM_ELF_AARCH64 | ||
| 8 | libcrypto_la_SOURCES += sha/sha1_aarch64.c | ||
| 9 | libcrypto_la_SOURCES += sha/sha256_aarch64.c | ||
| 10 | libcrypto_la_SOURCES += sha/sha512_aarch64.c | ||
| 11 | |||
| 12 | libcrypto_la_CPPFLAGS += -DLIBRESSL_USE_SHA_ASSEMBLY | ||
| 13 | |||
| 14 | libcrypto_la_SOURCES += $(ASM_AARCH64_ELF) | ||
| 15 | endif | ||
