Re: Bug#915046: mariadb-10.3: Please build with -latomic where necessary

John Paul Adrian Glaubitz <[email protected]>
Newsgroups gmane.linux.debian.ports.mips,gmane.linux.debian.ports.powerpc
Message-ID <[email protected]>
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 - [email protected]
`. `'   Freie Universitaet Berlin - [email protected]
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
mariadb-link-atomic.patch (text/x-patch, 2.8 KB)
Description: Link against libatomic where necessary
Author: John Paul Adrian Glaubitz <[email protected]>
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)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.