mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-01-26 19:09:06 +00:00
Source: Improve detection of Linux architectures requiring explicit libatomic
Extend commit fa3c4b6dbf (Source: Link libatomic when needed on any Linux architecture, 2023-08-24, v3.27.5~9^2) to decide based on the architecture targeted by the compiler, known since CMake 4.1. Use `CMAKE_SYSTEM_PROCESSOR` only as a fallback for older versions. Fixes: #27406
This commit is contained in:
parent
5961f5f3bc
commit
37171d9db0
@ -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()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user