clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Sat, 12 Aug 2017 09:38:36 +0000 (10:38 +0100)
committerSylvestre Ledru <sylvestre@debian.org>
Sat, 12 Aug 2017 09:38:36 +0000 (10:38 +0100)
commit98cc9dfe9c957ce1a6ef4086ad4e7898afd7af7f
treed0dea35cd3e004566c29b4bf3b8996871005e83c
parent35f329e54dedf33f30d74c424d0395433ed7f78f
clang-fix-cmpxchg8-detection-on-i386

libcxx atomic tests for old i386 fail with wrong Atomic inline width.
cmpxchg8b instruction is required for 8 byte atomics that clang was
assuming.

Too bad _GCC_ATOMIC_LLONG_LOCK_FREE 2 isn't supported even with this change
because llvm doesn't support unaligned atomic compare and exchange operation.
Fallback calls to libatomic.so should handle long long lock free but clang
can't tell program if libatomic is always lock free.

Related bug: https://llvm.org/bugs/show_bug.cgi?id=19355

Gbp-Pq: Name clang-fix-cmpxchg8-detection-on-i386.patch
clang/lib/Basic/Targets.cpp