clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)
committerSylvestre Ledru <sylvestre@debian.org>
Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)
commit8f820c46696ae93ed8d6bcabb633d0ad2e345a7a
tree763fa6d8992eaeede820d3b26c2041b48de46b42
parent8b598fbfc91aaf66553569032e7b9b1f4832dcb8
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