- Author: Vicențiu Ciorbaru <vicentiu@mariadb.org>
- Date: Fri Dec 21 19:14:04 2018 +0200
-
- Link with libatomic to enable C11 atomics support
-
- Some architectures (mips) require libatomic to support proper
- atomic operations. Check first if support is available without
- linking, otherwise use the library.
-
- --- a/configure.cmake
- +++ b/configure.cmake
- @@ -866,7 +866,25 @@ int main()
- long long int *ptr= &var;
- return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
- }"
- -HAVE_GCC_C11_ATOMICS)
- +HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC)
- +IF (HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC)
- + SET(HAVE_GCC_C11_ATOMICS True)
- +ELSE()
- + SET(OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- + LIST(APPEND 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_WITH_LIBATOMIC)
- + IF(HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
- + SET(HAVE_GCC_C11_ATOMICS True)
- + ENDIF()
- + SET(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES})
- +ENDIF()
-
- IF(WITH_VALGRIND)
- SET(HAVE_valgrind 1)
- --- a/mysys/CMakeLists.txt
- +++ b/mysys/CMakeLists.txt
- @@ -79,6 +79,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings
- ${LIBNSL} ${LIBM} ${LIBRT} ${LIBDL} ${LIBSOCKET} ${LIBEXECINFO} ${CRC32_LIBRARY})
- DTRACE_INSTRUMENT(mysys)
-
- +IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
- + TARGET_LINK_LIBRARIES(mysys atomic)
- +ENDIF()
- +
- IF(HAVE_BFD_H)
- TARGET_LINK_LIBRARIES(mysys bfd)
- ENDIF(HAVE_BFD_H)
- --- a/sql/CMakeLists.txt
- +++ b/sql/CMakeLists.txt
- @@ -190,6 +190,10 @@ ELSE()
- SET(MYSQLD_SOURCE main.cc ${DTRACE_PROBES_ALL})
- ENDIF()
-
- +IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
- + TARGET_LINK_LIBRARIES(sql atomic)
- +ENDIF()
- +
-
- IF(MSVC AND NOT WITHOUT_DYNAMIC_PLUGINS)
-
|