| Name: tcmalloc |
| Short Name: gperftools |
| URL: http://github.com/gperftools/gperftools |
| Version: 2.7 |
| Revision: Unknown |
| Security Critical: yes |
| License: BSD |
| |
| Description: |
| This contains Chromium's locally patched copy of tcmalloc. |
| |
| Contents: |
| |
| chromium/ |
| |
| The chromium patched sources, copied from the vendor/ |
| subdirectory and containing our local modifications. |
| |
| We only copy over the vendor/src/ subdirectory (the only piece |
| we need) but still leave it in a chromium/src/ subdirectory to |
| keep the directory structures in parallel. |
| |
| vendor/ |
| |
| Vanilla sources from upstream: |
| |
| http://github.com/gperftools/gperftools |
| |
| The current revision is 2.7, pulled in July 2018. |
| |
| HOWTOs: |
| |
| 1. Pull from upstream |
| $ git clone https://gitbub.com/gperftools/gperftools vendor |
| 2. Checkout and remove git metadata |
| $ cd vendor && git checkout gperftools-2.7 && rm .rf .git |
| 3. Mirror the src folder |
| $ cd .. && rsync -av --delete vendor/src chromium/src |
| |
| |
| Modifications: |
| - Converted to utf-8 with: vim +"argdo write ++enc=utf-8" *.h *.c |
| - Added support for android. |
| - Use NULL instead of static_cast<uintptr_t>(0) in stack_trace_table.cc, |
| for -std=c++11 compatibility. |
| - Added support for pseudo-stack heap profiling via a callback to retrieve a |
| simulated stack from the embedding application. |
| - Inserted spaces around PRIx64, SCNx64 and friends, for c++11 compatibility. |
| - Fix sprintf formatting warning in MaybeDumpProfileLocked |
| - Fix logging issues in android |
| - Changed DEFINE_foo macros to ignore envname unless ENABLE_PROFILING is defined |
| - Changed DEFINE_string to define const char*s instead of strings |
| - Disabled HEAPPROFILE envvar unless ENABLE_PROFILING is defined |
| - Add "ARMv8-a" to the supporting list of ARM architecture |
| - Add generic.total_physical_bytes property to MallocExtension |
| - Conditionally define HAVE_VDSO_SUPPORT only on linux_x86 to avoid static initializers |
| - Add TC_MALLOPT_IS_OVERRIDDEN_BY_TCMALLOC mallopt() arg |
| - Added tc_malloc_skip_new_handler. |
| - Added TCMALLOC_DONT_REPLACE_SYSTEM_ALLOC which bypasses the libc_override logic. |
| - Backported 7df7f14 "issue-693: enable futex usage on arm" from upstream. |
| - Don't use the tls model 'initial-exec' on arm with gcc. |
| - Update addr2line-pdb.c to fix format string errors and use relative addresses |
| matching linux's behavior more closely. |
| - Changed kint64min to not depend on undefined behavior. |
| - Fix potential missing nul character in symbol names produced by addr2line-pdb. |
| - Remove superfluous size_t value >= 0 check. |
| - Make kFooType in tcmalloc.cc truly const. |
| - Added support for mips64el. |
| - Pulled SuggestedDelayNS() implementation for 32bit architectures which do not support 64bit atomicity |
| - Pulled several mipsel related changes from lss project to fix compile errors |
| - Fixed line endings in vendor/README_windows.txt to Unix (LF) |
| - Removed have_futex from spinlock_linux-inl.h; assume it's always there |
| - Add thread-safe support to query and update the heap sampling period |
| - Remove use of LINKER_INITIALIZED in page_heap_allocator.h, to enable the |
| compiler to optimize away a static constructor |
| - Include <atomic> in malloc_extension.h due to std::atomic usage |
| - Precompute the pointer mask for doubly linked free lists instead of computing it on each access. |
| - Move spinlock to function static variable to fix static initializer check error. |
| - Enable ASLR support on both Linux and ChromeOS |
| - Remove unused base::subtle::Acquire_Store/Release_Load (https://github.com/gperftools/gperftools/pull/1249) |
| - Fix thread-safety annotations (https://github.com/gperftools/gperftools/pull/1251) |