Re: Bug#915046: mariadb-10.3: Please build with -latomic where necessary
Hello!
Attaching an updated version of the patch.
Please note, without the patch, mariadb-10.3 will not build on mips32 and
several other 32-bit platforms.
Thanks,
Adrian
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz@debian.org
`. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
Description: Link against libatomic where necessary
Author: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Last-Update: 2018-12-16
--- mariadb-10.3-10.3.11.orig/configure.cmake
+++ mariadb-10.3-10.3.11/configure.cmake
@@ -923,6 +923,21 @@ int main()
}"
HAVE_GCC_ATOMIC_BUILTINS)
CHECK_CXX_SOURCE_COMPILES("
+#include <cstdint>
+int main() {
+ uint64_t x = 1;
+ __atomic_add_fetch(&x, 0, __ATOMIC_RELAXED);
+ return x;
+}
+" HAVE__ATOMIC_ADD_FETCH)
+if (NOT HAVE__ATOMIC_ADD_FETCH)
+ check_library_exists(atomic __atomic_add_fetch_8 "" HAVE_LIBATOMIC)
+ if (HAVE_LIBATOMIC)
+ SET(CMAKE_REQUIRED_LIBRARIES atomic)
+ SET(LIBATOMIC atomic)
+ endif()
+endif()
+CHECK_CXX_SOURCE_COMPILES("
int main()
{
long long int var= 1;
--- mariadb-10.3-10.3.11.orig/libmysqld/CMakeLists.txt
+++ mariadb-10.3-10.3.11/libmysqld/CMakeLists.txt
@@ -145,7 +145,7 @@ ENDIF()
SET(LIBS
- dbug strings mysys mysys_ssl pcre vio
+ dbug strings mysys mysys_ssl pcre vio ${LIBATOMIC}
${ZLIB_LIBRARY} ${SSL_LIBRARIES}
${LIBWRAP} ${LIBCRYPT} ${LIBDL}
${MYSQLD_STATIC_PLUGIN_LIBS}
--- mariadb-10.3-10.3.11.orig/sql/CMakeLists.txt
+++ mariadb-10.3-10.3.11/sql/CMakeLists.txt
@@ -169,7 +169,8 @@ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATI
${LIBWRAP} ${LIBCRYPT} ${LIBDL} ${CMAKE_THREAD_LIBS_INIT}
${WSREP_LIB}
${SSL_LIBRARIES}
- ${LIBSYSTEMD})
+ ${LIBSYSTEMD}
+ ${LIBATOMIC})
IF(WIN32)
SET(MYSQLD_SOURCE main.cc nt_servc.cc message.rc)
--- mariadb-10.3-10.3.11.orig/storage/perfschema/unittest/CMakeLists.txt
+++ mariadb-10.3-10.3.11/storage/perfschema/unittest/CMakeLists.txt
@@ -29,4 +29,4 @@ ADD_DEPENDENCIES(pfs_server_stubs GenErr
MY_ADD_TESTS(pfs_instr_class pfs_instr_class-oom pfs_instr pfs_instr-oom
pfs_account-oom pfs_host-oom pfs_timer pfs_user-oom pfs pfs_misc
- EXT "cc" LINK_LIBRARIES perfschema mysys pfs_server_stubs)
+ EXT "cc" LINK_LIBRARIES perfschema mysys pfs_server_stubs ${LIBATOMIC})
--- mariadb-10.3-10.3.11.orig/unittest/mysys/CMakeLists.txt
+++ mariadb-10.3-10.3.11/unittest/mysys/CMakeLists.txt
@@ -15,7 +15,7 @@
MY_ADD_TESTS(bitmap base64 my_atomic my_rdtsc lf my_malloc my_getopt dynstring
aes
- LINK_LIBRARIES mysys)
+ LINK_LIBRARIES mysys ${LIBATOMIC})
MY_ADD_TESTS(my_vsnprintf LINK_LIBRARIES strings mysys)
ADD_DEFINITIONS(${SSL_DEFINES})
--- mariadb-10.3-10.3.11.orig/unittest/sql/CMakeLists.txt
+++ mariadb-10.3-10.3.11/unittest/sql/CMakeLists.txt
@@ -27,7 +27,7 @@ ELSE()
ADD_EXECUTABLE(explain_filename-t explain_filename-t.cc)
ENDIF()
-TARGET_LINK_LIBRARIES(explain_filename-t sql mytap)
+TARGET_LINK_LIBRARIES(explain_filename-t sql mytap ${LIBATOMIC})
MY_ADD_TEST(explain_filename)
ADD_EXECUTABLE(mf_iocache-t mf_iocache-t.cc ../../sql/mf_iocache_encr.cc)
Reply to: