Add CMake check for libatomic.
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Fri, 12 Sep 2014 11:08:59 +0000 (11:08 +0000)
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Fri, 12 Sep 2014 11:08:59 +0000 (11:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217666 91177308-0d34-0410-b5e6-96231b3b80d8

cmake/modules/CheckAtomic.cmake
cmake/modules/HandleLLVMOptions.cmake
lib/Support/CMakeLists.txt

index 0d63a82b97a06090085764e806670ac207eac476..2ed48197728b5a1294ef3d3d1bc46ebc532bf6fb 100644 (file)
@@ -2,6 +2,11 @@
 
 INCLUDE(CheckCXXSourceCompiles)
 
+check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC)
+if (HAVE_LIBATOMIC)
+  list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
+endif()
+
 CHECK_CXX_SOURCE_COMPILES("
 #ifdef _MSC_VER
 #include <windows.h>
index 8b665d3b3c663ff78f4d3550f7896c83bfb864b2..9b98848ae70ce7e3c79fcf36d855d9f7bacec653 100644 (file)
@@ -25,9 +25,6 @@ if(NOT LLVM_FORCE_USE_OLD_TOOLCHAIN)
       set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
       set(OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
       set(CMAKE_REQUIRED_FLAGS "-std=c++0x")
-      if (ANDROID)
-        set(CMAKE_REQUIRED_LIBRARIES "atomic")
-      endif()
       check_cxx_source_compiles("
 #include <atomic>
 std::atomic<float> x(0.0f);
index df5caf480994fc62e2dcd547dea8fca35d11cf44..6ed5416bb7fc7d47280b557198ee44e83f588269 100644 (file)
@@ -132,6 +132,9 @@ if( NOT MSVC )
         set(system_libs ${system_libs} ${TERMINFO_LIBS})
       endif()
     endif()
+    if( LLVM_ENABLE_THREADS AND HAVE_LIBATOMIC )
+      set(system_libs ${system_libs} atomic)
+    endif()
     if( LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD )
       set(system_libs ${system_libs} pthread)
     endif()