mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 10:50:16 -06: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:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user