clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Sat, 9 Dec 2017 18:56:52 +0000 (18:56 +0000)
committerSylvestre Ledru <sylvestre@debian.org>
Sat, 9 Dec 2017 18:56:52 +0000 (18:56 +0000)
commitddc52832c4628f768ac1d82469818b36e80e10f8
tree4cac4142065b03f699ff65341d3824ca5aadf2f5
parent3784cd287210f38d0709627638907b52b34228a6
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