clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Wed, 21 Mar 2018 21:56:33 +0000 (21:56 +0000)
committerSylvestre Ledru <sylvestre@debian.org>
Wed, 21 Mar 2018 21:56:33 +0000 (21:56 +0000)
commit43900f094ca8951bf33d8f6d8b4122a6a55ef033
tree0d62b8f8fc55cc1b7a27cb9f989b3e125e23b3aa
parentf89a163f99640a20e4a1f9aa17afae03c2bd2a41
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