diff options
-rw-r--r-- | crypto/CMakeLists.txt | 4 | ||||
-rw-r--r-- | crypto/Makefile.am | 3 | ||||
-rw-r--r-- | patches/patch-aarch64-crypto-cpu-caps.c.patch | 39 |
3 files changed, 45 insertions, 1 deletions
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index a2b06d3..cf85036 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt | |||
@@ -180,7 +180,9 @@ if(HOST_ASM_MINGW64_X86_64) | |||
180 | set(CRYPTO_SRC ${CRYPTO_SRC} ${ASM_X86_64_MINGW64_SRC}) | 180 | set(CRYPTO_SRC ${CRYPTO_SRC} ${ASM_X86_64_MINGW64_SRC}) |
181 | endif() | 181 | endif() |
182 | 182 | ||
183 | if(HOST_X86_64) | 183 | if(HOST_AARCH64) |
184 | set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps.c) | ||
185 | elseif(HOST_X86_64) | ||
184 | set(CRYPTO_SRC ${CRYPTO_SRC} arch/amd64/crypto_cpu_caps.c) | 186 | set(CRYPTO_SRC ${CRYPTO_SRC} arch/amd64/crypto_cpu_caps.c) |
185 | elseif(HOST_I386) | 187 | elseif(HOST_I386) |
186 | set(CRYPTO_SRC ${CRYPTO_SRC} arch/i386/crypto_cpu_caps.c) | 188 | set(CRYPTO_SRC ${CRYPTO_SRC} arch/i386/crypto_cpu_caps.c) |
diff --git a/crypto/Makefile.am b/crypto/Makefile.am index f601ec9..9df0a2e 100644 --- a/crypto/Makefile.am +++ b/crypto/Makefile.am | |||
@@ -202,6 +202,9 @@ endif | |||
202 | endif | 202 | endif |
203 | endif | 203 | endif |
204 | 204 | ||
205 | if HOST_AARCH64 | ||
206 | libcrypto_la_SOURCES += arch/aarch64/crypto_cpu_caps.c | ||
207 | endif | ||
205 | if HOST_X86_64 | 208 | if HOST_X86_64 |
206 | libcrypto_la_SOURCES += arch/amd64/crypto_cpu_caps.c | 209 | libcrypto_la_SOURCES += arch/amd64/crypto_cpu_caps.c |
207 | endif | 210 | endif |
diff --git a/patches/patch-aarch64-crypto-cpu-caps.c.patch b/patches/patch-aarch64-crypto-cpu-caps.c.patch new file mode 100644 index 0000000..2a1006e --- /dev/null +++ b/patches/patch-aarch64-crypto-cpu-caps.c.patch | |||
@@ -0,0 +1,39 @@ | |||
1 | Disable feature detection until we find a more portable way. | ||
2 | |||
3 | --- crypto/arch/aarch64/crypto_cpu_caps.c Fri Nov 8 09:23:31 2024 | ||
4 | --- crypto/arch/aarch64/crypto_cpu_caps.c Fri Nov 8 09:02:47 2024 | ||
5 | @@ -16,9 +16,12 @@ | ||
6 | */ | ||
7 | |||
8 | #include <sys/types.h> | ||
9 | + | ||
10 | +#if defined(__OpenBSD__) | ||
11 | #include <sys/sysctl.h> | ||
12 | |||
13 | #include <machine/cpu.h> | ||
14 | +#endif | ||
15 | |||
16 | #include <stddef.h> | ||
17 | #include <stdio.h> | ||
18 | @@ -66,6 +69,7 @@ | ||
19 | return caps; | ||
20 | } | ||
21 | |||
22 | +#if defined(__OpenBSD__) | ||
23 | static int | ||
24 | read_isar0(uint64_t *isar0) | ||
25 | { | ||
26 | @@ -83,6 +87,13 @@ | ||
27 | |||
28 | return 1; | ||
29 | } | ||
30 | +#else | ||
31 | +static int | ||
32 | +read_isar0(uint64_t *isar0) | ||
33 | +{ | ||
34 | + return 0; | ||
35 | +} | ||
36 | +#endif | ||
37 | |||
38 | void | ||
39 | crypto_cpu_caps_init(void) | ||