summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2018-04-16 10:51:08 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2018-04-16 20:54:31 +0200
commita780e5e36a3ddafc6c22a1b1472529365cc2ae8b (patch)
treef2107500c6ba305f2f1c2e090c5e65cdc7b96b62
parent7aa693475c1de86436ed44051286577503dd1ffa (diff)
downloadptxdist-a780e5e36a3ddafc6c22a1b1472529365cc2ae8b.tar.gz
ptxdist-a780e5e36a3ddafc6c22a1b1472529365cc2ae8b.tar.xz
mariadb: version bump 10.1.23 -> 10.1.32
Needed to build with gcc 7.x Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--patches/mariadb-10.1.32/0001-c11-atomics.patch139
-rw-r--r--patches/mariadb-10.1.32/series4
-rw-r--r--rules/host-mariadb.in2
-rw-r--r--rules/host-mariadb.make39
-rw-r--r--rules/mariadb.make21
5 files changed, 177 insertions, 28 deletions
diff --git a/patches/mariadb-10.1.32/0001-c11-atomics.patch b/patches/mariadb-10.1.32/0001-c11-atomics.patch
new file mode 100644
index 000000000..84bc03a9e
--- /dev/null
+++ b/patches/mariadb-10.1.32/0001-c11-atomics.patch
@@ -0,0 +1,139 @@
+From: Debian MySQL Maintainers <pkg-mysql-maint@lists.alioth.debian.org>
+Date: Thu, 10 Aug 2017 20:40:29 +0200
+Subject: [PATCH] c11 atomics
+
+Imported from Debian.
+---
+ configure.cmake | 23 +++++++++++++++++++++--
+ include/atomic/gcc_builtins.h | 15 +++++++++++++++
+ include/atomic/nolock.h | 4 ++--
+ mysys/CMakeLists.txt | 4 ++++
+ sql/CMakeLists.txt | 4 ++++
+ 5 files changed, 46 insertions(+), 4 deletions(-)
+
+diff --git a/configure.cmake b/configure.cmake
+index df180e729637..fe76a245cffb 100644
+--- a/configure.cmake
++++ b/configure.cmake
+@@ -128,7 +128,7 @@ IF(UNIX)
+ ENDIF()
+ FIND_PACKAGE(Threads)
+
+- SET(CMAKE_REQUIRED_LIBRARIES
++ LIST(APPEND CMAKE_REQUIRED_LIBRARIES
+ ${LIBM} ${LIBNSL} ${LIBBIND} ${LIBCRYPT} ${LIBSOCKET} ${LIBDL} ${CMAKE_THREAD_LIBS_INIT} ${LIBRT} ${LIBEXECINFO})
+ # Need explicit pthread for gcc -fsanitize=address
+ IF(CMAKE_USE_PTHREADS_INIT AND CMAKE_C_FLAGS MATCHES "-fsanitize=")
+@@ -1038,7 +1038,26 @@ ELSEIF(NOT WITH_ATOMIC_OPS)
+ 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)
++ ELSE()
++ SET(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES})
++ ENDIF()
++ ENDIF()
+ ELSE()
+ MESSAGE(FATAL_ERROR "${WITH_ATOMIC_OPS} is not a valid value for WITH_ATOMIC_OPS!")
+ ENDIF()
+diff --git a/include/atomic/gcc_builtins.h b/include/atomic/gcc_builtins.h
+index 56a0323aedfc..044be2eae34b 100644
+--- a/include/atomic/gcc_builtins.h
++++ b/include/atomic/gcc_builtins.h
+@@ -16,6 +16,7 @@
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
+
++#if defined (HAVE_GCC_ATOMIC_BUILTINS)
+ #define make_atomic_add_body(S) \
+ v= __sync_fetch_and_add(a, v);
+ #define make_atomic_fas_body(S) \
+@@ -26,6 +27,20 @@
+ sav= __sync_val_compare_and_swap(a, cmp_val, set);\
+ if (!(ret= (sav == cmp_val))) *cmp= sav
+
++#elif defined(HAVE_GCC_C11_ATOMICS)
++
++#define make_atomic_add_body(S) \
++ v= __atomic_fetch_add(a, v, __ATOMIC_SEQ_CST)
++#define make_atomic_fas_body(S) \
++ v= __atomic_exchange_n(a, v, __ATOMIC_SEQ_CST)
++#define make_atomic_cas_body(S) \
++ int ## S sav; \
++ ret= __atomic_compare_exchange_n(a, cmp, set, \
++ 0, \
++ __ATOMIC_SEQ_CST,\
++ __ATOMIC_SEQ_CST);
++#endif
++
+ #ifdef MY_ATOMIC_MODE_DUMMY
+ #define make_atomic_load_body(S) ret= *a
+ #define make_atomic_store_body(S) *a= v
+diff --git a/include/atomic/nolock.h b/include/atomic/nolock.h
+index 2137445a0759..2ad7d9895b45 100644
+--- a/include/atomic/nolock.h
++++ b/include/atomic/nolock.h
+@@ -17,7 +17,7 @@
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
+
+ #if defined(__i386__) || defined(_MSC_VER) || defined(__x86_64__) \
+- || defined(HAVE_GCC_ATOMIC_BUILTINS) \
++ || defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_C11_ATOMICS) \
+ || defined(HAVE_SOLARIS_ATOMIC)
+
+ # ifdef MY_ATOMIC_MODE_DUMMY
+@@ -41,7 +41,7 @@
+ # elif __GNUC__
+ # if defined(HAVE_SOLARIS_ATOMIC)
+ # include "solaris.h"
+-# elif defined(HAVE_GCC_ATOMIC_BUILTINS)
++# elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_C11_ATOMICS)
+ # include "gcc_builtins.h"
+ # elif defined(__i386__) || defined(__x86_64__)
+ # include "x86-gcc.h"
+diff --git a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt
+index eb7f75ed6a8f..a9221d7e0ddc 100644
+--- a/mysys/CMakeLists.txt
++++ b/mysys/CMakeLists.txt
+@@ -78,6 +78,10 @@ IF(HAVE_BFD_H)
+ TARGET_LINK_LIBRARIES(mysys bfd)
+ ENDIF(HAVE_BFD_H)
+
++IF(HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
++ TARGET_LINK_LIBRARIES(mysys atomic)
++ENDIF()
++
+ IF (WIN32)
+ TARGET_LINK_LIBRARIES(mysys IPHLPAPI)
+ ENDIF(WIN32)
+diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
+index f6ee59a9237b..10e0cd7b42b5 100644
+--- a/sql/CMakeLists.txt
++++ b/sql/CMakeLists.txt
+@@ -165,6 +165,10 @@ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATIC_PLUGIN_LIBS}
+ ${SSL_LIBRARIES}
+ ${LIBSYSTEMD})
+
++IF(HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
++ TARGET_LINK_LIBRARIES(sql atomic)
++ENDIF()
++
+ IF(WIN32)
+ SET(MYSQLD_SOURCE main.cc nt_servc.cc message.rc)
+ TARGET_LINK_LIBRARIES(sql psapi)
diff --git a/patches/mariadb-10.1.32/series b/patches/mariadb-10.1.32/series
new file mode 100644
index 000000000..44756ea45
--- /dev/null
+++ b/patches/mariadb-10.1.32/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-c11-atomics.patch
+# 1553c49fcffd9f5af9aee158be75e7e7 - git-ptx-patches magic
diff --git a/rules/host-mariadb.in b/rules/host-mariadb.in
index b0bfdeac1..38a1bdd70 100644
--- a/rules/host-mariadb.in
+++ b/rules/host-mariadb.in
@@ -3,9 +3,7 @@
config HOST_MARIADB
tristate
default ALLYES
- select HOST_LIBAIO
select HOST_NCURSES
select HOST_CMAKE
- select HOST_ZLIB
help
Required host part of the MariaDB build system
diff --git a/rules/host-mariadb.make b/rules/host-mariadb.make
index 4b6babad6..ab1503a4e 100644
--- a/rules/host-mariadb.make
+++ b/rules/host-mariadb.make
@@ -20,32 +20,35 @@ HOST_PACKAGES-$(PTXCONF_HOST_MARIADB) += host-mariadb
#
# cmake
#
+# FEATURE_SET=xsmall disables all plugins
+# PLUGIN_MROONGA is enabled because otherwise cmake fails for mariadb 10.1.32
HOST_MARIADB_CONF_TOOL := cmake
-# DISABLE_SHARED disables dynamic plugins, disable plugins that default
-# to "static" explicitly
HOST_MARIADB_CONF_OPT := \
$(HOST_CMAKE_OPT) \
-DCMAKE_INSTALL_PREFIX:PATH=/ \
+ -DBUILD_CONFIG=mysql_release \
+ -DIGNORE_AIO_CHECK=ON \
-DSTACK_DIRECTION=1 \
-DHAVE_LLVM_LIBCPP_EXITCODE=no \
- -DHAVE_FALLOC_PUNCH_HOLE_AND_KEEP_SIZE_EXITCODE=no \
+ -DCOMMUNITY_BUILD=ON \
-DCONNECT_WITH_JDBC=OFF \
-DCONNECT_WITH_LIBXML2=OFF \
-DCONNECT_WITH_ODBC=OFF \
-DCONNECT_WITH_VCT=OFF \
-DCONNECT_WITH_XMAP=OFF \
-DCONNECT_WITH_ZIP=OFF \
- -DDISABLE_SHARED=ON \
+ -DDISABLE_SHARED=OFF \
-DENABLED_LOCAL_INFILE=OFF \
-DENABLED_PROFILING=OFF \
-DENABLE_GCOV=OFF \
+ -DFEATURE_SET=xsmall \
-DINSTALL_LAYOUT=STANDALONE \
- -DMRN_GROONGA_EMBED=OFF \
-DMYSQL_MAINTAINER_MODE=OFF \
-DNOT_FOR_DISTRIBUTION=OFF \
-DSECURITY_HARDENED=ON \
- -DUSE_ARIA_FOR_TMP_TABLES=OFF \
+ -DUSE_ARIA_FOR_TMP_TABLES=ON \
-DUSE_GCOV=OFF \
+ -DWITHOUT_SERVER=OFF \
-DWITH_ASAN=OFF \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_EXTRA_CHARSETS=none \
@@ -55,27 +58,31 @@ HOST_MARIADB_CONF_OPT := \
-DWITH_INNODB_LZMA=OFF \
-DWITH_INNODB_LZO=OFF \
-DWITH_INNODB_SNAPPY=OFF \
- -DWITH_JEMALLOC=no \
+ -DWITH_JEMALLOC=OFF \
-DWITH_LIBARCHIVE=OFF \
-DWITH_LIBWRAP=OFF \
+ -DWITH_PCRE=OFF \
-DWITH_MARIABACKUP=OFF \
-DWITH_READLINE=OFF \
-DWITH_SAFEMALLOC=OFF \
- -DWITH_SYSTEMD=OFF \
+ -DWITH_SSL=bundled \
+ -DWITH_SYSTEMD=no \
-DWITH_UNIT_TESTS=OFF \
-DWITH_VALGRIND=OFF \
-DWITH_WSREP=OFF \
- -DWITH_ZLIB=system \
- -DWITH_SSL=NO \
- -DPLUGIN_ARIA=NO \
- -DPLUGIN_FEEDBACK=NO \
- -DPLUGIN_PARTITION=NO \
- -DPLUGIN_PERFSCHEMA=NO \
- -DPLUGIN_SEQUENCE=NO \
- -DPLUGIN_XTRADB=NO
+ -DWITH_ZLIB=bundled \
+ -DPLUGIN_MROONGA:FORCE=DYNAMIC \
+ -DLZ4_LIBS=undefined
HOST_MARIADB_CXXFLAGS := -std=c++98
+HOST_MARIADB_MAKE_OPT := \
+ comp_err \
+ comp_sql \
+ factorial \
+ gen_lex_hash \
+ gen_lex_token
+
# ----------------------------------------------------------------------------
# Install
# ----------------------------------------------------------------------------
diff --git a/rules/mariadb.make b/rules/mariadb.make
index 5322c3eeb..c235be3bb 100644
--- a/rules/mariadb.make
+++ b/rules/mariadb.make
@@ -16,8 +16,8 @@ PACKAGES-$(PTXCONF_MARIADB) += mariadb
#
# Paths and names
#
-MARIADB_VERSION := 10.1.23
-MARIADB_MD5 := 1a7392cc05c7c249acd4495022719ca8
+MARIADB_VERSION := 10.1.32
+MARIADB_MD5 := 389ce891cf00957748ba98b09f433c14
MARIADB := mariadb-$(MARIADB_VERSION)
MARIADB_SUFFIX := tar.gz
MARIADB_URL := https://downloads.mariadb.com/MariaDB/$(MARIADB)/source/$(MARIADB).$(MARIADB_SUFFIX)
@@ -86,9 +86,9 @@ MARIADB_PLUGINS_ENABLE- += XTRADB
#
MARIADB_CONF_TOOL := cmake
-# 10.1.23 does not build with CONNECT_WITH_ZIP=OFF
MARIADB_CONF_OPT := \
$(CROSS_CMAKE_USR) \
+ -DBUILD_CONFIG=mysql_release \
-DSTACK_DIRECTION=1 \
-DIMPORT_EXECUTABLES=$(PTXDIST_SYSROOT_HOST)/share/mariadb/import_executables.cmake \
-DHAVE_LLVM_LIBCPP_EXITCODE=no \
@@ -98,13 +98,13 @@ MARIADB_CONF_OPT := \
-DCONNECT_WITH_ODBC=OFF \
-DCONNECT_WITH_VCT=OFF \
-DCONNECT_WITH_XMAP=OFF \
- -DCONNECT_WITH_ZIP=ON \
+ -DCONNECT_WITH_ZIP=OFF \
-DDISABLE_SHARED=OFF \
-DENABLED_LOCAL_INFILE=OFF \
-DENABLED_PROFILING=OFF \
-DENABLE_GCOV=OFF \
+ -DFEATURE_SET=community \
-DINSTALL_LAYOUT=STANDALONE \
- -DMRN_GROONGA_EMBED=OFF \
-DMYSQL_DATADIR=/var/lib/mysql/data \
-DMYSQL_MAINTAINER_MODE=OFF \
-DNOT_FOR_DISTRIBUTION=OFF \
@@ -122,23 +122,24 @@ MARIADB_CONF_OPT := \
-DWITH_INNODB_LZMA=OFF \
-DWITH_INNODB_LZO=OFF \
-DWITH_INNODB_SNAPPY=OFF \
- -DWITH_JEMALLOC=no \
+ -DWITH_JEMALLOC=OFF \
-DWITH_LIBARCHIVE=OFF \
-DWITH_LIBWRAP=OFF \
- -DWITH_MARIABACKUP=OFF \
-DWITH_PCRE=system \
+ -DPCRE_STACK_SIZE_OK=1 \
+ -DWITH_MARIABACKUP=OFF \
-DWITH_READLINE=OFF \
-DWITH_SAFEMALLOC=OFF \
- -DWITH_SYSTEMD=$(call ptx/onoff, PTXCONF_MARIADB_SYSTEMD) \
+ -DWITH_SSL=system \
+ -DWITH_SYSTEMD=$(call ptx/yesno, PTXCONF_MARIADB_SYSTEMD) \
-DWITH_UNIT_TESTS=OFF \
-DWITH_VALGRIND=OFF \
-DWITH_WSREP=OFF \
-DWITH_ZLIB=system \
- -DWITH_SSL=system \
-DSYSCONFDIR=/etc/mariadb \
-DCOMPILATION_COMMENT=PTXdist \
-DDEFAULT_CHARSET=latin1 \
- -DENABLE_DTRACE=OFF
+ -DLZ4_LIBS=undefined
ifneq ($(strip $(MARIADB_PLUGINS_ENABLES-y)),)
MARIADB_CONF_OPT += $(foreach plugin,$(MARIADB_PLUGINS_ENABLES-y),$(addprefix -DPLUGIN_,$(addsuffix =STATIC, $(plugin))))