blob: ec09d386085fd6d6b490b46b358ff1c3f7e721e9 [file] [log] [blame]
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)