diff options
-rw-r--r-- | cmake/build_configurations/mysql_release.cmake | 2 | ||||
-rw-r--r-- | cmake/jemalloc.cmake | 39 |
2 files changed, 24 insertions, 17 deletions
diff --git a/cmake/build_configurations/mysql_release.cmake b/cmake/build_configurations/mysql_release.cmake index 434e1cfda0e..a3845d99b43 100644 --- a/cmake/build_configurations/mysql_release.cmake +++ b/cmake/build_configurations/mysql_release.cmake @@ -111,8 +111,6 @@ IF(UNIX) SET(WITH_EXTRA_CHARSETS all CACHE STRING "") IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") - SET(WITH_JEMALLOC "static" CACHE STRING "") - IF(NOT IGNORE_AIO_CHECK) # Ensure aio is available on Linux (required by InnoDB) CHECK_INCLUDE_FILES(libaio.h HAVE_LIBAIO_H) diff --git a/cmake/jemalloc.cmake b/cmake/jemalloc.cmake index 876688f02f6..05402668c7d 100644 --- a/cmake/jemalloc.cmake +++ b/cmake/jemalloc.cmake @@ -1,7 +1,21 @@ INCLUDE (CheckLibraryExists) SET(WITH_JEMALLOC auto CACHE STRING - "Build with jemalloc. Possible values are 'yes', 'no', 'auto'") + "Build with jemalloc. Possible values are 'yes', 'no', 'static', 'auto'") + +MACRO(JEMALLOC_TRY_STATIC) + SET(libname jemalloc_pic) + SET(CMAKE_REQUIRED_LIBRARIES pthread dl m) + SET(what bundled) + CHECK_LIBRARY_EXISTS(${libname} malloc_stats_print "" HAVE_STATIC_JEMALLOC) + SET(CMAKE_REQUIRED_LIBRARIES) +ENDMACRO() + +MACRO(JEMALLOC_TRY_DYNAMIC) + SET(libname jemalloc) + SET(what system) + CHECK_LIBRARY_EXISTS(${libname} malloc_stats_print "" HAVE_DYNAMIC_JEMALLOC) +ENDMACRO() MACRO (CHECK_JEMALLOC) # compatibility with old WITH_JEMALLOC values @@ -12,22 +26,17 @@ MACRO (CHECK_JEMALLOC) SET(WITH_JEMALLOC "yes") ENDIF() - IF(WITH_JEMALLOC STREQUAL "yes" OR WITH_JEMALLOC STREQUAL "auto" OR - WITH_JEMALLOC STREQUAL "static") - - IF(WITH_JEMALLOC STREQUAL "static") - SET(libname jemalloc_pic) - SET(CMAKE_REQUIRED_LIBRARIES pthread dl m) - SET(what bundled) - ELSE() - SET(libname jemalloc) - SET(what system) - ENDIF() + IF (WITH_JEMALLOC STREQUAL "yes" OR WITH_JEMALLOC STREQUAL "auto") + JEMALLOC_TRY_DYNAMIC() + ENDIF() - CHECK_LIBRARY_EXISTS(${libname} malloc_stats_print "" HAVE_JEMALLOC) - SET(CMAKE_REQUIRED_LIBRARIES) + IF (WITH_JEMALLOC STREQUAL "static" OR WITH_JEMALLOC STREQUAL "auto" + AND NOT HAVE_DYNAMIC_JEMALLOC) + JEMALLOC_TRY_STATIC() + ENDIF() - IF (HAVE_JEMALLOC) + IF (libname) + IF (HAVE_DYNAMIC_JEMALLOC OR HAVE_STATIC_JEMALLOC) SET(LIBJEMALLOC ${libname}) SET(MALLOC_LIBRARY "${what} jemalloc") ELSEIF (NOT WITH_JEMALLOC STREQUAL "auto") |