DNSDIST_WITH_CDB
PDNS_CHECK_LMDB
PDNS_ENABLE_IPCIPHER
+PDNS_CHECK_AARCH64_UINT64X2_T
AX_CXX_COMPILE_STDCXX_17([noext], [mandatory])
+if target_machine.cpu_family() == 'aarch64'
+ code = '''
+# if defined(_MSC_VER) && defined(_M_ARM64)
+# include <arm64_neon.h>
+# else
+# include <arm_neon.h>
+# endif
+int main() {
+ uint64x2_t foo = {0, 0};
+ uint64x2_t bar = vshrq_n_u8(foo, 1);
+ return 0;
+}
+'''
+ compiler = meson.get_compiler('cpp')
+ result = compiler.compiles(code, name: 'uint64x2_t tests')
+ assert(result, 'Compiler does not support calculation with uint64x2_t on ARM64')
+endif
+
lib_ipcrypt2 = static_library(
'ipcrypt2',
'ipcrypt2.c',
--- /dev/null
+AC_DEFUN([PDNS_CHECK_AARCH64_UINT64X2_T], [
+ AC_CANONICAL_BUILD()
+ AS_IF([test "$build_cpu" = "aarch64"], [
+ AC_MSG_CHECKING([whether the compiler supports calculations with uint64x2_t])
+ AC_LANG_PUSH([C++])
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+# if defined(_MSC_VER) && defined(_M_ARM64)
+# include <arm64_neon.h>
+# else
+# include <arm_neon.h>
+# endif
+int main() {
+ uint64x2_t foo = {0, 0};
+ uint64x2_t bar = vshrq_n_u8(foo, 1);
+ return 0;
+}
+ ])],[
+ AC_MSG_RESULT([ok])
+ ],[
+ AC_MSG_FAILURE([no])
+ ])
+ AC_LANG_POP()
+ ])
+])