diff --git a/CMakeLists.txt b/CMakeLists.txt index 863b7f04b16ba6724122a9e28c873cceac41f3cd..e4165e2920838170fe9eefa740a2c7d47bc7f493 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -184,6 +184,12 @@ find_library (BOOST_THREAD_LIB libboost_thread.a HINTS ${BOOST_HINTS}) set (LTDL_HINTS "/usr/local/opt/libtool/lib") find_library (LTDL_LIB libltdl.a HINTS ${LTDL_HINTS}) +# 5. tcmalloc +if(NOT DEFINED DISABLE_LIBTCMALLOC) + set(DISABLE_LIBTCMALLOC $ENV{DISABLE_LIBTCMALLOC} CACHE STRING "Don't use libtcmalloc" FORCE) + set(DEBUG_LIBTCMALLOC $ENV{DEBUG_LIBTCMALLOC} CACHE STRING "Use debug version of libtcmalloc" FORCE) +endif() + # Directory for Yandex specific files SET(CLICKHOUSE_PRIVATE_DIR ${ClickHouse_SOURCE_DIR}/private/) diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index 6b4f0e25ea0eddd07664b0b9fd1714d53e44a48e..0e1eef897095c86ddd952cc5130ba3fb94bbaf9b 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -10,7 +10,7 @@ add_subdirectory (libpoco) add_subdirectory (libre2) add_subdirectory (libzookeeper) -if (NOT $ENV{DISABLE_LIBTCMALLOC}) +if (NOT DISABLE_LIBTCMALLOC) add_subdirectory (libtcmalloc) endif() diff --git a/contrib/libtcmalloc/CMakeLists.txt b/contrib/libtcmalloc/CMakeLists.txt index 1228727dcec8572e57fbdb02d82adf49389c37c3..800024aefea4cb95a831383c6fab4891145df2d7 100644 --- a/contrib/libtcmalloc/CMakeLists.txt +++ b/contrib/libtcmalloc/CMakeLists.txt @@ -10,6 +10,8 @@ add_definitions( include_directories (include src) +message(STATUS "Building: tcmalloc_minimal_internal") + add_library (tcmalloc_minimal_internal ./src/malloc_hook.cc ./src/base/spinlock_internal.cc diff --git a/dbms/CMakeLists.txt b/dbms/CMakeLists.txt index b5adf654f9e9a09d626b5622d77d1b516739ada9..394bf659be554e3f4a3f8a8073a3513a40f1ebfc 100644 --- a/dbms/CMakeLists.txt +++ b/dbms/CMakeLists.txt @@ -22,7 +22,7 @@ else() set (LINK_MONGOCLIENT libmongoclient.a ${OPENSSL_LIBS} ${BOOST_THREAD_LIB}) endif() -if ($ENV{DISABLE_LIBTCMALLOC}) +if (DISABLE_LIBTCMALLOC) add_definitions(-D NO_TCMALLOC) endif() diff --git a/libs/libcommon/CMakeLists.txt b/libs/libcommon/CMakeLists.txt index c3e1ed5a1a3895b65320e200f504572e3bfc1ad6..e4b470edf65e93ff09872ac6ef8d8fc6038b1f3d 100644 --- a/libs/libcommon/CMakeLists.txt +++ b/libs/libcommon/CMakeLists.txt @@ -60,17 +60,18 @@ add_library (common ) # TESTIRT-3687 DISABLE_LIBTCMALLOC - when testing for memory leaks, disable libtcmalloc -IF($ENV{DISABLE_LIBTCMALLOC}) +IF(DISABLE_LIBTCMALLOC) message(STATUS "Disabling libtcmalloc for valgrind better analysis") -ELSE($ENV{DISABLE_LIBTCMALLOC}) - IF($ENV{DEBUG_LIBTCMALLOC}) - message(STATUS "Link libtcmalloc_minimal_debug for testing") - SET(MALLOC_LIBRARIES libtcmalloc_minimal_debug.a) - ELSE($ENV{DEBUG_LIBTCMALLOC}) +ELSE(DISABLE_LIBTCMALLOC) + IF(DEBUG_LIBTCMALLOC) + find_library(LIBTCMALLOC_DEBUG libtcmalloc_minimal_debug.a tcmalloc_minimal_debug) # debug version of tcmalloc from package + message(STATUS "Link libtcmalloc_minimal_debug for testing from ${LIBTCMALLOC_DEBUG}") + SET(MALLOC_LIBRARIES ${LIBTCMALLOC_DEBUG}) + ELSE(DEBUG_LIBTCMALLOC) message(STATUS "Link libtcmalloc_minimal") SET(MALLOC_LIBRARIES tcmalloc_minimal_internal) - ENDIF($ENV{DEBUG_LIBTCMALLOC}) -ENDIF($ENV{DISABLE_LIBTCMALLOC}) + ENDIF(DEBUG_LIBTCMALLOC) +ENDIF(DISABLE_LIBTCMALLOC) if (APPLE) SET(RT_LIBRARIES "apple_rt")