Group :: Banco de dados
RPM: mariadb
Main Changelog Spec Patches Sources Download Gear Bugs e FR Repocop
Patch: mariadb-10.5.11-alt-link-with-latomic-if-needed.patch
Download
Download
diff --git a/configure.cmake b/configure.cmake
index 8383b6921f8..3ba97756da5 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -865,7 +865,32 @@ int main()
long long int *ptr= &var;
return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
}"
-HAVE_GCC_C11_ATOMICS)
+HAVE_GCC_C11_ATOMICS_NO_LIB)
+
+# check if we need to link with libatomic for c11 atomics
+IF(UNIX AND NOT (HAVE_GCC_ATOMIC_BUILTINS OR HAVE_GCC_C11_ATOMICS_NO_LIB))
+ SET(SAVE_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
+ SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} atomic)
+ CHECK_CXX_SOURCE_COMPILES("
+ int main()
+ {
+ long long int var= 1;
+ long long int *ptr= &var;
+ return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
+ }"
+ HAVE_GCC_C11_ATOMICS_LIB)
+ IF(HAVE_GCC_C11_ATOMICS_LIB)
+ SET(LIBATOMIC "atomic")
+ ELSE()
+ SET(CMAKE_REQUIRED_LIBRARIES ${SAVE_CMAKE_REQUIRED_LIBRARIES})
+ ENDIF()
+ENDIF()
+
+IF (HAVE_GCC_C11_ATOMICS_NO_LIB OR HAVE_GCC_C11_ATOMICS_LIB)
+ SET(HAVE_GCC_C11_ATOMICS 1 CACHE INTERNAL "C11 atomic functions found")
+ELSE()
+ SET(HAVE_GCC_C11_ATOMICS "" CACHE INTERNAL "C11 atomic functions NOT found")
+ENDIF()
IF(WITH_VALGRIND)
SET(HAVE_valgrind 1)
diff --git a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt
index 92269538c58..0d144cc0508 100644
--- a/mysys/CMakeLists.txt
+++ b/mysys/CMakeLists.txt
@@ -165,7 +165,7 @@ ENDIF()
ADD_CONVENIENCE_LIBRARY(mysys ${MYSYS_SOURCES})
MAYBE_DISABLE_IPO(mysys)
TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY}
- ${LIBNSL} ${LIBM} ${LIBRT} ${CMAKE_DL_LIBS} ${LIBSOCKET} ${LIBEXECINFO})
+ ${LIBNSL} ${LIBM} ${LIBRT} ${CMAKE_DL_LIBS} ${LIBSOCKET} ${LIBEXECINFO} ${LIBATOMIC})
DTRACE_INSTRUMENT(mysys)
IF(HAVE_BFD_H)
diff --git a/storage/rocksdb/build_rocksdb.cmake b/storage/rocksdb/build_rocksdb.cmake
index 3a2297fd0f2..827dcc1d31d 100644
--- a/storage/rocksdb/build_rocksdb.cmake
+++ b/storage/rocksdb/build_rocksdb.cmake
@@ -160,7 +160,7 @@ find_package(Threads REQUIRED)
if(WIN32)
set(SYSTEM_LIBS ${SYSTEM_LIBS} Shlwapi.lib Rpcrt4.lib)
else()
- set(SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT} ${LIBRT} ${CMAKE_DL_LIBS})
+ set(SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT} ${LIBRT} ${CMAKE_DL_LIBS} ${LIBATOMIC})
endif()
set(ROCKSDB_LIBS rocksdblib})