|
|
@ -1,36 +0,0 @@ |
|
|
|
--- a/config.h.in
|
|
|
|
+++ b/config.h.in
|
|
|
|
@@ -45,6 +45,9 @@
|
|
|
|
/* Define to 1 if you have the `arc4random_uniform' function. */ |
|
|
|
#undef HAVE_ARC4RANDOM_UNIFORM |
|
|
|
|
|
|
|
+/* Define if the ARM yield instruction is available */
|
|
|
|
+#undef HAVE_ARM_YIELD
|
|
|
|
+
|
|
|
|
/* Define to 1 if the compiler supports __builtin_clz. */ |
|
|
|
#undef HAVE_BUILTIN_CLZ |
|
|
|
|
|
|
|
--- a/configure.ac
|
|
|
|
+++ b/configure.ac
|
|
|
|
@@ -421,8 +421,8 @@ AS_CASE([$host],
|
|
|
|
[[]], |
|
|
|
[[__asm__ __volatile__ ("yield")]] |
|
|
|
)], |
|
|
|
- [AC_MSG_RESULT([yes])],
|
|
|
|
- [AC_MSG_ERROR([no, try adding -march=native or -march=armv7-a to CFLAGS (see PLATFORMS.md for more information)])])])
|
|
|
|
+ [AC_MSG_RESULT([yes]) AC_DEFINE([HAVE_ARM_YIELD],[1],[Define if the ARM yield instruction is available])],
|
|
|
|
+ [AC_MSG_RESULT([no])])])
|
|
|
|
|
|
|
|
AC_CHECK_FUNCS([sysctlbyname]) |
|
|
|
|
|
|
|
--- a/lib/isc/rwlock.c
|
|
|
|
+++ b/lib/isc/rwlock.c
|
|
|
|
@@ -54,7 +54,7 @@
|
|
|
|
# define isc_rwlock_pause() __asm__ __volatile__ ("rep; nop") |
|
|
|
#elif defined(__ia64__) |
|
|
|
# define isc_rwlock_pause() __asm__ __volatile__ ("hint @pause") |
|
|
|
-#elif defined(__arm__)
|
|
|
|
+#elif defined(__arm__) && HAVE_ARM_YIELD
|
|
|
|
# define isc_rwlock_pause() __asm__ __volatile__ ("yield") |
|
|
|
#elif defined(sun) && (defined(__sparc) || defined(__sparc__)) |
|
|
|
# define isc_rwlock_pause() smt_pause() |