aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crypto/CMakeLists.txt4
-rw-r--r--crypto/Makefile.am3
-rw-r--r--patches/patch-aarch64-crypto-cpu-caps.c.patch39
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})
181endif() 181endif()
182 182
183if(HOST_X86_64) 183if(HOST_AARCH64)
184 set(CRYPTO_SRC ${CRYPTO_SRC} arch/aarch64/crypto_cpu_caps.c)
185elseif(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)
185elseif(HOST_I386) 187elseif(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
202endif 202endif
203endif 203endif
204 204
205if HOST_AARCH64
206libcrypto_la_SOURCES += arch/aarch64/crypto_cpu_caps.c
207endif
205if HOST_X86_64 208if HOST_X86_64
206libcrypto_la_SOURCES += arch/amd64/crypto_cpu_caps.c 209libcrypto_la_SOURCES += arch/amd64/crypto_cpu_caps.c
207endif 210endif
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 @@
1Disable 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)