xfs
[Top] [All Lists]

[PATCH 3/3 v2] xfsprogs: allow linking against libtcmalloc

To: Arkadiusz Mi??kiewicz <arekm@xxxxxxxx>
Subject: [PATCH 3/3 v2] xfsprogs: allow linking against libtcmalloc
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Mon, 21 Nov 2011 06:59:25 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <20111119184507.GA11208@xxxxxxxxxxxxx>
References: <20111114155742.285135418@xxxxxxxxxxxxxxxxxxxxxx> <20111114160217.591812422@xxxxxxxxxxxxxxxxxxxxxx> <201111180804.06413.arekm@xxxxxxxx> <20111119184507.GA11208@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
Allow linking against the libtcmalloc library from Google's performance
tools, which at least for repair reduces the memory usage dramatically.

Note that the current version of the autoconf-foo mostly comes from
Arek, mine was much inferior to it.

Signed-off-by: Christoph Hellwig <hch@xxxxxx>

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@

<Prev in Thread] Current Thread [Next in Thread>