From 40520b0de69d8ca8e659248f5ffe641f33cc6dee Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 9 Mar 2021 14:16:58 -0800
Subject: [PATCH] Extend atomics check to include 1-byte CAS test

Rename ATOMIC_INT64_REQUIRES_LIBATOMIC to ATOMICS_REQUIRE_LIBATOMIC so
it can reflect broader range which is now checked

Rename ATOMIC_INT64_IS_BUILTIN to ATOMICS_ARE_BUILTIN

Upstream-Status: Submitted [https://bugs.webkit.org/attachment.cgi?bugid=222959]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 Source/JavaScriptCore/CMakeLists.txt   |  2 +-
 Source/WebKit/CMakeLists.txt           |  2 +-
 Source/cmake/WebKitCompilerFlags.cmake | 15 ++++++++++-----
 3 files changed, 12 insertions(+), 7 deletions(-)

--- a/Source/JavaScriptCore/CMakeLists.txt
+++ b/Source/JavaScriptCore/CMakeLists.txt
@@ -129,7 +129,7 @@ if (USE_CAPSTONE)
     list(APPEND JavaScriptCore_LIBRARIES capstone)
 endif ()
 
-if (ATOMIC_INT64_REQUIRES_LIBATOMIC)
+if (ATOMICS_REQUIRE_LIBATOMIC)
     list(APPEND JavaScriptCore_LIBRARIES atomic)
 endif ()
 
--- a/Source/WebKit/CMakeLists.txt
+++ b/Source/WebKit/CMakeLists.txt
@@ -337,7 +337,7 @@ if (USE_LIBWEBRTC)
     list(APPEND WebKit_LIBRARIES webrtc)
 endif ()
 
-if (ATOMIC_INT64_REQUIRES_LIBATOMIC)
+if (ATOMICS_REQUIRE_LIBATOMIC)
     list(APPEND WebKit_PRIVATE_LIBRARIES atomic)
 endif ()
 
--- a/Source/cmake/WebKitCompilerFlags.cmake
+++ b/Source/cmake/WebKitCompilerFlags.cmake
@@ -280,12 +280,17 @@ endif ()
 if (COMPILER_IS_GCC_OR_CLANG)
     set(ATOMIC_TEST_SOURCE "
         #include <atomic>
-        int main() { std::atomic<int64_t> i(0); i++; return 0; }
+        int main() {
+          std::atomic<int64_t> i(0);
+          std::atomic<int8_t> j(0);
+          i++; j++;
+          return 0;
+        }
     ")
-    check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMIC_INT64_IS_BUILTIN)
-    if (NOT ATOMIC_INT64_IS_BUILTIN)
+    check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMICS_ARE_BUILTIN)
+    if (NOT ATOMICS_ARE_BUILTIN)
         set(CMAKE_REQUIRED_LIBRARIES atomic)
-        check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMIC_INT64_REQUIRES_LIBATOMIC)
+        check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMICS_REQUIRE_LIBATOMIC)
         unset(CMAKE_REQUIRED_LIBRARIES)
     endif ()
 endif ()
--- a/Source/WTF/wtf/CMakeLists.txt
+++ b/Source/WTF/wtf/CMakeLists.txt
@@ -529,6 +529,10 @@ list(APPEND WTF_LIBRARIES
     ICU::uc
 )
 
+if (ATOMICS_REQUIRE_LIBATOMIC)
+    list(APPEND WTF_LIBRARIES atomic)
+endif ()
+
 set(WTF_INTERFACE_LIBRARIES WTF)
 set(WTF_INTERFACE_INCLUDE_DIRECTORIES ${WTF_FRAMEWORK_HEADERS_DIR})
 set(WTF_INTERFACE_DEPENDENCIES WTF_CopyHeaders)
