summaryrefslogtreecommitdiffstats
path: root/third_party/tcmalloc/vendor/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/tcmalloc/vendor/INSTALL')
-rw-r--r--third_party/tcmalloc/vendor/INSTALL63
1 files changed, 40 insertions, 23 deletions
diff --git a/third_party/tcmalloc/vendor/INSTALL b/third_party/tcmalloc/vendor/INSTALL
index d1377f7..4a09e14 100644
--- a/third_party/tcmalloc/vendor/INSTALL
+++ b/third_party/tcmalloc/vendor/INSTALL
@@ -18,8 +18,8 @@ malloc recursively, which may require the thread to acquire a lock it
already holds: deadlock.)
For that reason, if you use a 64-bit system, we strongly recommend you
-install libunwind before trying to configure or install google
-perftools. libunwind can be found at
+install libunwind before trying to configure or install gperftools.
+libunwind can be found at
http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-beta.tar.gz
@@ -28,20 +28,27 @@ version. Versions older than this will not work properly; too-new
versions introduce new code that does not work well with perftools
(because libunwind can call malloc, which will lead to deadlock).
-CAUTION: if you install libunwind from the url above, be aware that
-you may have trouble if you try to statically link your binary with
-perftools: that is, if you link with 'gcc -static -lgcc_eh ...'. This
-is because both libunwind and libgcc implement the same C++ exception
-handling APIs, but they implement them differently on some platforms.
-This is not likely to be a problem on ia64, but may be on x86-64.
+There have been reports of crashes with libunwind 0.99 (see
+http://code.google.com/p/gperftools/issues/detail?id=374).
+Alternately, you can use a more recent libunwind (e.g. 1.0.1) at the
+cost of adding a bit of boilerplate to your code. For details, see
+http://groups.google.com/group/google-perftools/msg/2686d9f24ac4365f
-Also, if you link binaries statically, make sure that you add
--Wl,--eh-frame-hdr to your linker options. This is required so that
-libunwind can find the information generated by the compiler required
-for stack unwinding.
+ CAUTION: if you install libunwind from the url above, be aware that
+ you may have trouble if you try to statically link your binary with
+ perftools: that is, if you link with 'gcc -static -lgcc_eh ...'.
+ This is because both libunwind and libgcc implement the same C++
+ exception handling APIs, but they implement them differently on
+ some platforms. This is not likely to be a problem on ia64, but
+ may be on x86-64.
-Using -static is rare, though, so unless you know this will affect you
-it probably won't.
+ Also, if you link binaries statically, make sure that you add
+ -Wl,--eh-frame-hdr to your linker options. This is required so that
+ libunwind can find the information generated by the compiler
+ required for stack unwinding.
+
+ Using -static is rare, though, so unless you know this will affect
+ you it probably won't.
If you cannot or do not wish to install libunwind, you can still try
to use the built-in stack unwinder. The built-in stack unwinder
@@ -137,21 +144,32 @@ with TLS turned off; see the ___tls_get_addr note above.
Perftools has been tested on the following systems:
FreeBSD 6.0 (x86)
+ FreeBSD 8.1 (x86_64)
+ Linux CentOS 5.5 (x86_64)
+ Linux Debian 4.0 (PPC)
+ Linux Debian 5.0 (x86)
Linux Fedora Core 3 (x86)
Linux Fedora Core 4 (x86)
Linux Fedora Core 5 (x86)
Linux Fedora Core 6 (x86)
+ Linux Fedora Core 13 (x86_64)
+ Linux Fedora Core 14 (x86_64)
+ Linux RedHat 9 (x86)
+ Linux Slackware 13 (x86_64)
Linux Ubuntu 6.06.1 (x86)
Linux Ubuntu 6.06.1 (x86_64)
- Linux RedHat 9 (x86)
- Linux Debian 4.0 (PPC)
+ Linux Ubuntu 10.04 (x86)
+ Linux Ubuntu 10.10 (x86_64)
Mac OS X 10.3.9 (Panther) (PowerPC)
Mac OS X 10.4.8 (Tiger) (PowerPC)
Mac OS X 10.4.8 (Tiger) (x86)
Mac OS X 10.5 (Leopard) (x86)
- Solaris 10 (x86)
- Windows XP, Visual Studio 2003 (VC++ 7) (x86)
+ Mac OS X 10.6 (Snow Leopard) (x86)
+ Solaris 10 (x86_64)
+ Windows XP, Visual Studio 2003 (VC++ 7.1) (x86)
Windows XP, Visual Studio 2005 (VC++ 8) (x86)
+ Windows XP, Visual Studio 2005 (VC++ 9) (x86)
+ Windows XP, Visual Studio 2005 (VC++ 10) (x86)
Windows XP, MinGW 5.1.3 (x86)
Windows XP, Cygwin 5.1 (x86)
@@ -259,7 +277,7 @@ above, by linking in libtcmalloc_minimal.
installed as part of the Sun C++ compiler package.) See that
section for a list of binaries, and instructions on building them.
-** Windows:
+** Windows (MSVC, Cygwin, and MinGW):
Work on Windows is rather preliminary: we haven't found a good way
to get stack traces in release mode on windows (that is, when FPO
@@ -268,10 +286,9 @@ above, by linking in libtcmalloc_minimal.
all. But as in other ports, the basic tcmalloc library
functionality, overriding malloc and new and such (and even
windows-specific functions like _aligned_malloc!), is working fine,
- at least with VC++ 7.1 (Visual Studio 2003) and VC++ 8.0
- (Visual Studio 2005), in both debug and release modes. See
- README.windows for instructions on how to install on Windows using
- Visual Studio.
+ at least with VC++ 7.1 (Visual Studio 2003) through VC++ 10.0,
+ in both debug and release modes. See README.windows for
+ instructions on how to install on Windows using Visual Studio.
Cygwin can compile some but not all of perftools. Furthermore,
there is a problem with exception-unwinding in cygwin (it can call