CMake: more MinGW fixes
Summary: siying this is a resubmission of #2081 with the 4th commit fixed. From that commit message: > Note that the previous use of quotes in PLATFORM_{CC,CXX}FLAGS was incorrect and caused GCC to produce the incorrect define: > > #define ROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE 1 > > This was the cause of the Linux build failure on the previous version of this change. I've tested this locally, and the Linux build succeeds now. Closes https://github.com/facebook/rocksdb/pull/2097 Differential Revision: D4839964 Pulled By: siying fbshipit-source-id: cc51322
This commit is contained in:
parent
d2dce5611a
commit
107c5f6a60
@ -41,20 +41,19 @@ endif()
|
|||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules/")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules/")
|
||||||
|
|
||||||
if(WIN32)
|
if(MSVC)
|
||||||
include(${CMAKE_CURRENT_SOURCE_DIR}/thirdparty.inc)
|
include(${CMAKE_CURRENT_SOURCE_DIR}/thirdparty.inc)
|
||||||
else()
|
else()
|
||||||
option(WITH_JEMALLOC "build with JeMalloc" OFF)
|
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)
|
if(WITH_JEMALLOC)
|
||||||
find_package(JeMalloc REQUIRED)
|
find_package(JeMalloc REQUIRED)
|
||||||
add_definitions(-DROCKSDB_JEMALLOC)
|
add_definitions(-DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE)
|
||||||
include_directories(${JEMALLOC_INCLUDE_DIR})
|
include_directories(${JEMALLOC_INCLUDE_DIR})
|
||||||
endif()
|
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)
|
option(WITH_SNAPPY "build with SNAPPY" OFF)
|
||||||
if(WITH_SNAPPY)
|
if(WITH_SNAPPY)
|
||||||
find_package(snappy REQUIRED)
|
find_package(snappy REQUIRED)
|
||||||
|
7
Makefile
7
Makefile
@ -204,15 +204,16 @@ endif
|
|||||||
|
|
||||||
ifndef DISABLE_JEMALLOC
|
ifndef DISABLE_JEMALLOC
|
||||||
ifdef JEMALLOC
|
ifdef JEMALLOC
|
||||||
PLATFORM_CXXFLAGS += "-DROCKSDB_JEMALLOC"
|
PLATFORM_CXXFLAGS += -DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE
|
||||||
PLATFORM_CCFLAGS += "-DROCKSDB_JEMALLOC"
|
PLATFORM_CCFLAGS += -DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE
|
||||||
endif
|
endif
|
||||||
EXEC_LDFLAGS := $(JEMALLOC_LIB) $(EXEC_LDFLAGS)
|
EXEC_LDFLAGS := $(JEMALLOC_LIB) $(EXEC_LDFLAGS)
|
||||||
PLATFORM_CXXFLAGS += $(JEMALLOC_INCLUDE)
|
PLATFORM_CXXFLAGS += $(JEMALLOC_INCLUDE)
|
||||||
PLATFORM_CCFLAGS += $(JEMALLOC_INCLUDE)
|
PLATFORM_CCFLAGS += $(JEMALLOC_INCLUDE)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
export GTEST_THROW_ON_FAILURE=1 GTEST_HAS_EXCEPTIONS=1
|
export GTEST_THROW_ON_FAILURE=1
|
||||||
|
export GTEST_HAS_EXCEPTIONS=1
|
||||||
GTEST_DIR = ./third-party/gtest-1.7.0/fused-src
|
GTEST_DIR = ./third-party/gtest-1.7.0/fused-src
|
||||||
PLATFORM_CCFLAGS += -isystem $(GTEST_DIR)
|
PLATFORM_CCFLAGS += -isystem $(GTEST_DIR)
|
||||||
PLATFORM_CXXFLAGS += -isystem $(GTEST_DIR)
|
PLATFORM_CXXFLAGS += -isystem $(GTEST_DIR)
|
||||||
|
@ -1,22 +1,21 @@
|
|||||||
# - Find JeMalloc library
|
# - Find JeMalloc library
|
||||||
# Find the native JeMalloc includes and 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
|
find_path(JEMALLOC_INCLUDE_DIR
|
||||||
jemalloc/jemalloc.h)
|
NAMES jemalloc/jemalloc.h
|
||||||
|
HINTS ${JEMALLOC_ROOT_DIR}/include)
|
||||||
|
|
||||||
find_library(JEMALLOC_LIBRARIES
|
find_library(JEMALLOC_LIBRARIES
|
||||||
jemalloc)
|
NAMES jemalloc
|
||||||
|
HINTS ${JEMALLOC_ROOT_DIR}/lib)
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(JeMalloc DEFAULT_MSG
|
find_package_handle_standard_args(jemalloc DEFAULT_MSG JEMALLOC_LIBRARIES JEMALLOC_INCLUDE_DIR)
|
||||||
JEMALLOC_LIBRARIES JEMALLOC_INCLUDE_DIR)
|
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
mark_as_advanced(
|
||||||
JEMALLOC_INCLUDE_DIR
|
|
||||||
JEMALLOC_LIBRARIES
|
JEMALLOC_LIBRARIES
|
||||||
)
|
JEMALLOC_INCLUDE_DIR)
|
||||||
|
@ -13,8 +13,6 @@ find_library(SNAPPY_LIBRARIES
|
|||||||
NAMES snappy
|
NAMES snappy
|
||||||
HINTS ${SNAPPY_ROOT_DIR}/lib)
|
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)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(snappy DEFAULT_MSG SNAPPY_LIBRARIES SNAPPY_INCLUDE_DIR)
|
find_package_handle_standard_args(snappy DEFAULT_MSG SNAPPY_LIBRARIES SNAPPY_INCLUDE_DIR)
|
||||||
|
|
||||||
|
@ -398,7 +398,7 @@ static void DumpMallocStats(std::string* stats) {
|
|||||||
std::unique_ptr<char[]> buf{new char[kMallocStatusLen + 1]};
|
std::unique_ptr<char[]> buf{new char[kMallocStatusLen + 1]};
|
||||||
mstat.cur = buf.get();
|
mstat.cur = buf.get();
|
||||||
mstat.end = buf.get() + kMallocStatusLen;
|
mstat.end = buf.get() + kMallocStatusLen;
|
||||||
malloc_stats_print(GetJemallocStatus, &mstat, "");
|
je_malloc_stats_print(GetJemallocStatus, &mstat, "");
|
||||||
stats->append(buf.get());
|
stats->append(buf.get());
|
||||||
#endif // ROCKSDB_JEMALLOC
|
#endif // ROCKSDB_JEMALLOC
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ include ../make_config.mk
|
|||||||
|
|
||||||
ifndef DISABLE_JEMALLOC
|
ifndef DISABLE_JEMALLOC
|
||||||
ifdef JEMALLOC
|
ifdef JEMALLOC
|
||||||
PLATFORM_CXXFLAGS += "-DROCKSDB_JEMALLOC"
|
PLATFORM_CXXFLAGS += -DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE
|
||||||
endif
|
endif
|
||||||
EXEC_LDFLAGS := $(JEMALLOC_LIB) $(EXEC_LDFLAGS) -lpthread
|
EXEC_LDFLAGS := $(JEMALLOC_LIB) $(EXEC_LDFLAGS) -lpthread
|
||||||
PLATFORM_CXXFLAGS += $(JEMALLOC_INCLUDE)
|
PLATFORM_CXXFLAGS += $(JEMALLOC_INCLUDE)
|
||||||
|
Loading…
Reference in New Issue
Block a user