- 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
- @@ -168,6 +168,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings
- ${LIBNSL} ${LIBM} ${LIBRT} ${CMAKE_DL_LIBS} ${LIBSOCKET} ${LIBEXECINFO})
- 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
- @@ -324,6 +324,10 @@ IF(WITH_MYSQLD_LDFLAGS)
- "${MYSQLD_LINK_FLAGS} ${WITH_MYSQLD_LDFLAGS}")
- ENDIF()
-
- +IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
- + TARGET_LINK_LIBRARIES(sql atomic)
- +ENDIF()
- +
-
- FIND_PACKAGE(BISON 2.0)
-
|