mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
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. Contributors: James Cowgill <jcowgill@debian.org> Jessica Clarke <jrtc27@debian.org> Vicențiu Ciorbaru <vicentiu@mariadb.org>
This commit is contained in:
parent
39f6315612
commit
f502ccbcb5
3 changed files with 23 additions and 2 deletions
|
@ -895,7 +895,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)
|
||||
|
|
|
@ -78,6 +78,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY}
|
|||
${LIBNSL} ${LIBM} ${LIBRT} ${CMAKE_DL_LIBS} ${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)
|
||||
|
|
|
@ -307,7 +307,6 @@ IF(WITH_MYSQLD_LDFLAGS)
|
|||
"${MYSQLD_LINK_FLAGS} ${WITH_MYSQLD_LDFLAGS}")
|
||||
ENDIF()
|
||||
|
||||
|
||||
FIND_PACKAGE(BISON 2.0)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue