Title: [274476] trunk
Revision
274476
Author
commit-qu...@webkit.org
Date
2021-03-16 07:22:51 -0700 (Tue, 16 Mar 2021)

Log Message

[CMake] Build fails on RISC-V with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=222959

Patch by Khem Raj <raj.k...@gmail.com> on 2021-03-16
Reviewed by Carlos Alberto Lopez Perez.

.:

Check for 1 byte atomic operations along with 64bit ones, some
architevtures (e.g. RISCV) operations on less than 4 bytes are not lock-free

* Source/cmake/WebKitCompilerFlags.cmake:

Source/_javascript_Core:

Use renamed variable ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC

* CMakeLists.txt:

Source/WebKit:

Use renamed ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC.

* CMakeLists.txt:

Source/WTF:

Link with libatomic if ATOMICS_REQUIRE_LIBATOMIC is set.

* wtf/CMakeLists.txt:

Modified Paths

Diff

Modified: trunk/ChangeLog (274475 => 274476)


--- trunk/ChangeLog	2021-03-16 14:03:50 UTC (rev 274475)
+++ trunk/ChangeLog	2021-03-16 14:22:51 UTC (rev 274476)
@@ -1,3 +1,15 @@
+2021-03-16  Khem Raj  <raj.k...@gmail.com>
+
+        [CMake] Build fails on RISC-V with GCC 11
+        https://bugs.webkit.org/show_bug.cgi?id=222959
+
+        Reviewed by Carlos Alberto Lopez Perez.
+
+        Check for 1 byte atomic operations along with 64bit ones, some
+        architevtures (e.g. RISCV) operations on less than 4 bytes are not lock-free
+
+        * Source/cmake/WebKitCompilerFlags.cmake:
+
 2021-03-14  Lauro Moura  <lmo...@igalia.com>
 
         [GLIB] Keep GPUProcess disabled when using experimental features

Modified: trunk/Source/_javascript_Core/CMakeLists.txt (274475 => 274476)


--- trunk/Source/_javascript_Core/CMakeLists.txt	2021-03-16 14:03:50 UTC (rev 274475)
+++ trunk/Source/_javascript_Core/CMakeLists.txt	2021-03-16 14:22:51 UTC (rev 274476)
@@ -139,7 +139,7 @@
     list(APPEND _javascript_Core_LIBRARIES capstone)
 endif ()
 
-if (ATOMIC_INT64_REQUIRES_LIBATOMIC)
+if (ATOMICS_REQUIRE_LIBATOMIC)
     list(APPEND _javascript_Core_LIBRARIES atomic)
 endif ()
 

Modified: trunk/Source/_javascript_Core/ChangeLog (274475 => 274476)


--- trunk/Source/_javascript_Core/ChangeLog	2021-03-16 14:03:50 UTC (rev 274475)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-03-16 14:22:51 UTC (rev 274476)
@@ -1,3 +1,14 @@
+2021-03-16  Khem Raj  <raj.k...@gmail.com>
+
+        [CMake] Build fails on RISC-V with GCC 11
+        https://bugs.webkit.org/show_bug.cgi?id=222959
+
+        Reviewed by Carlos Alberto Lopez Perez.
+
+        Use renamed variable ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC
+
+        * CMakeLists.txt:
+
 2021-03-15  Angelos Oikonomopoulos  <ange...@igalia.com>
 
         postprocess-asm/resolve-asm-file-conflicts.rb build failure after upgrading to F34

Modified: trunk/Source/WTF/ChangeLog (274475 => 274476)


--- trunk/Source/WTF/ChangeLog	2021-03-16 14:03:50 UTC (rev 274475)
+++ trunk/Source/WTF/ChangeLog	2021-03-16 14:22:51 UTC (rev 274476)
@@ -1,3 +1,14 @@
+2021-03-16  Khem Raj  <raj.k...@gmail.com>
+
+        [CMake] Build fails on RISC-V with GCC 11
+        https://bugs.webkit.org/show_bug.cgi?id=222959
+
+        Reviewed by Carlos Alberto Lopez Perez.
+
+        Link with libatomic if ATOMICS_REQUIRE_LIBATOMIC is set.
+
+        * wtf/CMakeLists.txt:
+
 2021-03-15  Alex Christensen  <achristen...@webkit.org>
 
         REGRESSION: (r255611) [ Mac ] 3 lldb tests failing related to HashMap

Modified: trunk/Source/WTF/wtf/CMakeLists.txt (274475 => 274476)


--- trunk/Source/WTF/wtf/CMakeLists.txt	2021-03-16 14:03:50 UTC (rev 274475)
+++ trunk/Source/WTF/wtf/CMakeLists.txt	2021-03-16 14:22:51 UTC (rev 274476)
@@ -531,6 +531,10 @@
     set(WTF_FRAMEWORKS bmalloc)
 endif ()
 
+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)

Modified: trunk/Source/WebKit/CMakeLists.txt (274475 => 274476)


--- trunk/Source/WebKit/CMakeLists.txt	2021-03-16 14:03:50 UTC (rev 274475)
+++ trunk/Source/WebKit/CMakeLists.txt	2021-03-16 14:22:51 UTC (rev 274476)
@@ -346,7 +346,7 @@
     list(APPEND WebKit_LIBRARIES webrtc)
 endif ()
 
-if (ATOMIC_INT64_REQUIRES_LIBATOMIC)
+if (ATOMICS_REQUIRE_LIBATOMIC)
     list(APPEND WebKit_PRIVATE_LIBRARIES atomic)
 endif ()
 

Modified: trunk/Source/WebKit/ChangeLog (274475 => 274476)


--- trunk/Source/WebKit/ChangeLog	2021-03-16 14:03:50 UTC (rev 274475)
+++ trunk/Source/WebKit/ChangeLog	2021-03-16 14:22:51 UTC (rev 274476)
@@ -1,3 +1,14 @@
+2021-03-16  Khem Raj  <raj.k...@gmail.com>
+
+        [CMake] Build fails on RISC-V with GCC 11
+        https://bugs.webkit.org/show_bug.cgi?id=222959
+
+        Reviewed by Carlos Alberto Lopez Perez.
+
+        Use renamed ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC.
+
+        * CMakeLists.txt:
+
 2021-03-16  Lauro Moura  <lmo...@igalia.com>
 
         [SOUP] Fix SOUP3 debug build

Modified: trunk/Source/cmake/WebKitCompilerFlags.cmake (274475 => 274476)


--- trunk/Source/cmake/WebKitCompilerFlags.cmake	2021-03-16 14:03:50 UTC (rev 274475)
+++ trunk/Source/cmake/WebKitCompilerFlags.cmake	2021-03-16 14:22:51 UTC (rev 274476)
@@ -274,12 +274,19 @@
 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<bool> y (false);
+          std::atomic<uint64_t> x (0);
+          bool expected = true;
+          bool j = y.compare_exchange_weak(expected,false);
+          x++;
+          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 ()
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to