[PATCH 04/12] xfsprogs: allow linking against libtcmalloc

Christoph Hellwig
2011-12-02T17:47:43Z

[-- Attachment #1: xfsprogs-use-tcmalloc --]
[-- Type: text/plain, Size: 1965 bytes --]

Allow linking against the libtcmalloc library from Google's performance
tools, which at least for repair reduces the memory usage dramatically.

Signed-off-by: Christoph Hellwig <hch@lst.de>

Index: xfsprogs-dev/configure.in
===================================================================
--- xfsprogs-dev.orig/configure.in 2011-11-14 13:54:28.000000000 +0000
+++ xfsprogs-dev/configure.in 2011-11-20 19:21:26.000000000 +0000
@@ -31,6 +31,26 @@ AC_ARG_ENABLE(editline,
AC_SUBST(libeditline)
AC_SUBST(enable_editline)

+AC_ARG_ENABLE(tcmalloc,
+[ --enable-tcmalloc=[yes/no] Enable tcmalloc [default=no]],,
+ enable_tcmalloc=check)
+
+if test x$enable_tcmalloc != xno; then
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -fno-builtin-malloc"
+ AC_CHECK_LIB([tcmalloc_minimal], [malloc], [libtcmalloc="-ltcmalloc_minimal"],
+ [AC_CHECK_LIB([tcmalloc], [malloc], [libtcmalloc="-ltcmalloc"], [
+ if test x$enable_tcmalloc = xyes; then
+ AC_MSG_ERROR([libtcmalloc_minimal or libtcmalloc library not found], 1)
+ fi]
+ )]
+ )
+ if test x$libtcmalloc = x; then
+ CPPFLAGS="$saved_CPPFLAGS"
+ fi
+fi
+AC_SUBST(libtcmalloc)
+
AC_ARG_ENABLE(termcap,
[ --enable-termcap=[yes/no] Enable terminal capabilities library [default=no]],
test $enable_termcap = yes && libtermcap="-ltermcap",)
Index: xfsprogs-dev/include/builddefs.in
===================================================================
--- xfsprogs-dev.orig/include/builddefs.in 2011-11-14 13:54:28.000000000 +0000
+++ xfsprogs-dev/include/builddefs.in 2011-11-14 13:57:55.000000000 +0000
@@ -22,7 +22,7 @@ _BUILDDEFS_INCLUDED_ = 1

DEBUG = @debug_build@
OPTIMIZER = @opt_build@
-MALLOCLIB = @malloc_lib@
+MALLOCLIB = @malloc_lib@ @libtcmalloc@
LOADERFLAGS = @LDFLAGS@
LTLDFLAGS = @LDFLAGS@
CFLAGS = @CFLAGS@