From 176738f0f0f57de3f4c8553a411b26b171fdd117 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Thu, 11 Oct 2007 09:57:48 +0100 Subject: Fix detection of i486 atomic ops. Previously, the attempts to determine support at compile-time on Darwin were causing the i486 atomic ops to be used on *all* i386 or x86-64 GCC builds (AH_VERBATIM can't be conditionalized like we were trying to). --- dbus/dbus-sysdeps-unix.c | 6 +++--- dbus/dbus-sysdeps.h | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'dbus') diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index 0ab5e730..2ce7427b 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -1741,7 +1741,7 @@ _dbus_parse_uid (const DBusString *uid_str, _DBUS_DEFINE_GLOBAL_LOCK (atomic); -#ifdef DBUS_USE_ATOMIC_INT_486 +#if DBUS_USE_ATOMIC_INT_486_COND /* Taken from CVS version 1.7 of glibc's sysdeps/i386/i486/atomicity.h */ /* Since the asm stuff here is gcc-specific we go ahead and use "inline" also */ static inline dbus_int32_t @@ -1768,7 +1768,7 @@ atomic_exchange_and_add (DBusAtomic *atomic, dbus_int32_t _dbus_atomic_inc (DBusAtomic *atomic) { -#ifdef DBUS_USE_ATOMIC_INT_486 +#if DBUS_USE_ATOMIC_INT_486_COND return atomic_exchange_and_add (atomic, 1); #else dbus_int32_t res; @@ -1791,7 +1791,7 @@ _dbus_atomic_inc (DBusAtomic *atomic) dbus_int32_t _dbus_atomic_dec (DBusAtomic *atomic) { -#ifdef DBUS_USE_ATOMIC_INT_486 +#if DBUS_USE_ATOMIC_INT_486_COND return atomic_exchange_and_add (atomic, -1); #else dbus_int32_t res; diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h index eadfb433..1a52e7fb 100644 --- a/dbus/dbus-sysdeps.h +++ b/dbus/dbus-sysdeps.h @@ -199,6 +199,16 @@ struct DBusAtomic #endif }; +/* The value we get from autofoo is in the form of a cpp expression; + * convert that to a conventional defined/undef switch. (We can't get + * the conventional defined/undef because of multiarch builds only running + * ./configure once, on Darwin.) */ +#if DBUS_HAVE_ATOMIC_INT_COND +# define DBUS_HAVE_ATOMIC_INT 1 +#else +# undef DBUS_HAVE_ATOMIC_INT +#endif + dbus_int32_t _dbus_atomic_inc (DBusAtomic *atomic); dbus_int32_t _dbus_atomic_dec (DBusAtomic *atomic); -- cgit