clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Mon, 2 Jul 2018 08:45:18 +0000 (09:45 +0100)
committerJulien Cristau <jcristau@mozilla.com>
Mon, 2 Jul 2018 08:45:18 +0000 (09:45 +0100)
commite1dfa473707c2e2be69c27024daaac5941c9e103
tree830905d7d841b3f982cad91e6476444b0ce22132
parentd20cef4a595d4557ee42a2a7793993d8d8f93c1f
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