From a0d5eb3a277a2e09bf1c51282a6b5d1bbcc3525c Mon Sep 17 00:00:00 2001 From: "Michael J. Spencer" Date: Thu, 4 Apr 2013 23:53:43 +0000 Subject: Add support for __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8} on x86. This fixes std::thread with libstdc++. llvm-svn: 178816 --- clang/lib/Basic/Targets.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'clang/lib/Basic/Targets.cpp') diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index c7da36e8f7b..3eda9d8c184 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -2730,6 +2730,14 @@ void X86TargetInfo::getTargetDefines(const LangOptions &Opts, case NoMMX3DNow: break; } + + if (CPU >= CK_i486) { + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1"); + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2"); + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4"); + } + if (CPU >= CK_i586) + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8"); } bool X86TargetInfo::hasFeature(StringRef Feature) const { -- cgit v1.2.3