Browse Source

Merge topic 'cxx-atomic' into release-4.1

37171d9db0 Source: Improve detection of Linux architectures requiring explicit libatomic

Acked-by: Kitware Robot <[email protected]>
Merge-request: !11441
Brad King 1 week ago
parent
commit
812acd7ee6
1 changed files with 13 additions and 6 deletions
  1. 13 6
      Source/Checks/cm_cxx_features.cmake

+ 13 - 6
Source/Checks/cm_cxx_features.cmake

@@ -102,11 +102,18 @@ else()
   set(CMake_HAVE_CXX_FILESYSTEM FALSE)
 endif()
 
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|aarch64)$")
-  cm_check_cxx_feature(atomic_builtin)
-  if(NOT CMake_HAVE_CXX_ATOMIC_BUILTIN)
-    set(cm_check_cxx_feature_LINK_LIBRARIES atomic)
-    cm_check_cxx_feature(atomic_lib) # defines CMake_HAVE_CXX_ATOMIC_LIB
-    unset(cm_check_cxx_feature_LINK_LIBRARIES)
+if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+  if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID)
+    set(arch_id "${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}")
+  else()
+    set(arch_id "${CMAKE_SYSTEM_PROCESSOR}")
+  endif()
+  if(NOT arch_id MATCHES "^(x86_64|aarch64)$")
+    cm_check_cxx_feature(atomic_builtin)
+    if(NOT CMake_HAVE_CXX_ATOMIC_BUILTIN)
+      set(cm_check_cxx_feature_LINK_LIBRARIES atomic)
+      cm_check_cxx_feature(atomic_lib) # defines CMake_HAVE_CXX_ATOMIC_LIB
+      unset(cm_check_cxx_feature_LINK_LIBRARIES)
+    endif()
   endif()
 endif()