Skip to content

Commit e5996cd

Browse files
committed
datadist: use jemalloc
1 parent 7ea9c17 commit e5996cd

File tree

3 files changed

+46
-1
lines changed

3 files changed

+46
-1
lines changed

CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ if(NOT APPLE)
2929
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Werror")
3030
endif()
3131

32-
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
3332

3433
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin")
3534

@@ -130,9 +129,11 @@ if (NOT spdlog_FOUND)
130129
)
131130
endif()
132131

132+
include(jemalloc)
133133

134134
message(STATUS "Boost version : ${Boost_VERSION}")
135135
message(STATUS "Boost include path : ${Boost_INCLUDE_DIRS}")
136+
message(STATUS "jemalloc include : ${jemalloc_INCLUDE_DIRS}")
136137
message(STATUS "FairMQ version : ${FairMQ_VERSION}")
137138
message(STATUS "AliceO2 include path : ${AliceO2_INCLUDE_DIR}")
138139

cmake/jemalloc.cmake

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#--- EXTERNAL PROJECTS --------------------------------------------------------------
2+
include(ExternalProject)
3+
4+
ExternalProject_Add(jemalloc
5+
GIT_REPOSITORY "https://github.com/jemalloc/jemalloc.git"
6+
GIT_TAG "5.2.1"
7+
8+
GIT_SHALLOW TRUE
9+
GIT_PROGRESS TRUE
10+
11+
UPDATE_COMMAND ""
12+
PATCH_COMMAND ""
13+
14+
SOURCE_DIR "${CMAKE_BINARY_DIR}/3rdparty/jemalloc"
15+
16+
BUILD_IN_SOURCE 1
17+
BUILD_BYPRODUCTS ${jemalloc_STATIC} ${jemalloc_STATIC_PIC}
18+
19+
CONFIGURE_COMMAND ./autogen.sh && ./configure --disable-shared --disable-doc --prefix=${CMAKE_BINARY_DIR}/jemalloc --with-malloc-conf=abort_conf:true,background_thread:true,metadata_thp:auto,percpu_arena:percpu,dirty_decay_ms:300000,muzzy_decay_ms:300000
20+
BUILD_COMMAND ${MAKE}
21+
INSTALL_COMMAND make install
22+
23+
LOG_DOWNLOAD True
24+
LOG_UPDATE True
25+
LOG_INSTALL True
26+
LOG_OUTPUT_ON_FAILURE True
27+
)
28+
29+
set(jemalloc_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/jemalloc/include)
30+
31+
add_library(jemalloc_STATIC STATIC IMPORTED)
32+
set_property(TARGET jemalloc_STATIC PROPERTY IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/jemalloc/lib/libjemalloc.a)
33+
add_dependencies(jemalloc_STATIC jemalloc)
34+
35+
add_library(jemalloc_STATIC_PIC STATIC IMPORTED)
36+
set_property(TARGET jemalloc_STATIC_PIC PROPERTY IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/jemalloc/lib/libjemalloc_pic.a)
37+
add_dependencies(jemalloc_STATIC_PIC jemalloc)
38+
39+
if (!APPLE)
40+
link_libraries(-Wl,--no-as-needed)
41+
endif(!APPLE)
42+
43+
link_libraries(dl ${jemalloc_STATIC_PIC})

src/common/base/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ target_include_directories(base
1717

1818
target_link_libraries(base
1919
PUBLIC
20+
jemalloc_STATIC
2021
spdlog::spdlog
2122
Boost::filesystem
2223
AliceO2::InfoLogger

0 commit comments

Comments
 (0)