From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VfQHM-00051q-Ck for qemu-devel@nongnu.org; Sun, 10 Nov 2013 03:22:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VfQHD-0001We-Vv for qemu-devel@nongnu.org; Sun, 10 Nov 2013 03:21:56 -0500 Received: from mail-ee0-x22e.google.com ([2a00:1450:4013:c00::22e]:49661) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VfQHD-0001WW-N4 for qemu-devel@nongnu.org; Sun, 10 Nov 2013 03:21:47 -0500 Received: by mail-ee0-f46.google.com with SMTP id b57so1820264eek.33 for ; Sun, 10 Nov 2013 00:21:46 -0800 (PST) Sender: Paolo Bonzini Message-ID: <527F4215.8030607@redhat.com> Date: Sun, 10 Nov 2013 09:21:41 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1382435921-18438-1-git-send-email-peter.maydell@linaro.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH for-1.7] atomic.h: Fix build with clang List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: QEMU Developers , Anthony Liguori , Patch Tracking Il 09/11/2013 19:09, Peter Maydell ha scritto: > Ping! This is needed as a build-fix for MacOSX and didn't > make it into 1.7-rc0. Paolo, can I get you to review this? I thought I already had done that, anyway: >> diff --git a/include/qemu/atomic.h b/include/qemu/atomic.h >> index 0aa8913..492bce1 100644 >> --- a/include/qemu/atomic.h >> +++ b/include/qemu/atomic.h >> @@ -168,14 +168,14 @@ >> #endif >> >> #ifndef atomic_xchg >> -#ifdef __ATOMIC_SEQ_CST >> +#if defined(__clang__) >> +#define atomic_xchg(ptr, i) __sync_swap(ptr, i) >> +#elif defined(__ATOMIC_SEQ_CST) >> #define atomic_xchg(ptr, i) ({ \ >> typeof(*ptr) _new = (i), _old; \ >> __atomic_exchange(ptr, &_new, &_old, __ATOMIC_SEQ_CST); \ >> _old; \ >> }) >> -#elif defined __clang__ >> -#define atomic_xchg(ptr, i) __sync_exchange(ptr, i) >> #else >> /* __sync_lock_test_and_set() is documented to be an acquire barrier only. */ >> #define atomic_xchg(ptr, i) (smp_mb(), __sync_lock_test_and_set(ptr, i)) Reviewed-by: Paolo Bonzini