clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Tue, 13 Feb 2018 08:26:55 +0000 (08:26 +0000)
committerSylvestre Ledru <sylvestre@debian.org>
Tue, 13 Feb 2018 08:26:55 +0000 (08:26 +0000)
commitda1f8bdd3e7872c595da0e675aa476e51138c20b
tree102e43ad8547deb23edf5df3c4123ef706aa08ac
parentbe9c353968c9815c3b74406294ea8c14055f5e32
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