summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Evans <grknight@gentoo.org>2018-12-11 12:33:44 -0500
committerBrian Evans <grknight@gentoo.org>2018-12-11 12:33:44 -0500
commita033f9e0dc35edad0a3d5f02b1caa0855aefadaf (patch)
treef088024f77b87a6eef2a6db1abf650f98ccf1b3e
parentAdd 20036_all_mysql-5.6-fix-rpl_semi_sync_shutdown_hang.test.patch (diff)
downloadmysql-extras-a033f9e0dc35edad0a3d5f02b1caa0855aefadaf.tar.gz
mysql-extras-a033f9e0dc35edad0a3d5f02b1caa0855aefadaf.tar.bz2
mysql-extras-a033f9e0dc35edad0a3d5f02b1caa0855aefadaf.zip
Restore jemalloc support on the server for 10.2 and 10.3 MariaDBmysql-extras-20181211-1735Z
Signed-off-by: Brian Evans <grknight@gentoo.org>
-rw-r--r--20037_all_mariadb-10.2-restore-jemalloc.patch155
-rw-r--r--20037_all_mariadb-10.3-restore-jemalloc.patch130
2 files changed, 285 insertions, 0 deletions
diff --git a/20037_all_mariadb-10.2-restore-jemalloc.patch b/20037_all_mariadb-10.2-restore-jemalloc.patch
new file mode 100644
index 0000000..0cf1fbb
--- /dev/null
+++ b/20037_all_mariadb-10.2-restore-jemalloc.patch
@@ -0,0 +1,155 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index be86adbf67b8..59dc149410f1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -154,6 +154,7 @@ INCLUDE(ssl)
+ INCLUDE(readline)
+ INCLUDE(libutils)
+ INCLUDE(dtrace)
++INCLUDE(jemalloc)
+ INCLUDE(pcre)
+ INCLUDE(ctest)
+ INCLUDE(plugin)
+@@ -329,6 +328,7 @@ MYSQL_CHECK_SSL()
+ MYSQL_CHECK_READLINE()
+
+ SET(MALLOC_LIBRARY "system")
++CHECK_JEMALLOC()
+
+ CHECK_PCRE()
+
+diff --git a/include/my_global.h b/include/my_global.h
+index e4ca562772e0..30db38ce35b5 100644
+--- a/include/my_global.h
++++ b/include/my_global.h
+@@ -1071,7 +1071,6 @@ typedef ulong myf; /* Type of MyFlags in my_funcs */
+ #ifdef _WIN32
+ #define dlsym(lib, name) (void*)GetProcAddress((HMODULE)lib, name)
+ #define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0)
+-#define RTLD_DEFAULT GetModuleHandle(NULL)
+ #define dlclose(lib) FreeLibrary((HMODULE)lib)
+ static inline char *dlerror(void)
+ {
+diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
+index 814993355b0f..243468e095a3 100644
+--- a/sql/CMakeLists.txt
++++ b/sql/CMakeLists.txt
+@@ -170,7 +170,7 @@ ADD_DEPENDENCIES(sql GenServerSource)
+ ADD_DEPENDENCIES(sql GenDigestServerSource)
+ DTRACE_INSTRUMENT(sql)
+ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATIC_PLUGIN_LIBS}
+- mysys mysys_ssl dbug strings vio pcre
++ mysys mysys_ssl dbug strings vio pcre ${LIBJEMALLOC}
+ ${LIBWRAP} ${LIBCRYPT} ${LIBDL} ${CMAKE_THREAD_LIBS_INIT}
+ ${WSREP_LIB}
+ ${SSL_LIBRARIES}
+diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
+index d6b1c76ea004..fd724bc7dd16 100644
+--- a/sql/sys_vars.cc
++++ b/sql/sys_vars.cc
+@@ -3489,32 +3489,11 @@ static Sys_var_charptr Sys_version_compile_os(
+ CMD_LINE_HELP_ONLY,
+ IN_SYSTEM_CHARSET, DEFAULT(SYSTEM_TYPE));
+
+-static char *guess_malloc_library()
+-{
+- if (strcmp(MALLOC_LIBRARY, "system") == 0)
+- {
+-#ifdef HAVE_DLOPEN
+- typedef int (*mallctl_type)(const char*, void*, size_t*, void*, size_t);
+- mallctl_type mallctl_func;
+- mallctl_func= (mallctl_type)dlsym(RTLD_DEFAULT, "mallctl");
+- if (mallctl_func)
+- {
+- static char buf[128];
+- char *ver;
+- size_t len = sizeof(ver);
+- mallctl_func("version", &ver, &len, NULL, 0);
+- strxnmov(buf, sizeof(buf)-1, "jemalloc ", ver, NULL);
+- return buf;
+- }
+-#endif
+- }
+- return const_cast<char*>(MALLOC_LIBRARY);
+-}
+ static char *malloc_library;
+ static Sys_var_charptr Sys_malloc_library(
+ "version_malloc_library", "Version of the used malloc library",
+ READ_ONLY GLOBAL_VAR(malloc_library), CMD_LINE_HELP_ONLY,
+- IN_SYSTEM_CHARSET, DEFAULT(guess_malloc_library()));
++ IN_SYSTEM_CHARSET, DEFAULT(MALLOC_LIBRARY));
+
+ #ifdef HAVE_YASSL
+ #include <openssl/ssl.h>
+diff --git a/storage/tokudb/CMakeLists.txt b/storage/tokudb/CMakeLists.txt
+index 4cfb177e495f..fd9a4790a7ea 100644
+--- a/storage/tokudb/CMakeLists.txt
++++ b/storage/tokudb/CMakeLists.txt
+@@ -5,8 +5,6 @@
+ RETURN()
+ ELSEIF(CMAKE_VERSION VERSION_LESS "2.8.9")
+ MESSAGE(STATUS "CMake 2.8.9 or higher is required by TokuDB")
+-ELSEIF(NOT HAVE_DLOPEN)
+- MESSAGE(STATUS "dlopen is required by TokuDB")
+ ELSEIF(PLUGIN_PERFSCHEMA MATCHES "^NO$")
+ MESSAGE(STATUS "Performance Schema is required by TokuDB")
+ RETURN()
+@@ -37,8 +35,7 @@
+ tokudb_sysvars.cc
+ tokudb_thread.cc
+ tokudb_dir_cmd.cc)
+-MYSQL_ADD_PLUGIN(tokudb ${TOKUDB_SOURCES} STORAGE_ENGINE MODULE_ONLY
+- COMPONENT tokudb-engine CONFIG ${CMAKE_CURRENT_BINARY_DIR}/tokudb.cnf)
++MYSQL_ADD_PLUGIN(tokudb ${TOKUDB_SOURCES} STORAGE_ENGINE MODULE_ONLY COMPONENT Server)
+
+ IF(NOT TARGET tokudb)
+ RETURN()
+@@ -57,27 +54,6 @@
+ GET_FILENAME_COMPONENT(LIBJEMALLOC_PATH ${LIBJEMALLOC_SO} REALPATH CACHE)
+ ENDIF()
+
+-IF(LIBJEMALLOC_PATH AND (RPM OR DEB))
+- UNSET(LIBJEMALLOC)
+- GET_DIRECTORY_PROPERTY(V DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITION CPACK_RPM_tokudb-engine_PACKAGE_REQUIRES)
+- SET(CPACK_RPM_tokudb-engine_PACKAGE_REQUIRES "${V} jemalloc" PARENT_SCOPE)
+- SET(systemd_env "Environment=\"LD_PRELOAD=${LIBJEMALLOC_PATH}\"") #"
+- SET(cnf_malloc_lib "malloc-lib=${LIBJEMALLOC_PATH}")
+-ELSEIF(LIBJEMALLOC_PATH)
+- SET(systemd_env "#Environment=\"LD_PRELOAD=${LIBJEMALLOC_PATH}\"") #"
+- SET(cnf_malloc_lib "#malloc-lib=${LIBJEMALLOC_PATH}")
+-ELSE()
+- SET(systemd_env "#Environment=\"LD_PRELOAD=/path/to/libjemalloc.so\"") #"
+- SET(cnf_malloc_lib "#malloc-lib=/path/to/libjemalloc.so")
+-ENDIF()
+-CONFIGURE_FILE(tokudb.cnf.in tokudb.cnf @ONLY)
+-CONFIGURE_FILE(tokudb.conf.in tokudb.conf @ONLY)
+-IF(INSTALL_SYSCONFDIR)
+- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tokudb.conf
+- DESTINATION ${INSTALL_SYSCONFDIR}/systemd/system/mariadb.service.d/
+- COMPONENT tokudb-engine)
+-ENDIF()
+-
+ MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-shadow")
+ MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-vla" DEBUG)
+ MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-implicit-fallthrough")
+@@ -154,7 +130,7 @@
+ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/${TOKU_FT_DIR_NAME}/portability)
+
+ TARGET_LINK_LIBRARIES(tokudb tokufractaltree_static tokuportability_static
+- ${ZLIB_LIBRARY} ${LIBJEMALLOC} stdc++)
++ ${ZLIB_LIBRARY} stdc++)
+
+ SET(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -flto -fuse-linker-plugin")
+ SET(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO} -flto -fuse-linker-plugin")
+diff --git a/storage/tokudb/PerconaFT/tools/CMakeLists.txt b/storage/tokudb/PerconaFT/tools/CMakeLists.txt
+index f11b9f350d72..e62931524c9d 100644
+--- a/storage/tokudb/PerconaFT/tools/CMakeLists.txt
++++ b/storage/tokudb/PerconaFT/tools/CMakeLists.txt
+@@ -12,5 +12,5 @@ endforeach(tool)
+ # link in math.h library just for this tool.
+ target_link_libraries(ftverify m)
+
+-install(TARGETS tokuftdump DESTINATION ${INSTALL_BINDIR} COMPONENT tokudb-engine)
+-install(TARGETS tokuft_logprint DESTINATION ${INSTALL_BINDIR} COMPONENT tokudb-engine)
++install(TARGETS tokuftdump DESTINATION ${INSTALL_BINDIR} COMPONENT Server)
++install(TARGETS tokuft_logprint DESTINATION ${INSTALL_BINDIR} COMPONENT Server)
diff --git a/20037_all_mariadb-10.3-restore-jemalloc.patch b/20037_all_mariadb-10.3-restore-jemalloc.patch
new file mode 100644
index 0000000..e8d239b
--- /dev/null
+++ b/20037_all_mariadb-10.3-restore-jemalloc.patch
@@ -0,0 +1,130 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index be86adbf67b8..59dc149410f1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -154,6 +154,7 @@ INCLUDE(ssl)
+ INCLUDE(readline)
+ INCLUDE(libutils)
+ INCLUDE(dtrace)
++INCLUDE(jemalloc)
+ INCLUDE(pcre)
+ INCLUDE(ctest)
+ INCLUDE(plugin)
+@@ -329,6 +328,7 @@ MYSQL_CHECK_SSL()
+ MYSQL_CHECK_READLINE()
+
+ SET(MALLOC_LIBRARY "system")
++CHECK_JEMALLOC()
+
+ CHECK_PCRE()
+
+diff --git a/include/my_global.h b/include/my_global.h
+index e4ca562772e0..30db38ce35b5 100644
+--- a/include/my_global.h
++++ b/include/my_global.h
+@@ -1071,7 +1071,6 @@ typedef ulong myf; /* Type of MyFlags in my_funcs */
+ #ifdef _WIN32
+ #define dlsym(lib, name) (void*)GetProcAddress((HMODULE)lib, name)
+ #define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0)
+-#define RTLD_DEFAULT GetModuleHandle(NULL)
+ #define dlclose(lib) FreeLibrary((HMODULE)lib)
+ static inline char *dlerror(void)
+ {
+diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
+index 814993355b0f..243468e095a3 100644
+--- a/sql/CMakeLists.txt
++++ b/sql/CMakeLists.txt
+@@ -170,7 +170,7 @@ ADD_DEPENDENCIES(sql GenServerSource)
+ ADD_DEPENDENCIES(sql GenDigestServerSource)
+ DTRACE_INSTRUMENT(sql)
+ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATIC_PLUGIN_LIBS}
+- mysys mysys_ssl dbug strings vio pcre
++ mysys mysys_ssl dbug strings vio pcre ${LIBJEMALLOC}
+ ${LIBWRAP} ${LIBCRYPT} ${LIBDL} ${CMAKE_THREAD_LIBS_INIT}
+ ${WSREP_LIB}
+ ${SSL_LIBRARIES}
+diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
+index d6b1c76ea004..fd724bc7dd16 100644
+--- a/sql/sys_vars.cc
++++ b/sql/sys_vars.cc
+@@ -3793,7 +3793,7 @@
+ static Sys_var_charptr Sys_malloc_library(
+ "version_malloc_library", "Version of the used malloc library",
+ READ_ONLY GLOBAL_VAR(malloc_library), CMD_LINE_HELP_ONLY,
+- IN_SYSTEM_CHARSET, DEFAULT(guess_malloc_library()));
++ IN_SYSTEM_CHARSET, DEFAULT(MALLOC_LIBRARY));
+
+ static char *ssl_library;
+ static Sys_var_charptr Sys_ssl_library(
+diff --git a/storage/tokudb/CMakeLists.txt b/storage/tokudb/CMakeLists.txt
+index 4cfb177e495f..fd9a4790a7ea 100644
+--- a/storage/tokudb/CMakeLists.txt
++++ b/storage/tokudb/CMakeLists.txt
+@@ -5,8 +5,6 @@
+ RETURN()
+ ELSEIF(CMAKE_VERSION VERSION_LESS "2.8.9")
+ MESSAGE(STATUS "CMake 2.8.9 or higher is required by TokuDB")
+-ELSEIF(NOT HAVE_DLOPEN)
+- MESSAGE(STATUS "dlopen is required by TokuDB")
+ ELSEIF(PLUGIN_PERFSCHEMA MATCHES "^NO$")
+ MESSAGE(STATUS "Performance Schema is required by TokuDB")
+ RETURN()
+@@ -37,8 +35,7 @@
+ tokudb_sysvars.cc
+ tokudb_thread.cc
+ tokudb_dir_cmd.cc)
+-MYSQL_ADD_PLUGIN(tokudb ${TOKUDB_SOURCES} STORAGE_ENGINE MODULE_ONLY
+- COMPONENT tokudb-engine CONFIG ${CMAKE_CURRENT_BINARY_DIR}/tokudb.cnf)
++MYSQL_ADD_PLUGIN(tokudb ${TOKUDB_SOURCES} STORAGE_ENGINE MODULE_ONLY COMPONENT Server)
+
+ IF(NOT TARGET tokudb)
+ RETURN()
+@@ -57,27 +54,6 @@
+ GET_FILENAME_COMPONENT(LIBJEMALLOC_PATH ${LIBJEMALLOC_SO} REALPATH CACHE)
+ ENDIF()
+
+-IF(LIBJEMALLOC_PATH AND (RPM OR DEB))
+- UNSET(LIBJEMALLOC)
+- GET_DIRECTORY_PROPERTY(V DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITION CPACK_RPM_tokudb-engine_PACKAGE_REQUIRES)
+- SET(CPACK_RPM_tokudb-engine_PACKAGE_REQUIRES "${V} jemalloc" PARENT_SCOPE)
+- SET(systemd_env "Environment=\"LD_PRELOAD=${LIBJEMALLOC_PATH}\"") #"
+- SET(cnf_malloc_lib "malloc-lib=${LIBJEMALLOC_PATH}")
+-ELSEIF(LIBJEMALLOC_PATH)
+- SET(systemd_env "#Environment=\"LD_PRELOAD=${LIBJEMALLOC_PATH}\"") #"
+- SET(cnf_malloc_lib "#malloc-lib=${LIBJEMALLOC_PATH}")
+-ELSE()
+- SET(systemd_env "#Environment=\"LD_PRELOAD=/path/to/libjemalloc.so\"") #"
+- SET(cnf_malloc_lib "#malloc-lib=/path/to/libjemalloc.so")
+-ENDIF()
+-CONFIGURE_FILE(tokudb.cnf.in tokudb.cnf @ONLY)
+-CONFIGURE_FILE(tokudb.conf.in tokudb.conf @ONLY)
+-IF(INSTALL_SYSCONFDIR)
+- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tokudb.conf
+- DESTINATION ${INSTALL_SYSCONFDIR}/systemd/system/mariadb.service.d/
+- COMPONENT tokudb-engine)
+-ENDIF()
+-
+ MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-shadow")
+ MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-vla" DEBUG)
+ MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-implicit-fallthrough")
+@@ -154,7 +130,7 @@
+ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/${TOKU_FT_DIR_NAME}/portability)
+
+ TARGET_LINK_LIBRARIES(tokudb tokufractaltree_static tokuportability_static
+- ${ZLIB_LIBRARY} ${LIBJEMALLOC} stdc++)
++ ${ZLIB_LIBRARY} stdc++)
+
+ SET(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -flto -fuse-linker-plugin")
+ SET(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO} -flto -fuse-linker-plugin")
+diff --git a/storage/tokudb/PerconaFT/tools/CMakeLists.txt b/storage/tokudb/PerconaFT/tools/CMakeLists.txt
+index f11b9f350d72..e62931524c9d 100644
+--- a/storage/tokudb/PerconaFT/tools/CMakeLists.txt
++++ b/storage/tokudb/PerconaFT/tools/CMakeLists.txt
+@@ -12,5 +12,5 @@ endforeach(tool)
+ # link in math.h library just for this tool.
+ target_link_libraries(ftverify m)
+
+-install(TARGETS tokuftdump DESTINATION ${INSTALL_BINDIR} COMPONENT tokudb-engine)
+-install(TARGETS tokuft_logprint DESTINATION ${INSTALL_BINDIR} COMPONENT tokudb-engine)
++install(TARGETS tokuftdump DESTINATION ${INSTALL_BINDIR} COMPONENT Server)
++install(TARGETS tokuft_logprint DESTINATION ${INSTALL_BINDIR} COMPONENT Server)