OSDN Git Service

build: Add support for known custom allocators
authorLuca Barbato <lu_zero@gentoo.org>
Thu, 3 Sep 2015 09:55:48 +0000 (11:55 +0200)
committerLuca Barbato <lu_zero@gentoo.org>
Wed, 30 Sep 2015 19:42:26 +0000 (21:42 +0200)
Makes slightly easier to use jemalloc and tcmalloc.

The two are quite common choices for profiling and debugging.

configure

index b4eccd6..14af2b7 100755 (executable)
--- a/configure
+++ b/configure
@@ -268,6 +268,7 @@ Toolchain options:
 
 Advanced options (experts only):
   --malloc-prefix=PREFIX   prefix malloc and related names with PREFIX
+  --custom-allocator=NAME  use a supported custom allocator
   --disable-symver         disable symbol versioning
   --enable-hardcoded-tables use hardcoded tables instead of runtime generation
   --disable-safe-bitstream-reader
@@ -1691,6 +1692,7 @@ CMDLINE_SET="
     cc
     cpu
     cross_prefix
+    custom_allocator
     dep_cc
     env
     extra_version
@@ -4245,6 +4247,17 @@ check_builtin machine_rw_barrier mbarrier.h "__machine_rw_barrier()"
 check_builtin MemoryBarrier windows.h "MemoryBarrier()"
 check_builtin sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)"
 
+case "$custom_allocator" in
+    jemalloc)
+        # jemalloc by default does not use a prefix
+        require libjemalloc jemalloc/jemalloc.h malloc -ljemalloc
+    ;;
+    tcmalloc)
+        require_pkg_config libtcmalloc gperftools/tcmalloc.h tc_malloc
+        malloc_prefix=tc_
+    ;;
+esac
+
 check_func_headers malloc.h _aligned_malloc     && enable aligned_malloc
 check_func  ${malloc_prefix}memalign            && enable memalign
 check_func  ${malloc_prefix}posix_memalign      && enable posix_memalign