Index: third_party/tcmalloc/vendor/INSTALL |
=================================================================== |
--- third_party/tcmalloc/vendor/INSTALL (revision 126727) |
+++ third_party/tcmalloc/vendor/INSTALL (working copy) |
@@ -18,8 +18,8 @@ |
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 gperftools. |
-libunwind can be found at |
+install libunwind before trying to configure or install google |
+perftools. libunwind can be found at |
http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-beta.tar.gz |
@@ -28,28 +28,21 @@ |
versions introduce new code that does not work well with perftools |
(because libunwind can call malloc, which will lead to deadlock). |
-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 |
+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. |
- 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. |
+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. |
- 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. |
- 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 |
requires that your application, the tcmalloc library, and system |
@@ -144,32 +137,21 @@ |
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 Ubuntu 10.04 (x86) |
- Linux Ubuntu 10.10 (x86_64) |
+ Linux RedHat 9 (x86) |
+ Linux Debian 4.0 (PPC) |
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) |
- Mac OS X 10.6 (Snow Leopard) (x86) |
- Solaris 10 (x86_64) |
- Windows XP, Visual Studio 2003 (VC++ 7.1) (x86) |
+ Solaris 10 (x86) |
+ Windows XP, Visual Studio 2003 (VC++ 7) (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) |
@@ -277,7 +259,7 @@ |
installed as part of the Sun C++ compiler package.) See that |
section for a list of binaries, and instructions on building them. |
-** Windows (MSVC, Cygwin, and MinGW): |
+** Windows: |
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 |
@@ -286,9 +268,10 @@ |
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) through VC++ 10.0, |
- 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) 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. |
Cygwin can compile some but not all of perftools. Furthermore, |
there is a problem with exception-unwinding in cygwin (it can call |