clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Fri, 13 Oct 2017 21:42:29 +0000 (22:42 +0100)
committerSylvestre Ledru <sylvestre@debian.org>
Fri, 13 Oct 2017 21:42:29 +0000 (22:42 +0100)
commit1ea01e0515e6e7af60be2a88fc1821b10a936434
treed165b6ef21ff01ccb725d4b97834546996dda610
parentf5627d685435bc6e303b3b50444413dc510a8f0f
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
clang/test/Sema/atomic-ops.c