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