diff options
-rw-r--r-- | storage/tokudb/CMakeLists.txt | 29 | ||||
-rw-r--r-- | storage/tokudb/tokudb.cnf.in (renamed from storage/tokudb/tokudb.cnf) | 3 | ||||
-rw-r--r-- | storage/tokudb/tokudb.conf.in | 3 |
3 files changed, 34 insertions, 1 deletions
diff --git a/storage/tokudb/CMakeLists.txt b/storage/tokudb/CMakeLists.txt index a0abee09727..16f7ab4ce75 100644 --- a/storage/tokudb/CMakeLists.txt +++ b/storage/tokudb/CMakeLists.txt @@ -35,7 +35,7 @@ SET(TOKUDB_SOURCES tokudb_thread.cc tokudb_dir_cmd.cc) MYSQL_ADD_PLUGIN(tokudb ${TOKUDB_SOURCES} STORAGE_ENGINE MODULE_ONLY - COMPONENT tokudb-engine CONFIG tokudb.cnf) + COMPONENT tokudb-engine CONFIG ${CMAKE_CURRENT_BINARY_DIR}/tokudb.cnf) IF(NOT TARGET tokudb) RETURN() @@ -46,6 +46,33 @@ CHECK_JEMALLOC() IF(NOT LIBJEMALLOC) MESSAGE(WARNING "TokuDB is enabled, but jemalloc is not. This configuration is not supported") +ELSEIF(LIBJEMALLOC STREQUAL jemalloc) + FIND_LIBRARY(LIBJEMALLOC_SO jemalloc) + IF(NOT LIBJEMALLOC_SO) + MESSAGE(FATAL_ERROR "jemalloc is present, but cannot be found?") + ENDIF() + GET_FILENAME_COMPONENT(LIBJEMALLOC_PATH ${LIBJEMALLOC_SO} REALPATH CACHE) +ENDIF() + +IF(LIBJEMALLOC_PATH AND RPM MATCHES fedora28) # TODO check for jemalloc version + 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-vla" DEBUG) diff --git a/storage/tokudb/tokudb.cnf b/storage/tokudb/tokudb.cnf.in index 4def635ddf0..de9b5b711ee 100644 --- a/storage/tokudb/tokudb.cnf +++ b/storage/tokudb/tokudb.cnf.in @@ -4,3 +4,6 @@ plugin-load-add=ha_tokudb.so +[mysqld_safe] +# it might be necessary to uncomment the following line if jemalloc >= 5.0.0 +@cnf_malloc_lib@ diff --git a/storage/tokudb/tokudb.conf.in b/storage/tokudb/tokudb.conf.in new file mode 100644 index 00000000000..d22f6686d91 --- /dev/null +++ b/storage/tokudb/tokudb.conf.in @@ -0,0 +1,3 @@ +[Service] +# it might be necessary to uncomment the following line if jemalloc >= 5.0.0 +@systemd_env@ |