You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.6 KiB
51 lines
1.6 KiB
diff --git a/configure.in b/configure.in |
|
index 896e81c1ce..73b1c8ccbb 100644 |
|
--- a/configure.in |
|
+++ b/configure.in |
|
@@ -4275,6 +4275,10 @@ if test "yes" = "$use_atomic"; then |
|
AC_MSG_RESULT($arch) |
|
fi |
|
|
|
+if test ! "$arch" = "x86_64" -a "$have_xaddq" = "yes"; then |
|
+ AC_MSG_ERROR([XADDQ present but disabled by Fedora patch!]) |
|
+fi |
|
+ |
|
if test "yes" = "$have_atomic"; then |
|
AC_MSG_CHECKING([compiler support for inline assembly code]) |
|
|
|
diff --git a/lib/isc/include/isc/platform.h.in b/lib/isc/include/isc/platform.h.in |
|
index 2ff522342f..58df86adb3 100644 |
|
--- a/lib/isc/include/isc/platform.h.in |
|
+++ b/lib/isc/include/isc/platform.h.in |
|
@@ -289,19 +289,25 @@ |
|
* If the "xaddq" operation (64bit xadd) is available on this architecture, |
|
* ISC_PLATFORM_HAVEXADDQ will be defined. |
|
*/ |
|
-@ISC_PLATFORM_HAVEXADDQ@ |
|
|
|
/* |
|
- * If the 32-bit "atomic swap" operation is available on this |
|
- * architecture, ISC_PLATFORM_HAVEATOMICSTORE" will be defined. |
|
+ * If the 64-bit "atomic swap" operation is available on this |
|
+ * architecture, ISC_PLATFORM_HAVEATOMICSTOREQ" will be defined. |
|
*/ |
|
-@ISC_PLATFORM_HAVEATOMICSTORE@ |
|
+ |
|
+#ifdef __x86_64__ |
|
+#define ISC_PLATFORM_HAVEXADDQ 1 |
|
+#define ISC_PLATFORM_HAVEATOMICSTOREQ 1 |
|
+#else |
|
+#undef ISC_PLATFORM_HAVEXADDQ |
|
+#undef ISC_PLATFORM_HAVEATOMICSTOREQ |
|
+#endif |
|
|
|
/* |
|
- * If the 64-bit "atomic swap" operation is available on this |
|
+ * If the 32-bit "atomic swap" operation is available on this |
|
* architecture, ISC_PLATFORM_HAVEATOMICSTORE" will be defined. |
|
*/ |
|
-@ISC_PLATFORM_HAVEATOMICSTOREQ@ |
|
+@ISC_PLATFORM_HAVEATOMICSTORE@ |
|
|
|
/* |
|
* If the "compare-and-exchange" operation is available on this architecture,
|
|
|