|
@@ -82,8 +82,6 @@ if test "$enable_memory_sentinels" = "no"; then
|
|
|
[Defined if we're turning off memory safety code to look for bugs])
|
|
|
fi
|
|
|
|
|
|
-AM_CONDITIONAL(USE_OPENBSD_MALLOC, test "x$enable_openbsd_malloc" = "xyes")
|
|
|
-
|
|
|
AC_ARG_ENABLE(asciidoc,
|
|
|
AS_HELP_STRING(--disable-asciidoc, [don't use asciidoc (disables building of manpages)]),
|
|
|
[case "${enableval}" in
|
|
@@ -1793,19 +1791,70 @@ AC_ARG_WITH(tcmalloc,
|
|
|
AS_HELP_STRING(--with-tcmalloc, [use tcmalloc memory allocation library]),
|
|
|
[ tcmalloc=yes ], [ tcmalloc=no ])
|
|
|
|
|
|
-if test "x$tcmalloc" = "xyes"; then
|
|
|
- LDFLAGS="-ltcmalloc $LDFLAGS"
|
|
|
-fi
|
|
|
+default_malloc=system
|
|
|
|
|
|
-using_custom_malloc=no
|
|
|
-if test "x$enable_openbsd_malloc" = "xyes"; then
|
|
|
- using_custom_malloc=yes
|
|
|
+if test "x$enable_openbsd_malloc" = "xyes" ; then
|
|
|
+ AC_MSG_NOTICE([The --enable-openbsd-malloc argument is deprecated; use --with-malloc=openbsd instead.])
|
|
|
+ default_malloc=openbsd
|
|
|
fi
|
|
|
+
|
|
|
if test "x$tcmalloc" = "xyes"; then
|
|
|
- using_custom_malloc=yes
|
|
|
+ AC_MSG_NOTICE([The --with-tcmalloc argument is deprecated; use --with-malloc=tcmalloc instead.])
|
|
|
+ default_malloc=tcmalloc
|
|
|
fi
|
|
|
-if test "$using_custom_malloc" = "no"; then
|
|
|
- AC_CHECK_FUNCS(mallinfo)
|
|
|
+
|
|
|
+AC_ARG_WITH(malloc,
|
|
|
+ AS_HELP_STRING([--with-malloc=[system,jemalloc,tcmalloc,openbsd]],
|
|
|
+ [select special malloc implementation [system]]),
|
|
|
+ [ malloc="$with_malloc" ], [ malloc="$default_malloc" ])
|
|
|
+
|
|
|
+AS_CASE([$malloc],
|
|
|
+ [tcmalloc], [
|
|
|
+ PKG_CHECK_MODULES([TCMALLOC],
|
|
|
+ [libtcmalloc],
|
|
|
+ have_tcmalloc=yes,
|
|
|
+ have_tcmalloc=no)
|
|
|
+
|
|
|
+ if test "x$have_tcmalloc" = "xno" ; then
|
|
|
+ AC_MSG_ERROR([Unable to find tcmalloc requested by --with-malloc.])
|
|
|
+ fi
|
|
|
+
|
|
|
+ CFLAGS="$CFLAGS $TCMALLOC_CFLAGS"
|
|
|
+ LIBS="$TCMALLOC_LIBS $LIBS"
|
|
|
+ ],
|
|
|
+
|
|
|
+ [jemalloc], [
|
|
|
+ PKG_CHECK_MODULES([JEMALLOC],
|
|
|
+ [jemalloc],
|
|
|
+ have_jemalloc=yes,
|
|
|
+ have_jemalloc=no)
|
|
|
+
|
|
|
+ if test "x$have_tcmalloc" = "xno" ; then
|
|
|
+ AC_MSG_ERROR([Unable to find jemalloc requested by --with-malloc.])
|
|
|
+ fi
|
|
|
+
|
|
|
+ CFLAGS="$CFLAGS $JEMALLOC_CFLAGS"
|
|
|
+ LIBS="$JEMALLOC_LIBS $LIBS"
|
|
|
+ using_custom_malloc=yes
|
|
|
+ ],
|
|
|
+
|
|
|
+ [openbsd], [
|
|
|
+ enable_openbsd_malloc=yes
|
|
|
+ ],
|
|
|
+
|
|
|
+ [system], [
|
|
|
+ # handle this later, including the jemalloc fallback
|
|
|
+ AC_CHECK_FUNCS(mallinfo)
|
|
|
+ ],
|
|
|
+
|
|
|
+ [AC_MSG_ERROR([--with-malloc=`$with_malloc' not supported, see --help])
|
|
|
+])
|
|
|
+
|
|
|
+AM_CONDITIONAL(USE_OPENBSD_MALLOC, test "x$enable_openbsd_malloc" = "xyes")
|
|
|
+
|
|
|
+if test "$malloc" != "system"; then
|
|
|
+ # Tell the C compiler not to use the system allocator functions.
|
|
|
+ TOR_CHECK_CFLAGS([-fno-builtin-malloc -fno-builtin-realloc -fno-builtin-calloc -fno-builtin-free])
|
|
|
fi
|
|
|
if test "$using_custom_malloc" = "yes"; then
|
|
|
# Tell the C compiler not to use the system allocator functions.
|