summaryrefslogtreecommitdiff
path: root/cmake/modules/CheckAtomic.cmake
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2015-02-25 02:38:03 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2015-02-25 02:38:03 +0000
commitfb5edaa05c960aaa53d19ad99af6cea7977cade9 (patch)
tree1477d49ae9f8b52cd0f8bb5b0aa646e5574cbbfd /cmake/modules/CheckAtomic.cmake
parent2013f8f1b24e655ad591bac2f9765bf5291ba227 (diff)
build: check if atomic routines are implicitly provided
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! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230452 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake/modules/CheckAtomic.cmake')
-rw-r--r--cmake/modules/CheckAtomic.cmake10
1 files changed, 7 insertions, 3 deletions
diff --git a/cmake/modules/CheckAtomic.cmake b/cmake/modules/CheckAtomic.cmake
index 2ed48197728..30a5e311292 100644
--- a/cmake/modules/CheckAtomic.cmake
+++ b/cmake/modules/CheckAtomic.cmake
@@ -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("