build: check if atomic routines are implicitly provided
authorSaleem Abdulrasool <compnerd@compnerd.org>
Wed, 25 Feb 2015 02:38:03 +0000 (02:38 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Wed, 25 Feb 2015 02:38:03 +0000 (02:38 +0000)
It is possible for the atomic routines to be provided by the compiler without
requiring any additional libraries.  Check if that is the case before checking
for a library.

Patch by Matt Glazar!

llvm-svn: 230452

llvm/cmake/modules/CheckAtomic.cmake

index 2ed4819..30a5e31 100644 (file)
@@ -2,9 +2,13 @@
 
 INCLUDE(CheckCXXSourceCompiles)
 
-check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC)
-if (HAVE_LIBATOMIC)
-  list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
+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("