diff options
Diffstat (limited to 'deps/jemalloc/CMakeLists.txt')
-rw-r--r-- | deps/jemalloc/CMakeLists.txt | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/deps/jemalloc/CMakeLists.txt b/deps/jemalloc/CMakeLists.txt index fa2a51c0ec..ec01256f4c 100644 --- a/deps/jemalloc/CMakeLists.txt +++ b/deps/jemalloc/CMakeLists.txt @@ -9,18 +9,18 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND SERVERS AND NOT NOJEM) +if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT NOJEM) # We need to generate the jemalloc_def.h header based on platform-specific settings CHECK_SYMBOL_EXISTS(MADV_FREE "sys/mman.h" HAVE_MADV_FREE) - + if (PLATFORM EQUAL 32) set(JEM_SIZEDEF 2) set(JEM_TLSMODEL) - set(JEM_VADDRBITS 32) + set(JEM_VADDRBITS 32) else() set(JEM_SIZEDEF 3) set(JEM_TLSMODEL "__attribute__\(\(tls_model\(\"initial-exec\"\)\)\)") - set(JEM_VADDRBITS 48) + set(JEM_VADDRBITS 48) endif() if (HAVE_MADV_FREE) @@ -29,6 +29,14 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND SERVERS AND NOT NOJEM) set(JEM_MADFREE_DEF "#undef") endif() + if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + set(JEM_CPU_SPINWAIT "") + set(JEM_HAVE_CPU_SPINWAIT 0) + else() + set(JEM_CPU_SPINWAIT "__asm__ volatile\(\"pause\"\)") + set(JEM_HAVE_CPU_SPINWAIT 1) + endif() + # Create the header, so we can use it configure_file( "${CMAKE_SOURCE_DIR}/deps/jemalloc/jemalloc_internal_defs.h.in.cmake" @@ -41,17 +49,20 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND SERVERS AND NOT NOJEM) ${CMAKE_CURRENT_SOURCE_DIR}/src/arena.c ${CMAKE_CURRENT_SOURCE_DIR}/src/background_thread.c ${CMAKE_CURRENT_SOURCE_DIR}/src/base.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/bin.c ${CMAKE_CURRENT_SOURCE_DIR}/src/bitmap.c ${CMAKE_CURRENT_SOURCE_DIR}/src/ckh.c ${CMAKE_CURRENT_SOURCE_DIR}/src/ctl.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/div.c ${CMAKE_CURRENT_SOURCE_DIR}/src/extent.c ${CMAKE_CURRENT_SOURCE_DIR}/src/extent_dss.c ${CMAKE_CURRENT_SOURCE_DIR}/src/extent_mmap.c ${CMAKE_CURRENT_SOURCE_DIR}/src/hash.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/hooks.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/hook.c ${CMAKE_CURRENT_SOURCE_DIR}/src/jemalloc.c ${CMAKE_CURRENT_SOURCE_DIR}/src/jemalloc_cpp.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/large.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/log.c ${CMAKE_CURRENT_SOURCE_DIR}/src/malloc_io.c ${CMAKE_CURRENT_SOURCE_DIR}/src/mutex.c ${CMAKE_CURRENT_SOURCE_DIR}/src/mutex_pool.c @@ -60,17 +71,18 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND SERVERS AND NOT NOJEM) ${CMAKE_CURRENT_SOURCE_DIR}/src/prng.c ${CMAKE_CURRENT_SOURCE_DIR}/src/prof.c ${CMAKE_CURRENT_SOURCE_DIR}/src/rtree.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/spin.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/safety_check.c ${CMAKE_CURRENT_SOURCE_DIR}/src/stats.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/sc.c ${CMAKE_CURRENT_SOURCE_DIR}/src/sz.c ${CMAKE_CURRENT_SOURCE_DIR}/src/tcache.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/test_hooks.c ${CMAKE_CURRENT_SOURCE_DIR}/src/ticker.c ${CMAKE_CURRENT_SOURCE_DIR}/src/tsd.c ${CMAKE_CURRENT_SOURCE_DIR}/src/witness.c ) - add_library(jemalloc STATIC - ${jemalloc_STAT_SRC}) + add_library(jemalloc STATIC ${jemalloc_STAT_SRC}) target_include_directories(jemalloc PRIVATE @@ -89,17 +101,19 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND SERVERS AND NOT NOJEM) acore-dependency-interface PUBLIC threads - ${CMAKE_DL_LIBS}) + ${CMAKE_DL_LIBS}) set_target_properties(jemalloc - PROPERTIES - FOLDER - "deps") + PROPERTIES + FOLDER + "deps") + else() # Provide a dummy target for jemalloc which is used when jemalloc # is disabled or not supported. add_library(jemalloc INTERFACE) - # target_link_libraries(jemalloc - # INTERFACE - # valgrind) + target_link_libraries(jemalloc + INTERFACE + valgrind) + endif() |