diff --git a/CMakeLists.txt b/CMakeLists.txt index d87ff931b..13f4dc6e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,20 +41,19 @@ endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules/") -if(WIN32) +if(MSVC) include(${CMAKE_CURRENT_SOURCE_DIR}/thirdparty.inc) else() option(WITH_JEMALLOC "build with JeMalloc" OFF) + if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") + # FreeBSD has jemaloc as default malloc + set(WITH_JEMALLOC ON) + endif() if(WITH_JEMALLOC) find_package(JeMalloc REQUIRED) - add_definitions(-DROCKSDB_JEMALLOC) + add_definitions(-DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE) include_directories(${JEMALLOC_INCLUDE_DIR}) endif() - if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") - # FreeBSD has jemaloc as default malloc - add_definitions(-DROCKSDB_JEMALLOC) - set(WITH_JEMALLOC ON) - endif() option(WITH_SNAPPY "build with SNAPPY" OFF) if(WITH_SNAPPY) find_package(snappy REQUIRED) diff --git a/Makefile b/Makefile index e7959e5f1..50b026af8 100644 --- a/Makefile +++ b/Makefile @@ -204,8 +204,8 @@ endif ifndef DISABLE_JEMALLOC ifdef JEMALLOC - PLATFORM_CXXFLAGS += "-DROCKSDB_JEMALLOC" - PLATFORM_CCFLAGS += "-DROCKSDB_JEMALLOC" + PLATFORM_CXXFLAGS += "-DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE " + PLATFORM_CCFLAGS += "-DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE " endif EXEC_LDFLAGS := $(JEMALLOC_LIB) $(EXEC_LDFLAGS) PLATFORM_CXXFLAGS += $(JEMALLOC_INCLUDE) diff --git a/cmake/modules/FindJeMalloc.cmake b/cmake/modules/FindJeMalloc.cmake index bb9cc18c0..7911f77c4 100644 --- a/cmake/modules/FindJeMalloc.cmake +++ b/cmake/modules/FindJeMalloc.cmake @@ -1,22 +1,21 @@ # - Find JeMalloc library # Find the native JeMalloc includes and library -# This module defines -# JEMALLOC_INCLUDE_DIRS, where to find jemalloc.h, Set when -# JEMALLOC_INCLUDE_DIR is found. -# JEMALLOC_LIBRARIES, libraries to link against to use JeMalloc. -# JEMALLOC_FOUND, If false, do not try to use JeMalloc. # +# JEMALLOC_INCLUDE_DIR - where to find jemalloc.h, etc. +# JEMALLOC_LIBRARIES - List of libraries when using jemalloc. +# JEMALLOC_FOUND - True if jemalloc found. + find_path(JEMALLOC_INCLUDE_DIR - jemalloc/jemalloc.h) + NAMES jemalloc/jemalloc.h + HINTS ${JEMALLOC_ROOT_DIR}/include) find_library(JEMALLOC_LIBRARIES - jemalloc) + NAMES jemalloc + HINTS ${JEMALLOC_ROOT_DIR}/lib) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(JeMalloc DEFAULT_MSG - JEMALLOC_LIBRARIES JEMALLOC_INCLUDE_DIR) +find_package_handle_standard_args(jemalloc DEFAULT_MSG JEMALLOC_LIBRARIES JEMALLOC_INCLUDE_DIR) -MARK_AS_ADVANCED( - JEMALLOC_INCLUDE_DIR +mark_as_advanced( JEMALLOC_LIBRARIES -) + JEMALLOC_INCLUDE_DIR) diff --git a/cmake/modules/Findsnappy.cmake b/cmake/modules/Findsnappy.cmake index b298cd256..6ed5fda3d 100644 --- a/cmake/modules/Findsnappy.cmake +++ b/cmake/modules/Findsnappy.cmake @@ -13,8 +13,6 @@ find_library(SNAPPY_LIBRARIES NAMES snappy HINTS ${SNAPPY_ROOT_DIR}/lib) -# handle the QUIETLY and REQUIRED arguments and set UUID_FOUND to TRUE if -# all listed variables are TRUE include(FindPackageHandleStandardArgs) find_package_handle_standard_args(snappy DEFAULT_MSG SNAPPY_LIBRARIES SNAPPY_INCLUDE_DIR) diff --git a/db/db_impl.cc b/db/db_impl.cc index 8c9aa5f12..a767eedee 100644 --- a/db/db_impl.cc +++ b/db/db_impl.cc @@ -597,7 +597,7 @@ static void DumpMallocStats(std::string* stats) { std::unique_ptr buf{new char[kMallocStatusLen + 1]}; mstat.cur = buf.get(); mstat.end = buf.get() + kMallocStatusLen; - malloc_stats_print(GetJemallocStatus, &mstat, ""); + je_malloc_stats_print(GetJemallocStatus, &mstat, ""); stats->append(buf.get()); #endif // ROCKSDB_JEMALLOC } diff --git a/examples/Makefile b/examples/Makefile index 3b302ac09..88e8bcab2 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -2,7 +2,7 @@ include ../make_config.mk ifndef DISABLE_JEMALLOC ifdef JEMALLOC - PLATFORM_CXXFLAGS += "-DROCKSDB_JEMALLOC" + PLATFORM_CXXFLAGS += "-DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE " endif EXEC_LDFLAGS := $(JEMALLOC_LIB) $(EXEC_LDFLAGS) -lpthread PLATFORM_CXXFLAGS += $(JEMALLOC_INCLUDE)