Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorKai Blaschke <kai.blaschke@gdata.de>2024-02-21 18:08:56 +0100
committerKai Blaschke <kai.blaschke@gdata.de>2024-02-21 18:08:56 +0100
commit9029f897da1052f5a16cac6dc1a3069d1f26a192 (patch)
tree32d33d3724db393f39b70805710263b5b891ff25 /cmake
parentb8da62bf43e42e6fc895664a9faf621cbe0325c8 (diff)
Support prefixed and non-prefixed JeMalloc functions
Note that linking a JeMalloc library without prefixed functions will replace all memory allocations, including any call to "new", not just the ones specifically called via Star::malloc etc.
Diffstat (limited to 'cmake')
-rw-r--r--cmake/FindJeMalloc.cmake15
1 files changed, 15 insertions, 0 deletions
diff --git a/cmake/FindJeMalloc.cmake b/cmake/FindJeMalloc.cmake
index 54abd29..2c35ca9 100644
--- a/cmake/FindJeMalloc.cmake
+++ b/cmake/FindJeMalloc.cmake
@@ -37,8 +37,23 @@ find_package_handle_standard_args(JeMalloc DEFAULT_MSG
JEMALLOC_INCLUDE_DIR
)
+# Check if the JeMalloc library was compiled with the "je_" prefix.
+include(CheckSymbolExists)
+set(CMAKE_REQUIRED_INCLUDES ${JEMALLOC_INCLUDE_DIR})
+set(CMAKE_REQUIRED_LIBRARIES ${JEMALLOC_LIBRARY})
+check_symbol_exists("je_malloc" "jemalloc/jemalloc.h" _jemalloc_is_prefixed)
+unset(CMAKE_REQUIRED_INCLUDES)
+unset(CMAKE_REQUIRED_LIBRARIES)
+
+if(_jemalloc_is_prefixed)
+ set(JEMALLOC_IS_PREFIXED TRUE)
+endif()
+
+unset(_jemalloc_is_prefixed)
+
mark_as_advanced(
JEMALLOC_ROOT_DIR
JEMALLOC_LIBRARY
JEMALLOC_INCLUDE_DIR
+ JEMALLOC_IS_PREFIXED
)