From ff99ee51b34268f00aab3efd858e0798e92417c3 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 29 Mar 2020 10:33:49 -0700 Subject: fixes #1225 atomic check operation fails with android cross toolchain --- cmake/CheckAtomicLib.cmake | 70 ---------------------------------------------- 1 file changed, 70 deletions(-) delete mode 100644 cmake/CheckAtomicLib.cmake (limited to 'cmake/CheckAtomicLib.cmake') diff --git a/cmake/CheckAtomicLib.cmake b/cmake/CheckAtomicLib.cmake deleted file mode 100644 index 06979305..00000000 --- a/cmake/CheckAtomicLib.cmake +++ /dev/null @@ -1,70 +0,0 @@ -# -# Copyright 2020 Kenneth Haase -# -# This software is supplied under the terms of the MIT License, a -# copy of which should be located in the distribution where this -# file was obtained (LICENSE.txt). A copy of the license may also be -# found online at https://opensource.org/licenses/MIT. -# - -# atomic builtins are required for threading support. - -INCLUDE(CheckIncludeFiles) -INCLUDE(CheckCSourceCompiles) -INCLUDE(CheckLibraryExists) - -# Sometimes linking against libatomic is required for atomic ops, if -# the platform doesn't support lock-free atomics. - -function(check_c_atomics_without_lib varname) - CHECK_C_SOURCE_COMPILES(" -#include -int main() { - _Atomic long long x; - atomic_store(&x,3); - long long y = atomic_load(&x); - atomic_fetch_add(&x,12); - long long z = atomic_load(&x); - - return x; -} -" ${varname}) -endfunction(check_c_atomics_without_lib) - -function(check_c_atomics_with_lib varname) - SET(SAVED_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) - list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic") - CHECK_C_SOURCE_COMPILES(" -#include -int main() { - _Atomic long long x; - atomic_store(&x,3); - long long y = atomic_load(&x); - atomic_fetch_add(&x,12); - long long z = atomic_load(&x); - - return x; -} -" ${varname}) - SET(CMAKE_REQUIRED_LIBRARIES "${SAVED_CMAKE_REQUIRED_LIBRARIES}") -endfunction(check_c_atomics_with_lib) - -macro (CheckAtomicLib) - # First check if atomics work without the library. - if(MSVC) - set(HAVE_C_ATOMICS_WITHOUT_LIB True) - else() - check_c_atomics_without_lib(HAVE_C_ATOMICS_WITHOUT_LIB) - if(NOT HAVE_C_ATOMICS_WITHOUT_LIB) - check_library_exists(atomic __atomic_fetch_add_8 "" HAVE_LIBATOMIC) - if( HAVE_LIBATOMIC ) - check_c_atomics_with_lib(HAVE_C_ATOMICS_WITH_LIB) - if (NOT HAVE_C_ATOMICS_WITH_LIB) - message(FATAL_ERROR "Host compiler must support atomic types!") - endif() - else() - message(FATAL_ERROR "Host compiler appears to require libatomic, but cannot find it.") - endif() - endif() - endif() -endmacro (CheckAtomicLib) -- cgit v1.2.3-70-g09d2