mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -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)
|
set(CMake_HAVE_CXX_FILESYSTEM FALSE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|aarch64)$")
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
cm_check_cxx_feature(atomic_builtin)
|
if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID)
|
||||||
if(NOT CMake_HAVE_CXX_ATOMIC_BUILTIN)
|
set(arch_id "${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}")
|
||||||
set(cm_check_cxx_feature_LINK_LIBRARIES atomic)
|
else()
|
||||||
cm_check_cxx_feature(atomic_lib) # defines CMake_HAVE_CXX_ATOMIC_LIB
|
set(arch_id "${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
unset(cm_check_cxx_feature_LINK_LIBRARIES)
|
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()
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
Reference in New Issue
Block a user