aboutsummaryrefslogtreecommitdiff
path: root/databases/mariadb106-server/files/patch-mysys_crc32_crc32c.cc
diff options
context:
space:
mode:
Diffstat (limited to 'databases/mariadb106-server/files/patch-mysys_crc32_crc32c.cc')
-rw-r--r--databases/mariadb106-server/files/patch-mysys_crc32_crc32c.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/databases/mariadb106-server/files/patch-mysys_crc32_crc32c.cc b/databases/mariadb106-server/files/patch-mysys_crc32_crc32c.cc
new file mode 100644
index 000000000000..445fd0e97865
--- /dev/null
+++ b/databases/mariadb106-server/files/patch-mysys_crc32_crc32c.cc
@@ -0,0 +1,24 @@
+--- mysys/crc32/crc32c.cc.orig 2021-08-04 18:00:35 UTC
++++ mysys/crc32/crc32c.cc
+@@ -543,6 +543,21 @@ static int arch_ppc_probe(void) {
+
+ return arch_ppc_crc32;
+ }
++#elif __FreeBSD__
++#include <machine/cpu.h>
++#include <sys/auxv.h>
++#include <sys/elf_common.h>
++static int arch_ppc_probe(void) {
++ unsigned long cpufeatures;
++ arch_ppc_crc32 = 0;
++
++#if defined(__powerpc64__)
++ elf_aux_info(AT_HWCAP2, &cpufeatures, sizeof(cpufeatures));
++ if (cpufeatures & PPC_FEATURE2_HAS_VEC_CRYPTO) arch_ppc_crc32 = 1;
++#endif /* __powerpc64__ */
++
++ return arch_ppc_crc32;
++}
+ #endif // __linux__
+ #endif
+