⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 274476 in webkit


Ignore:
Timestamp:
Mar 16, 2021, 7:22:51 AM (6 years ago)
Author:
commit-queue@webkit.org
Message:

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

Patch by Khem Raj <​raj.khem@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/JavaScriptCore:

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:
Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r274397 r274476  
     12021-03-16  Khem Raj  <raj.khem@gmail.com>
     2
     3        [CMake] Build fails on RISC-V with GCC 11
     4        https://bugs.webkit.org/show_bug.cgi?id=222959
     5
     6        Reviewed by Carlos Alberto Lopez Perez.
     7
     8        Check for 1 byte atomic operations along with 64bit ones, some
     9        architevtures (e.g. RISCV) operations on less than 4 bytes are not lock-free
     10
     11        * Source/cmake/WebKitCompilerFlags.cmake:
     12
    1132021-03-14  Lauro Moura  <lmoura@igalia.com>
    214
  • trunk/Source/JavaScriptCore/CMakeLists.txt

    r273984 r274476  
    140140endif ()
    141141
    142 if (ATOMIC_INT64_REQUIRES_LIBATOMIC)
     142if (ATOMICS_REQUIRE_LIBATOMIC)
    143143    list(APPEND JavaScriptCore_LIBRARIES atomic)
    144144endif ()
  • trunk/Source/JavaScriptCore/ChangeLog

    r274428 r274476  
     12021-03-16  Khem Raj  <raj.khem@gmail.com>
     2
     3        [CMake] Build fails on RISC-V with GCC 11
     4        https://bugs.webkit.org/show_bug.cgi?id=222959
     5
     6        Reviewed by Carlos Alberto Lopez Perez.
     7
     8        Use renamed variable ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC
     9
     10        * CMakeLists.txt:
     11
    1122021-03-15  Angelos Oikonomopoulos  <angelos@igalia.com>
    213
  • trunk/Source/WTF/ChangeLog

    r274463 r274476  
     12021-03-16  Khem Raj  <raj.khem@gmail.com>
     2
     3        [CMake] Build fails on RISC-V with GCC 11
     4        https://bugs.webkit.org/show_bug.cgi?id=222959
     5
     6        Reviewed by Carlos Alberto Lopez Perez.
     7
     8        Link with libatomic if ATOMICS_REQUIRE_LIBATOMIC is set.
     9
     10        * wtf/CMakeLists.txt:
     11
    1122021-03-15  Alex Christensen  <achristensen@webkit.org>
    213
  • trunk/Source/WTF/wtf/CMakeLists.txt

    r270690 r274476  
    532532endif ()
    533533
     534if (ATOMICS_REQUIRE_LIBATOMIC)
     535    list(APPEND WTF_LIBRARIES atomic)
     536endif ()
     537
    534538set(WTF_INTERFACE_LIBRARIES WTF)
    535539set(WTF_INTERFACE_INCLUDE_DIRECTORIES ${WTF_FRAMEWORK_HEADERS_DIR})
  • trunk/Source/WebKit/CMakeLists.txt

    r272748 r274476  
    347347endif ()
    348348
    349 if (ATOMIC_INT64_REQUIRES_LIBATOMIC)
     349if (ATOMICS_REQUIRE_LIBATOMIC)
    350350    list(APPEND WebKit_PRIVATE_LIBRARIES atomic)
    351351endif ()
  • trunk/Source/WebKit/ChangeLog

    r274471 r274476  
     12021-03-16  Khem Raj  <raj.khem@gmail.com>
     2
     3        [CMake] Build fails on RISC-V with GCC 11
     4        https://bugs.webkit.org/show_bug.cgi?id=222959
     5
     6        Reviewed by Carlos Alberto Lopez Perez.
     7
     8        Use renamed ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC.
     9
     10        * CMakeLists.txt:
     11
    1122021-03-16  Lauro Moura  <lmoura@igalia.com>
    213
  • trunk/Source/cmake/WebKitCompilerFlags.cmake

    r268708 r274476  
    275275    set(ATOMIC_TEST_SOURCE "
    276276        #include <atomic>
    277         int main() { std::atomic<int64_t> i(0); i++; return 0; }
     277        int main() {
     278          std::atomic<bool> y (false);
     279          std::atomic<uint64_t> x (0);
     280          bool expected = true;
     281          bool j = y.compare_exchange_weak(expected,false);
     282          x++;
     283          return 0;
     284        }
    278285    ")
    279     check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMIC_INT64_IS_BUILTIN)
    280     if (NOT ATOMIC_INT64_IS_BUILTIN)
     286    check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMICS_ARE_BUILTIN)
     287    if (NOT ATOMICS_ARE_BUILTIN)
    281288        set(CMAKE_REQUIRED_LIBRARIES atomic)
    282         check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMIC_INT64_REQUIRES_LIBATOMIC)
     289        check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMICS_REQUIRE_LIBATOMIC)
    283290        unset(CMAKE_REQUIRED_LIBRARIES)
    284291    endif ()
Note: See TracChangeset for help on using the changeset viewer.