[compiler-rt] r248328 - [builtins] Fixing atomic builtins to be compiled out if stdatomic.h isn't available.
Chris Bieneman via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 23 08:40:36 PDT 2015
This should be fixed in r248386.
Thanks,
-Chris
> On Sep 23, 2015, at 8:36 AM, H.J. Lu <hjl.tools at gmail.com> wrote:
>
> On Tue, Sep 22, 2015 at 2:50 PM, Chris Bieneman via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
>> Author: cbieneman
>> Date: Tue Sep 22 16:50:43 2015
>> New Revision: 248328
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=248328&view=rev
>> Log:
>> [builtins] Fixing atomic builtins to be compiled out if stdatomic.h isn't available.
>>
>> This should fix the bots broken by r248322.
>>
>> Reviewed by bogner over my shoulder.
>>
>> Modified:
>> compiler-rt/trunk/lib/builtins/atomic_flag_clear.c
>> compiler-rt/trunk/lib/builtins/atomic_flag_clear_explicit.c
>> compiler-rt/trunk/lib/builtins/atomic_flag_test_and_set.c
>> compiler-rt/trunk/lib/builtins/atomic_flag_test_and_set_explicit.c
>> compiler-rt/trunk/lib/builtins/atomic_signal_fence.c
>> compiler-rt/trunk/lib/builtins/atomic_thread_fence.c
>>
>> Modified: compiler-rt/trunk/lib/builtins/atomic_flag_clear.c
>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/atomic_flag_clear.c?rev=248328&r1=248327&r2=248328&view=diff
>> ==============================================================================
>> --- compiler-rt/trunk/lib/builtins/atomic_flag_clear.c (original)
>> +++ compiler-rt/trunk/lib/builtins/atomic_flag_clear.c Tue Sep 22 16:50:43 2015
>> @@ -12,8 +12,12 @@
>> *===------------------------------------------------------------------------===
>> */
>>
>> +#if __has_include(<stdatomic.h>)
>> +
>> #include <stdatomic.h>
>> #undef atomic_flag_clear
>> void atomic_flag_clear(volatile atomic_flag *object) {
>> return __c11_atomic_store(&(object)->_Value, 0, __ATOMIC_SEQ_CST);
>> }
>> +
>> +#endif
>>
>> Modified: compiler-rt/trunk/lib/builtins/atomic_flag_clear_explicit.c
>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/atomic_flag_clear_explicit.c?rev=248328&r1=248327&r2=248328&view=diff
>> ==============================================================================
>> --- compiler-rt/trunk/lib/builtins/atomic_flag_clear_explicit.c (original)
>> +++ compiler-rt/trunk/lib/builtins/atomic_flag_clear_explicit.c Tue Sep 22 16:50:43 2015
>> @@ -12,9 +12,13 @@
>> *===------------------------------------------------------------------------===
>> */
>>
>> +#if __has_include(<stdatomic.h>)
>> +
>> #include <stdatomic.h>
>> #undef atomic_flag_clear_explicit
>> void atomic_flag_clear_explicit(volatile atomic_flag *object,
>> memory_order order) {
>> return __c11_atomic_store(&(object)->_Value, 0, order);
>> }
>> +
>> +#endif
>>
>
> This breaks build on Linux with GCC 5. GCC 5 supports
> __has_include. But its <stdatomic.h> is different from the
> one in Clang. You can't depend on Clang specific stdatomic.h
> here.
>
> --
> H.J.
More information about the llvm-commits
mailing list