X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=cmake%2Fmodules%2FCheckAtomic.cmake;h=a03788ec9f93bca00893cdb31fc46b232a3334bc;hb=527745e789d49d6b3d3004d74265d2eb79cf5bd4;hp=f40ff4dfbd3123e4ab3fc29de1ddc3595eed1e43;hpb=c595e6ca0a889ab51efe7a1c8109f8e96d9d4869;p=oota-llvm.git diff --git a/cmake/modules/CheckAtomic.cmake b/cmake/modules/CheckAtomic.cmake index f40ff4dfbd3..a03788ec9f9 100644 --- a/cmake/modules/CheckAtomic.cmake +++ b/cmake/modules/CheckAtomic.cmake @@ -2,8 +2,18 @@ INCLUDE(CheckCXXSourceCompiles) +check_function_exists(__atomic_fetch_add_4 HAVE___ATOMIC_FETCH_ADD_4) +if( NOT HAVE___ATOMIC_FETCH_ADD_4 ) + check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC) + set(HAVE_LIBATOMIC False) + if( HAVE_LIBATOMIC ) + list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic") + endif() +endif() + CHECK_CXX_SOURCE_COMPILES(" #ifdef _MSC_VER +#include /* Workaround for PR19898. */ #include #endif int main() { @@ -22,8 +32,8 @@ int main() { #endif return 0; } -" LLVM_MULTITHREADED) +" LLVM_HAS_ATOMICS) -if( NOT LLVM_MULTITHREADED ) +if( NOT LLVM_HAS_ATOMICS ) message(STATUS "Warning: LLVM will be built thread-unsafe because atomic builtins are missing") endif()