$OpenBSD: patch-tools_clang_lib_Basic_Targets_RISCV_cpp,v 1.1 2021/06/27 16:10:23 jca Exp $

[RISCV] Set __GCC_HAVE_SYNC_COMPARE_AND_SWAP_x defines.

Index: tools/clang/lib/Basic/Targets/RISCV.cpp
--- tools/clang/lib/Basic/Targets/RISCV.cpp.orig
+++ tools/clang/lib/Basic/Targets/RISCV.cpp
@@ -115,8 +115,14 @@ void RISCVTargetInfo::getTargetDefines(const LangOptio
     Builder.defineMacro("__riscv_muldiv");
   }
 
-  if (HasA)
+  if (HasA) {
     Builder.defineMacro("__riscv_atomic");
+    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 (Is64Bit)
+      Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
+  }
 
   if (HasF || HasD) {
     Builder.defineMacro("__riscv_flen", HasD ? "64" : "32");
