This is an automated email from the ASF dual-hosted git repository.

cmcfarlen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new d7f27c4145 cmake: fix support for je/mi malloc and the mallocallocator 
(#10407)
d7f27c4145 is described below

commit d7f27c4145686ac4996a09084746438be639b6f0
Author: Chris McFarlen <[email protected]>
AuthorDate: Mon Sep 25 16:59:12 2023 -0500

    cmake: fix support for je/mi malloc and the mallocallocator (#10407)
    
    * fix support for je/mi malloc and the mallocallocator
    
    * also fix includes for jemiallocator
    
    * fix target for linking jemalloc
    
    * restore default off to jemalloc auto_option
    
    ---------
    
    Co-authored-by: Chris McFarlen <[email protected]>
---
 CMakeLists.txt                                        | 7 +++++--
 include/tscore/JeMiAllocator.h                        | 4 ++++
 include/tscore/ink_config.h.cmake.in                  | 2 ++
 include/tscore/ink_memory.h                           | 4 ++++
 plugins/experimental/memory_profile/memory_profile.cc | 4 +---
 5 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 928accafe3..623dfbf5a4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,12 +51,13 @@ include(AutoOptionHelpers)
 auto_option(HWLOC FEATURE_VAR TS_USE_HWLOC PACKAGE_DEPENDS hwloc)
 auto_option(JEMALLOC
     FEATURE_VAR TS_HAS_JEMALLOC
+    DEFAULT OFF
     PACKAGE_DEPENDS jemalloc
 )
 auto_option(MIMALLOC
     FEATURE_VAR TS_HAS_MIMALLOC
-    PACKAGE_DEPENDS mimalloc
     DEFAULT OFF
+    PACKAGE_DEPENDS mimalloc
 )
 auto_option(LUAJIT PACKAGE_DEPENDS LuaJIT)
 auto_option(UNWIND FEATURE_VAR TS_USE_REMOTE_UNWINDING PACKAGE_DEPENDS unwind)
@@ -67,6 +68,7 @@ option(BUILD_REGRESSION_TESTING "Build regression tests 
(default ON)" ON)
 option(BUILD_EXPERIMENTAL_PLUGINS "Build the experimental plugins (default 
OFF)")
 set(DEFAULT_STACK_SIZE 1048576 CACHE STRING "Default stack size (default 
1048576)")
 option(ENABLE_FAST_SDK "Use fast SDK APIs (default OFF)")
+option(ENABLE_MALLOC_ALLOCATOR "Use direct malloc allocator over freelist 
allocator (default OFF)")
 option(ENABLE_DOCS "Build docs (default OFF)")
 option(ENABLE_DISK_FAILURE_TESTS "Build disk failure tests (enables AIO fault 
injection, default OFF)" OFF)
 if(ENABLE_DISK_FAILURE_TESTS)
@@ -249,7 +251,7 @@ if(TS_HAS_JEMALLOC AND TS_HAS_MIMALLOC)
 endif()
 
 if(TS_HAS_JEMALLOC)
-    link_libraries(jemalloc)
+    link_libraries(jemalloc::jemalloc)
 elseif(TS_HAS_MIMALLOC)
     link_libraries(mimalloc)
 endif()
@@ -278,6 +280,7 @@ if(ENABLE_ASAN)
     add_link_options(-fsanitize=address)
 endif()
 
+set(TS_USE_MALLOC_ALLOCATOR ${ENABLE_MALLOC_ALLOCATOR})
 find_package(ZLIB REQUIRED)
 
 # ncurses is used in traffic_top
diff --git a/include/tscore/JeMiAllocator.h b/include/tscore/JeMiAllocator.h
index b7b35ee4bb..3976778d0b 100644
--- a/include/tscore/JeMiAllocator.h
+++ b/include/tscore/JeMiAllocator.h
@@ -32,7 +32,11 @@
 #include <mutex>
 
 #if TS_HAS_JEMALLOC
+#if __has_include(<jemalloc/jemalloc.h>)
 #include <jemalloc/jemalloc.h>
+#else
+#include <jemalloc.h>
+#endif
 #if (JEMALLOC_VERSION_MAJOR == 0)
 #error jemalloc has bogus version
 #endif
diff --git a/include/tscore/ink_config.h.cmake.in 
b/include/tscore/ink_config.h.cmake.in
index 7ab4ce20b9..9c44ba14e9 100644
--- a/include/tscore/ink_config.h.cmake.in
+++ b/include/tscore/ink_config.h.cmake.in
@@ -176,6 +176,7 @@ const int DEFAULT_STACKSIZE = @DEFAULT_STACK_SIZE@;
 #cmakedefine01 TS_HAS_IN6_IS_ADDR_UNSPECIFIED
 #cmakedefine01 TS_HAS_IP_TOS
 #cmakedefine01 TS_HAS_JEMALLOC
+#cmakedefine01 TS_HAS_MIMALLOC
 #cmakedefine01 TS_HAS_PROFILER
 #cmakedefine01 TS_HAS_QUICHE
 #cmakedefine01 TS_HAS_SO_MARK
@@ -190,6 +191,7 @@ const int DEFAULT_STACKSIZE = @DEFAULT_STACK_SIZE@;
 #cmakedefine01 TS_USE_HWLOC
 #cmakedefine01 TS_USE_KQUEUE
 #cmakedefine01 TS_USE_LINUX_IO_URING
+#cmakedefine01 TS_USE_MALLOC_ALLOCATOR
 #cmakedefine01 TS_USE_POSIX_CAP
 #cmakedefine01 TS_USE_QUIC
 #cmakedefine01 TS_USE_REMOTE_UNWINDING
diff --git a/include/tscore/ink_memory.h b/include/tscore/ink_memory.h
index 3dbac7b75a..a7acbbc3f4 100644
--- a/include/tscore/ink_memory.h
+++ b/include/tscore/ink_memory.h
@@ -49,7 +49,11 @@
 #endif
 
 #if TS_HAS_JEMALLOC
+#if __has_include(<jemalloc/jemalloc.h>)
 #include <jemalloc/jemalloc.h>
+#else
+#include <jemalloc.h>
+#endif
 #elif TS_HAS_MIMALLOC
 #include <mimalloc.h>
 #elif HAVE_MALLOC_H
diff --git a/plugins/experimental/memory_profile/memory_profile.cc 
b/plugins/experimental/memory_profile/memory_profile.cc
index b9c49923a4..c8e146b859 100644
--- a/plugins/experimental/memory_profile/memory_profile.cc
+++ b/plugins/experimental/memory_profile/memory_profile.cc
@@ -33,9 +33,7 @@
 #include <cstring>
 #include <cerrno>
 #include <tscore/ink_config.h>
-#if TS_HAS_JEMALLOC
-#include <jemalloc/jemalloc.h>
-#endif
+#include <tscore/ink_memory.h>
 
 #define PLUGIN_NAME "memory_profile"
 

Reply via email to