mariadb/mariadb-10.2.19-link-and-enable-c++11-atomics.patch
Kristyna Streitova 5af2e5086d Accepting request 717132 from home:kstreitova:branches:server:database
- update to 10.3.16 [bsc#1108088]
  * notable changes:
    * MDEV-19490: show tables fails when selecting the
      information_schema database
    * MDEV-19491: multi-update with triggers and stored routines
    * MDEV-19541: InnoDB crashes when trying to recover
      a corrupted page
    * MDEV-19725: Incorrect error handling in ALTER TABLE
    * MDEV-19445: FULLTEXT INDEX fix
    * MDEV-19486: System Versioning fix
    * MDEV-19509: InnoDB skips the tablespace in rotation list
    * MDEV-19614: SET GLOBAL innodb_ deadlock due to
      LOCK_global_system_variables
    * MDEV-17458: Unable to start galera node
    * MDEV-17456: Malicious SUPER user can possibly change audit
      log configuration without leaving traces
    * MDEV-19588: Wrong results from query, using left join
    * MDEV-19258: RIGHT JOIN hangs in MariaDB
    * Virtual columns fixes: MDEV-19027, MDEV-19602
    * Crash recovery fixes: MDEV-13080, MDEV-19587, MDEV-19435
    * MDEV-11094: Fixed row-based event applying with an error anymore
      when the events aim at the blackhole engine and row annotation
      is enabled
    * MDEV-19076: Fixed slave_parallel_mode=optimistic did not always
      properly order replication events on temporary tables in some
      case to attempt execution before a parent event has been already
      processed
    * MDEV-19158: Fixed duplicated entries in binlog occurred in 
      combination of LOCK TABLES and binlog_format=MIXED when a being
      locked table was under replication unsafe operation

OBS-URL: https://build.opensuse.org/request/show/717132
OBS-URL: https://build.opensuse.org/package/show/server:database/mariadb?expand=0&rev=231
2019-07-19 17:38:09 +00:00

65 lines
1.8 KiB
Diff

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
@@ -926,7 +926,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
@@ -78,6 +78,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
@@ -178,6 +178,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)