• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name: tcmalloc
2Short Name: gperftools
3URL: http://gperftools.googlecode.com/
4Version: unknown
5Revision: 144
6Security Critical: yes
7License: BSD
8
9Description:
10This contains Chromium's locally patched copy of tcmalloc.
11
12Contents:
13
14  chromium/
15
16    The chromium patched sources, copied from the vendor/
17    subdirectory and containing our local modifications.
18
19    We only copy over the vendor/src/ subdirectory (the only piece
20    we need) but still leave it in a chromium/src/ subdirectory to
21    keep the directory structures in parallel.
22
23  vendor/
24
25    Vanilla sources from upstream:
26
27      http://gperftools.googlecode.com/svn/trunk
28
29    The current revision is:
30
31      Last Changed Rev: 144
32      Last Changed Date: 2012-02-04 00:10:11 +0000 (Sat, 04 Feb 2012)
33
34
35
36HOWTOs:
37
38  Take a new version from upstream:
39
40    1)  Grab the revision:
41
42        $ svn export [-r {tcmalloc-rev}] \
43          http://gperftools.googlecode.com/svn/trunk \
44          vendor-{tcmalloc-rev}
45
46    2)  Check for added or deleted files:
47
48        $ diff -q -r -x .svn vendor vendor-{tcmalloc-rev}
49
50    3)  Copy the new revision on top of the checked-in vendor branch:
51
52        $ cp -r vendor-{tcmalloc-rev}/* vendor
53
54        C:\> xcopy /e/y/i vendor-{tcmalloc-rev}\* vendor
55
56    4)  Make all vendor files non-executable.
57
58        $ find . -executable -type f -exec chmod a-x {} \;
59
60    5)  "svn add" or "svn rm" added or removed files (based on your
61        "diff -q -r" output from above)
62
63    6)  Create the CL, upload, check it in:
64
65        $ gcl change CL
66        $ gcl upload CL
67        $ gcl commit CL
68
69        Note the revision number since you're going to want to merge
70        that to the local chromium branch.
71
72  Merge a new upstream version with our local patched copy:
73
74    1)  Merge the local revision to chromium/src
75
76        $ svn merge -c {chrome-rev} svn://chrome-svn/chrome/trunk/src/third_party/tcmalloc/vendor/src chromium/src
77
78    2)  Resolve any conflicts
79
80    3)  Create the CL, upload, check in:
81
82        $ gcl change CL
83        $ gcl upload CL
84        $ gcl commit CL
85
86
87Modifications:
88- Converted to utf-8 with: vim +"argdo write ++enc=utf-8" *.h *.c
89- Added support for android.
90- Use NULL instead of static_cast<uintptr_t>(0) in stack_trace_table.cc,
91  for -std=c++11 compatibility.
92- Added support for pseudo-stack heap profiling via a callback to retrieve a
93  simulated stack from the embedding application.
94- Inserted spaces around PRIx64, SCNx64 and friends, for c++11 compatibility.
95- Fix sprintf formatting warning in MaybeDumpProfileLocked
96- Added tc_malloc_skip_new_handler.
97- Fix logging issues in android
98- Changed DEFINE_foo macros to ignore envname unless ENABLE_PROFILING is defined
99- Changed DEFINE_string to define const char*s instead of strings
100- Disabled HEAPPROFILE envvar unless ENABLE_PROFILING is defined
101