clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Sun, 6 May 2018 15:42:16 +0000 (16:42 +0100)
committerPeter Wu <peter@lekensteyn.nl>
Sun, 6 May 2018 15:42:16 +0000 (16:42 +0100)
commitdd80b1306ccef838ed6fa51b60e27fb2fc3b1997
treecd9c46f162c48e6c36ff6754809e1d3c3759c2c1
parent15c6e4ad45a3fc4232970f168ee144f500f8d433
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