[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-1.7] atomic.h: Fix build with clang
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH for-1.7] atomic.h: Fix build with clang |
Date: |
Sun, 10 Nov 2013 09:21:41 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9 |
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 <address@hidden>