diff options
| author | Theo Buehler <tb@openbsd.org> | 2024-11-08 09:22:29 -0700 |
|---|---|---|
| committer | Theo Buehler <tb@openbsd.org> | 2024-11-08 09:29:50 -0700 |
| commit | 52b1623c6b4fee563f01ce91d76e2df23ed090c1 (patch) | |
| tree | 51eb1df43f0c714c2dc0e6a11be70098c934f24a | |
| parent | 3ade76d86b1bcea9d53307511597d2a17b43239b (diff) | |
| download | portable-52b1623c6b4fee563f01ce91d76e2df23ed090c1.tar.gz portable-52b1623c6b4fee563f01ce91d76e2df23ed090c1.tar.bz2 portable-52b1623c6b4fee563f01ce91d76e2df23ed090c1.zip | |
Hook up new aarch64 feature detection
| -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) | ||
