From 6354451c6afeb6f4aa493a440cd59c11c2be6517 Mon Sep 17 00:00:00 2001 From: Evgeniy Stepanov Date: Fri, 12 Sep 2014 11:08:59 +0000 Subject: [PATCH] Add CMake check for libatomic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217666 91177308-0d34-0410-b5e6-96231b3b80d8 --- cmake/modules/CheckAtomic.cmake | 5 +++++ cmake/modules/HandleLLVMOptions.cmake | 3 --- lib/Support/CMakeLists.txt | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/cmake/modules/CheckAtomic.cmake b/cmake/modules/CheckAtomic.cmake index 0d63a82b97a..2ed48197728 100644 --- a/cmake/modules/CheckAtomic.cmake +++ b/cmake/modules/CheckAtomic.cmake @@ -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 diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake index 8b665d3b3c6..9b98848ae70 100644 --- a/cmake/modules/HandleLLVMOptions.cmake +++ b/cmake/modules/HandleLLVMOptions.cmake @@ -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 std::atomic x(0.0f); diff --git a/lib/Support/CMakeLists.txt b/lib/Support/CMakeLists.txt index df5caf48099..6ed5416bb7f 100644 --- a/lib/Support/CMakeLists.txt +++ b/lib/Support/CMakeLists.txt @@ -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() -- 2.34.1