commit d9a5d38e5cd1c5d50c77d6bcff707d040c43e4de
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:   Fri Aug 15 13:32:29 2025 -0400

    bump version to 2.17.2

M	CMakeLists.txt
M	MODULE.bazel
M	NEWS
M	configure.ac
M	src/gperftools/tcmalloc.h

commit 1b4eb9fb1180b2e20254b764e9da03a0bd0f47e7
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Aug 15 13:33:26 2025 -0400

    add BUILD.bazel to automake's EXTRA_DIST

M	Makefile.am

commit 86f938ab093a949d5a683905d706cb26a1a9c849
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Aug 14 18:26:09 2025 -0400

    proc_maps_iterator: unbreak reading /proc/self/maps

    I recently added wrong code that attempted to detect and handle too
    long lines. But this code was never actually tested.

    On NetBSD PATH_MAX is relatively short, just 1k bytes and we're
    actually able to hit that (wrong) check. So we failed
    proc_maps_iterator_test there.

    This commit extracts ForEachLine logic into separate header, adds
    tests, exercises all cases and actually fixes the "line is too long"
    case.

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
A	src/base/for_each_line.h
M	src/base/proc_maps_iterator.cc
A	src/tests/for_each_line_test.cc

commit 377e15e62598eb36c7068cb7f5476c4ab582de2d
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Aug 15 13:03:44 2025 -0400

    bazel: rename BUILD -> BUILD.bazel

    Some filesystems are case-insensitive and people commonly prefer
    build/ as a directory for out-of-tree builds (e.g. with cmake).

R100	BUILD	BUILD.bazel

commit a726aebea95f473e0e8008922c78acd424af9dbb
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Aug 15 12:55:14 2025 -0400

    proc_maps_iterator_test: put variable to .data, not .bss

    On FreeBSDs we used PHDRs to synthesize mappings, but PHDRs don't
    cover .bss. I am not sure how the test passed previously, but I see it
    fail at least now on FreeBSD 13. Putting variable into .data section,
    by initializing it, should make test more robust.

M	src/tests/proc_maps_iterator_test.cc

commit c80a9a6b7d678e11be5df5113aa73f687ea381a9
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Aug 14 15:48:10 2025 -0400

    tcmalloc_unittest: un-flake the large allocs release test

    FreeBSD mmap sys-allocator is behaving "randomly" enough that old
    logic wasn't triggering the right sequences of addresses.

    So I had to rework the test a bit to actually ensure that we're
    allocating used/free addressess one exactly after the other.

    I also previously added stupid duplicate release rate reset, which was
    already there, but I was somehow blind enough not to spot it just 1
    line below! So this is removed.

    And this entire test is now separate function with hopefully helpful
    comments about what we're trying to achieve.

    Updates github #1604 and #1574

M	src/tests/page_heap_test.cc
M	src/tests/tcmalloc_unittest.cc

commit 94fb7079614bcefff23be52b4988c2381a9c31bc
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Aug 13 15:37:07 2025 -0400

    bump version to 2.17.1

M	CMakeLists.txt
M	MODULE.bazel
M	NEWS
M	configure.ac
M	src/gperftools/tcmalloc.h

commit 2d277134c4b5c56d1c2912330aa44160af52aadf
Author: graysky <therealgraysky AT proton DOT me>
Date:	Thu Aug 7 02:35:01 2025 -0400

    stacktrace_libgcc-inl.h: fix build for some ARM toolchains

    On OpenWrt when bulding for arm_cortex-a15_neon-vpfv4 or
    arm_cortex-a9_vfpv3-d16, the build errors out due to an undefined
    symbol
    _URC_NORMAL_STOP. This usually happens when the required header
    (typically <unwind.h>) is not included, or the toolchain's unwind
    implementation does not provide this definition.

    Error:
    src/stacktrace_libgcc-inl.h: In function '_Unwind_Reason_Code
    libgcc_backtrace_helper(_Unwind_Context*, void*)':
    src/stacktrace_libgcc-inl.h:69:12: error: '_URC_NORMAL_STOP' was
    not declared in this scope
       69 |	return _URC_NORMAL_STOP;
	  |

    A work-around is to use URC_END_OF_STACK.

    Signed-off-by: graysky <therealgraysky AT proton DOT me>

M	src/stacktrace_libgcc-inl.h

commit 742e4e29c497a2780a4e7d02516b8c5e80978abd
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Aug 4 20:25:44 2025 +0100

    bump version to 2.17

M	CMakeLists.txt
M	MODULE.bazel
M	NEWS
M	configure.ac
M	src/gperftools/tcmalloc.h

commit 32f11cb4b777880f7ecff3edcb5bc04fd6f1dff1
Author: Jackie Cui <cui_jc@163.com>
Date:	Sat Jul 26 17:41:42 2025 +0800

    preferring normal spans to returned spans in PageHeap::AllocLarge

    Signed-off-by: Aliaksei Kandratsenka <alkondratenko@gmail.com>
    [alkondratenko@gmail.com: unflaked the test change]

M	src/page_heap.cc
M	src/tests/page_heap_test.cc
M	src/tests/tcmalloc_unittest.cc

commit 6b63d71bf5b7bf4023f2361c1a6a7346db466b1e
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 3 20:00:02 2025 +0100

    tcmalloc_unittest: disable "normal" release in ReleaseToSystem test

    It could potentially flake the test.

M	src/tests/tcmalloc_unittest.cc

commit 940be25e1c5d12d776654670c38a994b2053da0c
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Aug 2 14:14:27 2025 -0400

    bazel:mark gtest dependency as development

M	MODULE.bazel

commit 338e906eaec5cd136f392fe81d533935aafb0777
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 21 20:48:21 2025 -0400

    proc_maps_iterator: refactor and fix

    There was really annoying clang warning (and IMHO bogus too) about
    unused StringToInteger specialization. We also got github issue #1600
    about slightly incorrect proc maps-like line formatting. Somehow I
    also left some TODOs and diagnostic codes. So this code needed some
    cleanup.

    I also noticed that Linux kernel actually uses unsigned numbers for
    inodes, so there is really no need to do parsing of int64_t-s.

M	src/base/proc_maps_iterator.cc
M	src/base/proc_maps_iterator.h

commit 25234ef72d914c1ad43cde7726cccbf8f39c9169
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 21 20:04:44 2025 -0400

    Revert "[proc_maps_iterator]: fix annoying clang warning"

    I don't really understand how, but some apple's clang thing fails on
    this code.

    This reverts commit a798cd37e26587f7bff72ecf1a4ea0bef1e3bae4.

M	src/base/proc_maps_iterator.cc

commit a798cd37e26587f7bff72ecf1a4ea0bef1e3bae4
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 21 19:02:13 2025 -0400

    [proc_maps_iterator]: fix annoying clang warning

    Looks like clang has some kind of heuristic detects unused template
    specialications defined in .cc file (not .h, because unused
    specializations are common). So lets avoid this warning by using
    C++-17 if-constexpr feature.

M	src/base/proc_maps_iterator.cc

commit 2b001ca54536a5272e12debc73ea5b901e65861c
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 21 18:45:49 2025 -0400

    ppc: drop unused stacktrace_powerpc-inl.h header

    When we merged 75b65f96b0bb44d70e0a461a03a3f8c928390283 which split
    original frame-poiner-ful PPC backtracer, we somehow failed to delete
    the original. All those years it was lying there unused.

D	src/stacktrace_powerpc-inl.h

commit a0c62293af4de2ecdeaa5e2d3ec4d8dd9da43dd6
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 21 18:41:03 2025 -0400

    ppc: implement a way to disable compilation of ppc backtracer

    Looks like at least on musl there are some issues with some ucontext
    defines. So lets at least make it possible to build stuff.

    See github issue #1602

M	src/stacktrace.cc

commit 15d5e70ca74c77b688871f8a79ea72a057547879
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jun 5 12:32:00 2025 -0400

    osx:heap-profiler_unittest: workaround failure to hide _tc_newarray

    Recent pprof update fixed another issue in leading underscore handling
    on OSX, but that somehow broke built-in filtering out of tcmalloc
    symbols. So for now lets manually hide tc_newarray there while
    investigating proper fix upstream.

    pprof reference: https://github.com/google/pprof/pull/939

M	src/tests/heap-profiler_unittest.sh

commit 6e09b8446e69dcbb205274681298058372651f1a
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Apr 30 17:07:05 2025 -0400

    [stacktrace-libgcc] stop backtracing when reaching limit

    Sometimes we deal with very deeply recursive functions. In this case
    capturing backtraces via "libgcc" method was very slow as we
    "unwinded" every stack frame, much beyond what depth we're willing to
    actually capture. So lets fix it and stop when at the limit.

M	src/stacktrace_libgcc-inl.h

commit b2231683cc01ffbf090555f0e532c638b341e63c
Author: Salvatore Dipietro <dipiets@amazon.com>
Date:	Tue May 13 16:47:47 2025 -0700

    Adding 'sb' instruction to spin_delay() for ARM v8.5 onward

M	src/base/spinlock.cc

commit 83edb60836d87cf1b406e8846b9059c03031e8f5
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 16 19:38:45 2025 -0500

    bump version to 2.17rc

M	CMakeLists.txt
M	MODULE.bazel
M	NEWS
M	configure.ac
M	src/gperftools/tcmalloc.h

commit 23268e84bc6e7c9af96e5cba7ef9a0b2e7f3a6e2
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Mar 6 16:57:00 2025 -0500

    tcmalloc_unittest: fix exit status propagation for sub-process tests

M	src/tests/tcmalloc_unittest.cc

commit 5591bfd83ce77d7da0c74860e0f4a7f8ee8519db
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 5 21:13:20 2025 -0500

    ensure that heap-profiler_debug_unittest runs matching binary

M	src/tests/heap-profiler_unittest.sh

commit a81b2ebbc2cec046aed5d571cdc783c49b48843a
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 17 11:49:39 2025 -0500

    put ATTRIBUTE_NOINLINE before function to unbreak MSVC

M	src/tcmalloc.cc

commit 9d40fae04162f993d8be6b8955074b7097f8dd32
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 17 10:16:35 2025 -0500

    amputate all the ATTRIBUTE_SECTION stuff

    It was used to implement GetCallerStackTrace feature where it would
    skip frames up to and including first call to tcmalloc functions. But
    it was ~always ELF-specific and required gcc extensions. For some time
    we also supported OSX with this feature but, Apple broke it
    semi-recently.

    Having to be careful around ATTRIBUTE_SECTION stuff caused
    complexities and corner cases across code base (i.e. such as being
    careful with effects of various optimization/debugging switches). And
    so we'll now be able to remove those complications.

    This special ".text.google_malloc" section also could interfere
    with some
    optimizations. So not anymore.

    Now that we don't have heap checker anymore, we don't need this
    feature. We keep GetCallerStackTrace API for ABI compatibility, but it
    will now simply do regular backraces. pprof has always been able to
    filter out "tcmalloc" symbols by looking at tcmalloc:: namespace and
    few known tcmalloc symbols (tc_new etc). And for example our "heap
    profiler" and malloc sampling facilities never used this API
    anyways (and relied on pprof filtering out tcmalloc stack frames).

M	src/base/basictypes.h
M	src/base/logging.h
M	src/libc_override_osx.h
M	src/malloc_hook.cc
M	src/tcmalloc.cc

commit e5e040e20bebf65da03a299bbb7dcdccaaa720eb
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 17 10:08:41 2025 -0500

    tcmalloc_unittest: unbreak waitpid headers on !Linux

M	src/tests/tcmalloc_unittest.cc

commit 492ede8654946be96f68a142d4e65220e10489c4
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 17 09:54:35 2025 -0500

    stacktrace_unittest: ensure we always use right leaf_capture_fn

    We had silly mistake of subsequent test runs "inheriting" old value of
    leaf_capture_fn. And it caused failures on FreeBSD (issue #1581)
    because libunwind run that was supposed to test regular stack trace
    capturing was instead using CaptureLeafUContext function that is known
    to fail on that OS.

M	src/tests/stacktrace_unittest.cc

commit caedecb5169b28415cbf4f8334e943254e696f2c
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Feb 14 18:04:11 2025 -0500

    implement C23 free{_aligned}_sized functions

    As far as I can see, no libc-s ship those yet, however.

M	src/debugallocation.cc
M	src/gperftools/tcmalloc.h
M	src/libc_override_gcc_and_weak.h
M	src/libc_override_redefine.h
M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc

commit f3c9bd56d85fc81b7309c1585b95e2a9aba9e4e0
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 13 13:12:33 2025 -0500

    de-duplicate 2 forms for hidden visibility attribute

    Somehow, I managed to define both ATTRIBUTE_HIDDEN and
    ATTRIBUTE_VISIBILITY_HIDDEN and they're identical. Lets de-dup them at
    last.

M	src/base/basictypes.h
M	src/debugallocation.cc
M	src/emergency_malloc.cc
M	src/emergency_malloc.h
M	src/malloc_backtrace.cc
M	src/static_vars.h
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/tcmalloc_internal.h
M	src/testing_portal.h

commit 1b2fef16b795303f8c87594e8991711b37e4b885
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 13 13:30:25 2025 -0500

    pacify "nullptr memcpy arg" condition in generic_writer.cc

M	src/base/generic_writer.cc

commit 1b9e9e0a2548a0e8d1d92d1ba269d3828a799dcc
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 12 18:37:23 2025 -0500

    ci: add github-page workflow to publish asciidoc docs

A	.github/workflows/github-pages.yml

commit f87a119557890eaac6d5c959fb6d61cc229d5621
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Dec 31 18:57:09 2024 -0500

    entirely amputate perl pprof implementation

M	.gitignore
D	src/pprof

commit f235d15e0115d6ddf4cd29aad6e631215b768286
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Feb 11 19:23:59 2025 -0500

    update README and INSTALL docs

M	INSTALL
M	README

commit f5c1af1632b3b5117a3f51b94493caf3de445393
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Dec 31 18:54:47 2024 -0500

    update main README for recent-ish heap checker removal

M	README

commit 023376d651713f0e0a7aac5f8f86b42d0f5ef0de
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Dec 6 15:39:28 2024 -0500

    re-organize docs and convert htmls to asciidoc

M	.gitignore
M	Makefile.am
M	configure.ac
A	docs/cpuprofile-fileformat.adoc
D	docs/cpuprofile-fileformat.html
A	docs/cpuprofile.adoc
D	docs/cpuprofile.html
D	docs/designstyle.css
A	docs/dots/README
R100	docs/overview.dot	docs/dots/overview.dot
R100	docs/pageheap.dot	docs/dots/pageheap.dot
R100	docs/spanmap.dot	docs/dots/spanmap.dot
R100	docs/threadheap.dot	docs/dots/threadheap.dot
A	docs/heapprofile.adoc
D	docs/heapprofile.html
M	docs/index.html
D	docs/pprof.1
D	docs/pprof.see_also
A	docs/pprof_integration.adoc
D	docs/pprof_remote_servers.html
D	docs/t-test1.times.txt
D	docs/tcmalloc-opspercpusec.vs.threads.1024.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.128.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.131072.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.16384.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.2048.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.256.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.32768.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.4096.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.512.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.64.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.65536.bytes.png
D	docs/tcmalloc-opspercpusec.vs.threads.8192.bytes.png
D	docs/tcmalloc-opspersec.vs.size.1.threads.png
D	docs/tcmalloc-opspersec.vs.size.12.threads.png
D	docs/tcmalloc-opspersec.vs.size.16.threads.png
D	docs/tcmalloc-opspersec.vs.size.2.threads.png
D	docs/tcmalloc-opspersec.vs.size.20.threads.png
D	docs/tcmalloc-opspersec.vs.size.3.threads.png
D	docs/tcmalloc-opspersec.vs.size.4.threads.png
D	docs/tcmalloc-opspersec.vs.size.5.threads.png
D	docs/tcmalloc-opspersec.vs.size.8.threads.png
A	docs/tcmalloc.adoc
D	docs/tcmalloc.html

commit ddfa828b3f860ac3462781ae84786513a74aa79d
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Feb 11 15:01:53 2025 -0500

    ci: apt update before running apt install

    So that slightly out-of-date package versions don't fail to be
    installed.

M	.github/workflows/ci.yml

commit 2553bbb57c9d3fb48d3df9491ba97ddae2921cfd
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Feb 11 13:06:44 2025 -0500

    correctly depend on libunwind in our pkg-config files

    I.e. so that pkg-config --static thingy has chance of working.

M	Makefile.am
M	configure.ac

commit b577c2aa79c7f413529b148e047a09fa62eaae20
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 6 10:44:29 2025 -0500

    generic-config: enable use of _Unwind_Backtrace in more configs

    I.e. clang's libunwind and such seems okay-ish.

M	generic-config/config.h

commit f86bf0b0e68a72aec8961a71cc23269fd0c0c697
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 5 14:48:23 2025 -0500

    allow getting/setting sample parameter via {Get,Set}NumericProperty

M	src/tcmalloc.cc

commit 457ed6f6e68bfdcd6b440faefbe4fdbfa3c29a0a
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 3 18:16:44 2025 -0500

    disable memory allocation API overrides under sanitizers

M	src/libc_override.h

commit 4f8769d300f0019736b50472886b09a3f6ae059e
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 3 18:08:26 2025 -0500

    generic-config: fetch __GLIBC__ define from features.h header

    Turns out __GLIBC__ define isn't some sort of pre-defined thing, but
    is defined in features.h. So lets get it.

M	generic-config/config.h

commit 00056433394e526cd15b42b09c1c763e3bf66ec6
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 3 18:21:19 2025 -0500

    stop detecting cfree at configure time

    There is simply no need anymore.

M	CMakeLists.txt
M	cmake/config.h.in
M	configure.ac
M	generic-config/config.h
M	src/tcmalloc_internal.h
M	vsprojects/include/config.h

commit 8978c60c8a2bb8c82b8fdc893818eccdaf0486a4
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 3 17:19:24 2025 -0500

    don't test cfree

    cfree is ancient compat thing. It is missing in modern glibcs too. We
    still provide it (to keep ABI compat), but there is no need to
    exercise it in tests.

M	src/tests/tcmalloc_unittest.cc

commit 5b9a7b359ba340dd1d90323362ca942f5d81282b
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 1 14:18:27 2025 -0500

    tcmalloc_unittest: unbreak sub-process spawning on windows

    Turns out spawnve (which is part of ucrt) has a bug. They have some
    sort of seemingly undocumented thing where current working
    directory (or maybe history of working directories) is preserved in
    special format inside environment block. And spawnve tries to copy it
    and fails to account for possibility of not having this
    stuff.

    https://github.com/huangqinjin/ucrt/blob/d6e817a4cc90f6f1fe54f8a0aa4af4fff0bb647d/exec/cenvarg.cpp#L136

    Apparently when bazel runs tests it clears environment so there is
    nothing to be found and so their naive loop does past-malloced-block
    access and crashes.

    We avoid the it by using somewhat more direct CreateProcessA API.

M	src/tests/tcmalloc_unittest.cc

commit d3743e698d46949c00e515bb8376b0eee13463b5
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 31 17:56:55 2025 -0500

    bazel: make it 'work' on windows and osx

    Finally I figured out how to use @platforms thingy and so we're able
    to mark a bunch of non-windows targets as such. So that
    bazel test :all works on windows (by skipping incompatible targets).

    Building and testing on OSX was also fixed. For some reason bazel
    passes compiler flags to target very old OSX version that lacks even
    basic C++17 features. Thankfully, there is a semi-sensible way to fix
    it too.

A	.bazelrc
M	BUILD
M	MODULE.bazel
M	Makefile.am

commit f1450529893eaa43e9ac990b9e60304765f76b50
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 1 13:57:19 2025 -0500

    tcmalloc_unittest: explicitly spawn+wait for sub-variant processes

    We had somewhat "simpler" approach of each variant running all tests,
    then exec-ing into next variant. But windows doesn't have exec. So we
    simulated by spawn+wait. But somehow under bazel it didn't
    work (perhaps hitting some sandbox limits). So lets unify everything
    and have top-level process do a loop of spawn+waits.

M	src/tests/tcmalloc_unittest.cc

commit 17b772bd9f3e954fedbf1ea354d5ee87f8443b1b
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 31 16:35:04 2025 -0500

    ci: upload right cmake test logs

M	.github/workflows/ci.yml

commit 73e38d7a617182eadc2e74191e1258b85225c635
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 24 12:43:12 2025 -0500

    add basic experiment bazel support

A	BUILD
A	MODULE.bazel
M	Makefile.am
M	src/base/basictypes.h

commit 477be4dd4ff447c93fa786dd52c7024f63297038
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 26 10:05:34 2025 -0500

    introduce "generic" config.h header

    This contains roughly same defines as autotools-produced config.h, but
    it checks headers with GCC-specific tests and it checks some features
    by inspecting known platform defines (i.e. like __GLIBC__). So by
    definition it supports fewer platforms, but it is "good enough" for
    commonly used ones. It is to be used in our bazel support (and maybe
    more later).

M	Makefile.am
A	generic-config/config.h

commit aefaa35d7b190957b81b9d004d5cdccb2eeca68b
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 31 10:30:49 2025 -0500

    ci: manage build directory separately from source checkout

    I don't quite understand what I am doing and why. But cmake builders
    all started failing couple days ago, failing to create something under
    build directory (which we assumed cmake would create under source
    checkout directory).

    I found that other guys do this runner.workspace thingy, which is
    apparently distinct from checkout. And I made it work somehow.

M	.github/workflows/ci.yml

commit fba0796aff2822fe224b4f7037377d166c8fabe0
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jan 27 21:10:31 2025 -0500

    made run_benchmark and malloc_bench work on windows

M	Makefile.am
M	benchmark/malloc_bench.cc
M	benchmark/run_benchmark.cc

commit 23da38622dc6302206579f1c42afa1145724aa4c
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jan 27 21:09:45 2025 -0500

    mass replace WIN32 -> _WIN32

    Apparently, "plain" WIN32 has been wrong for a while. _WIN32 is the
    right one.

M	cmake/config.h.in
M	configure.ac
M	src/memmap.h

commit c7d2d7045fb930aef704ec673251bc38042324d6
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 24 18:26:52 2025 -0500

    simplify away writing of tcmalloc.h from tcmalloc.h.in

    We had some degree of mess caused by need to duplicate tcmalloc.h for
    windows and non-windows and caused by duplication of rewriting logic
    between cmake stuff and autotools stuff.

    We only need it to handle availability of mallinfo stuff, which we're
    able to mostly detect by looking at various libc defines.

    And we need it for the version defines. Which we were already
    partially hardcoding for each version bump anyways. So we simply add a
    test that version hardcoded in tcmalloc.h header is the same as in our
    autoconf bits.

M	.github/workflows/ci.yml
M	CMakeLists.txt
M	Makefile.am
D	cmake/tcmalloc.h.in
M	configure.ac
R088	vsprojects/include/gperftools/tcmalloc.h
src/gperftools/tcmalloc.h
D	src/gperftools/tcmalloc.h.in
M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc

commit e9b3d4a5ae51d8322edb48e777d6067818b3148d
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jan 25 15:20:12 2025 -0500

    Reapply "detect pprof at configure time and skip relevant tests"

    This reverts commit 49ee3cebdc8dd4eea1140df56c0f192e684f12cb.

M	Makefile.am
M	configure.ac

commit ae742a58cbaf692b046afaf1d5ef01fb47df326a
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jan 25 15:20:10 2025 -0500

    Reapply "use system's pprof"

    This reverts commit b5fe0ed7bfaaa9544a56a8b5b31a5dbf4cb8e560.

M	CMakeLists.txt
M	Makefile.am
M	src/tests/heap-profiler_unittest.sh
M	src/tests/profiler_unittest.sh
M	src/tests/sampling_test.cc

commit 1dcf290ca3bfb998cea0e1fff472111ff307ce7b
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 19 10:48:22 2025 -0500

    wip: request stable go version

M	.github/workflows/ci.yml

commit 75f0af7b79ffc3118fbee9cc91b9b6dee3956b1f
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 19 10:44:50 2025 -0500

    wip: enable pprof on CI workers

M	.github/workflows/ci.yml

commit 0576523a6028626a7760dabf591c6713d6f69d73
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 21 12:05:04 2025 -0500

    disable "broken" cmake install target by default

M	CMakeLists.txt

commit 5a6539130dc240091461222e56e9a6896942f82e
Author: Alex Faxa <alexanderfaxa@google.com>
Date:	Thu Jan 16 13:21:29 2025 +0000

    Add CMake install TARGETS support.

M	CMakeLists.txt

commit b5fe0ed7bfaaa9544a56a8b5b31a5dbf4cb8e560
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 21 11:30:32 2025 -0500

    Revert "use system's pprof"

    This reverts commit 606059d9185a7f4c061f6889afa2a9d0ee4e99d3.

    Currenly "mainline" pprof fails at demangling on OSX, so lets revert
    temporarily.

M	CMakeLists.txt
M	Makefile.am
M	src/tests/heap-profiler_unittest.sh
M	src/tests/profiler_unittest.sh
M	src/tests/sampling_test.cc

commit 49ee3cebdc8dd4eea1140df56c0f192e684f12cb
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 21 11:32:03 2025 -0500

    Revert "detect pprof at configure time and skip relevant tests"

    This reverts commit 3219749e766714af1e4e6d7bf284cee65cc777c1.

    Currenly "mainline" pprof fails at demangling on OSX, so lets revert
    temporarily.

M	Makefile.am
M	configure.ac

commit e43f3d258767b85f93b48ff927bb9f375856fdee
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jan 18 13:27:41 2025 -0500

    [windows] handle patching functions that start with endbr{32,64}

    This unbreaks gperftools on mingw ucrt as shipped by debian sid.

M	src/windows/preamble_patcher_with_stub.cc

commit 3219749e766714af1e4e6d7bf284cee65cc777c1
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Nov 24 17:52:53 2024 -0500

    detect pprof at configure time and skip relevant tests

M	Makefile.am
M	configure.ac

commit 606059d9185a7f4c061f6889afa2a9d0ee4e99d3
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Nov 24 17:06:10 2024 -0500

    use system's pprof

M	CMakeLists.txt
M	Makefile.am
M	src/tests/heap-profiler_unittest.sh
M	src/tests/profiler_unittest.sh
M	src/tests/sampling_test.cc

commit 6eea08bc2a8dd9e419ba91fd6911a5049f3c6afd
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Nov 24 15:13:25 2024 -0500

    stop installing perl pprof

M	Makefile.am
M	configure.ac

commit caf3517aa21307e10169f19e34a5ec3f289661bb
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Nov 24 14:59:56 2024 -0500

    made shell script profiling tests compatible with go pprof

M	src/tests/heap-profiler_unittest.sh
M	src/tests/profiler_unittest.sh

commit 84063ad286ae338f3b77e5abc9dec296b13d7304
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Dec 31 00:21:35 2024 -0500

    [libbacktrace-integration] handle xcoff format for AIX

M	vendor/libbacktrace-integration/file-format.c

commit 733e4e0341d14ac0f730ce4b15084b6665642c77
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Dec 30 23:47:21 2024 -0500

    update README about removal of heap checker

M	README

commit 48cd242aadc544b2c8086247cf8ca8c4528e52a7
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 12 17:05:28 2025 -0500

    don't patch libtool anymore

    The fix is now upstream and shipping with Debian Sid.

M	autogen.sh
D	m4/libtool.patch

commit ab499855dc9477834ca88cae585befb8fa15fe95
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Nov 24 13:57:57 2024 -0500

    bump vendor/libbacktrace to d48f84034ce3e53e5

    Which is latest as of Nov 24 2024

M	vendor/libbacktrace/README.md
M	vendor/libbacktrace/dwarf.c
M	vendor/libbacktrace/macho.c

commit c4120da88e9efdec7c9cd89c8642b07b8a7d6f5f
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Nov 23 13:36:47 2024 -0500

    modernize and fix SpanSet iterator handling

    In addition to just being more readable, we fix github issue #1573
    "Unable to build gperftools with _GLIBCXX_DEBUG flag".

M	src/page_heap.cc
M	src/span.h

commit e9fbbf94508cd71bb023802af1c3c3ec5b05fb2f
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 15 20:58:26 2024 -0400

    update comment for fixed fork testing of ManyThreads

M	src/tests/tcmalloc_unittest.cc

commit 8f74e39c00f2a85b04b75378164490309397b310
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 15 20:50:46 2024 -0400

    have fork torturing print total number of forks made

M	src/tests/tcmalloc_unittest.cc

commit 6f7f81b6993d26f1df2d970b258dc8e46becc7a7
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 15 20:39:34 2024 -0400

    [tcmalloc_unittest] don't disable threaded test for fork torturing

    We now detect "SIGTRAP is blocked" case and handle it properly. This
    enables us to run pthread_create. So there is no more need to disable
    ManyThreads test.

    Note, we're not propagating single-stepping mode into child threads,
    so we're still only fork-testing main thread, but that should be
    plenty good for now. I.e. merely not crashing on pthread_create
    anymore when fork torturing is enabled.

M	src/tests/tcmalloc_unittest.cc

commit 2e6061d07a542c2afd59a8983597fbf2bafd5f08
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 8 18:39:32 2024 -0400

    function_ref: enable construction from pair of function and data

M	src/base/function_ref.h

commit 3f04893eeec41ad2887799b7f79aa5b5a4e9b611
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 8 18:33:37 2024 -0400

    unbreak tcmalloc::FunctionRefFirstDataArg

M	src/base/function_ref.h
M	src/tests/function_ref_test.cc

commit 8560276997c61ee44af9493feebf6946509f79a6
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 15 17:47:45 2024 -0400

    have atfork handler also handle SlowTLS and SysAllocator locks

    Referenced github issue #1570 and github issue #1425

    This enables "minimal" allocator to pass fork torture testing.

M	src/static_vars.cc
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/thread_cache_ptr.cc
M	src/thread_cache_ptr.h
M	src/windows/system-alloc.cc

commit dd043fefb971fef1e2af75ecde6ab34b0a84d8e8
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 15 17:45:32 2024 -0400

    implement fork torture testing

    I.e. so that we can exercise malloc in forked child.

    Referenced github issue #1570 and github issue #1425

M	src/tests/tcmalloc_unittest.cc

commit 6e4984bc1bc23b837c677fe4135000c41881a76d
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Oct 5 17:53:00 2024 -0400

    [symbolize] generalize API and implementation

M	src/symbolize.cc
M	src/symbolize.h

commit 03d361bff804f8deff130d72524bbd635b701d31
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Oct 5 17:47:22 2024 -0400

    [debugallocation_test] simplify diagnosing backtrace dumping test

    I.e. by having TCM_DEBUG_BT_SYMBOLIZATION_TEST that disables death
    test and just runs "death" actions directly. So that someone can gdb
    symbolization part.

M	src/tests/debugallocation_test.cc

commit fe5127bac579319f5b1862f2555b0f71e5c030e2
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Oct 5 10:55:00 2024 -0400

    dont include useless .deps directories into make dist archives

    We do arguably a bit reckless thing with simply packaging entire
    vendor/ subdirectory and that gives us some crap. But for now this is
    what we'll do and we'll simply remove that "crap" as part of packaging
    step.

M	Makefile.am

commit 99da87d086c2d211180e9840aa4360f1e0465f98
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Oct 5 11:02:21 2024 -0400

    unbreak compilation on gcc-7

M	vendor/libbacktrace-integration/backtrace-alloc.cc

commit 1f7f60d5c28bee75b2792b8dfd8bd7343c7095bf
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Oct 5 10:40:24 2024 -0400

    [low_level_alloc_unittest] fix lack of override specifier

    As correctly warned by clang.

M	src/tests/low_level_alloc_unittest.cc

commit a836930deb2fbfcfbbd90f5ca2a55119cded77f2
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Oct 4 18:15:15 2024 -0400

    [symbolize] call backtrace_syminfo when pcinfo fails

    This is how we need to deal with symbols without line numbers debug
    info. It unbreaks for example _start symbolization.

    We also refactor the code some and we run symbolization with
    emergency malloc mode enabled.

M	src/debugallocation.cc
M	src/libbacktrace_api.h
M	src/symbolize.cc
M	src/thread_cache_ptr.h

commit 9c8aeab54a3d1d6ec1ad90bfb586a8608729dd79
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Oct 4 19:03:27 2024 -0400

    [emergency_malloc] support GetAllocatedSize on emergency allocations

    This enables OSX to do usual malloc/free things in emergency malloc
    mode. We update unit tests accordingly (i.e. call free instead of
    tc_free when relevant).

M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h
M	src/debugallocation.cc
M	src/emergency_malloc.cc
M	src/emergency_malloc.h
M	src/maybe_emergency_malloc.h
M	src/tcmalloc.cc
M	src/testing_portal.h
M	src/tests/tcmalloc_unittest.cc

commit d5055ef3a2093a655566e925c41ac3330bb2a64e
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Oct 2 17:05:39 2024 -0400

    new symbolize api and implementation

    This is part of effort to get rid of perl pprof dependency. We're
    replacing forking to pprof --symbols with carefully crafted
    libbacktrace integration which has enough support for symbolizing
    backtraces.

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	cmake/config.h.in
M	configure.ac
M	src/base/low_level_alloc.h
M	src/debugallocation.cc
A	src/libbacktrace_api.h
M	src/symbolize.cc
M	src/symbolize.h
M	src/tests/debugallocation_test.cc
M	vendor/README.vendor
A	vendor/libbacktrace-integration/backtrace-alloc.cc
A	vendor/libbacktrace-integration/backtrace-supported.h
A	vendor/libbacktrace-integration/config.h
A	vendor/libbacktrace-integration/file-format.c
M	vsprojects/include/config.h

commit 96885311f3d9f756ecf3ac7d86767c22666b79b9
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Oct 2 19:24:41 2024 -0400

    add vendor/libbacktrace

M	vendor/README.vendor
A	vendor/libbacktrace/.gitignore
A	vendor/libbacktrace/Isaac.Newton-Opticks.txt
A	vendor/libbacktrace/LICENSE
A	vendor/libbacktrace/Makefile.am
A	vendor/libbacktrace/Makefile.in
A	vendor/libbacktrace/README.md
A	vendor/libbacktrace/aclocal.m4
A	vendor/libbacktrace/alloc.c
A	vendor/libbacktrace/allocfail.c
A	vendor/libbacktrace/allocfail.sh
A	vendor/libbacktrace/atomic.c
A	vendor/libbacktrace/backtrace-supported.h.in
A	vendor/libbacktrace/backtrace.c
A	vendor/libbacktrace/backtrace.h
A	vendor/libbacktrace/btest.c
A	vendor/libbacktrace/compile
A	vendor/libbacktrace/config.guess
A	vendor/libbacktrace/config.h.in
A	vendor/libbacktrace/config.sub
A	vendor/libbacktrace/config/enable.m4
A	vendor/libbacktrace/config/lead-dot.m4
A	vendor/libbacktrace/config/libtool.m4
A	vendor/libbacktrace/config/ltoptions.m4
A	vendor/libbacktrace/config/ltsugar.m4
A	vendor/libbacktrace/config/ltversion.m4
A	vendor/libbacktrace/config/lt~obsolete.m4
A	vendor/libbacktrace/config/multi.m4
A	vendor/libbacktrace/config/override.m4
A	vendor/libbacktrace/config/unwind_ipinfo.m4
A	vendor/libbacktrace/config/warnings.m4
A	vendor/libbacktrace/configure
A	vendor/libbacktrace/configure.ac
A	vendor/libbacktrace/dwarf.c
A	vendor/libbacktrace/edtest.c
A	vendor/libbacktrace/edtest2.c
A	vendor/libbacktrace/elf.c
A	vendor/libbacktrace/fileline.c
A	vendor/libbacktrace/filenames.h
A	vendor/libbacktrace/filetype.awk
A	vendor/libbacktrace/install-debuginfo-for-buildid.sh.in
A	vendor/libbacktrace/install-sh
A	vendor/libbacktrace/instrumented_alloc.c
A	vendor/libbacktrace/internal.h
A	vendor/libbacktrace/ltmain.sh
A	vendor/libbacktrace/macho.c
A	vendor/libbacktrace/missing
A	vendor/libbacktrace/mmap.c
A	vendor/libbacktrace/mmapio.c
A	vendor/libbacktrace/move-if-change
A	vendor/libbacktrace/mtest.c
A	vendor/libbacktrace/nounwind.c
A	vendor/libbacktrace/pecoff.c
A	vendor/libbacktrace/posix.c
A	vendor/libbacktrace/print.c
A	vendor/libbacktrace/read.c
A	vendor/libbacktrace/simple.c
A	vendor/libbacktrace/sort.c
A	vendor/libbacktrace/state.c
A	vendor/libbacktrace/stest.c
A	vendor/libbacktrace/test-driver
A	vendor/libbacktrace/test_format.c
A	vendor/libbacktrace/testlib.c
A	vendor/libbacktrace/testlib.h
A	vendor/libbacktrace/ttest.c
A	vendor/libbacktrace/unittest.c
A	vendor/libbacktrace/unknown.c
A	vendor/libbacktrace/xcoff.c
A	vendor/libbacktrace/xztest.c
A	vendor/libbacktrace/zstdtest.c
A	vendor/libbacktrace/ztest.c

commit 94da1c10f9e8120895f61d4d51d2f520557f0109
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Oct 3 21:04:06 2024 -0400

    cleanup unused symbolize.cc from msvc project files

M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj.filters

commit acb9f664608b02f0b0c289118b887e987e748cc1
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Oct 3 20:33:03 2024 -0400

    place LowLevelAlloc into tcmalloc namespace

M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h
M	src/heap-profiler.cc
M	src/tests/low_level_alloc_unittest.cc

commit 40957460b560b19b1edb7ecc28d9cd9ed029dfb7
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Oct 3 17:24:57 2024 -0400

    [low_level_alloc] allocate Arena with custom allocator when provided

    This refactors API so that meta_data_arena isn't needed or used
    anymore. We always used nullptr for this argument anyways.

    We also change code so that PagesAllocator API is able to choose
    rounding up of allocation requests. It now returns pointer to
    allocated memory and it's rounded up size.

    And most important part of this change is that Arena instance itself
    is now allocated with provided allocator (when provided). This reduces
    locking depencies.

    We make sure to cover new logic by test.

M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h
M	src/emergency_malloc.cc
M	src/heap-profiler.cc
M	src/tests/low_level_alloc_unittest.cc

commit d0d4363a343aaad2ebae9a5284edce4df4cfc8bb
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Oct 3 17:06:22 2024 -0400

    structure low_level_alloc as own convenience archive

M	CMakeLists.txt
M	Makefile.am

commit 3c261d90905dc6e0cd71adc56a8df6d6520da936
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Oct 3 16:32:13 2024 -0400

    stop linking malloc_hooks to low_level_alloc

M	CMakeLists.txt
M	Makefile.am
M	src/base/low_level_alloc.cc
M	src/tests/low_level_alloc_unittest.cc

commit 2e1799aa78192df1a916be38f5fb0819857cce3e
Author: Andrey Semashev <Lastique@users.noreply.github.com>
Date:	Thu Oct 3 18:24:54 2024 +0300

    Fix gcc 10 compilation error

    Apparently, gcc 10 doesn't support trailing return types for lambdas
    with an attribute.

    ```
    src/tests/sampling_test.cc: In lambda function:
    src/tests/sampling_test.cc:70:56: error: expected '{' before '->'
    token
       70 |   auto local_noopt = [] (void* ptr) ATTRIBUTE_NOINLINE ->
       void* {
	  |							   ^~
    src/tests/sampling_test.cc: In function 'void* AllocateAllocate()':
    src/tests/sampling_test.cc:70:56: error: base operand of '->' has
    non-pointer type 'AllocateAllocate()::<lambda(void*)>'
    src/tests/sampling_test.cc:70:59: error: expected unqualified-id
    before 'void'
       70 |   auto local_noopt = [] (void* ptr) ATTRIBUTE_NOINLINE ->
       void* {
	  |							      ^~~~
    ```

    Remove the trailing return type as it is deduced from the `noopt`
    call anyway.

M	src/tests/sampling_test.cc

commit c7dcabf09a29ce2a4975da3b897501904a2a328e
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Oct 2 18:49:44 2024 -0400

    [proc_maps_iterator_test] handle unknown PT_XYZ defines

M	src/tests/proc_maps_iterator_test.cc

commit fdbf9833ab007f244f6da3a9611b98caa0dca2ec
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 30 12:57:12 2024 -0400

    [proc_maps_iterator] add implementation on top of dl_iterate_phdr

    And unbreak on it FreeBSD.

    Turns out not only they don't mount procfs by default, their
    /proc/pid/map fails to supply mapping offsets. Without offsets all the
    hope is lost.

M	src/base/proc_maps_iterator.cc
M	src/heap-profiler.cc

commit d88234711987e0a015e9c9acfa011a3172958aec
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Oct 2 17:09:08 2024 -0400

    [proc_maps_iterator_test] print all elf program headers

    I.e. to match with what proc maps iterator did.

M	src/tests/proc_maps_iterator_test.cc

commit d20ae0c8d86818855541bac7f1aeba3aa545fda8
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 30 20:24:55 2024 -0400

    move GetProgramInvocationName into sysinfo

M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/symbolize.cc

commit 6fee38e5e730d24deb41f1e258be20d7084371a1
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Sep 29 14:01:18 2024 -0400

    build symbolizer stuff only for debug allocator

    Since it is now the only place that uses it

M	CMakeLists.txt
M	Makefile.am

commit 0f8cb8416ec0f8021bdc00613b220b2773646d96
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 30 12:23:52 2024 -0400

    [sampling_test] print errno when mkstemp fails

    I see rare occasional failures there, which look very odd. Typically
    both sampling and sampling_debug tests fail at about the same time. So
    hopefully we can diagnose them sometime.

M	src/tests/sampling_test.cc

commit 9d58d03fa45e474e04e271bb3d48dfeaa252b4d6
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 30 12:23:28 2024 -0400

    set default cmake build type to RelWithDebInfo

    Which is the only sensible default. Should have been upstream default,
    really.

M	CMakeLists.txt

commit feb43df6aee35f71b05aac839563d5a58031ad09
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Sep 29 13:57:46 2024 -0400

    remove some unused includes

M	src/heap-profile-table.cc
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters

commit d87c1a5c77d66843df99e2efced0e66d6b6b2bbb
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Sep 29 13:51:38 2024 -0400

    amputate HeapProfileTable::Snapshot

    Those are remains of heap checker.

M	src/heap-profile-table.cc
M	src/heap-profile-table.h

commit 5035d10c854f4a0a11afb1bd5b2e197df6bc3348
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 30 11:40:48 2024 -0400

    drop unused kStripFrames constant

M	src/heap-profile-table.cc

commit 1cfbc55fbf0ae178d4861568cbe95574aabbfba1
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Oct 2 16:14:14 2024 -0400

    [debugallocation_test] make death stack trace testing more rigorous

    I.e. make sure we actually have stack-trace at least up to actual
    allocation function, not just main().

M	src/tests/debugallocation_test.cc

commit 0aa7254ac9b9c8848147cb8f13f6477cd3581c21
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Oct 2 16:23:28 2024 -0400

    [debugallocation] grab entire stack trace of deletion

    We used GetCallerStackTrace thingy before, but it is not entirely
    reliable in it's detection of malloc stack frames (i.e. on OSX). So
    lets do full thing instead. Those stacktraces are to be printed to
    users anyways.

M	src/debugallocation.cc

commit 28c2853cbac4859c3ce01b55d9481ae7593d293c
Author: Andrey Semashev <Lastique@users.noreply.github.com>
Date:	Wed Oct 2 19:33:28 2024 +0300

    Avoid sampling_test failures

    Increase the upper bound of allocated memory amount to avoid test
    failures on Kubuntu 24.04.

    Fixes https://github.com/gperftools/gperftools/issues/1564.

M	src/tests/sampling_test.cc

commit a9a52320fc7200709920ccb0f8c8fbc744ceefc9
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Sep 27 21:57:41 2024 -0400

    drop a bunch of unnecessary "using std::XYX" declarations

M	src/central_freelist.cc
M	src/debugallocation.cc
M	src/heap-profile-table.cc
M	src/heap-profiler.cc
M	src/malloc_hook.cc
M	src/memfs_malloc.cc
M	src/profile-handler.cc
M	src/profiler.cc
M	src/symbolize.cc
M	src/symbolize.h
M	src/tcmalloc.cc
M	src/thread_cache.cc

commit b128b1557e9561e3eb24d829496b4e92babaf213
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Sep 27 22:20:08 2024 -0400

    unbreak profiler_unittest when linking statically

    When linking statically we may end up calling ProfilerGetCurrentState
    earlier than profiler is initialized. And we segfaulted on that early
    call. Lets make us handle this case gracefully.

M	src/profiledata.cc

commit f0bab33d2794b379a08be7a2607cd6177398f3cc
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Sep 27 17:46:48 2024 -0400

    do non-minimal cmake configuration for ci.yml

M	.github/workflows/ci.yml

commit 608e6d06255477a9b183e58b2a86a97ead8f921e
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Sep 27 17:34:36 2024 -0400

    unbreak cmake testing of heap-profiler

M	CMakeLists.txt

commit aaed4feb28d99bc05a9acc6ca7e66295f62a6b9a
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Sep 27 14:42:22 2024 -0400

    [heap-profiler] use regular stacktracing API

    Instead of MallocHook::GetCallerStackTrace.

    Thing is, GetCallerStackTrace isn't reliable beyond ELF systems, like
    OSX. And, yet, things just work without it for e.g. heap
    sampling. Why? Because pprof already knows how to exclude
    tcmalloc-internal stack frames (by looking at e.g. tcmalloc::
    namespace). So we do the same for heap profiler.

    This fixes heap profiling unit tests on OSX.

M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc

commit c1e3eac0c67891e8538a13b6be07367851d572d6
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Sep 27 14:33:49 2024 -0400

    move Invoke*Hook stuff under tcmalloc namespace

    This will allow us to move heap profiling from
    MallocHook::GetCallerStackTrace into plain tcmalloc::GrabBacktrace
    thingy.

M	src/debugallocation.cc
M	src/gperftools/malloc_hook.h
M	src/malloc_hook-inl.h
M	src/malloc_hook.cc
M	src/tcmalloc.cc
M	src/windows/patch_functions.cc

commit d0724116cfce0b71c42bc793b2ba90e076447212
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Sep 27 14:30:01 2024 -0400

    drop a bunch of bogus private stuff from public malloc_hook.h

M	src/gperftools/malloc_hook.h
M	src/malloc_hook-inl.h
M	src/malloc_hook.cc

commit fc86294f9de455de3a11783af9cdd6b76d5949de
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Sep 26 19:19:02 2024 -0400

    add initial github actions CI

A	.github/workflows/ci.yml
A	.github/workflows/scripts/msvc-env.rb

commit f01510ccf2a085088808e673e03f4f2cdb0b5088
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Sep 27 00:02:50 2024 -0400

    make large_heap_fragmentation_unittest not as painful on windows

M	src/tests/large_heap_fragmentation_unittest.cc

commit 96e3eca05ec2a81d2fde5eb11ab4c9256be2d944
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Sep 26 14:58:40 2024 -0400

    amputate dead travis CI integration

D	.travis.yml

commit ff061b4de399b533feef71a4b83dc78e2051381f
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Sep 26 14:51:59 2024 -0400

    actualize AUTHORS

M	AUTHORS

commit 6a7419e39fb7c3a0c4769be0ca177e808df76ad3
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Sep 18 17:11:40 2024 -0400

    drop mmap_hook

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	src/base/low_level_alloc.cc
M	src/emergency_malloc.cc
M	src/heap-profile-table.cc
M	src/heap-profiler.cc
M	src/malloc_hook.cc
A	src/memmap.h
D	src/mmap_hook.cc
D	src/mmap_hook.h
M	src/system-alloc.cc
D	src/tests/mmap_hook_test.cc
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj.filters

commit 00d235325f6f21fc0e00f6e63145b377b5541681
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Sep 18 16:49:47 2024 -0400

    drop memory region map

M	CMakeLists.txt
M	Makefile.am
M	src/heap-profile-stats.h
D	src/memory_region_map.cc
D	src/memory_region_map.h

commit 07c30d12294a81c2a82fcc8da2df435139de5876
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Sep 18 16:43:13 2024 -0400

    amputate mmap heap profiling

    It wasn't entirely functional (i.e. see
    https://github.com/gperftools/gperftools/issues/1010 or
    https://github.com/gperftools/gperftools/issues/1458) and it's
    underlying mmap hooks facility introduces significant source
    portability complications. And since we've just dropped heap checker
    we can drop entire mmap hooks stuff too.

M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc

commit b19a1999a4c909cfd269d39a4d882fb2833433d6
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Sep 17 19:52:35 2024 -0400

    amputate MallocHook_InitAtFirstAllocation_HeapLeakChecker logic

M	src/malloc_hook.cc
M	src/mmap_hook.cc
M	src/tests/mmap_hook_test.cc

commit 187b31e95209418a568f36da9a78f27022dbda40
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Sep 17 13:31:45 2024 -0400

    amputate heap checker

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	configure.ac
D	docs/heap_checker.html
D	src/base/linuxthreads.cc
D	src/base/linuxthreads.h
M	src/gperftools/heap-checker.h
C050	src/testing_portal.h	src/heap-checker-stub.cc
D	src/heap-checker.cc
M	src/malloc_extension.cc
M	src/tcmalloc.cc
M	src/testing_portal.h
D	src/tests/heap-checker-death_unittest.sh
C051	src/testing_portal.h	src/tests/heap-checker-stub-test.cc
D	src/tests/heap-checker_unittest.cc
M	src/windows/port.h
M	vsprojects/page_heap_test/page_heap_test.vcxproj

commit 05692cc0579b06fb2d1bea3ede130bbf48b7c8c1
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Sep 17 13:02:38 2024 -0400

    drop unused windows/{addr2line,nm}-pdb

M	Makefile.am
M	README_windows.txt
M	gperftools.sln
M	src/pprof
M	src/windows/CMakeLists.txt
D	src/windows/addr2line-pdb.c
D	src/windows/nm-pdb.c
D	vsprojects/addr2line-pdb/addr2line-pdb.vcxproj
D	vsprojects/addr2line-pdb/addr2line-pdb.vcxproj.filters
D	vsprojects/nm-pdb/nm-pdb.vcxproj
D	vsprojects/nm-pdb/nm-pdb.vcxproj.filters

commit be755a8d3ca8ba36040b4839a16fd948b7fad47b
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Sep 17 12:29:07 2024 -0400

    mass-replace NULL -> nullptr

M	benchmark/binary_trees.cc
M	benchmark/run_benchmark.cc
M	cmake/tcmalloc.h.in
M	src/addressmap-inl.h
M	src/base/commandlineflags.h
M	src/base/elf_mem_image.cc
M	src/base/elf_mem_image.h
M	src/base/googleinit.h
M	src/base/linuxthreads.cc
M	src/base/logging.cc
M	src/base/logging.h
M	src/base/proc_maps_iterator.cc
M	src/base/spinlock_linux-inl.h
M	src/base/spinlock_posix-inl.h
M	src/base/sysinfo.cc
M	src/base/vdso_support.cc
M	src/base/vdso_support.h
M	src/central_freelist.cc
M	src/central_freelist.h
M	src/common.cc
M	src/common.h
M	src/debugallocation.cc
M	src/emergency_malloc.cc
M	src/gperftools/heap-checker.h
M	src/gperftools/malloc_extension.h
M	src/gperftools/malloc_hook.h
M	src/gperftools/profiler.h
M	src/gperftools/stacktrace.h
M	src/gperftools/tcmalloc.h.in
M	src/heap-checker.cc
M	src/heap-profile-stats.h
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/libc_override_osx.h
M	src/linked_list.h
M	src/malloc_extension.cc
M	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/page_heap_allocator.h
M	src/pagemap.h
M	src/profile-handler.cc
M	src/profiledata.cc
M	src/profiler.cc
M	src/span.cc
M	src/span.h
M	src/stack_trace_table.h
M	src/stacktrace_arm-inl.h
M	src/stacktrace_libgcc-inl.h
M	src/stacktrace_powerpc-darwin-inl.h
M	src/stacktrace_powerpc-inl.h
M	src/stacktrace_powerpc-linux-inl.h
M	src/static_vars.cc
M	src/symbolize.cc
M	src/symbolize.h
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/tests/getpc_test.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/heap-profiler_unittest.cc
M	src/tests/malloc_extension_test.cc
M	src/tests/profile-handler_unittest.cc
M	src/tests/profiledata_unittest.cc
M	src/tests/profiler_unittest.cc
M	src/tests/realloc_unittest.cc
M	src/tests/tcmalloc_large_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/thread_cache.cc
M	src/thread_cache.h
M	src/windows/addr2line-pdb.c
M	src/windows/auto_testing_hook.h
M	src/windows/get_mangled_names.cc
M	src/windows/nm-pdb.c
M	src/windows/override_functions.cc
M	src/windows/patch_functions.cc
M	src/windows/port.cc
M	src/windows/port.h
M	src/windows/preamble_patcher.cc
M	src/windows/preamble_patcher.h
M	src/windows/preamble_patcher_test.cc
M	src/windows/preamble_patcher_with_stub.cc
M	src/windows/system-alloc.cc
M	vsprojects/include/gperftools/tcmalloc.h

commit 91b96b92a2bb8397c1ea81f284720cd7fbf837e3
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Sep 17 20:01:05 2024 -0400

    slightly saner malloc_hook_test implementation

M	src/tests/malloc_hook_test.cc

commit e1014dead2029b341d06027b4f2b5562d799d5b1
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Sep 25 18:25:20 2024 -0400

    bump version to 2.16

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	vsprojects/include/gperftools/tcmalloc.h

commit b569be106c01e3814dafee57b619874c04cefda0
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Sep 25 17:32:46 2024 -0400

    [stacktrace_unittest] skip "from ucontext" case when not on glibc

    glibc carefully handles unwind info for signal trampoline stack frame,
    so even brittle "skip N frames" case works there. But e.g. on musl it
    doesn't.

    So lets skip this test on non-glibc systemsfor now, until we test
    things closer to how it is done by cpu profiler.

M	src/tests/stacktrace_unittest.cc

commit 6aecbbdb6b4545fb9d955be42491ed60b4ecf2c8
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Sep 25 17:11:02 2024 -0400

    unbreak heap checker unittest on systems without execinfo.h

    I.e. musl

M	src/tests/heap-checker_unittest.cc

commit 3cc9014c578463647fa3441b16ae99e6fd93d313
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 23 13:45:45 2024 -0400

    make profiler_unittest less brittle

    So I noticed that profiler_unittest failed somewhat regularly on
    armhf. On inspection I found that it fails because the test compares
    "nested-most" tick counts between several profiles and we had most
    ticks inside inlined atomic ops functions and not test_main_thread.

    On the other hand, removing atomic ops from nested loop makes test way
    too fast for the modern quick x86 desktops.

    So lets make it try harder to be non-brittle. We do that by grabbing
    access to profiler's ticks count, which helps our inner loops to run
    long enough to get sufficient ticks count.

    We also do couple more minor updates.

    *) we have shell script use random temp directory name. Which allows
    us to exercise golang-stress and similar utils.

    *) we drop PERFTOOLS_UNITTEST and relevant code because this
    "variable" was always set to be true anyways.

M	src/profiledata.h
M	src/profiler.cc
M	src/tests/profiler_unittest.cc
M	src/tests/profiler_unittest.sh

commit dd751345df10a6f789356c2eb3e6f64eb6888ba5
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Sep 20 13:50:37 2024 -0400

    unbreak generic_fp frame skipping

    Sadly, we missed another issue there which is we returned negative
    frame counts whenever skip_count exceeded number of stack frames we
    had.

M	src/stacktrace_generic_fp-inl.h
M	src/tests/stacktrace_unittest.cc

commit e46b3e79aa129a4294ab571f173c7bedff0540b3
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Sep 19 18:52:27 2024 -0400

    make sampling_test more robust

    The test inspects "nested-most" frames in malloc sampling samples. And
    some compile options caused noopt to seen as call site of
    malloc. I.e. because noopt is immediately after malloc.

    To make things more robust we create local "copy" of noopt that is
    marked as noinline and so immediately next instruction after malloc is
    call to this local_noopt thingy, which makes test more robust since
    malloc stack trace will see that, as we expect, AllocateAllocate is
    what calls malloc.

M	src/tests/sampling_test.cc

commit 7803e80bb20437c43c2e95848b5298cf6ac083f6
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Sep 18 15:31:49 2024 -0400

    don't fail mmap_hook_test on mmap recursions

    Because some backtracing methods (which we invoke as part of calling
    mmap hooks) do use mmap themselves.

    Fixes github ticket #1558

M	src/tests/mmap_hook_test.cc

commit 74a7381cc966703a175d42b216b791a92612c9fb
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Sep 18 12:37:10 2024 -0400

    initialize tcmalloc's sample parameter at earliest opportunity

    I.e. so that correct value is available immediately, so that sampling
    is more precise.

    Update github ticket #1557.

M	src/sampler.cc
M	src/tests/sampler_test.cc

commit c2dc36d00dee260c7dd7bbc84614f62d12d5f832
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Sep 18 12:23:43 2024 -0400

    improve quality of sampling_test

    Part of this change is better diagnostic for when/if it fails. And
    most important part is compensating for the delay between sampling
    parameter is set for the test and when it is actually taken into
    account by thread cache Sampler logic.

    As a result about 1% of flaking probability has been fixed as we're
    getting mean estimate for the allocated size actually same (or about
    same) as allocated size.

    Update github ticket #1557.

M	CMakeLists.txt
M	src/tests/sampling_test.cc
M	vsprojects/sampler_test/sampler_test.vcxproj
M	vsprojects/sampler_test/sampler_test.vcxproj.filters

commit cefaaffeb4add313d5232c0aea363961035c2628
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Sep 17 20:37:23 2024 -0400

    fix compiler warning in malloc_hook_test

M	src/tests/malloc_hook_test.cc

commit 8899936b771fce275f5ab4907e42d65b5a1cae17
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 16 20:41:11 2024 -0400

    fix warning in profile-handler unittest

    Clang kinda rightfully noticed that if FLAGS_test_profiler_enabled is
    false (and it never is false in practice), we'd be reading unitialized
    variables. Since this flag is never updated, we can simply drop those
    dead "false" paths.

M	src/tests/profile-handler_unittest.cc

commit 6b8962d797713cfc73c4791fd5f4a22d268ac53c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jun 14 22:57:17 2024 -0400

    bump version to 2.16rc

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	vsprojects/include/gperftools/tcmalloc.h

commit 362938f1f743c971658d12e23176611550516497
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 16 19:41:13 2024 -0400

    replace sprintf usage with snprintf

    Even though this specific usage is safe, it is, arguably, not great to
    be using sprintf in year 2024. snprintf is portable enough this
    days. Thanks goes to OSX headers that warn about sprintf loudly enough
    to be noticed.

M	src/malloc_extension.cc

commit 52735674708dfb5880111c15396b72894fcaa260
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 16 19:03:58 2024 -0400

    [trivialre] fix past-end-of-string access in MatchSubstring

    Thanks goes to MSVC's string_view asserts that check this.

M	benchmark/trivialre.h
M	benchmark/trivialre_test.cc

commit 38abfd9038c4f193dd2b8ebbd0dca79cbcc9ab11
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 16 18:38:35 2024 -0400

    make dist windows/CMakeLists.txt

M	Makefile.am

commit d5c94e0bd3ef876fb8d1ac40ebd6177e60b81144
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 16 18:13:22 2024 -0400

    unbreak make dist for benchmark/trivialre.h

M	Makefile.am

commit e0844fa7991fc8564cb1f993ed3e1c75f55da987
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 16 14:37:03 2024 -0400

    [low_level_alloc_unittest] cleanup unused variable usage

M	src/tests/low_level_alloc_unittest.cc

commit a4e2f950382c46cecc50e2ca1d735cb8b831de14
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 16 13:11:23 2024 -0400

    [osx] unbreak EmergencyMallocNoHook test

    OSX's malloc zones stuff is essentially incompatible with emergency
    malloc. In order to handle it, our unit tests use tc_free directly in
    order to free memory allocated by emergency malloc. So lets keep doing
    it for our newer code that exercises calloc/free pair as well.

M	src/libc_override_osx.h
M	src/tests/tcmalloc_unittest.cc

commit 92fd07cc2fe8a9fcfff488063ee4d61140cc55df
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Sep 14 19:28:26 2024 -0400

    bump googletest version to latest

M	vendor/README.vendor
D	vendor/googletest/.github/workflows/gtest-ci.yml
M	vendor/googletest/BUILD.bazel
M	vendor/googletest/CMakeLists.txt
M	vendor/googletest/MODULE.bazel
M	vendor/googletest/README.md
M	vendor/googletest/WORKSPACE
M	vendor/googletest/ci/linux-presubmit.sh
M	vendor/googletest/ci/windows-presubmit.bat
M	vendor/googletest/docs/advanced.md
M	vendor/googletest/docs/gmock_cook_book.md
M	vendor/googletest/docs/gmock_for_dummies.md
M	vendor/googletest/docs/primer.md
M	vendor/googletest/docs/quickstart-bazel.md
M	vendor/googletest/docs/reference/mocking.md
M	vendor/googletest/docs/reference/testing.md
A	vendor/googletest/fake_fuchsia_sdk.bzl
M	vendor/googletest/googlemock/CMakeLists.txt
M	vendor/googletest/googlemock/include/gmock/gmock-actions.h
M	vendor/googletest/googlemock/include/gmock/gmock-matchers.h
M	vendor/googletest/googlemock/include/gmock/gmock-more-actions.h
M	vendor/googletest/googlemock/include/gmock/gmock-spec-builders.h
M
vendor/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h
M	vendor/googletest/googlemock/include/gmock/internal/gmock-port.h
M	vendor/googletest/googlemock/src/gmock-cardinalities.cc
M	vendor/googletest/googlemock/src/gmock-internal-utils.cc
M	vendor/googletest/googlemock/src/gmock-matchers.cc
M	vendor/googletest/googlemock/test/gmock-actions_test.cc
M
vendor/googletest/googlemock/test/gmock-matchers-arithmetic_test.cc
M
vendor/googletest/googlemock/test/gmock-matchers-comparisons_test.cc
M
vendor/googletest/googlemock/test/gmock-matchers-containers_test.cc
M	vendor/googletest/googlemock/test/gmock-matchers-misc_test.cc
M	vendor/googletest/googlemock/test/gmock-more-actions_test.cc
M	vendor/googletest/googlemock/test/gmock-pp_test.cc
M	vendor/googletest/googlemock/test/gmock_link_test.h
M	vendor/googletest/googletest/README.md
M
vendor/googletest/googletest/include/gtest/gtest-assertion-result.h
M	vendor/googletest/googletest/include/gtest/gtest-death-test.h
M	vendor/googletest/googletest/include/gtest/gtest-param-test.h
M	vendor/googletest/googletest/include/gtest/gtest-typed-test.h
M	vendor/googletest/googletest/include/gtest/gtest.h
M
vendor/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h
M
vendor/googletest/googletest/include/gtest/internal/gtest-filepath.h
M
vendor/googletest/googletest/include/gtest/internal/gtest-internal.h
M
vendor/googletest/googletest/include/gtest/internal/gtest-param-util.h
M
vendor/googletest/googletest/include/gtest/internal/gtest-port-arch.h
M	vendor/googletest/googletest/include/gtest/internal/gtest-port.h
M
vendor/googletest/googletest/include/gtest/internal/gtest-type-util.h
M	vendor/googletest/googletest/src/gtest-death-test.cc
M	vendor/googletest/googletest/src/gtest-internal-inl.h
M	vendor/googletest/googletest/src/gtest-port.cc
M	vendor/googletest/googletest/src/gtest.cc
M	vendor/googletest/googletest/test/googletest-color-test.py
M	vendor/googletest/googletest/test/googletest-death-test-test.cc
M
vendor/googletest/googletest/test/googletest-json-output-unittest.py
M	vendor/googletest/googletest/test/gtest_json_test_utils.py
M	vendor/googletest/googletest/test/gtest_unittest.cc
M	vendor/googletest/googletest_deps.bzl

commit ea35d14585746056e0f3542103a0f30619766cb2
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Sep 14 17:24:20 2024 -0400

    stop checking unused malloc_hook "subsection"

    Originally at Google they had to do 2 subsections for hookable
    functions because of some linking detais (in bazel infrastructure they
    still do different libraries as .so-s for tests). So "generic" hooks
    (such as mmap/sbrk) were in malloc_hook section and tcmalloc's
    were/are in google_malloc. Since those are different bazel/blaze
    libraries. And we kept this distinction simply because no-one bothered
    to undo it, despite us never needing it.

    We recently refactored mmap/sbrk hooking. And we don't use section
    stuff anymore for those hooks. And so there are no malloc_hook
    anymore. And so we were getting bogus and useless warnings about empty
    section. So lets avoid this.

M	src/gperftools/malloc_hook.h
M	src/malloc_hook.cc

commit fd09d89fcd9ded59c0a3142c703b8884c288eece
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 18 15:28:56 2024 -0400

    [qnx] provide -lregex dependency for googletest

    For more context see:
    https://github.com/gperftools/gperftools/pull/1544

M	Makefile.am
M	configure.ac

commit a5d86777ceef8c0d76040f5540e446688a1dfa74
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Sep 13 13:59:41 2024 -0400

    [malloc_bench] add rnd_dependent_8cores benchmark

    This benchmark exercizes multi-threaded central free list operations,
    and this is where we're losing to a bunch of competing malloc
    (i.e. which
    shard heap).

M	benchmark/malloc_bench.cc

commit ea81e46ff146ad6d30330b0d7b650775ccd0d77d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Sep 7 14:39:25 2024 -0400

    improve benchmarks facility

    We now support a set of command line flags similar to "abseil"
    benchmark thingy. I.e. to let people specify a subset of benchmarks or
    run them longer/shorter as needed.

    This commit also includes small, portable and very simple regexp
    facility. It isn't good enough for some production use, but it is
    plenty good for some testing uses or benchmark selection.

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	benchmark/malloc_bench.cc
M	benchmark/run_benchmark.cc
M	benchmark/run_benchmark.h
A	benchmark/trivialre.h
A	benchmark/trivialre_test.cc
M	benchmark/unwind_bench.cc

commit 7fa0c2da537cee37609246feefb47c4fb5a551c5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Sep 5 22:56:23 2024 -0400

    modernize malloc_bench

    Instead of relying on gperftools-specific tc_XYZ functions for sized
    deallocation and memalign we use standard C++ facilities. There are
    also other minor improvements like mallocing larger buffers rather
    than statically allocating them.

M	benchmark/malloc_bench.cc
M	benchmark/run_benchmark.cc

commit f46c141b4eaea3872c2bfc3974d1240ff16dd00b
Author: Olivier Langlois <olivier@trillion01.com>
Date:	Sun Sep 1 15:45:16 2024 -0400

    make ThreadCache constructor/destructor private

    1. This documents the intent that the way to create/destroy a
    ThreadCache
	object is through the static methods NewHeap()/DeleteCache()
    2. It makes using the class less error prone. The compiler will
    complain
       if some new code is accidentally creating objects directly
    3. This may allow some compilers to optimize code knowing that those
       functions are private

    Signed-off-by: Olivier Langlois <olivier@trillion01.com>

M	src/thread_cache.h

commit ae15d7a490eff0cd93fbbcfa89469f672e0ec7cd
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 18 15:52:59 2024 -0400

    fix spurious rare failures in profile handler unittest

    It's method of verifying that cpu profiling ticks happens is
    inherently brittle. It sleeps certain time and then checks if ticks
    happened during that time. And sleeping is by wall clock time. But due
    to cpu scheduling being unpredictable, it is not impossible to see no
    ticks even waiting 200 ms. We improve the issue by having the code
    loop a bit until it seeks ticks happen.

M	src/tests/profile-handler_unittest.cc

commit 2e0b81852ed36ad872548e4664a8c3df5e0ce27b
Author: Xiang.Lin <myd.xia@gmail.com>
Date:	Thu Aug 8 14:53:00 2024 +0800

    [qnx] prefer fp unwinder

M	src/stacktrace.cc

commit 68ae9e624e800f9a09654e2d26bfbbeca7e2faf7
Author: Xiang.Lin <myd.xia@gmail.com>
Date:	Thu Aug 8 10:41:03 2024 +0800

    [qnx] fix empty proc maps info

    Qnx pmap file starts with a header line, skip it to make ForEachLine
    continue feeding next valid proc maps line.

    vaddr,size,flags,prot,maxprot,dev,ino,offset,rsv,guardsize,refcnt,mapcnt,path
    0x0000001c0ae92000,0x0000000000002000,0x00010071,0x05,0x0d,0x00000802,0x00000000c00000ab,
    \
      0x0000000000000000,0x0000000000000000,0x00000000,0x0000017e,0x0000017c,/bin/cat

M	src/base/proc_maps_iterator.cc

commit 285908e8c7cfa98659127a23532c060f8dcbd148
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jun 21 15:52:57 2024 -0400

    actualize TCMallocGuard comment

    It was incorrectly refering to long gone behavior of updating
    environment variables to tell (ancient versions of) libstdc++ to use
    new/delete.

M	src/tcmalloc.cc

commit 469da8dac6c22cd4e2492a56babf09a895c60f27
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jun 21 13:21:39 2024 -0400

    override_functions: add _{msize,recalloc}_base

    Apparently modern ucrt does have _msize_base and _recalloc_base
    defined in same .obj files as their corresponsing "non-base"
    functions. And they're seemingly used somewhere in their C or C++
    runtime. So lets provide them too in our override_functions.cc, so
    that overriding malloc routines in MSVC's static C runtime option
    works.

    Otherwise, whatever msize_base usage pulls msize.obj file that wants
    to define regular msize, and with msize already provided by
    override_function, we'd rightfully get linking error.

    Update github ticket
    https://github.com/gperftools/gperftools/issues/1430

M	src/windows/override_functions.cc

commit 825b6638cf76aecc5a540d3fa662d157760fc11e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 12 19:43:04 2024 -0400

    don't try to unit-test generic_fp on known-broken platforms

    I.e. 32-bit legacy arm has broken frame pointers backtracing.

    This fixes https://github.com/gperftools/gperftools/issues/1512

M	src/stacktrace.cc

commit 7c736310f94bacdbe19cce8cc4944e71dcaa61f6
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 12 15:44:03 2024 -0400

    avoid testing known-to-fail cases of backtracing from ucontext

    See https://github.com/gperftools/gperftools/issues/1524

M	src/tests/stacktrace_unittest.cc

commit 5284f386ee86f333ba546e7befc18690aba10254
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 12 16:35:28 2024 -0400

    allow disabling actual versus given sized delete checking

    See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279560#c10 and
    https://github.com/llvm/llvm-project/pull/90292

M	src/debugallocation.cc

commit 778df41889eb562bb5e7e64526824a2604d832f9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jun 11 18:54:45 2024 -0400

    unbreak calloc memsetting extra memory in emergency malloc mode

M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc

commit cb2a58fb1ba2eea7f000f680be021ab45347b188
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jun 10 17:09:52 2024 -0400

    correctly find getpc.h header for GetPC configure test

    When building out-of-tree include of src/getpc.h fails, so we
    decide incorrectly that GetPC isn't functional.

    Fixes github issue #1525

M	configure.ac

commit 46c63ae3f606d4de015e00bff1fee79d9817dc12
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jun 10 17:21:10 2024 -0400

    .gitignore of recently added min_per_thread_cache_size_test

    It was added by it's wrong name, so lets fix it.

M	.gitignore

commit addf7514207db473a632e6dbff31cd0c4559b0f9
Author: Ishant Goyal <goyalishant001@gmail.com>
Date:	Sat May 18 05:09:54 2024 +0530

    Added support to configure lower bound on per-thread cache size

    [alkondratenko@gmail.com: removed spurious new line at thread_cache.h]
    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	docs/tcmalloc.html
M	src/gperftools/malloc_extension.h
M	src/tcmalloc.cc
A	src/tests/min_per_thread_cache_size_test.cc
M	src/thread_cache.cc
M	src/thread_cache.h

commit 9fb05f3467bcc8ce5d3eff988645790bd05b65ea
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed May 29 19:22:09 2024 -0400

    Reapply "[osx] implement native c++ allocation operators on osx"

    This reverts commit a0880d78f3bb996790075b986c0fa3c81624aacf.

    We had to revert it, because some most recent OSX versions had broken
    exceptions for unwinding through functions with ATTRIBUTE_SECTION. But
    now that ATTRIBUTE_SECTION is dropped on OSX, we can recover it.

    Same as before, operator new/delete integration is much faster on
    OSX. Unlike malloc/free and similar APIs which are ~fundamentally
    broken performance-wise on OSX due to expensive arenas integration, we
    don't need to support this overhead for C++ primitives. So lets get
    this win at last.

M	src/libc_override_osx.h

commit 5472781f4ae2e4f32b667eabc15f70c267f429e8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed May 29 19:05:52 2024 -0400

    drop broken and deprecated ATTRIBUTE_SECTION support for OSX

    This support is only strictly necessary for
    MallocHook_GetCallerStackTrace which is only needed for heap
    checker. And since heap checker is Linux-only, lets just amputate this
    code.

M	src/base/basictypes.h
M	src/malloc_hook.cc

commit 2b0b119b6d8b2156daea108c3241efa2238ca475
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed May 29 17:21:45 2024 -0400

    always use full 64 bits of address on Solaris

    Solaris has somewhat nice behavior of mmaps where high bits of address
    are set. It still uses only 48 bits of address on x86 (and,
    presumably, 64-bit arm), just with somewhat non-standard way. But this
    behavior causes some inconveniences to us. In particular, we had to
    disable mmap sys allocator and had failing emergency malloc tests (due
    to assertion in TryGetSizeClass in CheckCachedSizeClass). We could
    consider more comprehensive fix, but lets just do "honest" 64-bit
    addresses at least for now.

M	src/common.h
M	src/system-alloc.cc

commit 8be31af0fc68000934c3cf3abe554d4df10f9671
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed May 29 17:24:42 2024 -0400

    unbreak debugallocation_test on Solaris

    Allow debugallocation death test to accept RUN_ALL_TESTS in backtrace
    instead of main. For some reason solaris ends up either optimizing
    tail-calling of RUN_ALL_TESTS or something else happens in gtest
    platform integration, but failure backtraces don't have main
    there. But the intention of the test is simply to ensure that we got
    failure with backtrace. So lets accept RUN_ALL_TESTS as well.

M	src/tests/debugallocation_test.cc

commit c61f35f04cda1e4b175b45d8637379b69846860d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Apr 6 16:44:52 2024 -0400

    simplify tcmalloc/sbrk/sbrk-hooks integration

    Instead of relying on __sbrk (on subset of Linux systems) or invoking
    sbrk syscall directly (on subset of FreeBSD systems), we have malloc
    invoke special tcmalloc_hooked_sbrk function. Which handles hooking
    and then invokes regular system's sbrk. Yes, we loose theoretical
    ability to hook into non-tcmalloc uses of sbrk, but we gain portable
    simplicity.

M	CMakeLists.txt
M	cmake/config.h.in
M	configure.ac
M	src/mmap_hook.cc
M	src/system-alloc.cc
M	src/tests/mmap_hook_test.cc
M	src/windows/port.cc
M	vsprojects/include/config.h

commit 29f394339bc54558d8a6b0afb8d263e831f6c295
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Apr 5 23:39:49 2024 -0400

    refactor and simplify capturing backtraces from mmap hooks

    The case of mmap and sbrk hooks is simple enough that we can do
    simpler "skip right number of frames" approach. Instead of relying on
    less portable and brittle attribute section trick.

M	CMakeLists.txt
M	Makefile.am
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/mmap_hook.cc
M	src/mmap_hook.h
M	src/tests/mmap_hook_test.cc

commit 29b6eff4c7e79f099dc7ca70700daa081743c2cf
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Apr 6 15:05:57 2024 -0400

    replace heap-checker "bcad" stuff

    The comments in this file stated that it has to be linked in specific
    order to get initialized early enough. But our initialization is
    de-facto via initial malloc hook. And to deal with latest-possible
    destruction, we use more convenient destructor function
    attribute, and make things simpler.

M	CMakeLists.txt
M	Makefile.am
D	src/heap-checker-bcad.cc
M	src/heap-checker.cc

commit 33cda2c9b32dcbbb5bd7c1ae9a71a394db96fbf7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon May 27 11:49:50 2024 -0400

    unbreak grab-backtrace frame skipping logic

    When building with -O0 -fno-inlines, +[] () {} (lambda) syntax for
    function pointers actually creates "wrapper function" so we see extra
    frame (due to disabled inlinings). Fix is to create explicit function
    and pass it, instead of lambda thingy.

M	src/malloc_backtrace.cc

commit 38b19664d378007263aca467bac9efac2ab0ad25
Author: Yikai Zhao <yikai@z1k.dev>
Date:	Fri May 24 19:33:00 2024 +0800

    generic_fp stacktrace: aarch64 frame pointer may be 8 byte aligned

M	src/stacktrace_generic_fp-inl.h

commit 7b9dc8e1fc0cd4d1bc731e046e755fe236117a56
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu May 23 15:08:02 2024 -0400

    unbreak skip_count adjustment in tcmalloc::GrabBacktrace

    I broke it with "simple" off by one error in big emergency malloc
    refactoring change.

    It is somewhat shocking that no test caught this, but we'll soon be
    adding such test.

M	src/malloc_backtrace.cc

commit d9263eea08a615ecbc17fc9eb23910240fbbdd17
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed May 22 14:29:12 2024 -0400

    unbreak pagemap unittest compilation on msvc

M	vsprojects/pagemap_unittest/pagemap_unittest.vcxproj

commit d9a99c290a9c0d8f62dddbb8d42715bde0682975
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Apr 26 16:50:04 2024 -0400

    expand emergency malloc integration to !kHaveGoodTLS systems

    References github issue #1503.

    This significantly reworks both early thread cache access and related
    emergency malloc mode checking integration. As a result, we're able to
    to rely on emergency malloc even on systems without "good"
    TLS (e.g. QNX which does emutls).

    One big change here is we're undoing early change to have single
    "global" thread cache early during process lifetime. It was nice and
    somewhat simpler approach. But because of inherent locking during
    early process lifetime, we couldn't be sure of certain lock ordering
    aspects w.r.t. backtracing/exception-stack-unwinding. So I choose to
    keep it safe. So the new idea is we use SlowTLS facility to find
    threads' caches when normal tls isn't ready yet. It avoids holding
    locks around potentially recursion-ful things (like
    ThreadCache::ModuleInit or growing heap). But we then have to be
    careful to "re-attach" those early thread cache instances to regular
    TLS. There will nearly always be just one of such thread caches. For
    initial thread. But we cannot entirely rule out more general case
    where someone creates threads before process initializers ran and
    main() is reached. Another notable thing is free-ing memory in this
    early mode will always using slow-path deletion directly into central
    free list.

    SlowTLS facility is "simply" a generalization of previous
    CreateBadTLSCache code. I.e. we have a small fixed-size cache that
    holds "exceptional" instances of thread-identitity to
    thread-cache+emergency-mode-flag mappings.

    We also take advantage of tcmalloc::kInvalidTLSKey we introduced
    earlier and remove potentially raceful memory ordering between reading
    tls_ready_ and tls_key_.

    For emergency malloc detection we previously used thread_local
    flag. Which we cannot use on !kHaveGoodTLS systems. So we instead
    _remove_ thread's cache from it's normal tls storage and place it
    "into" SlowTLS instead for the duration of WithStacktraceScope
    call (which is how emergency mode is enabled now).

M	CMakeLists.txt
M	Makefile.am
M	src/debugallocation.cc
M	src/emergency_malloc.cc
M	src/emergency_malloc.h
A	src/malloc_backtrace.cc
C068	src/maybe_emergency_malloc.h	src/malloc_backtrace.h
M	src/malloc_hook.cc
M	src/maybe_emergency_malloc.h
M	src/page_heap.cc
M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc
M	src/thread_cache.h
M	src/thread_cache_ptr.cc
M	src/thread_cache_ptr.h
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj.filters

commit 46d9a6293a39654ae123f3c46cc4c76c5fc4d09f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon May 6 16:28:52 2024 -0400

    introduce tcmalloc::kInvalidTLSKey

    The intention is to initialize tls-key variable with this invalid
    value. This will help us avoid separate "tls ready" flag and possible
    memory ordering issues around distinct tls key and tls-ready
    variables.

    On windows we use TLS_OUT_OF_INDEXES values which is properly
    "impossible" tls index value. On POSIX systems we add theoretically
    unportable, but practically portable assumption that tls keys are
    integers. And we make value of -1 be that invalid key.

M	src/base/threading.h

commit 65ce9e899eee3fbba4cf379bd5b9bb1a1a8cc7eb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun May 12 15:47:02 2024 -0400

    better abort in internal_logging.cc:Log

    We use __builtin_trap (which compiles to explicitly undefined
    instruction or "int 3" on x64-en), when available, to make those
    crashing Log invokations a little nicer to debug.

M	src/internal_logging.cc

commit a6864ae2330007bd95d5e77657440fcb5d15bad8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun May 12 21:09:05 2024 -0400

    clean up FLAGS_tcmalloc_heap_limit_mb value in page heap tests

    This will not only make things right w.r.t. possible order of test
    runs, but it also unbreaks test failures on windows (where gtest ends
    up doing some malloc after test completion, hits the limit and dies).

M	src/tests/page_heap_test.cc

commit de12f89d2a5b88a0ebf88c0700981751afaf90c7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Apr 30 23:11:26 2024 -0400

    expand emergency malloc test coverage

    We add coverage of calloc and we also cover no-hooks case.

M	src/tests/tcmalloc_unittest.cc

commit 77ba2cf133ab7d19fb14181d520f18d3b693fe7a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Apr 30 20:09:50 2024 -0400

    don't include malloc_extension.h in page_heap.h

M	src/page_heap.h

commit d63b2fad17057feec2e692332889d679fccf56ea
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Apr 22 19:55:03 2024 -0400

    introduce thread::SelfThreadId

    Sadly, certain/many implementations of std::this_thread::id invoke
    malloc. So we need something more robust. On Unix systems we use
    address of errno as thread identifier. Sadly, this doesn't cover
    windows where MS's C runtime facility will occasionally malloc when
    errno location is grabbed (with some special trickery for when malloc
    itself needs to set errno to ENOMEM!). So on windows, we do
    GetCurrentThreadId which appears to be roughly as efficient as
    "normal" system's __errno_location implementation.

M	src/base/threading.h
M	src/debugallocation.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/thread_cache_ptr.cc

commit 13aecbe19769e8da8ae22067aa2b82df8a22fcdb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Apr 26 19:51:24 2024 -0400

    make debugallocation calloc hook invocation order consistent

    I.e. we normally call new hook just before returning. In calloc's case
    this means after zeroing allocated memory.

M	src/debugallocation.cc

commit bc2aac871a40d2aefd6a243f28bb2c3d864e9b15
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 28 17:32:19 2024 -0400

    re-introduce missing initial-exec attribute for per-thread data

M	src/thread_cache_ptr.h

commit 786ecdfbc8378f6559f28ea0e610c3ade90a9b2c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 28 14:42:30 2024 -0400

    handle re-entrancy in check-address facility

    We use mmap when we initialize it, which could via heap checker
    recurse back into backtracing and check-address. So before we do mmap
    and rest of initialization, we now set check-address implementation
    to conservative two-syscalls version.

M	src/check_address-inl.h

commit a038c8c23f4fe509604269f790e2bb684f1f583b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Apr 30 23:11:05 2024 -0400

    unbreak cmake build around HAVE_SBRK check

M	src/mmap_hook.cc

commit 1bdabc0e377ed6a41392e88a36cd3095641c5d90
Author: leap <1546711908@qq.com>
Date:	Wed Apr 10 16:40:08 2024 +0800

    Unbreak proc_maps_iterator.cc compilation on QNX

    We had duplicate definition of flags_tmp variable.

    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    [alkondratenko@gmail.com] updated commit message

M	src/base/proc_maps_iterator.cc

commit 7c0cbb3a0c4a79c267eeb59deb2c657e91ae8ad1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Apr 3 15:41:42 2024 -0400

    avoid depending on {s,}brk on FreeBSD systems without it

    Apparently some recent FreeBSDs occasionally lack brk. So our code
    which previously hard-coded that this OS has brk (which we use to
    implement hooked sbrk) fails to compile.

    Our configure scripts already detects sbrk, so we simply need to pay
    attention. Fixes github issue #1499

M	src/mmap_hook.cc

commit 8dde01b4de48f6c9f56016e1cdad63f10607fa96
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 27 18:33:44 2024 -0400

    unbreak emergency malloc tests on systems without "good" TLS

    Our implementation of emergency malloc slow-path actually depends on
    good TLS implementation. So on systems without good TLS (i.e. OSX), we
    lied to ourselves that emergency malloc is available, but then failed
    tests.

M	src/tcmalloc.cc

commit 4cbd8ad2456a4d2945f5a61ea5e043496bbbfc2e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 27 17:35:39 2024 -0400

    refactor and simplify LowLevelAlloc

    We don't expose DefaultArena anymore. Simply passing nullptr implies
    default arena.

    We also streamline default arena initialization (we
    previously relied on combination of lazy initialazation in ArenaInit
    and constexpr construction).

    There is also no need to have elaborate ArenaLock thingy. We use plain
    SpinLockHolder instead.

M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h
M	src/emergency_malloc.cc
M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/memory_region_map.cc
M	src/tests/low_level_alloc_unittest.cc

commit 2cd876cdfd8d94c0ea283de7f136645be7ebb67b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 27 17:10:47 2024 -0400

    amputate unused LowLevelAlloc flags

M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h
M	src/emergency_malloc.cc
M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/memory_region_map.cc
M	src/tests/low_level_alloc_unittest.cc

commit 6babeb1a127f961a3de8e09b26885c82ee85780d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 27 15:40:36 2024 -0400

    apply StaticStorage to windows/system-alloc.cc

M	src/windows/system-alloc.cc

commit fa3753dc8664e5e9d75264a08d26cd1c19fb21d3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 27 14:53:34 2024 -0400

    apply StaticStorage across the source code

M	src/base/low_level_alloc.cc
M	src/debugallocation.cc
M	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/static_vars.cc
M	src/static_vars.h
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc
M	src/thread_cache_ptr.cc

commit ee123a1a0d17b5eec95fb39f9568dadf647bd4d9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 27 14:02:38 2024 -0400

    apply StaticStorage to TrivialOnce

M	src/base/spinlock.h

commit 86606eef40e4e97f6c497792456c78d5189a87c5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 27 13:53:53 2024 -0400

    introduce tcmalloc::StaticStorage

    We have a number of things that are explicitly constructed in some
    statically allocated space, so lets finally have a helper for that.

A	src/base/static_storage.h
M	src/emergency_malloc.cc

commit 7cbbbdd099572767177ccf2c542cd56011d3e97d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 27 13:54:18 2024 -0400

    use DirectAnonMMap in emergency allocator

    It is just more straightforward and cleaner than going via
    LowLevelAllocators "default" pages allocator, which does direct mmap
    thingy anyways.

M	src/emergency_malloc.cc

commit 6785aeb0275c2316e025c81e8014009a08f632e9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 27 15:33:49 2024 -0400

    add test coverage of emergency malloc

M	src/tcmalloc.cc
M	src/testing_portal.h
M	src/tests/tcmalloc_unittest.cc

commit 703dc970fc1f29423d5b4c233a8af000b566656e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 27 14:53:31 2024 -0400

    add missing override declarations to TestingPortalImpl

M	src/tcmalloc.cc

commit e80e863e37c3ebf283c2d7a217b040eac5d2bb22
Author: hmihaylov-sc <164002496+hmihaylov-sc@users.noreply.github.com>
Date:	Tue Mar 26 14:52:06 2024 +0100

    remove deprecated `register` storage class

M	src/tests/heap-checker_unittest.cc

commit c71e51266434e7de2212059e960ec265e21985b9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 20 19:35:01 2024 -0400

    implement support for hidden visibility

    This is off by default for now. And autotools-only. But after
    significant preparatory work, we're now able to do it cleanly. Stuff
    that was previously exported just for tests (like page heap stuff or
    flags) is now unexported.

    Just like on windows all symbols explicitly exported by
    PERFTOOLS_DLL_DECL are visible and exported and rest are hidden. Those
    include all the malloc/new APIs of course, and all the other symbols
    we advertise in our headers (e.g. MallocExtension, MallocHook).

    Updates issue #600

M	configure.ac

commit 38d741710b02e744b46fb9417bfcde29ab565b70
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Mar 21 17:03:15 2024 -0400

    drop unused pwd.h/grp.h checks

M	CMakeLists.txt
M	cmake/config.h.in
M	configure.ac
M	vsprojects/include/config.h

commit 02f10c15a51c460516075eca4219b93a7cee830c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 20 19:34:13 2024 -0400

    update heap-checker_unittest to reach into malloc guts via
    TestingPortal

M	Makefile.am
M	src/tests/heap-checker_unittest.cc

commit d5bd0087c1ff51a73faa6cc03ad726ace2eedcf7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 20 19:37:31 2024 -0400

    avoid VLOG dependency in heap-profiler test

    This makes the test compatible with -fvisibility=hidden

M	src/tests/heap-profiler_unittest.cc

commit c23bbdb4c7fa15a58ec379b024f2ed2ab83a9dda
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 20 19:32:02 2024 -0400

    don't dllexport Log and HookList

M	src/internal_logging.h
M	src/malloc_hook-inl.h

commit ea4fceb796b57696a0e1b6a6dff1aa13e0f42a9d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 20 19:31:05 2024 -0400

    don't dllexport flags

M	src/base/commandlineflags.h

commit 274038486b4acacf4165d90b40292e595359694c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 20 20:39:30 2024 -0400

    ensure dllexport/public visibility of all aliases we generate

M	src/libc_override_gcc_and_weak.h
M	src/libc_override_glibc.h

commit 32796c754e5f27053504a2400914607e172d0756
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 20 20:38:54 2024 -0400

    export all mmap and sbrk replacement functions

M	src/mmap_hook.cc

commit 5cba04ead2250582d44cf900b0652b701a092d0f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 20 19:31:28 2024 -0400

    export IsHeapProfilerRunning symbol

    It is part of our API and ABI, so it needs to public visibility
    declaration, like rest of functions declared in the same public
    header.

M	src/gperftools/heap-profiler.h

commit 2436c80d6ce3eaafe97b5e8bc4ad26d81c05da9f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 20 20:38:30 2024 -0400

    ensure that malloc_extension_c_test includes config.h first

    Like we do everywhere.

M	src/tests/malloc_extension_c_test.cc

commit 701777bbeed26c69f649783acd40037cbae2e448
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Mar 21 18:04:39 2024 -0400

    dont define unused HAVE_MEMORY_H in windows config.h

M	vsprojects/include/config.h

commit 6038a09c76de21a1fefec098c4e2e18df8e1ba8f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Mar 21 17:03:29 2024 -0400

    simplify vdso_support.h/elf_mem_image.h integration

    This is only used by Linux/PPC, so lets make it simpler and
    clearer (e.g. no need to do __GLIBC__ test).

M	src/base/elf_mem_image.h
M	src/base/vdso_support.h

commit ae31e6afa392c6d39070aaebc4eb3745c6fbd4f1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Mar 21 17:02:52 2024 -0400

    drop unused LT_OBJDIR from cmake config.h template

M	cmake/config.h.in
M	vsprojects/include/config.h

commit e867bb7818a3dce925f2ecacc6783e9845cb7f9c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Mar 21 17:01:28 2024 -0400

    amputate unused Elf32_Versym check

M	CMakeLists.txt
M	configure.ac
M	vsprojects/include/config.h

commit b65b9e3e614a65080b69e0594cb709fbf7a10571
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Mar 21 16:59:51 2024 -0400

    amputate unused AC_INSTALL_PREFIX

M	cmake/config.h.in
M	configure.ac
D	m4/install_prefix.m4
M	vsprojects/include/config.h

commit fc496c87c4ebde04c25e6725e0a5a1af92751dc4
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 17 15:09:57 2024 -0400

    liberate our tests from makefile setting TCMALLOC_SAMPLE_PARAMETER

M	CMakeLists.txt
M	Makefile.am
M	src/tests/heap-profiler_unittest.cc

commit abc0ac61477377a548228e8d6b6dfa595bb600f6
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 17 13:21:15 2024 -0400

    drop legacy_assertions.h

D	src/tests/legacy_assertions.h

commit 8cb41da4f9568b8fd958a5fe6ad887352a47aa9d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Mar 14 12:39:19 2024 -0400

    gtestify debugallocation_test

    As part of that we eliminate use of shell script and rely on gtest's
    death testing facility instead (which this test was originally using).

M	CMakeLists.txt
M	Makefile.am
M	src/tests/debugallocation_test.cc
D	src/tests/debugallocation_test.sh

commit 14598dd4ac84401166d398db9257376a05856189
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Mar 11 12:50:25 2024 -0400

    gtestify and refactor tcmalloc_unittest

    While it still needs more work to be up to highest standards of
    cleanness and clarity, we made it better.

    One big part of this change is we're now liberated from
    tcmalloc_unittest.sh. We now arrange testing of various environment
    variable tweaks in C++ by self-execing with updated environment at the
    end of tests.

M	CMakeLists.txt
M	Makefile.am
M	src/tests/tcmalloc_unittest.cc
D	src/tests/tcmalloc_unittest.sh
M
vsprojects/tcmalloc_minimal_unittest/tcmalloc_minimal_unittest.vcxproj

commit 93380fc7545e55f69265ea2bb93f7cc7a2fbde50
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Mar 11 12:19:06 2024 -0400

    drop dependency on sys/resource.h

    Biggest part of it is removal of SetTestResourceLimit. The reasoning
    behind it is, we don't do it on windows. Tests pass just fine. So,
    there is no reason to bother.

M	CMakeLists.txt
M	cmake/config.h.in
M	configure.ac
M	src/tests/frag_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/testutil.cc
M	src/tests/testutil.h
M	vsprojects/include/config.h

commit a4fe2d7cd0dfe5202d42492598381b8210544bf9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 17 15:09:01 2024 -0400

    liberate sampling test from use of shell script

    As part of that we do somewhat tighter job with temp files.

M	CMakeLists.txt
M	Makefile.am
M	src/tests/sampling_test.cc
D	src/tests/sampling_test.sh

commit c3e9ad95f124360ff5785517118f79514f261583
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 17 15:08:13 2024 -0400

    minor cleanup of thread_dealloc_unittest

M	src/tests/thread_dealloc_unittest.cc

commit 6b53b1a4c1efbae15ba65b2eb28cc5df37163ad9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 17 15:35:09 2024 -0400

    gtestify and cleanup system-alloc_unittest

M	CMakeLists.txt
M	Makefile.am
M	src/tests/system-alloc_unittest.cc
M	vsprojects/system-alloc_unittest/system-alloc_unittest.vcxproj

commit f7c8b45dcdb9d21e1a43e5631603d22684fa52e6
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 17 13:38:14 2024 -0400

    gtestify realloc_unittest

M	CMakeLists.txt
M	Makefile.am
M	src/tests/realloc_unittest.cc
M	vsprojects/realloc_unittest/realloc_unittest.vcxproj

commit 0dddc476b35d6155f89c98b446fc9c1a10a53784
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 17 12:39:57 2024 -0400

    gtestify malloc_extension_c_test

M	CMakeLists.txt
M	Makefile.am
M	src/tests/malloc_extension_c_test.cc

commit 3cda0c4185c864c7689355c53c4cd8ef6d9d55e9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 17 12:32:53 2024 -0400

    gtestify malloc_extension_test

M	CMakeLists.txt
M	Makefile.am
M	src/tests/malloc_extension_test.cc
M	vsprojects/malloc_extension_test/malloc_extension_test.vcxproj

commit 2de5f833fb677c0ab57b419465a652e973e78deb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Mar 19 23:37:39 2024 -0400

    page_heap_test: test that more OS-es can release memory

    I just dealt with somewhat curious failure in page heap test and the
    change was due to breakage of HaveSystemRelease on OSX. And since OSX
    can truly release memory and Windows too, lets assert this.

M	src/tests/page_heap_test.cc

commit 159c9e5c53a71532b3a19f0e847709ca993e08df
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Mar 20 00:27:10 2024 -0400

    clean up and gtest-ify large_heap_fragmentation_unittest

M	CMakeLists.txt
M	Makefile.am
M	src/tests/large_heap_fragmentation_unittest.cc

commit 27a57a1b30f892bab48c8599d5c230b648b4f82a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Mar 19 18:45:06 2024 -0400

    MmapSysAllocator: try to extend previous mapping

    This improves fragmentation in some use-cases when mmap sys allocator
    is used. In specific terms, it unbreaks
    tcmalloc_large_heap_fragmentation_unittest on OSX. They have sbrk that
    seemingly always fails (fair game). And this test aggressive
    fragmentation use-case pretty much requires tcmalloc to allocate
    memory "linearly". Which sbrk does.

    Previously, our mmap sys allocator didn't pass any start address hint,
    so it caused the test to fail. Now we remember end of previous mmap
    allocation into hint_ member variable and try to pass it as address
    hint to next mmap.

    Note, it doesn't help TCMALLOC_SKIP_SBRK=t to pass this test on Linux,
    as Linux tends to pick initial mmap chunk "backwards" and too close to
    library allocations. So it leaves not enough address space to extend
    into. We may address this use-case some other time.

M	src/system-alloc.cc

commit 641cef6b4c0b24f7fb9843add13e3309cd4770e2
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 17 19:29:58 2024 -0400

    unbreak early use of MallocExtension and simpify it some

    On OSX and Windows we could end up with "default" and no-op
    MallocExtension to be used if MallocExtension::instance() is used
    before tcmalloc is fully initialized. It was nearly intended after my
    recent change. But thinking about this more, even in use-cases where
    we don't replace systems malloc APIs, we want MallocExtension to
    reflect tcmalloc's state. So we now truly force tcmalloc
    initialization on first MallocExtension::instance() use and
    MallocExtension is now abstract class.

M	src/gperftools/malloc_extension.h
M	src/malloc_extension.cc

commit 02adc8ceab39bbeac1f65e10bde577e1753094fa
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Mar 7 13:16:23 2024 -0500

    also disable _TIME_BITS in mmap_hook.cc

    Otherwise when _TIME_BITS are set, glibc complains that it seems
    _TIME_BITS=64 without seeing _FILE_OFFSET_BITS=64. Thankfully, none of
    the code in mmap_hook.cc depends on time_t.

M	src/mmap_hook.cc

commit 198b3dd2d0b4d83c873b2ce480837edacc0f35ab
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Mar 1 16:25:11 2024 -0500

    disable _FILE_OFFSET_BITS in mmap_hook.cc

    Debian is doing massive rebuild of everything with 64-bit off_t (and
    time_t), but on those systems where it matters, glibc still has mmap
    with 32-bit off_t argument and mmap64 with 64-bit off_t. Since we're
    aiming to match glibc's ABI, we need to see system's native off_t
    width.

M	src/mmap_hook.cc

commit 37b59a206e36b405dcb2ac09d502875dd629a80b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 26 13:21:14 2024 -0500

    gtestify current_allocated_bytes_test

M	Makefile.am
M	src/tests/current_allocated_bytes_test.cc
M
vsprojects/current_allocated_bytes_test/current_allocated_bytes_test.vcxproj

commit f9e6c517b84bbedc89740e6633ec0145abd20bab
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 25 20:39:53 2024 -0500

    gtestify markidle_unittest

M	Makefile.am
M	src/tests/markidle_unittest.cc
M	vsprojects/markidle_unittest/markidle_unittest.vcxproj

commit 3b12487a83b05dc850ff8af3abc40477fd07ecfa
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 25 17:52:51 2024 -0500

    gtestify memalign_unittest

M	CMakeLists.txt
M	Makefile.am
M	src/tests/memalign_unittest.cc

commit 9cb7f7040e0321e8c7178477827ab56331a10457
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 25 15:01:45 2024 -0500

    gtestify frag_unittest

M	Makefile.am
M	src/tests/frag_unittest.cc
M	vsprojects/frag_unittest/frag_unittest.vcxproj

commit 80a02ea645128cac41ed62e0a4a7b597b743aa04
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 24 16:35:30 2024 -0500

    update {tcmalloc_unit,debugallocation_}test to use TestingPortal

    So that they're not reaching into guts of
    libtcmalloc{,_debug}{,_minimal} anymore.

M	src/config_for_unittests.h
M	src/tests/debugallocation_test.cc
M	src/tests/tcmalloc_unittest.cc

commit ddc162f1d1b2e47d493ea7377db1e9b90936099a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 24 16:35:25 2024 -0500

    implement TestingPortal

    Some our tests are intended to test behavior of external APIs (like
    operator new etc), but they do need occasional ability to peek into
    the guts of tcmalloc. We want to make our .so libraries to be built
    with -fvisibility=hidden, so we'll loose this ability.

    In order to have this limited ability for tests to get into the guts
    of tcmalloc, we introduce TestingPortal exactly for that. It uses
    carefuly designed and thouroughly undocumented GetNumericProperty
    extension to grab pointer to TestingPortal. Then through calling
    member functions of this instance, we're able to do the right thing.

M	src/debugallocation.cc
M	src/heap-checker.cc
M	src/tcmalloc.cc
A	src/testing_portal.h

commit 66bdf24061a26e5c0f0c18619b06338b6925a1bb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 22 18:16:54 2024 -0500

    initialize correct MallocExtension instance early

    Previous implementation only had tcmalloc.cc's TCMallocGuard to
    register correct MallocExtension instance. Which is occasionally too
    late.

    This original design (as well as it's ancestor in abseil tcmalloc)
    allows malloc_extension.cc to be built and linked separately from
    tcmalloc. So that software that uses extended features can be linked
    with non-tcmalloc malloc (or, for example, asan).

    In our case, we don't offer such flexibility. But we choose to keep
    ability to (re)enable it.

    New implementation makes sure to register malloc extension on first
    call to memory allocation. Which typically happens super-early.

    In case malloc/operator new aren't called early enough, we make sure
    that first call to MallocExtension::instance invokes malloc as part of
    creating it's 'empty' malloc extension, and thus provoking
    tcmalloc (or any other malloc that chose to implement our malloc
    extension interface) to register it's proper MallocExtension instance.

M	src/debugallocation.cc
M	src/malloc_extension.cc
M	src/tcmalloc.cc
M	src/tcmalloc_internal.h
M	src/thread_cache.cc

commit 9dfab2cdce5ec1ebb36e2a20e5031ef49cbe8087
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 26 16:40:11 2024 -0500

    cmake: refactor CMakeLists.txt

    It is still somewhat broken and somewhat of a mess, but it is much
    lesser mess now.

    As part of this change I also amputated a number of unnecessary or too
    complicated bits. Like attempt to build both static and shared
    versions of tcmalloc libraries at the same time. We stick to cmake's
    "common" (seemingly) behavior of defaulting to something (in our case
    shared library) and letting users override BUILD_SHARED_LIBS.

    All the "install" bits are amputated as well, they're not ready.

M	CMakeLists.txt
M	cmake/config.h.in
M	src/windows/CMakeLists.txt

commit 5fabaea30d782260fb3c83317a6127eefde63bd0
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 22 18:12:42 2024 -0500

    link page_heap_test with entirety of tcmalloc_minimal

    This makes page_heap_test a bit more uniform with rest of things and
    prevents any future missing symbols issues.

M	Makefile.am
M	src/page_heap.h
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj.filters

commit 5f9eb911290fbe457cf590bb9416e3cbad6b2199
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 25 17:53:30 2024 -0500

    cleanup and untangle sampling-test from tcmalloc guts

M	src/tests/sampling_test.cc

commit 9381dd0b190c2603b1ed5d963946948ec38f38f8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 22 18:10:10 2024 -0500

    tcmalloc_unittest: wrap calloc reference with noopt

    It is not clear why we didn't hit this before, but in some cases we
    see calloc being optimized away (just like we had with
    new/malloc). And noopt is how we deal with it.

M	src/tests/tcmalloc_unittest.cc

commit de3066fb1f876f768f88646eefb97e3557d5e2e1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Feb 23 13:12:13 2024 -0500

    unbreak unnecessary slowness of addressmap_unittest

M	src/tests/addressmap_unittest.cc

commit 2940450c7a4c8f2e6c4cd7d3d2ebd87dec10d2c1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 24 21:04:15 2024 -0500

    gtestify profiledata_unittest

M	CMakeLists.txt
M	Makefile.am
M	src/tests/profiledata_unittest.cc

commit bbae941492982598a501fa75210140441e05a3bd
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 24 20:43:34 2024 -0500

    gtestify profile-handler_unittest

M	CMakeLists.txt
M	Makefile.am
M	src/tests/profile-handler_unittest.cc

commit a4d9540d8be2bfe504adb370aa17bfb6652915ed
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 25 18:09:28 2024 -0500

    unbreak cmake for packed-cache_test

M	CMakeLists.txt

commit 9bebef9ff3376e8ea78faa52871c0356fe7f9cb9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 26 13:16:34 2024 -0500

    bump WIN32_WINNT request to windows 8

    We already require it for spinlock futex-like waiting stuff, so lets
    make it more official to enable newer APIs in other places too.

M	src/windows/port.h

commit 7d664c702a408fa1966bbacbe38eabaad171713f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 26 12:20:55 2024 -0500

    reimplement windows GetenvBeforeMain to avoid memory allocation

    Previous implementation used GetEnvironmentVariableA which appears to
    be calling into Heap{Alloc,Free}, so in some cases may recurse into
    tcmalloc. So we use 'wide' character version and perform trivial
    conversion to/from 7-bit ASCII.

M	src/base/sysinfo.cc

commit f2f301df7a3524a0a39b65f3b7bd6ac790f2e006
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Feb 27 12:50:19 2024 -0500

    gitignore build/

    This is a common directory used by out-of-tree cmake builds.

M	.gitignore

commit b81d639793aa3c808be60f1b1a71f29aaac1d02d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 22 17:53:52 2024 -0500

    ignore googletest .dirstamp

M	.gitignore

commit 896804dcb2cbda5282e20934ca1fd163e81d1cf5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 22 17:39:00 2024 -0500

    delete accidentally added .dirstamp file

D	vendor/googletest/googletest/src/.dirstamp

commit f8da1590136cc3f41ddf2a3f13a1a96697bbc66f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 21 21:56:45 2024 -0500

    add function_ref_test

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
A	src/tests/function_ref_test.cc

commit bfbfa333eb52e176fea5688367bccaa0f414cf9b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 21 17:53:45 2024 -0500

    add cleanup_test

    This also let us spot and fix missing include in the header.

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	src/base/cleanup.h
C056	src/base/cleanup.h	src/tests/cleanup_test.cc

commit 61b1e05848b9f4722227c07594415f6a2f212610
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 21 13:32:29 2024 -0500

    unbreak make dist

    In 57d6ecc4aedeb62b1b59c0ba502137e94d8bef4f I removed obsolete
    src/windows/TODO but failed to remove it from Makefile.am

    I also previously failed to arrange distribution of vendored
    googletest. And we also failed to distribute headers in src/tests/

    This is all fixed now.

M	Makefile.am

commit 0906dacc486ba61a214644b84b4314a4b7c3826c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 17 21:22:11 2024 -0500

    gtestify more tests

    Those are malloc_hook_test, mmap_hook_test, page_heap_test,
    sampler_test, stack_trace_table_test.

M	CMakeLists.txt
M	Makefile.am
M	src/tests/malloc_hook_test.cc
M	src/tests/mmap_hook_test.cc
M	src/tests/page_heap_test.cc
M	src/tests/sampler_test.cc
M	src/tests/stack_trace_table_test.cc
M	vsprojects/malloc_hook_test/malloc_hook_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/sampler_test/sampler_test.vcxproj
M	vsprojects/stack_trace_table_test/stack_trace_table_test.vcxproj

commit bfa30bf7df014e17370a0777aa33a3e3a5214785
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 17 21:17:37 2024 -0500

    gtestify 3 simpler tests

    Those are packed-cache_test, pagemap_unittest, safe_strerror_test

M	CMakeLists.txt
M	Makefile.am
M	src/tests/packed-cache_test.cc
M	src/tests/pagemap_unittest.cc
M	src/tests/safe_strerror_test.cc
M	vsprojects/packed-cache_test/packed-cache_test.vcxproj
M	vsprojects/pagemap_unittest/pagemap_unittest.vcxproj

commit ff2dce5e67b3e94f26e70a400acc148fe36038ed
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 17 21:23:54 2024 -0500

    gtestify addressmap_unittest

M	CMakeLists.txt
M	Makefile.am
M	src/tests/addressmap_unittest.cc
M	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj

commit c1799405ae3ff0350eacfb1f0888915b87feda28
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 17 21:21:13 2024 -0500

    gtestify check_address_test

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	src/tests/check_address_test.cc

commit a46a391b14b170456ac053ffc69911e353051f3b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 17 21:19:12 2024 -0500

    gtestify low_level_alloc_unittest

M	CMakeLists.txt
M	Makefile.am
M	src/tests/low_level_alloc_unittest.cc
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj

commit 6c24a59682247afed04b8b42851ae8c47a3fe315
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 11 18:59:55 2024 -0500

    introduce vendor copy of googletest

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	gperftools.sln
M	src/tests/generic_writer_test.cc
M	src/tests/proc_maps_iterator_test.cc
M	src/tests/unique_path_unittest.cc
A	vendor/README.vendor
A	vendor/googletest/.clang-format
A	vendor/googletest/.github/ISSUE_TEMPLATE/00-bug_report.yml
A	vendor/googletest/.github/ISSUE_TEMPLATE/10-feature_request.yml
A	vendor/googletest/.github/ISSUE_TEMPLATE/config.yml
A	vendor/googletest/.github/workflows/gtest-ci.yml
A	vendor/googletest/.gitignore
A	vendor/googletest/BUILD.bazel
A	vendor/googletest/CMakeLists.txt
A	vendor/googletest/CONTRIBUTING.md
A	vendor/googletest/CONTRIBUTORS
A	vendor/googletest/LICENSE
A	vendor/googletest/MODULE.bazel
A	vendor/googletest/README.md
A	vendor/googletest/WORKSPACE
A	vendor/googletest/WORKSPACE.bzlmod
A	vendor/googletest/ci/linux-presubmit.sh
A	vendor/googletest/ci/macos-presubmit.sh
A	vendor/googletest/ci/windows-presubmit.bat
A	vendor/googletest/docs/_config.yml
A	vendor/googletest/docs/_data/navigation.yml
A	vendor/googletest/docs/_layouts/default.html
A	vendor/googletest/docs/_sass/main.scss
A	vendor/googletest/docs/advanced.md
A	vendor/googletest/docs/assets/css/style.scss
A	vendor/googletest/docs/community_created_documentation.md
A	vendor/googletest/docs/faq.md
A	vendor/googletest/docs/gmock_cheat_sheet.md
A	vendor/googletest/docs/gmock_cook_book.md
A	vendor/googletest/docs/gmock_faq.md
A	vendor/googletest/docs/gmock_for_dummies.md
A	vendor/googletest/docs/index.md
A	vendor/googletest/docs/pkgconfig.md
A	vendor/googletest/docs/platforms.md
A	vendor/googletest/docs/primer.md
A	vendor/googletest/docs/quickstart-bazel.md
A	vendor/googletest/docs/quickstart-cmake.md
A	vendor/googletest/docs/reference/actions.md
A	vendor/googletest/docs/reference/assertions.md
A	vendor/googletest/docs/reference/matchers.md
A	vendor/googletest/docs/reference/mocking.md
A	vendor/googletest/docs/reference/testing.md
A	vendor/googletest/docs/samples.md
A	vendor/googletest/googlemock/CMakeLists.txt
A	vendor/googletest/googlemock/README.md
A	vendor/googletest/googlemock/cmake/gmock.pc.in
A	vendor/googletest/googlemock/cmake/gmock_main.pc.in
A	vendor/googletest/googlemock/docs/README.md
A	vendor/googletest/googlemock/include/gmock/gmock-actions.h
A	vendor/googletest/googlemock/include/gmock/gmock-cardinalities.h
A	vendor/googletest/googlemock/include/gmock/gmock-function-mocker.h
A	vendor/googletest/googlemock/include/gmock/gmock-matchers.h
A	vendor/googletest/googlemock/include/gmock/gmock-more-actions.h
A	vendor/googletest/googlemock/include/gmock/gmock-more-matchers.h
A	vendor/googletest/googlemock/include/gmock/gmock-nice-strict.h
A	vendor/googletest/googlemock/include/gmock/gmock-spec-builders.h
A	vendor/googletest/googlemock/include/gmock/gmock.h
A
vendor/googletest/googlemock/include/gmock/internal/custom/README.md
A
vendor/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h
A
vendor/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h
A
vendor/googletest/googlemock/include/gmock/internal/custom/gmock-port.h
A
vendor/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h
A	vendor/googletest/googlemock/include/gmock/internal/gmock-port.h
A	vendor/googletest/googlemock/include/gmock/internal/gmock-pp.h
A	vendor/googletest/googlemock/src/gmock-all.cc
A	vendor/googletest/googlemock/src/gmock-cardinalities.cc
A	vendor/googletest/googlemock/src/gmock-internal-utils.cc
A	vendor/googletest/googlemock/src/gmock-matchers.cc
A	vendor/googletest/googlemock/src/gmock-spec-builders.cc
A	vendor/googletest/googlemock/src/gmock.cc
A	vendor/googletest/googlemock/src/gmock_main.cc
A	vendor/googletest/googlemock/test/BUILD.bazel
A	vendor/googletest/googlemock/test/gmock-actions_test.cc
A	vendor/googletest/googlemock/test/gmock-cardinalities_test.cc
A	vendor/googletest/googlemock/test/gmock-function-mocker_test.cc
A	vendor/googletest/googlemock/test/gmock-internal-utils_test.cc
A
vendor/googletest/googlemock/test/gmock-matchers-arithmetic_test.cc
A
vendor/googletest/googlemock/test/gmock-matchers-comparisons_test.cc
A
vendor/googletest/googlemock/test/gmock-matchers-containers_test.cc
A	vendor/googletest/googlemock/test/gmock-matchers-misc_test.cc
A	vendor/googletest/googlemock/test/gmock-matchers_test.h
A	vendor/googletest/googlemock/test/gmock-more-actions_test.cc
A	vendor/googletest/googlemock/test/gmock-nice-strict_test.cc
A	vendor/googletest/googlemock/test/gmock-port_test.cc
A	vendor/googletest/googlemock/test/gmock-pp-string_test.cc
A	vendor/googletest/googlemock/test/gmock-pp_test.cc
A	vendor/googletest/googlemock/test/gmock-spec-builders_test.cc
A	vendor/googletest/googlemock/test/gmock_all_test.cc
A	vendor/googletest/googlemock/test/gmock_ex_test.cc
A	vendor/googletest/googlemock/test/gmock_leak_test.py
A	vendor/googletest/googlemock/test/gmock_leak_test_.cc
A	vendor/googletest/googlemock/test/gmock_link2_test.cc
A	vendor/googletest/googlemock/test/gmock_link_test.cc
A	vendor/googletest/googlemock/test/gmock_link_test.h
A	vendor/googletest/googlemock/test/gmock_output_test.py
A	vendor/googletest/googlemock/test/gmock_output_test_.cc
A	vendor/googletest/googlemock/test/gmock_output_test_golden.txt
A	vendor/googletest/googlemock/test/gmock_stress_test.cc
A	vendor/googletest/googlemock/test/gmock_test.cc
A	vendor/googletest/googlemock/test/gmock_test_utils.py
A	vendor/googletest/googletest/CMakeLists.txt
A	vendor/googletest/googletest/README.md
A	vendor/googletest/googletest/cmake/Config.cmake.in
A	vendor/googletest/googletest/cmake/gtest.pc.in
A	vendor/googletest/googletest/cmake/gtest_main.pc.in
A	vendor/googletest/googletest/cmake/internal_utils.cmake
A	vendor/googletest/googletest/cmake/libgtest.la.in
A	vendor/googletest/googletest/docs/README.md
A
vendor/googletest/googletest/include/gtest/gtest-assertion-result.h
A	vendor/googletest/googletest/include/gtest/gtest-death-test.h
A	vendor/googletest/googletest/include/gtest/gtest-matchers.h
A	vendor/googletest/googletest/include/gtest/gtest-message.h
A	vendor/googletest/googletest/include/gtest/gtest-param-test.h
A	vendor/googletest/googletest/include/gtest/gtest-printers.h
A	vendor/googletest/googletest/include/gtest/gtest-spi.h
A	vendor/googletest/googletest/include/gtest/gtest-test-part.h
A	vendor/googletest/googletest/include/gtest/gtest-typed-test.h
A	vendor/googletest/googletest/include/gtest/gtest.h
A	vendor/googletest/googletest/include/gtest/gtest_pred_impl.h
A	vendor/googletest/googletest/include/gtest/gtest_prod.h
A
vendor/googletest/googletest/include/gtest/internal/custom/README.md
A
vendor/googletest/googletest/include/gtest/internal/custom/gtest-port.h
A
vendor/googletest/googletest/include/gtest/internal/custom/gtest-printers.h
A	vendor/googletest/googletest/include/gtest/internal/custom/gtest.h
A
vendor/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h
A
vendor/googletest/googletest/include/gtest/internal/gtest-filepath.h
A
vendor/googletest/googletest/include/gtest/internal/gtest-internal.h
A
vendor/googletest/googletest/include/gtest/internal/gtest-param-util.h
A
vendor/googletest/googletest/include/gtest/internal/gtest-port-arch.h
A	vendor/googletest/googletest/include/gtest/internal/gtest-port.h
A	vendor/googletest/googletest/include/gtest/internal/gtest-string.h
A
vendor/googletest/googletest/include/gtest/internal/gtest-type-util.h
A	vendor/googletest/googletest/samples/prime_tables.h
A	vendor/googletest/googletest/samples/sample1.cc
A	vendor/googletest/googletest/samples/sample1.h
A	vendor/googletest/googletest/samples/sample10_unittest.cc
A	vendor/googletest/googletest/samples/sample1_unittest.cc
A	vendor/googletest/googletest/samples/sample2.cc
A	vendor/googletest/googletest/samples/sample2.h
A	vendor/googletest/googletest/samples/sample2_unittest.cc
A	vendor/googletest/googletest/samples/sample3-inl.h
A	vendor/googletest/googletest/samples/sample3_unittest.cc
A	vendor/googletest/googletest/samples/sample4.cc
A	vendor/googletest/googletest/samples/sample4.h
A	vendor/googletest/googletest/samples/sample4_unittest.cc
A	vendor/googletest/googletest/samples/sample5_unittest.cc
A	vendor/googletest/googletest/samples/sample6_unittest.cc
A	vendor/googletest/googletest/samples/sample7_unittest.cc
A	vendor/googletest/googletest/samples/sample8_unittest.cc
A	vendor/googletest/googletest/samples/sample9_unittest.cc
A	vendor/googletest/googletest/src/.dirstamp
A	vendor/googletest/googletest/src/gtest-all.cc
A	vendor/googletest/googletest/src/gtest-assertion-result.cc
A	vendor/googletest/googletest/src/gtest-death-test.cc
A	vendor/googletest/googletest/src/gtest-filepath.cc
A	vendor/googletest/googletest/src/gtest-internal-inl.h
A	vendor/googletest/googletest/src/gtest-matchers.cc
A	vendor/googletest/googletest/src/gtest-port.cc
A	vendor/googletest/googletest/src/gtest-printers.cc
A	vendor/googletest/googletest/src/gtest-test-part.cc
A	vendor/googletest/googletest/src/gtest-typed-test.cc
A	vendor/googletest/googletest/src/gtest.cc
A	vendor/googletest/googletest/src/gtest_main.cc
A	vendor/googletest/googletest/test/BUILD.bazel
A
vendor/googletest/googletest/test/googletest-break-on-failure-unittest.py
A
vendor/googletest/googletest/test/googletest-break-on-failure-unittest_.cc
A
vendor/googletest/googletest/test/googletest-catch-exceptions-test.py
A
vendor/googletest/googletest/test/googletest-catch-exceptions-test_.cc
A	vendor/googletest/googletest/test/googletest-color-test.py
A	vendor/googletest/googletest/test/googletest-color-test_.cc
A	vendor/googletest/googletest/test/googletest-death-test-test.cc
A	vendor/googletest/googletest/test/googletest-death-test_ex_test.cc
A	vendor/googletest/googletest/test/googletest-env-var-test.py
A	vendor/googletest/googletest/test/googletest-env-var-test_.cc
A	vendor/googletest/googletest/test/googletest-failfast-unittest.py
A	vendor/googletest/googletest/test/googletest-failfast-unittest_.cc
A	vendor/googletest/googletest/test/googletest-filepath-test.cc
A	vendor/googletest/googletest/test/googletest-filter-unittest.py
A	vendor/googletest/googletest/test/googletest-filter-unittest_.cc
A
vendor/googletest/googletest/test/googletest-global-environment-unittest.py
A
vendor/googletest/googletest/test/googletest-global-environment-unittest_.cc
A	vendor/googletest/googletest/test/googletest-json-outfiles-test.py
A
vendor/googletest/googletest/test/googletest-json-output-unittest.py
A
vendor/googletest/googletest/test/googletest-list-tests-unittest.py
A
vendor/googletest/googletest/test/googletest-list-tests-unittest_.cc
A	vendor/googletest/googletest/test/googletest-listener-test.cc
A	vendor/googletest/googletest/test/googletest-message-test.cc
A	vendor/googletest/googletest/test/googletest-options-test.cc
A
vendor/googletest/googletest/test/googletest-output-test-golden-lin.txt
A	vendor/googletest/googletest/test/googletest-output-test.py
A	vendor/googletest/googletest/test/googletest-output-test_.cc
A
vendor/googletest/googletest/test/googletest-param-test-invalid-name1-test.py
A
vendor/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc
A
vendor/googletest/googletest/test/googletest-param-test-invalid-name2-test.py
A
vendor/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc
A	vendor/googletest/googletest/test/googletest-param-test-test.cc
A	vendor/googletest/googletest/test/googletest-param-test-test.h
A	vendor/googletest/googletest/test/googletest-param-test2-test.cc
A	vendor/googletest/googletest/test/googletest-port-test.cc
A	vendor/googletest/googletest/test/googletest-printers-test.cc
A
vendor/googletest/googletest/test/googletest-setuptestsuite-test.py
A
vendor/googletest/googletest/test/googletest-setuptestsuite-test_.cc
A	vendor/googletest/googletest/test/googletest-shuffle-test.py
A	vendor/googletest/googletest/test/googletest-shuffle-test_.cc
A	vendor/googletest/googletest/test/googletest-test-part-test.cc
A
vendor/googletest/googletest/test/googletest-throw-on-failure-test.py
A
vendor/googletest/googletest/test/googletest-throw-on-failure-test_.cc
A	vendor/googletest/googletest/test/googletest-uninitialized-test.py
A
vendor/googletest/googletest/test/googletest-uninitialized-test_.cc
A	vendor/googletest/googletest/test/gtest-typed-test2_test.cc
A	vendor/googletest/googletest/test/gtest-typed-test_test.cc
A	vendor/googletest/googletest/test/gtest-typed-test_test.h
A	vendor/googletest/googletest/test/gtest-unittest-api_test.cc
A	vendor/googletest/googletest/test/gtest_all_test.cc
A
vendor/googletest/googletest/test/gtest_assert_by_exception_test.cc
A	vendor/googletest/googletest/test/gtest_dirs_test.cc
A	vendor/googletest/googletest/test/gtest_environment_test.cc
A	vendor/googletest/googletest/test/gtest_help_test.py
A	vendor/googletest/googletest/test/gtest_help_test_.cc
A	vendor/googletest/googletest/test/gtest_json_test_utils.py
A	vendor/googletest/googletest/test/gtest_list_output_unittest.py
A	vendor/googletest/googletest/test/gtest_list_output_unittest_.cc
A	vendor/googletest/googletest/test/gtest_main_unittest.cc
A	vendor/googletest/googletest/test/gtest_no_test_unittest.cc
A	vendor/googletest/googletest/test/gtest_pred_impl_unittest.cc
A	vendor/googletest/googletest/test/gtest_premature_exit_test.cc
A	vendor/googletest/googletest/test/gtest_prod_test.cc
A	vendor/googletest/googletest/test/gtest_repeat_test.cc
A	vendor/googletest/googletest/test/gtest_skip_check_output_test.py
A
vendor/googletest/googletest/test/gtest_skip_environment_check_output_test.py
A
vendor/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc
A	vendor/googletest/googletest/test/gtest_skip_test.cc
A	vendor/googletest/googletest/test/gtest_sole_header_test.cc
A	vendor/googletest/googletest/test/gtest_stress_test.cc
A
vendor/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc
A	vendor/googletest/googletest/test/gtest_test_utils.py
A	vendor/googletest/googletest/test/gtest_testbridge_test.py
A	vendor/googletest/googletest/test/gtest_testbridge_test_.cc
A
vendor/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc
A	vendor/googletest/googletest/test/gtest_unittest.cc
A	vendor/googletest/googletest/test/gtest_xml_outfile1_test_.cc
A	vendor/googletest/googletest/test/gtest_xml_outfile2_test_.cc
A	vendor/googletest/googletest/test/gtest_xml_outfiles_test.py
A	vendor/googletest/googletest/test/gtest_xml_output_unittest.py
A	vendor/googletest/googletest/test/gtest_xml_output_unittest_.cc
A	vendor/googletest/googletest/test/gtest_xml_test_utils.py
A	vendor/googletest/googletest/test/production.cc
A	vendor/googletest/googletest/test/production.h
A	vendor/googletest/googletest_deps.bzl
A	vsprojects/gtest/gtest.vcxproj
A	vsprojects/gtest/gtest.vcxproj.filters

commit ad6e29e7c93e47a3caad35869ef22518fb085b29
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 19 13:12:25 2024 -0500

    move gtest-like asserts into legacy_assertions.h

M	src/base/logging.h
M	src/tests/debugallocation_test.cc
A	src/tests/legacy_assertions.h
M	src/tests/malloc_extension_test.cc
M	src/tests/malloc_hook_test.cc
M	src/tests/page_heap_test.cc
M	src/tests/profile-handler_unittest.cc
M	src/tests/profiledata_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/unique_path_unittest.cc

commit 8318e08962713645e007690310b8d46c33de2e67
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Feb 20 12:03:39 2024 -0500

    fix missing AM_CXXFLAGS introduced in recent automake refactoring

M	Makefile.am

commit b02d36d2eb879934f93048f05c8eb5d95513082a
Author: oPiZiL <highouse1990@gmail.com>
Date:	Mon Feb 19 18:56:56 2024 +0800

    fix compile error with gcc 7.5

    In file included from /home/louwei/arcs/gperftools/src/span.cc:41:0:
    /home/louwei/arcs/gperftools/src/static_vars.h:125:37: error:
    ‘byte’ in namespace ‘std’ does not name a type
	 alignas(alignof(PageHeap)) std::byte memory[sizeof(PageHeap)];
					 ^~~~
    /home/louwei/arcs/gperftools/src/static_vars.h: In
    static member function ‘static tcmalloc::PageHeap*
    tcmalloc::Static::pageheap()’:
    /home/louwei/arcs/gperftools/src/static_vars.h:76:80: error: ‘struct
    tcmalloc::Static::<unnamed>’ has no member named ‘memory’
       static PageHeap* pageheap() { return reinterpret_cast<PageHeap
       *>(&pageheap_.memory); }
										    ^~~~~~

M	src/static_vars.h

commit 3d155f662473ff617455bb337ad328154ccc8728
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 17 19:49:30 2024 -0500

    apply tcmalloc::FunctionRef in AddressMap

M	src/addressmap-inl.h
M	src/debugallocation.cc
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/tests/addressmap_unittest.cc

commit 8c1a7ef17ff03386e2becb68b3c581ad57743b8f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 17 19:17:37 2024 -0500

    implement tcmalloc::FunctionRef

A	src/base/function_ref.h
M	src/tests/tcmalloc_unittest.cc

commit 5f92c0616a5bbda70c4c310de2ad75a0274940ab
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 17 14:20:04 2024 -0500

    implement tcmalloc::Cleanup

    This is similar, but slightly less featureful than
    absl::{Make,}Cleanup.

A	src/base/cleanup.h
M	src/base/linuxthreads.cc
M	src/tests/tcmalloc_unittest.cc

commit dec85dcc0323782ea01860962eda9ca6cced7640
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 17 18:05:07 2024 -0500

    avoid undefined behavior when parsing proc maps

    Clang's undefined behavior sanitized correctly pointed out that
    memmove requires non-nil args, so lets initialize sbuf to something.

M	src/base/proc_maps_iterator.cc

commit 9b5838f0849bb76d38f6857b6aa0e87b826f63e5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 17 18:04:18 2024 -0500

    modernize overalignment testing bits

M	src/tests/tcmalloc_unittest.cc

commit 3a2a7e05f676be45f403b0c9032b9ec4018a5f86
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 17 18:01:12 2024 -0500

    add missing internal_logging.cc to packed_cache_test

    It wasn't caught before because when optimization is enabled ASSERT-s
    inside packed-cache-inl get optimized away (because checks are
    tautological).

M	Makefile.am

commit 57d6ecc4aedeb62b1b59c0ba502137e94d8bef4f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 8 09:41:21 2024 -0500

    drop obsolete src/windows/TODO

D	src/windows/TODO

commit 8a147b4833da6b5e8c9618cad96ffa058ba7199c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 7 18:27:30 2024 -0500

    untangle a number of unittests from libtcmalloc_minimal.so

M	Makefile.am
M	src/pagemap.h
M	src/stack_trace_table.cc
M	src/stack_trace_table.h
M	src/tcmalloc.cc
M	src/tests/malloc_hook_test.cc
M	src/tests/page_heap_test.cc
M	src/tests/pagemap_unittest.cc
M	src/tests/stack_trace_table_test.cc
M	vsprojects/malloc_hook_test/malloc_hook_test.vcxproj
M	vsprojects/malloc_hook_test/malloc_hook_test.vcxproj.filters
M	vsprojects/packed-cache_test/packed-cache_test.vcxproj
M	vsprojects/packed-cache_test/packed-cache_test.vcxproj.filters
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/pagemap_unittest/pagemap_unittest.vcxproj
M	vsprojects/pagemap_unittest/pagemap_unittest.vcxproj.filters
M	vsprojects/sampler_test/sampler_test.vcxproj
M	vsprojects/stack_trace_table_test/stack_trace_table_test.vcxproj
M
vsprojects/stack_trace_table_test/stack_trace_table_test.vcxproj.filters

commit cad457ad23a14a3f4bf4a04b5d015e9bef3db812
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 7 20:24:10 2024 -0500

    actualize .gitignore

M	.gitignore

commit b0e2928343c01a2fd2aedec88f461e00f939b563
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 7 20:17:16 2024 -0500

    mingw: don't add patch_functions.cc in libcommon.la

M	Makefile.am

commit e544d402f76c704bc0ecf38c8cee6b97a75d92a8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 5 22:40:27 2024 -0500

    amputate unused log_message_write

M	src/internal_logging.cc
M	src/internal_logging.h

commit b6798a513029c88781d889d30017d9c069be117c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 5 22:31:58 2024 -0500

    amputate unused kCrashWithStats

M	src/internal_logging.cc
M	src/internal_logging.h
M	src/tcmalloc.cc

commit 45a4ad8b709638bb52d5c81b1985496bf6ad387c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 7 19:20:05 2024 -0500

    mmap_hook_test: don't printf early

    The test includes override of
    MallocHook_InitAtFirstAllocation_HeapLeakChecker which runs early
    enough to trigger FreeBSD bug of not having nearly anything working
    early.

M	src/tests/mmap_hook_test.cc

commit e7f576d9f1aac6ab5e3d25902de6e9390b852365
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 7 19:34:16 2024 -0500

    generic_writer_test: crash with message if tmpfile fails

M	src/tests/generic_writer_test.cc

commit 7756b4cc61b914eb280da2f536ac7a7f3d797a71
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 7 19:32:45 2024 -0500

    don't force TMPDIR on all unittests

    Turns out at least on FreeBSD tmpfile will fail if TMPDIR points to
    non-existant directory. This also has nice property of leaving it down
    to users to set up TMPDIR the way they want.

M	Makefile.am

commit c52c321bdd11b169dec556a8969071e5c55e0202
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 7 14:59:06 2024 -0500

    replace raw printer with usage of generic writer facility

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	src/heap-profile-table.cc
D	src/raw_printer.cc
D	src/raw_printer.h
D	src/tests/raw_printer_test.cc
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj.filters

commit 88adbbdb959787036d32177a333ceddae289f203
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 7 14:29:29 2024 -0500

    generalize FileGenericWriter

    There is now WriteFnWriter which allows us to use lambdas for a
    function that saves accumulated bytes.

M	src/base/generic_writer.h
M	src/base/proc_maps_iterator.cc
M	src/heap-profile-table.cc
M	src/heap-profiler.cc
M	src/tests/generic_writer_test.cc

commit 59f0247033af1c123fe6613fb404f8ce86c536ee
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Feb 7 12:27:30 2024 -0500

    liberate sampler_test from linking to libtcmalloc

    This test is exercising purely sampling interval logic.

M	Makefile.am
M	src/sampler.cc
M	src/sampler.h
M	src/thread_cache.h
M	vsprojects/sampler_test/sampler_test.vcxproj
M	vsprojects/sampler_test/sampler_test.vcxproj.filters

commit a02ac30bbfb698992c2d0e9cd4edd5f7bd2de053
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 5 17:03:28 2024 -0500

    rework and optimize structure of Makefile.am

    There were far too many intermediate libraries, references to obsolete
    libtool bugs and whatnot.

    We now have libcommon.la as a convenience archive that contains
    spinlock, logging and misc stuff. A number of unit tests that need
    those facilities are being linked to this.

    Then we have libstacktrace.la convenience archive, since it is used by
    libtcmalloc.la and libprofiler.la.

    And after that we're simply directly creating our main library
    products: libtcmalloc_minimal{,_debug}.la, libtcmalloc_{,debug}.la,
    libprofiler.la etc.

M	Makefile.am

commit 771a01ed2888f01f1dfe41a23ea2139ca8e0fdfa
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 5 10:30:22 2024 -0500

    rework and simplify emergency malloc integration

    We now wrap StackTraceScope thingy in tcmalloc-specific parts, instead
    of automagically inside every stacktrace.cc function. TCMalloc bits
    all need to grab stacktraces via newly introduced
    tcmalloc::GrabBacktrace (which handles emergency malloc wrapping).

    New approach eliminates the need for doing fake stacktrace scope. CPU
    profiler, being distinct .so library couldn't take advantage of
    emergency malloc anyways.

    This simplifies the build further and eliminates another potential
    point of runtime divergence when stacktrace is linked to both
    libprofiler and libtcmalloc.

M	CMakeLists.txt
M	Makefile.am
M	src/debugallocation.cc
M	src/emergency_malloc.cc
M	src/emergency_malloc.h
D	src/emergency_malloc_for_stacktrace.cc
D	src/fake_stacktrace_scope.cc
M	src/malloc_hook.cc
M	src/maybe_emergency_malloc.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/stacktrace.cc
M	src/tcmalloc.cc
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj.filters
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj.filters

commit 4be76ab7072aebc9224f78f5f402c52744ef4441
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 5 00:00:00 2024 -0500

    drop symbols weakening step

    It has questionable value and most importantly, it was broken lots of
    years without anyone complaining. So lets get things simpler.

M	Makefile.am
M	configure.ac

commit ca50448a1eca63b63c4364546dfed3d9ed51b533
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 23:56:08 2024 -0500

    drop export-symbols-regex stuff for libstacktrace.la

    It has no effect, because libstacktrace.la is convenience archive, not
    a library we install.

M	Makefile.am

commit ba3d7908551183edb390a7e98c958af3d56c64ac
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 23:46:39 2024 -0500

    drop running pprof -test as part of make check

    Not needed anymore.

M	Makefile.am

commit 144c118f92e4fa4aeb677f1af970630306a8329d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 23:42:58 2024 -0500

    drop outdated comment in Makefile.am

M	Makefile.am

commit e262ebc741cdb0768c6d028395eae2c4490cd59f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 22:31:07 2024 -0500

    ship everything under vsprojects/ in make dist

    We also drop all those WINDOWS_PROJECTS amends and simplify makefile.

M	Makefile.am

commit b49920ea642acabeed40c252e2ade61abdfd87d1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 22:00:42 2024 -0500

    don't bother listing every header in Makefile.am

    For compiling things automake never needs to be given a full set of
    headers. Usually headers are specified so that make dist includes them
    into archive, but we can achieve this goal easier.

    This reduces size and complexity of our Makefile.am stuff.

M	Makefile.am

commit 1331c0e0d17c9b1f2b4d3b3251aeb5f9cd2305c6
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 21:49:19 2024 -0500

    drop long deprecated google/ headers

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
D	src/google/heap-checker.h
D	src/google/heap-profiler.h
D	src/google/malloc_extension.h
D	src/google/malloc_extension_c.h
D	src/google/malloc_hook.h
D	src/google/malloc_hook_c.h
D	src/google/profiler.h
D	src/google/stacktrace.h
D	src/google/tcmalloc.h
D	src/tests/simple_compat_test.cc

commit a05bab586a69f0de5ad4f6206ab682df0ed65d62
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 19:33:12 2024 -0500

    align CentralFreeList on cache line size instead of just 64

    We had hardcoded size alignment on 64 bytes, seemingly to avoid
    cacheline contention when taking per-size-class central free list
    locks. But it makes more sense to do platform specific alignment.

    I did consider std::hardware_constructive_interference_size, but
    practical values seem to differ from what we have configured at least
    on some platforms.

M	src/central_freelist.h
M	src/static_vars.cc

commit 353816fd9db94897e2608b64f1c1871846ceee40
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 18:30:16 2024 -0500

    drop LINKER_INITIALIZED in favor of constexpr constructors

M	src/base/basictypes.h
M	src/base/low_level_alloc.cc
M	src/base/spinlock.cc
M	src/base/spinlock.h
M	src/central_freelist.h
M	src/common.cc
M	src/debugallocation.cc
M	src/emergency_malloc.cc
M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/malloc_hook.cc
M	src/memory_region_map.cc
M	src/mmap_hook.cc
M	src/page_heap_allocator.h
M	src/span.cc
M	src/span.h
M	src/static_vars.cc
M	src/static_vars.h
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/heap-checker_unittest.cc
M	src/thread_cache.cc
M	src/thread_cache_ptr.cc
M	src/windows/patch_functions.cc
M	src/windows/system-alloc.cc

commit 247b7f3370fb96c81d63fd8065bde1a09b57db54
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 16:39:02 2024 -0500

    use std::thread when spawning threads in tests

M	src/tests/malloc_hook_test.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/testutil.cc
M	src/tests/testutil.h

commit 2e5ecb4de6cdfad9e43f8d496591153a341f44b3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 21:07:17 2024 +0000

    amputate src/base/simple_mutex.h

    Use standard mutex instead

M	CMakeLists.txt
M	Makefile.am
D	src/base/simple_mutex.h
M	src/tests/malloc_hook_test.cc
M	src/tests/profile-handler_unittest.cc
M	src/tests/profiler_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters

commit 885dd867bc987fc52e93c49a2ccd55b50088e5ed
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 15:37:20 2024 -0500

    liberate code base from legacy fixed size int types

    I.e. all those int32 etc type (without _t at the end). We stick to
    standard. Google/Abseil code base has long been liberated as well.

M	src/addressmap-inl.h
M	src/base/basictypes.h
M	src/base/commandlineflags.h
M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h
M	src/base/proc_maps_iterator.cc
M	src/base/spinlock_internal.cc
M	src/base/spinlock_internal.h
M	src/base/spinlock_linux-inl.h
M	src/base/spinlock_posix-inl.h
M	src/base/spinlock_win32-inl.h
M	src/central_freelist.h
M	src/common.cc
M	src/common.h
M	src/debugallocation.cc
M	src/emergency_malloc.cc
M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/malloc_extension.cc
M	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/packed-cache-inl.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/profile-handler.cc
M	src/profile-handler.h
M	src/tcmalloc.cc
M	src/tests/frag_unittest.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/low_level_alloc_unittest.cc
M	src/tests/packed-cache_test.cc
M	src/tests/profile-handler_unittest.cc
M	src/tests/sampler_test.cc
M	src/tests/tcmalloc_unittest.cc
M	src/thread_cache.cc
M	src/thread_cache.h

commit de22f024fb4e65697bd3560cf24a51ae1f27a784
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 15:05:45 2024 -0500

    globally replace COMPILE_ASSERT with static_assert

M	src/base/basictypes.h
M	src/base/simple_mutex.h
M	src/base/spinlock.h
M	src/base/vdso_support.cc
M	src/packed-cache-inl.h
M	src/page_heap.cc
M	src/system-alloc.cc

commit c56764c3e67c3f5dad7cc465c613374f66e55be1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 14:22:33 2024 -0500

    tcmalloc_unittest: do 64-bit shift when computing alignment

    Thanks goes to MSVC for warning about this.

M	src/tests/tcmalloc_unittest.cc

commit 329e9adfa6d784d70559135cd420d81cc81af19b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 13:48:53 2024 -0500

    fix MSVC warning on flexible data member extension

M	src/base/generic_writer.cc

commit f910729012119b437f438d69bf45b43c42cdf452
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 14:13:56 2024 -0500

    turn inline ATTRIBUTE_ALWAYS_INLINE -> ALWAYS_INLINE

    gcc needs both inline and __attribute__((always_inline)), while MSVC
    only needs __forceinline. So relevant correct combination is now just
    ALWAYS_INLINE macro.

M	src/base/basictypes.h
M	src/common.h
M	src/debugallocation.cc
M	src/mmap_hook.cc
M	src/page_heap.h
M	src/pagemap.h
M	src/tcmalloc.cc
M	src/thread_cache.h

commit 57660e6a544ca786a993530581cbf1e06ec951c1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 14:05:26 2024 -0500

    fix MSVC warning on thread annotations

M	src/base/thread_annotations.h

commit 5ec6f60bd738b5d6a24abd40ece3214453dddfd3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 13:38:32 2024 -0500

    suppress thread-safety warning for ThreadCachePtr

    It is slightly less great that we have to disable thread-safety
    analysis, but they explicitly say that optional locking is not
    supported. And ours is very explicitly optional locking. I.e. we only
    let ourselves resort to slow locking very early during process
    startup, when TLS isn't 100% ready and safe to use yet.

M	src/thread_cache_ptr.cc

commit 78e7b959a74366b7023293fa3a3746907b1f1443
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 13:38:57 2024 -0500

    fix clang warning for CreateBadTLSCache

M	src/thread_cache_ptr.cc

commit 21e66f807cc0b502522f67c8cce61b8381241c0a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 13:37:53 2024 -0500

    enable -Wthread-safety for clang

M	Makefile.am
M	configure.ac

commit 2d35232cfa20ae1d87f58af4d88b2b5e3dae36f2
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 4 13:23:16 2024 -0500

    avoid unused variable warning for bucket_count

M	src/heap-profile-table.cc

commit c59b431b2830ebc2d3a02c95638c7268efac9983
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 3 15:54:12 2024 -0500

    use std::get_new_handler when handling OOM

    Previously when dealing with OOM condition we couldn't use
    std::get_new_handler (it didn't exist until c++ 11). Now we can and it
    simplifies logic a bit.

    We also detect -fno-exceptions case via standard __cpp_exceptions
    define. Also I've rearranged the logic and even found and fixed one
    bug in -fno-exceptions case.

M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc

commit 04a8a4bae62cda4b1d209f81f8562b787d9d0bd1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 1 22:14:55 2024 -0500

    actually verify that we're deallocating thread caches

M	src/tcmalloc.cc
M	src/tests/thread_dealloc_unittest.cc
M	src/thread_cache.h

commit 6691226953abde99d5884b5962da09c47f407bf2
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jan 31 22:10:21 2024 -0500

    split and rewrite TLS access for thread caches

    Logic was removed from thread_cache.{h,cc} into
    thread_cache_ptr.{h,cc}.

    Separation will help possible future evolution, and we already changed
    the logic quite a bit:

    * early access (when TLS isn't initialized yet) now uses global
    ThreadCache instance. We therefore have ThreadCachePtr instances
    managing required locking. This eliminates unnecessary complication of
    PTHREADS_CRASHES_IF_RUN_TOO_EARLY logic, and any other danger of
    touching TLS too early. BTW previous implementation actually leaked
    initial early-initialized ThreadCache instance(!)

    * old configure-time HAVE_TLS logic is amputated. Config-time part of
    it made little sense as C++ 17 guarantees availability of
    thread_local, but we have manually curated deny-list of "bad" OSes,
    that we tested (via compile checks!) at configure time. Now this
    is all compile time. There is now compile-time kHaveGoodTLS variable
    and we're using it mostly via if constexpr.

    * kHaveGoodTLS case of creating thread cache is simplified and made
    more straightforward (no need to have in_setspecific logic).

    * !kHaveGoodTLS case if fixed and improved too. We avoid
    std::thread::get_id, as it deadlocks on mingw. We use errno address as
    a portable and (usually) async-signal safe 'my thread' identifier. We
    also eliminate linear searching of thread's cache and replace it with
    straightforward hash table lookup.

M	CMakeLists.txt
M	Makefile.am
M	cmake/config.h.in
M	configure.ac
M	src/base/basictypes.h
M	src/base/spinlock.h
M	src/debugallocation.cc
M	src/emergency_malloc_for_stacktrace.cc
M	src/heap-checker.cc
M	src/stacktrace.cc
M	src/static_vars.cc
M	src/tcmalloc.cc
M	src/thread_cache.cc
M	src/thread_cache.h
A	src/thread_cache_ptr.cc
A	src/thread_cache_ptr.h
M	vsprojects/include/config.h
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj.filters

commit 104e2dd2283f9f87d415ae79dafa7b8d14321621
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Feb 2 15:31:34 2024 -0500

    improve page_allocator debug diagnostics

    Lets clear objects that we're freeing. Helps catch use-after free for
    our internal memory allocations.

M	src/page_heap_allocator.h

commit d0b0134c4516356fca27d496873ed1ac33b26b05
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 30 17:18:12 2024 -0500

    drop perftools_vsnprintf wrapper

    Because everyone now has functional and standards compiliant
    vsnprintf.

M	src/base/logging.h
M	src/internal_logging.cc
M	src/raw_printer.cc
M	src/tests/sampler_test.cc
M	src/windows/port.h

commit 51d3340b3908b24faaa67def6b8269fe180c303a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 30 16:02:26 2024 -0500

    avoid -Wunused-results warnings from read/write

    glibc with _FORTIFY_SOURCE sets those up to give warnings on unused
    results. We used to disable this warning globally, but lets do better.

M	CMakeLists.txt
M	Makefile.am
M	configure.ac
M	src/base/linuxthreads.cc
M	src/debugallocation.cc
M	src/internal_logging.cc
M	src/symbolize.cc
M	src/tcmalloc.cc

commit 1eb2d1a604402a94f094b9a0acb01ce16357ccbc
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 30 15:17:01 2024 -0500

    bump msvc projects to VS2019 and c++ 17

M	vsprojects/addr2line-pdb/addr2line-pdb.vcxproj
M	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj
M
vsprojects/current_allocated_bytes_test/current_allocated_bytes_test.vcxproj
M	vsprojects/frag_unittest/frag_unittest.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj
M	vsprojects/malloc_extension_test/malloc_extension_test.vcxproj
M	vsprojects/malloc_hook_test/malloc_hook_test.vcxproj
M	vsprojects/markidle_unittest/markidle_unittest.vcxproj
M	vsprojects/nm-pdb/nm-pdb.vcxproj
M	vsprojects/packed-cache_test/packed-cache_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/pagemap_unittest/pagemap_unittest.vcxproj
M	vsprojects/preamble_patcher_test/preamble_patcher_test.vcxproj
M	vsprojects/realloc_unittest/realloc_unittest.vcxproj
M	vsprojects/sampler_test/sampler_test.vcxproj
M	vsprojects/stack_trace_table_test/stack_trace_table_test.vcxproj
M	vsprojects/system-alloc_unittest/system-alloc_unittest.vcxproj
M
vsprojects/tcmalloc_minimal_large/tcmalloc_minimal_large_unittest.vcxproj
M
vsprojects/tcmalloc_minimal_unittest/tcmalloc_minimal_unittest.vcxproj
M	vsprojects/thread_dealloc_unittest/thread_dealloc_unittest.vcxproj

commit 82a36a6fcdd5de8128d2f2b99a560691d067ea1e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 30 14:44:06 2024 -0500

    bump required c++ standard to c++-17

M	CMakeLists.txt
M	Makefile.am
M	cmake/tcmalloc.h.in
M	configure.ac
M	src/debugallocation.cc
M	src/gperftools/tcmalloc.h.in
M	src/libc_override_gcc_and_weak.h
M	src/libc_override_redefine.h
M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc
M	vsprojects/include/gperftools/tcmalloc.h

commit faf96cd81ed97e55c6a9b062c2fa56911745400a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 30 15:53:33 2024 -0500

    reflect renaming src/tcmalloc{,_internal}.h in MSVC projects

M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters

commit 71b3a0c6c4f20dd5a3b59db4b3b417a4ee04a261
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 30 15:49:21 2024 -0500

    unreak gperftools/tcmalloc.h inclusion in MSVC projects

M	configure.ac
R100	vsprojects/gperftools/tcmalloc.h
vsprojects/include/gperftools/tcmalloc.h

commit 5db2adc4e71f600f8f2890b191d9a7acccf4f48e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 28 22:01:01 2024 -0500

    drop stale workaround for ancient solaris issue

M	CMakeLists.txt
M	Makefile.am
M	configure.ac
D	src/solaris/libstdc++.la

commit 5ce342e1c8628c0e433f2c33a440a4a2ce986b77
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 28 21:40:39 2024 -0500

    fix generic_writer_test and proc_maps_iterator_test on cmake+msvc

M	CMakeLists.txt

commit 468ccf3d0dda369b1f6f06303f99e24ce00454a9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 28 20:34:36 2024 -0500

    refactor and cleanup proc_maps_iterator.cc

    We don't need messed up ProcMapsIterator class. Since our API has been
    simplified we simply have one "for-each" function for each
    implementation.

M	src/base/proc_maps_iterator.cc

commit a3080fa8d617b5c77738653d46e4f865a10f03ee
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jan 27 19:05:38 2024 -0500

    extract proc-maps iteration into own file and cover it by tests

    This allows us, later, to avoid building this stuff in configurations
    that don't use it. I have also reduced API and ABI surface to enable
    further refactorings.

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
C060	src/base/sysinfo.cc	src/base/proc_maps_iterator.cc
A	src/base/proc_maps_iterator.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/malloc_extension.cc
M	src/profiledata.cc
M	src/symbolize.cc
A	src/tests/proc_maps_iterator_test.cc
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj.filters
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj.filters

commit fa5c61f52eb4c2a05b45178b06f294a4a7844d6e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 28 20:25:15 2024 -0500

    stop trying to declare madvise on solaris

    It isn't needed on modern opensolaris. And in fact it breaks the
    build. And I am not entirely sure how to accomodate both old and new
    behavior. So lets keep things simple and assume that old
    behavior (where madvise needs to be declared) is ancient enough.

M	src/system-alloc.cc

commit f22f5b2a63a6f255110f2d31d8d1768c39e2408f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 28 20:24:42 2024 -0500

    workaround broken mmap allocator on solaris

M	src/system-alloc.cc

commit 7d37882df059b50ecf9a90a2b215004a3527708a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 28 20:19:18 2024 -0500

    implement GetProgramInvocationName for solaris

M	src/symbolize.cc

commit 689752dc38345cbd14c6fdfa63cbfe3960181458
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jan 29 20:54:47 2024 -0500

    generate vsprojects/gperftools/tcmalloc.h from our main tcmalloc.h

    This will save me from risk of forgetting to update this file manually
    when bumping package version.

M	configure.ac
M	src/gperftools/tcmalloc.h.in
M	vsprojects/gperftools/tcmalloc.h

commit d6728a0b4c57c245b866942fc9c4be837aaa263f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jan 29 20:31:21 2024 -0500

    drop unused PACKAGE_XYZ defines from {cmake/vsproject}/config.h

    Automake or autoconf adds them automagically, but we don't really need
    them. Main effect of this change is that MSVC version of config.h
    doesn't duplicate package version.

M	cmake/config.h.in
M	vsprojects/include/config.h

commit 1eeea50f8988b7c3d3918d6a92db740fc58dd51a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jan 29 20:22:31 2024 -0500

    don't use config.h PACKAGE_{VERSION,STRING} in tcmalloc_unittest

    It makes a lot more sense to test our public API which is
    TC_VERSION_STRING.

M	src/tests/tcmalloc_unittest.cc

commit 3e328e405859b1b7c3821cc5d8cabc943f269a5a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jan 29 20:00:40 2024 -0500

    unbreak make dist

M	Makefile.am

commit 9a6848de8af67b55204887520bce34e41cdb6796
Author: lennoxho <lennoxhoe@gmail.com>
Date:	Sat Jan 27 06:28:45 2024 -0500

    A number of cleanups
    * Remove build dependency on HAVE_PTHREAD
    * Remove build dependency on HAVE_STD_ALIGNED_VAL_T and
    ENABLE_ALIGNED_NEW_DELETE
    * Remove redundant tcmalloc.h files & ensure there are no
    cross-build-tool references
    * Adopt automake commit 26927d1 in the CMake build

M	CMakeLists.txt
M	Makefile.am
M	cmake/config.h.in
M	cmake/tcmalloc.h.in
M	configure.ac
M	src/base/simple_mutex.h
M	src/base/threading.h
M	src/debugallocation.cc
M	src/gperftools/tcmalloc.h.in
M	src/libc_override_gcc_and_weak.h
M	src/libc_override_redefine.h
M	src/static_vars.cc
M	src/tcmalloc.cc
R100	src/tcmalloc.h	src/tcmalloc_internal.h
M	src/tests/memalign_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/testutil.cc
D	src/windows/google/tcmalloc.h
D	src/windows/gperftools/tcmalloc.h.in
M	vsprojects/common.vcxproj.props
R096	src/windows/gperftools/tcmalloc.h
vsprojects/gperftools/tcmalloc.h
R097	vsprojects/config.h	vsprojects/include/config.h

commit 8b34e9425cc04c6de7fd44b50bba18d396f10805
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 26 17:03:20 2024 -0500

    unbreak freebsd build

M	src/base/sysinfo.cc
M	src/thread_cache.cc

commit 96f34120fead4a16f4aa672f2266a3977b6a7253
Author: lennoxho <lennoxhoe@gmail.com>
Date:	Fri Jan 26 15:12:43 2024 -0500

    Several build fixes and cleanups
    - Fix CMake builds for MinGW and MSVC
    - Ensure the Autotools, CMake and VSProj builds do not reference
    each others' config.h
    - Use std::thread::id instead of our own thread ID wrappers
    - Moved explicit TLS wrapper functions into the tcmalloc:: namespace
    and change their visibility to hidden
    Resolves #1486

M	CMakeLists.txt
M	Makefile.am
M	cmake/config.h.in
M	configure.ac
M	src/base/threading.h
M	src/debugallocation.cc
M	src/getpc.h
M	src/heap-checker.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/profile-handler.cc
M	src/tcmalloc.cc
M	src/tests/debugallocation_test.cc
M	src/tests/malloc_hook_test.cc
M	src/tests/stack_trace_table_test.cc
M	src/thread_cache.cc
M	src/thread_cache.h
D	src/windows/mingw.h
M	src/windows/port.cc
M	src/windows/port.h
M	vsprojects/addr2line-pdb/addr2line-pdb.vcxproj
M	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj
M	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj.filters
A	vsprojects/common.vcxproj.props
R085	src/windows/config.h	vsprojects/config.h
M
vsprojects/current_allocated_bytes_test/current_allocated_bytes_test.vcxproj
M
vsprojects/current_allocated_bytes_test/current_allocated_bytes_test.vcxproj.filters
M	vsprojects/frag_unittest/frag_unittest.vcxproj
M	vsprojects/frag_unittest/frag_unittest.vcxproj.filters
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj.filters
M	vsprojects/malloc_extension_test/malloc_extension_test.vcxproj
M
vsprojects/malloc_extension_test/malloc_extension_test.vcxproj.filters
M	vsprojects/malloc_hook_test/malloc_hook_test.vcxproj
M	vsprojects/malloc_hook_test/malloc_hook_test.vcxproj.filters
M	vsprojects/markidle_unittest/markidle_unittest.vcxproj
M	vsprojects/markidle_unittest/markidle_unittest.vcxproj.filters
M	vsprojects/nm-pdb/nm-pdb.vcxproj
M	vsprojects/packed-cache_test/packed-cache_test.vcxproj
M	vsprojects/packed-cache_test/packed-cache_test.vcxproj.filters
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj.filters
M	vsprojects/pagemap_unittest/pagemap_unittest.vcxproj
M	vsprojects/pagemap_unittest/pagemap_unittest.vcxproj.filters
M	vsprojects/preamble_patcher_test/preamble_patcher_test.vcxproj
M
vsprojects/preamble_patcher_test/preamble_patcher_test.vcxproj.filters
M	vsprojects/realloc_unittest/realloc_unittest.vcxproj
M	vsprojects/realloc_unittest/realloc_unittest.vcxproj.filters
M	vsprojects/sampler_test/sampler_test.vcxproj
M	vsprojects/sampler_test/sampler_test.vcxproj.filters
M	vsprojects/stack_trace_table_test/stack_trace_table_test.vcxproj
M
vsprojects/stack_trace_table_test/stack_trace_table_test.vcxproj.filters
M	vsprojects/system-alloc_unittest/system-alloc_unittest.vcxproj
M
vsprojects/system-alloc_unittest/system-alloc_unittest.vcxproj.filters
M
vsprojects/tcmalloc_minimal_large/tcmalloc_minimal_large_unittest.vcxproj
M
vsprojects/tcmalloc_minimal_large/tcmalloc_minimal_large_unittest.vcxproj.filters
M
vsprojects/tcmalloc_minimal_unittest/tcmalloc_minimal_unittest.vcxproj
M
vsprojects/tcmalloc_minimal_unittest/tcmalloc_minimal_unittest.vcxproj.filters
M	vsprojects/thread_dealloc_unittest/thread_dealloc_unittest.vcxproj
M
vsprojects/thread_dealloc_unittest/thread_dealloc_unittest.vcxproj.filters

commit ec4aa0367c888d4e8a19d3939405416e27018007
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 26 16:55:51 2024 -0500

    support %zx format in TracePrintf

M	src/debugallocation.cc

commit d7dd9ea824e8d8b8395c8376f72e5a02fe80570f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 26 16:51:40 2024 -0500

    added missing include in generic_writer.cc

    We use std::min which require <algorithm> to be included.

M	src/base/generic_writer.cc

commit 79b6ad2ab594876b205ca9b5dee3661df32a3279
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jan 25 16:10:30 2024 -0500

    amputate HAVE_FORK checking

    Pretty much everything has fork, except windows. Which is much simpler
    to test at compile time, then duplicating and complicating the test at
    configure time.

M	CMakeLists.txt
M	cmake/config.h.in
M	src/static_vars.cc
M	src/windows/config.h
M	src/windows/mingw.h

commit 8cc2d93055b58302e5deba0797669e1380983acd
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jan 25 16:02:27 2024 -0500

    drop unnecessary pid_t/getpid dependencies

    It simplifies our windows story because pids stuff is different
    there. And we're not really using it anyways.

M	src/base/sysinfo.cc
M	src/windows/mingw.h
M	src/windows/port.h

commit 789fadc763c072616a1aeed7205e62a8eeb788df
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jan 25 15:42:33 2024 -0500

    drop pid_t dependency in ProcMapsIterator and simplify it

    Original code was lifted from google-internal bits and perhaps those
    needed that feature (dumping other process-es proc-maps files). But
    our usage which is long-forked from theirs has always been to dump our
    own maps. So this complexity was never useful for us.

M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/heap-checker.cc

commit 913f70b66e1fb29682ae6491811a4d5c7871c1af
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jan 25 15:41:04 2024 -0500

    drop disabled chunk of tcmalloc_unittest.cc

M	src/tests/tcmalloc_unittest.cc

commit 678b9e54dd0f3d901dbd2d040f4e56834c286314
Author: Lennox Ho <lennoxhoe@gmail.com>
Date:	Thu Jan 25 13:24:47 2024 -0500

    Work around malloc/HeapFree mismatch in early versions of Win11's
    shell32.dll

M	src/windows/patch_functions.cc

commit 5cab8f3f77016468c08f7cd60ee186fa5a5a5cad
Author: lennoxho <lennoxhoe@gmail.com>
Date:	Wed Jan 24 21:47:06 2024 -0500

    Convert MinGW builds to always use WinAPI based threading
    facilities. See ##1483

M	CMakeLists.txt
M	Makefile.am
M	cmake/config.h.in
M	src/base/basictypes.h
A	src/base/threading.h
M	src/debugallocation.cc
M	src/heap-checker.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/profile-handler.cc
M	src/tcmalloc.cc
M	src/tests/generic_writer_test.cc
M	src/tests/malloc_hook_test.cc
M	src/thread_cache.cc
M	src/thread_cache.h
M	src/windows/config.h
M	src/windows/mingw.h
M	src/windows/port.cc
M	src/windows/port.h

commit e3b3a7772782b3f77b2f13e83d6288e57046ccd8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 23 16:56:10 2024 -0500

    use generic writer when producing heap profiles

    This removes somewhat controversial intermediate step of sorting heap
    profile buckets and fixes issue where heap profiles could get
    truncated sometimes. See github issue #1450.

M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/malloc_extension.cc
M	src/memory_region_map.h
M	src/profiledata.cc
M	src/symbolize.cc

commit cc2a1a14018a21146f449827626f7161b4bda69a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 23 17:03:36 2024 -0500

    amputate unused HeapProfileTable::IterateOrderedAllocContexts

M	src/heap-profile-table.cc
M	src/heap-profile-table.h

commit 7b41de4f4b6569fc19afbfd23d5b2e4914d02054
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 23 16:53:51 2024 -0500

    allow AddressMap::Iterate via lambda

M	src/addressmap-inl.h

commit 24774ebb38bf5306d53a1baa05e0c17189c34a6d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jan 23 16:53:17 2024 -0500

    introduce generic_writer facility

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
A	src/base/generic_writer.cc
A	src/base/generic_writer.h
A	src/tests/generic_writer_test.cc
M	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj
M	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj.filters
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj.filters
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj.filters

commit 510006081fe88ec2f5cebb7a65daf1810a2901aa
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 21 23:02:42 2024 -0500

    drop unused HasPosixThreads declaration

M	src/base/sysinfo.h

commit 61c064fdb57c379df4cd198d05a262b4f4d121f8
Author: barracuda156 <vital.had@gmail.com>
Date:	Tue Jan 9 23:51:06 2024 +0800

    check_address_test.cc: missed MAP_ANON fix

M	src/tests/check_address_test.cc

commit 365060c4213a48adb27f63d5dfad41b3dfbdd62e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 5 12:23:30 2024 -0500

    bump version to 2.15

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 5abc5721300463b7f05a34b4c95cf45664103b50
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jan 4 19:33:18 2024 -0500

    move dynamic_annotations.cc under libsysinfo.la

    See github issue #1474 for immediate reason.

    Note, this entire idea of number of convenience libraries is likely
    simply artifact of Google's codebase past. We don't really need this
    complexity. But I am holding big reorganization of this for after API
    and ABI work. For now, simply moving dynamic_annotations.cc into
    libsysinfo fixes things. Most of the code links both anyways. So lets
    just do it.

M	Makefile.am

commit d5c1edf4f5fe901f40d96f4a9d4914f651742c88
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jan 3 16:06:39 2024 -0500

    [cmake] explicitly link more libraries for threading

    See discussion on https://github.com/gperftools/gperftools/pull/1473

M	CMakeLists.txt

commit 9430287d15a5c3dd7de9c1b205c6c034c82f35a1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jan 1 12:38:26 2024 -0500

    few editorial fixes to NEWS for 2.14 release

M	NEWS

commit dcf01310551c91d83aeb9bcc8edcb4072d697bd7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jan 1 01:02:20 2024 -0500

    correct NEWS entry about QNX (it supports heap profiler)

M	NEWS

commit e49b36f7d678443859f977bb9a2a3bada1f96ffc
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Dec 31 22:30:20 2023 -0500

    bump version to 2.14

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit f17d54df5c41a9880c87e623bbf354bc773f440c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Dec 31 23:12:09 2023 -0500

    add recently added getpc-inl.h to a set of headers to package

M	Makefile.am

commit fae6421668dd640afc4c7fb08134e53c240b4235
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Dec 31 23:16:00 2023 -0500

    avoid unused variable warning for TCMallocImplementation space

M	src/tcmalloc.cc

commit 1ba9f605798a4040c3de306f641899dc53cfa5ec
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Dec 31 21:59:53 2023 -0500

    construct malloc extension instances in static spaces

    So that malloc hooks can call into
    MallocExtension::instance()->GetAllocatedSize() and avoid recursion
    from new MallocExtension call inside that call.

    This was proposed by github user poljak181 at issue #1472

M	src/malloc_extension.cc
M	src/tcmalloc.cc

commit a0880d78f3bb996790075b986c0fa3c81624aacf
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Dec 31 21:33:30 2023 -0500

    Revert "[osx] implement native c++ allocation operators on osx"

    This reverts commit 6683e4f6eeebc52c0704500ef9f461454434578c.

M	src/libc_override_osx.h

commit 6299ae9869db5084bcab917627497da397386216
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Dec 31 21:23:25 2023 -0500

    test PREFER_LIBGCC_UNWINDER via defined()

    Our newly updated cmake bits now define it to empty, when it is
    enabled, so we want to test it right. Autoconf stuff behaves the same
    as before.

M	src/stacktrace.cc

commit bbc03edc4ddbcce216bd5fa490fd9383bea26a84
Author: Mateusz Jakub Fila <mateusz.jakub.fila@cern.ch>
Date:	Mon Dec 25 02:10:00 2023 +0100

    added missing aggressive decommit option in cmake

M	CMakeLists.txt

commit 9c2028ae5073b688da89b4866af8739a951f2fe3
Author: Mateusz Jakub Fila <mateusz.jakub.fila@cern.ch>
Date:	Mon Dec 25 02:04:33 2023 +0100

    added missing large alloc report option in cmake

M	CMakeLists.txt

commit eeb25dd2a50d63363adc6fe07e0eeea625f9b6ea
Author: Mateusz Jakub Fila <mateusz.jakub.fila@cern.ch>
Date:	Mon Dec 25 01:46:40 2023 +0100

    added missing finding asm/ptrace.h in cmake

M	CMakeLists.txt

commit 4e9fd729d2e7a5907fe118ff57b5218c27d5e824
Author: Mateusz Jakub Fila <mateusz.jakub.fila@cern.ch>
Date:	Mon Dec 25 01:38:09 2023 +0100

    added missing finding `HAVE___ATTRIBUTE__ALIGNED_FN` in cmake

M	CMakeLists.txt

commit ad4a6ff8de1c04bf5b55dc87057ad84aeeb2836f
Author: Mateusz Jakub Fila <mateusz.jakub.fila@cern.ch>
Date:	Sun Dec 24 02:38:59 2023 +0100

    added missing gcc unwinder preference option in cmake

M	CMakeLists.txt
M	cmake/config.h.in

commit 8987d08f792c1c694849a6e779735bfcf50ac8a4
Author: Mateusz Jakub Fila <mateusz.jakub.fila@cern.ch>
Date:	Sun Dec 24 01:51:00 2023 +0100

    fixed setting pagesize and pageshift in cmake

M	CMakeLists.txt
M	cmake/config.h.in

commit e9a2d3c46f58581b9c4198b11fc55ac88d9cc6f1
Author: barracuda156 <vital.had@gmail.com>
Date:	Sat Dec 16 09:53:35 2023 +0800

    mmap_hook.cc: use MAP_ANON when MAP_ANONYMOUS is not defined

M	src/mmap_hook.cc

commit 85048430ac587190b83973c86ceeb16c72bce9f2
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Dec 7 15:01:27 2023 -0500

    consolidate do_mallinfo{,2}

    We had 2 nearly identical implementations. Thankfully C++ templates
    facility lets us produce 2 different runtime functions (for different
    type widths) without duplicating source.

    Amend github issue #1414

M	src/debugallocation.cc
M	src/tcmalloc.cc

commit b8e75ae6fe7659ac98d488de3c138f7c9dcacd46
Author: Mateusz Jakub Fila <mateusz.jakub.fila@cern.ch>
Date:	Thu Dec 7 14:10:51 2023 +0100

    Add mallinfo2 function

M	CMakeLists.txt
M	Makefile.am
M	cmake/config.h.in
M	cmake/tcmalloc.h.in
M	configure.ac
M	src/debugallocation.cc
M	src/gperftools/tcmalloc.h.in
M	src/libc_override_aix.h
M	src/libc_override_gcc_and_weak.h
M	src/libc_override_redefine.h
M	src/tcmalloc.cc
M	src/windows/config.h

commit a9b734e3fa697aba64ec4ef3ef228ee532f23430
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Nov 26 23:43:24 2023 -0500

    perform ucontext->pc variants testing in compile-time

    As part of cpu profiler we're extracting current PC (program counter)
    of out signal's ucontext. Different OS and hardware combinations have
    different ways for that. We had a list of variants that we tested at
    compile time and populated PC_FROM_UCONTEXT macro into config.h. It
    caused duplication and occasional mismatches between our autoconf and
    cmake bits.

    So this commit changes testing to be compile-time. We remove
    complexity from build system and add some to C++ source.

    We use SFINAE to find which of those variants compile (and we silently
    assume that 'compiles' implies 'works'; this is what config-time
    testing did too). Occasionally we'll face situations where several
    variants compile. And we couldn't handle this case in pure C++. So we
    have a small Ruby program that generates chain of inheritance among
    SFINAE-specialized class templates. This handles prioritization among
    variants.

    List of ucontext->pc extraction variants is mostly same. We dropped
    super-obsolete (circa Linux kernel 2.0) arm variant. And NetBSD case
    is now improved. We now use their nice architecture-independent macro
    instead of x86-specific access.

M	CMakeLists.txt
D	cmake/PCFromUContext.cmake
M	cmake/config.h.in
M	configure.ac
D	m4/pc_from_ucontext.m4
A	src/gen_getpc.rb
A	src/getpc-inl.h
M	src/getpc.h
M	src/stacktrace_generic_fp-inl.h
M	src/tests/getpc_test.cc
M	src/windows/config.h

commit 8edeea4e838573b689d621425044d4efc6ed7f54
Author: Sergey Fedorov <vital.had@gmail.com>
Date:	Sat Nov 25 15:37:06 2023 +0800

    DefineTargetVariables.cmake: fix for macOS

M	cmake/DefineTargetVariables.cmake

commit 68db54545ee0be0967ae5ed0e54358e8fef04b9e
Author: Sergey Fedorov <vital.had@gmail.com>
Date:	Sat Nov 25 15:44:16 2023 +0800

    Minor fix-ups for PowerPC defines

M	src/base/basictypes.h
M	src/stacktrace_powerpc-inl.h

commit c815c760dab64a977c2c6f5d3a2a2a4bc9d10189
Author: Sergey Fedorov <vital.had@gmail.com>
Date:	Sat Nov 25 15:39:35 2023 +0800

    CMakeLists.txt: disable libunwind for ppc

M	CMakeLists.txt

commit 0ae8fe965081740547619d3d5b7f1fca1af4e0ce
Author: Sergey Fedorov <vital.had@gmail.com>
Date:	Sat Nov 25 15:27:20 2023 +0800

    PCFromUContext.cmake: fix macOS uc_mcontext

M	cmake/PCFromUContext.cmake

commit 36fa5ee9ef55103d9edc0a206270f487f2539465
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Nov 6 13:19:17 2023 -0500

    patch libtool.m4 for compiler_lib_search_path fix for qnx

    Amend github issue #1429

M	autogen.sh
A	m4/libtool.patch

commit 000af9a1646ebc8c2b8120b60a2946d9718a3072
Author: Julian Schroeder <jumaco@amazon.com>
Date:	Mon Oct 30 11:43:42 2023 -0600

    [stacktrace_generic_fp] clear aarch64 pointer auth bits

    AARCH64 >= armv8.3-a supports pointer authentication. If this
    feature is
    enabled it modifies the previously unused upper address bits in
    apointer.
    The affected bits need to be cleared in order for stacktrace to work.

    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    [alkondratenko@gmail.com: added succinct subject line]

M	src/stacktrace_generic_fp-inl.h

commit d1a0cbe1bfd8bfaa6223fb9913fa872a760e536e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Oct 30 19:47:02 2023 -0400

    [qnx] handle broken cfree and mallopt

M	configure.ac
M	src/libc_override_gcc_and_weak.h

commit 717bf724a5468fe7125d6eab0c292ca8ec33340b
Author: Xiang.Lin <myd.xia@gmail.com>
Date:	Thu Sep 21 15:42:33 2023 +0800

    Add heap profiler support for QNX

M	benchmark/unwind_bench.cc
M	configure.ac
M	src/base/basictypes.h
M	src/base/sysinfo.cc

commit adf24f9962c104f463966d0580540818fa723c44
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Oct 27 20:53:21 2023 -0400

    stacktrace_unittest: add simple way to skip ucontext testing

M	src/tests/stacktrace_unittest.cc

commit 4d1a9e92266f2109d9f535ad65434924765a2456
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Oct 23 10:14:16 2023 -0400

    stacktrace_unittest: test all stacktrace capturing methods

M	CMakeLists.txt
M	Makefile.am
M	src/stacktrace.cc
M	src/tests/stacktrace_unittest.cc

commit 4dc313870c7a91050e0ac12e411c52c68e761ba7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 24 16:21:15 2023 -0400

    add cmake warning that our support is incomplete

M	CMakeLists.txt

commit 96f4f075252a946e9e538fe104621e720f359105
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Oct 24 15:49:03 2023 -0400

    avoid unused variable warning in stacktrace_libunwind

M	src/stacktrace_libunwind-inl.h

commit db4eacc5d9faeef5e4d0277a45d23664aafdf81a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Oct 23 11:46:02 2023 -0400

    avoid runtime initialization of null stacktrace implementation

    As we recently found out, initializing static struct fields or
    variables with lambdas, sets up runtime initialization instead of
    static initialization as we assumed. So lets avoid this too for null
    stacktrace implementation.

M	src/stacktrace.cc

commit 5ba86d37a3a88060c93e350209a9365ef3afaeb3
Author: Yikai Zhao <yikai@z1k.dev>
Date:	Fri Oct 13 13:04:35 2023 +0800

    update stacktrace_unittest to test overflow issue

    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    [alkondratenko@gmail.com: squashed log update commit here]

M	src/tests/stacktrace_unittest.cc

commit dad9e8ceb943c108cf0687d6de273dfec3970df6
Author: Yikai Zhao <yikai@z1k.dev>
Date:	Wed Oct 11 19:43:28 2023 +0800

    Fix result overflow in generic_fp stacktrace

    In the 'with ucontext' case, the `skip_count` would be reset to 0, and
    `max_depth` should not be modified. Otherwise the result array
    would overflow.

M	src/stacktrace_generic_fp-inl.h

commit c48d4f1407d3b496eab531f6f0e5184049fe3d9e
Author: Romain Geissler <romain.geissler@amadeus.com>
Date:	Tue Oct 17 17:48:33 2023 +0000

    Avoid initilizing CheckAddress with a lambda, so that it also works
    with gcc 6.

M	src/check_address-inl.h

commit d48bf6b3adad65756ed79b843b85409aa34459f8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Sep 27 21:37:30 2023 -0400

    force inline do_mmap_with_hooks

    Otherwise mmap calling to do_mmap_with_hooks might tail-call (instead
    of inlining), which will then break GetCallerStackTrace
    facility (since only mmap is placed into special malloc_hook section).

    This unbreaks heap checker on gcc 5, but is in general right thing to
    do.

M	src/mmap_hook.cc

commit 9a123db7b441072a1892e0bab6a101763743aa1c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Sep 27 21:35:29 2023 -0400

    work around tuple construction miscompilation on gcc 5

    This fixes github issue #1432

M	src/base/sysinfo.cc

commit d152d76cd14c9e439aa3d9c8a720b7601a66df97
Author: Yikai Zhao <yikai@z1k.dev>
Date:	Mon Sep 25 19:04:23 2023 +0800

    generic_fp stacktrace: check frame size threshold for initial frame

M	src/stacktrace_generic_fp-inl.h

commit 64d64bee40811ae19cb119414bdd5e078094d8a7
Author: Lennox Ho <lennoxhoe@gmail.com>
Date:	Thu Sep 21 10:31:29 2023 +0800

    Fix C++ aligned allocation detected in the CMake build

M	CMakeLists.txt

commit 589d416977977f32fde82cd623a7a876ab1d397c
Author: Lennox Ho <lennoxhoe@gmail.com>
Date:	Tue Sep 19 14:53:16 2023 +0800

    Add a more performant SpinLockDelay implementation for Windows based
    on WaitOnAddress and friends

M	CMakeLists.txt
M	Makefile.am
M	src/base/spinlock_win32-inl.h

commit fd0fabe1831be3a3344048436f0a4ec89bf96466
Author: Lennox Ho <lennoxhoe@gmail.com>
Date:	Tue Sep 19 14:47:46 2023 +0800

    Fix Windows CMake build by linking page_heap_test and mmap_hook_test
    to the entire library

M	CMakeLists.txt

commit 17f23e8d1ef3832663c019e2420307c7068a5543
Author: Lennox Ho <lennoxhoe@gmail.com>
Date:	Mon Sep 18 06:37:58 2023 +0800

    Add the ability to disable TCMalloc replacement on Windows via
    environment variable TCMALLOC_DISABLE_REPLACEMENT=1

M	src/windows/patch_functions.cc

commit df006e880e1ca6fa3a3ccc3a44a65a9e8bec298c
Author: Lennox Ho <lennoxhoe@gmail.com>
Date:	Sun Sep 17 07:59:40 2023 +0800

    Also expose SetMemoryReleaseRate and GetMemoryReleaseRate as C shims

M	src/gperftools/malloc_extension_c.h
M	src/malloc_extension.cc

commit d3602c0672daebe2edd533fda968a1f36233d706
Author: Lennox Ho <lennoxhoe@gmail.com>
Date:	Sun Sep 17 07:49:38 2023 +0800

    Account for Windows while performing implicit TLS detection in
    CMakeLists.txt

M	CMakeLists.txt

commit dffb4a2f284700b814e2c3aa1f9263fd14e836f8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 11 16:11:27 2023 -0400

    bump version to 2.13

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 4ec8c9dbb25e2844f98f7acc848aa3b190349d70
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Sep 10 22:18:51 2023 -0400

    reduce set of nallocx size testing points

    Testing every 7th size is a bit slow on slower machines. No need to be
    as thorough. We now bump by about 1/128th each step which is still
    more steps than size classes we have.

M	src/tests/tcmalloc_unittest.cc

commit e4e7ba93a03e469e1d11153bf724e422509ebab7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Sep 10 21:06:02 2023 -0400

    unbreak unnecessary dependency on 64-bit atomics

    This unbreaks builds on 32-bit arms and mipsen.

M	src/tests/profile-handler_unittest.cc

commit 523b72f754246d4c3736c82ba7fa0576b672497e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Sep 10 18:12:45 2023 -0400

    make sampling_debug_test actually test debug malloc

    We do shell wrapper for actual test run, so we can inspect output of
    pprof. But when we set up sampling_debug_test.sh we simply copied
    regular sampling_test.sh, which ran same non-debug test binary. Now we
    sed-replace contents of shell program when copying, so we test right
    binary.

    Another thing we fix here is our (still hardcoded) test output path is
    now different between sampling{,_debug}_test.sh. So this fixes main
    cause of flakiness of our unit tests.

M	Makefile.am

commit 2748dd56803d61b8aee8fbb8bbdf9bc6d2913529
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Sep 8 19:47:17 2023 -0400

    unbreak address access "probing" for generic_fp backtracing

    We used msync to verify that address is readable. But msync gives
    false positives for PROT_NONE mappings. And we recently got bug report
    from user hitting this exact condition.

    For correct access check, we steal idea from Abseil and do sigprocmask
    with address used as new signal mask and with invalid HOW
    argument. This works in today's Linux kernels and is among fastest
    methods available. But is brittle w.r.t. possible kernel changes. So
    we supply fallback method that does 2 syscalls.

    For non-Linux systems we implement usual "write to pipe" trick. Which
    also has decent performance, but requires occasional pipe draining and
    uses fds which could occasionally be damaged by some forking codes.

    We also finally cover all new code with unit test.

    Fixes github issue #1426

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
A	src/check_address-inl.h
M	src/stacktrace_generic_fp-inl.h
A	src/tests/check_address_test.cc

commit 7ad1dc7693b7b04199681df474122248634a9808
Author: Ivan Dlugos <dlugos.ivan@gmail.com>
Date:	Mon Sep 4 14:40:27 2023 +0200

    fix: cmake config.h defines declaration

M	.gitignore
M	cmake/config.h.in
M	src/base/logging.h
M	src/base/sysinfo.cc
M	src/getpc.h
M	src/malloc_hook.cc
M	src/profile-handler.cc
M	src/profiler.cc
M	src/stacktrace_generic_fp-inl.h
M	src/stacktrace_powerpc-linux-inl.h

commit f7172839a1a3ca99309ab322d8ea085967ecaf4d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Sep 8 14:22:46 2023 -0400

    turn tcmalloc::TrivialOnce into POD

    As we see in github issue #1428, msvc arranges full "init on first
    use" initialization for local static usage of TrivialOnce even if that
    initialization is completely empty. Fair game, even if stupid.

    POD with no initialization should be safely zero-initialized with no
    games or tricks from the compilers.

    We could have and perhaps at some point should do constexpr for
    TrivialOnce and SpinLock (abseil has been liberated from
    LinkerInitialized for perphaps well over decade now, including their
    fork of SpinLock, of course). But C++ legalese rules are complex
    enough and bugs happened in past, so I don't want to be in the tough
    business of interpreting standard. So at least for now we keep
    things simple.

M	src/base/spinlock.h
M	src/debugallocation.cc
M	src/heap-checker.cc
M	src/malloc_hook.cc
M	src/profile-handler.cc

commit 539ed9ca40f4d3806e7a2b79b5aa02b9a45083d3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Aug 24 15:03:47 2023 -0400

    bump version 2.12

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 8d634c1f56d282b55ad414a0d8b3bba5cad9bb93
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Aug 24 14:06:25 2023 -0400

    don't build mmap_hook when --enable-minimal is given to configure

    Refers to github issue #1418

M	Makefile.am

commit b4ad04982d4710f7dccae6c4d348df224cc94dad
Author: Brett T. Warden <brett.t.warden@intel.com>
Date:	Tue Aug 15 16:21:47 2023 -0700

    Set Description field in generated pkg-config files (instead of
    Summary)

    Fixes #1416

M	Makefile.am

commit 0a3ca5b43d7358c901d78cefef593ad8a7a96ab3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Aug 14 22:47:56 2023 -0400

    bump version to 2.11

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 83fccceffaa3e526d2612b34400c772745e8441c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Aug 14 10:12:11 2023 -0400

    bump README freshness a bit

M	README

commit c41eb9e8b594a3a6ccd973f38edb80554c1e31e1
Author: Ken Raffenetti <raffenet@mcs.anl.gov>
Date:	Fri Aug 11 10:23:37 2023 -0500

    Add MPICH HPC environment detection

    Default MPICH builds use the Hydra process manager (mpiexec)
    which sets
    PMI_RANK in the application environment. Update GetUniquePathFromEnv()
    test accordingly.

    Signed-off-by: Ken Raffenetti <raffenet@mcs.anl.gov>

M	src/base/sysinfo.cc
M	src/tests/unique_path_unittest.cc

commit 1d2654f3a0e5da3f51da5245edb24489efd51773
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Aug 10 00:22:45 2023 -0400

    heap-checker: unbreak PTRACE_GETREGS detection on older Linux-es

    This unbreaks RHEL6.

M	src/heap-checker.cc

commit dbd10716809320c7fb89dd43d1e6b913ed1378c3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Aug 9 22:11:41 2023 -0400

    link libprofiler with pthread

    This unbreaks building on older Linux distros. We missed this at
    46d3315ad7901099bd414740dbfbe6d27f33da9a when dropped maybe_thread
    stuff, since libprofiler indeed uses pthread, and because on newer
    libc-s pthread stuff is now part of regular libc.so.

    I am also dropping bogus LIBPROFILER stuff referring to some rpath
    badness. Unsure what it was, maybe way back we did libstacktrace as a
    proper libtool library, so maybe something was needed. But it is just
    a convenience archive this days, so we don't really need to add it
    everywhere libprofiler.la is linked.

M	Makefile.am

commit 729383b486b3e26626e1dd354c8b5098d104f19f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Aug 9 23:29:00 2023 -0400

    make sure that ListerThread runs on properly aligned stack

    Without this fix we're failing unit tests on ubuntu 18.04 and centos 7
    and 6. It looks like clone() in old glibc-s doesn't align stack, so
    lets handle it ourselves. How we didn't hit this much earlier (before
    massive thread listing refactoring), I am not sure. Most likely pure
    luck(?)

M	src/base/linuxthreads.cc

commit 51c5e2bec7a53a7f1e5e44c866239fedb8ecd590
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Aug 9 13:18:59 2023 -0400

    massage latest GetUniquePathFromEnv changes

    This fixes a number of minor bits (like build details) as well as
    making overall code style similar to what we're doing elsewhere.

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/tests/unique_path_unittest.cc

commit 86450ad99fc9708ac5f1b79d5c7f089d50821a42
Author: Artem Polyakov <artpol84@gmail.com>
Date:	Thu Jul 13 17:43:29 2023 -0700

    Add unit test for GetUniquePathFromEnv()

    Signed-off-by: Artem Polyakov <artpol84@gmail.com>

M	Makefile.am
A	src/tests/unique_path_unittest.cc

commit 881b754da0c9c8b5e711113aecfad5f7f8ef95f2
Author: Artem Y. Polyakov <artpol84@gmail.com>
Date:	Thu Apr 1 15:27:22 2021 -0700

    Advanced UniquePathFromEnv generation

    * Add support for known HPC environments (TODO: needs to be extended
    with more nevironments)
    * Added the "CPUPROFILE_USE_PID" environment variable to force
    appending
    PID for the non-covered environments
    * Preserve the old way of handling the Child-Parent case

    Signed-off-by: Artem Polyakov <artpol84@gmail.com>

M	src/base/sysinfo.cc
M	src/base/sysinfo.h

commit 57512e9c3dec5de857c856d4e7783a69ea3cd872
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 6 19:24:17 2023 -0400

    unbreak -Wthread-safety

    It actually found real (but arguably minor) issue with memory region
    map locking.

    As part of that we're replacing PageHeap::DeleteAndUnlock that had
    somewhat ambitious 'move' of SpinLockHolder, with more straightforward
    PageHeap::PrepareAndDelete. Doesn't look like we can support move
    thingy with thread annotations.

M	src/base/spinlock.h
M	src/heap-profile-table.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/tcmalloc.cc
M	src/tests/page_heap_test.cc

commit 862039c1850d56c64f482909d615ffcffbfcdfc0
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 6 14:44:05 2023 -0400

    don't -momit-leaf-frame-pointer when asked for full frame pointers

M	Makefile.am

commit dc25c1fd4c4b9de71f91013a8c0b811164494eed
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 31 20:04:39 2023 -0400

    bump version to 2.11rc

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 909fa3e649c659bbb055f97cc9277080a1725ea8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 31 16:27:33 2023 -0400

    unbreak MallocExtension::GetAllocatedSize() for debug allocator

    Some years back we fixed memalign vs realloc bug, but we preserved
    'wrong' malloc_size/GetAllocatedSize implementation for debug
    allocator.

    This commit refactors old code making sure we always use right
    data_size and it fixes GetAllocatedSize. We update our unittest
    accordingly.

    Closes #738

M	src/debugallocation.cc
M	src/tests/debugallocation_test.cc

commit a51e08b06a4318a201547b7458f6483e830d86e5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 31 15:40:13 2023 -0400

    drop obsolete TODO file

M	Makefile.am
D	TODO

commit a1c7ce779317adc3d4128daa37523b3ba935a34e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 31 15:16:14 2023 -0400

    refresh README-s

M	README
M	README_windows.txt

commit bef6592746445db220fc29a8ed9dc0123e628221
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 31 15:10:56 2023 -0400

    refresh INSTALL

M	INSTALL

commit e3de2e3242fc33aecc7b7f7519aac783bfd15b4f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 31 14:28:58 2023 -0400

    remove obsolete references to code.google.com

    I.e. somehow we managed to still point to (very) old gperftools
    hosting location, so lets fix it at last.

M	CMakeLists.txt
M	INSTALL
M	configure.ac
M	src/debugallocation.cc
M	src/heap-checker.cc
M	src/page_heap.cc
M	src/stacktrace_win32-inl.h
M	src/tests/large_heap_fragmentation_unittest.cc

commit 1ff09a680e6239675bbc03ab385872276409558b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 31 14:28:40 2023 -0400

    drop obsolete deb/rpm packaging stuff

M	Makefile.am
D	packages/deb.sh
D	packages/deb/README
D	packages/deb/changelog
D	packages/deb/compat
D	packages/deb/control
D	packages/deb/copyright
D	packages/deb/docs
D	packages/deb/libgperftools-dev.dirs
D	packages/deb/libgperftools-dev.install
D	packages/deb/libgperftools0.dirs
D	packages/deb/libgperftools0.install
D	packages/deb/libgperftools0.manpages
D	packages/deb/rules
D	packages/rpm.sh
D	packages/rpm/rpm.spec

commit 8b3f0d61451e891e1ca91a4887e472b80e9ff351
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 31 14:04:32 2023 -0400

    undo MarkThreadTemporarilyIdle and make it same as MarkThreadIdle

    As noted on github issue #880 'temporarily' thing saves us not just on
    freeing thread cache, but also returning thread's share of thread
    cache (max_size_) into common pool. And the later has caused trouble
    to mongo folk who originally proposed 'temporarily' thing. They claim
    they don't use it anymore.

    And thus with no users and no clear benefit, it makes no sense for us
    to keep this API. For API and ABI compat sake we keep it, but it is
    now identical to regular MarkThreadIdle.

    Fixes issue #880

M	src/gperftools/malloc_extension.h
M	src/tcmalloc.cc
M	src/thread_cache.cc
M	src/thread_cache.h

commit c3059a56be3f1f1581c06d77ef04b0b7ecc8cc6f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 31 12:26:21 2023 -0400

    dont workaround unknown problem in thread_dealloc_unittest

    We had some sleep added at the end up thread dealloc unittest claiming
    some race trouble with glibc. Which is likely years or even decades
    irrelevant.

M	src/tests/thread_dealloc_unittest.cc

commit 9b91ce917ad54fab8dd658daeed32bababd367bb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 27 19:08:54 2023 -0400

    [win32:patching] define single empty __expand replacement

    This unbreaks some cases where patching complains about too short
    functions to patch.

    What happens is we first locate one of CRT-s (like ucrt or msvcrt) and
    patch __expand there, redirecting to our implementation. Then "static"
    __expand replacement is patched, but it is usually imported from that
    same C runtime DLL. And through several jmp redirections we end up at
    our own __expand from libc<1>. Patching that (and other cases) is
    wrong, but I am unsure how to fix it properly. So we do most simple
    workaround. I found that when it not fails is either in debug builds
    where empty expand is not too short or when MSVC deduplicates multiple
    identical __expand implementations into single function, or when
    64-bit patching has to do extra trampoline thingy. And then our
    patching code checks if we're trying to replace some function with
    itself. So we "just" take advantage of that and get immediate issue
    fixed, while punting on more general "duplicate" patching for later.

    Update github issue #667

M	src/windows/patch_functions.cc

commit b6cdd8f510d9b8af03cb2c115f87c4b46257ec75
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 27 19:23:15 2023 -0400

    [mingw] dont add libstacktrace to libtcmalloc_minimal

    There was this piece of makefile with indention to add stack tracing
    functionality (for stuff like growthz, GetCallerStackTrace and
    probably heap sampling) to work even in minimal configuration on
    mingw.

    What is odd is we fail to actually define libstacktrace.la target on
    mingw, since libstacktrace.la requires WITH_STACK_TRACE automake
    conditional which we don't enable on this platform. And yet somehow it
    doesn't fail. It produces empty libstacktrace.la, so build kinda
    works. Except at least on my machine it produces racy makefiles. So
    lets not pretend and stop breaking our parallel builds.

M	Makefile.am

commit a5cfd38884a34d374919eee22626c70cabd21a72
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jul 25 15:58:02 2023 -0400

    [win32] amend and unbreak previous NOMINMAX fix

M	src/windows/config.h

commit d2c89ba53433f8f0940e8bf086436895e46436a6
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 24 18:57:52 2023 -0400

    don't return raw span when sampling and stacktrace oomed

    This is nearly impossible in practice, but still. Somehow we missed
    this logic that DoSampledAllocation always returns actual object, but
    in that condition where stacktrace_allocator failed to get us
    StackTrace object we ended up returning span instead of it's object.

M	src/tcmalloc.cc

commit 59464404d1e900e9664a22960e75659eed04d8e8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Dec 30 14:21:00 2021 -0800

    capture growthz backtraces outside of pageheap_lock

    Actual growthz list is now lockless since we never delete anything
    from it. And we now pass special 'locking context' object down page
    heap allocation path, both as a documentation that it is under lock
    and for tracking whether we needed to grow heap and by how much. Then
    whenever lock is released in RAII fashion, we're able to trigger
    growthz recording outside of lock.

    Closes #1159

M	src/page_heap.cc
M	src/page_heap.h
M	src/static_vars.cc
M	src/static_vars.h

commit 0d42a48699059826b99dd5d1a1bb99c5669f089b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Dec 27 17:35:53 2021 -0800

    move page heap locking under PageHeap

    While there is still plenty of code that takes pageheap_lock outside
    of page_heap module for all kinds of reasons, at least
    bread-and-butter logic of allocating/deallocating larger chunks of
    memory is now handling page heap locking inside PageHeap itself. This
    gives us flexibility.

    Update issue #1159

M	src/base/spinlock.h
M	src/central_freelist.cc
M	src/page_heap.cc
M	src/page_heap.h
M	src/static_vars.cc
M	src/static_vars.h
M	src/tcmalloc.cc
M	src/tests/page_heap_test.cc

commit a3e1080c2e7038a4205168f1f9e086b530743272
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Dec 27 21:26:18 2021 -0800

    handle large alloc reporting locklessly

    Which simplifies codes a bit.

    Update issue #1159

M	src/tcmalloc.cc

commit f1eb3c82c6b55d99bc657435b3fc42dae613440f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Dec 27 14:45:56 2021 -0800

    correctly release memory when system's pagesize is >kPageSize

    I.e. this covers case of arms that by default compile tcmalloc for 8k
    logical pages (assuming 4k system pages), but can actually run on
    systems with 64k pages.

    Closes #1135

M	src/common.cc
M	src/common.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/static_vars.cc
M	src/tcmalloc.cc
M	src/tests/page_heap_test.cc
M	src/tests/tcmalloc_unittest.cc

commit d521e3b30e208af635e9812fe9bff635bbafcb1d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Dec 27 14:41:42 2021 -0800

    move page heap allocations with alignment into page heap

M	src/page_heap.cc
M	src/page_heap.h
M	src/tcmalloc.cc
M	src/tests/page_heap_test.cc

commit ad0ca2b83ba6743afcb8038788e9195bbd1514d1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 24 18:07:25 2023 -0400

    unbreak large heap fragmentation unittest

    Smart compilers again (and lack of -fno-builtin-malloc which we
    dropped because of clang).

M	src/tests/large_heap_fragmentation_unittest.cc

commit bd3bf9abd7b42acdec38a98ceabc659adf8a9225
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 24 19:40:49 2023 -0400

    define NOMINMAX on windows

    Otherwise we cannot use some std bits, like numeric_limits.

M	src/windows/config.h
M	src/windows/port.cc

commit 814f340eede8c991885f10deca929031fe2531bb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jul 22 20:45:52 2023 -0400

    add --enable-libgcc-unwinder-by-default for configure

    We want distros to ship gperftools with this options, now that they
    have _Unwind_Backtrace that is powered by dl_find_object.

M	configure.ac
M	src/stacktrace.cc

commit f06ccc6f799fa2fe550a8bee08314393586fb472
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jul 22 14:21:47 2023 -0400

    dont test HAVE_{STDINT,INTTYPES}_H

    Those are fairly standard by now. We already require C++11 or later
    compiler.

M	CMakeLists.txt
M	cmake/config.h.in
M	src/addressmap-inl.h
M	src/base/basictypes.h
M	src/central_freelist.h
M	src/common.h
M	src/debugallocation.cc
M	src/heap-profile-table.cc
M	src/heap-profiler.cc
M	src/internal_logging.h
M	src/malloc_extension.cc
M	src/malloc_hook.cc
M	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/packed-cache-inl.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/pagemap.h
M	src/sampler.h
M	src/stack_trace_table.h
M	src/symbolize.h
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/memalign_unittest.cc
M	src/tests/pagemap_unittest.cc
M	src/tests/profiledata_unittest.cc
M	src/tests/sampler_test.cc
M	src/tests/system-alloc_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/testutil.cc
M	src/thread_cache.h
M	src/windows/config.h
M	src/windows/port.h

commit 86867674f05a94d9e761310bb5c3e7b4b4534634
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jul 22 14:03:49 2023 -0400

    don't do syscall on osx

    Their compiler barks and we only need this syscall business on
    FreeBSD.

M	src/base/logging.h

commit bdae3615ca51b5aa8e7075396dc0c53748c78076
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jul 22 14:01:55 2023 -0400

    osx's dyld_present is always true

    As reported to us by their compiler's warning.

M	src/base/basictypes.h

commit 91b8024aa1e5cd8e6588df4e9c7a6280c8f03b3a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jul 22 14:00:32 2023 -0400

    drop unused ThreadCache::DropCacheWhichMustBePresent

M	src/thread_cache.h

commit 42dde1b883b29921ac89234369f88b133821690c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jul 22 00:08:38 2023 -0400

    heap-checker_unittest: run thread-unsafe libc calls less unsafely

    Comment there says race is fine, bit it isn't. Crashes under
    musl. Lets not crash.

M	src/tests/heap-checker_unittest.cc

commit 8be84e4a5c28c33bfdb7da3ee0c92d9620cd552f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jul 21 14:18:12 2023 -0400

    drop old mmap hooks and introduce internal & simpler mmap_hook.h

    Previous implementation wasn't entirely safe w.r.t. 32-bit off_t
    systems. Specifically around mmap replacement hook. Also, API was a
    lot more general and broad than we actually need.

    Sadly, old mmap hooks API was shipped with our public headers. But
    thankfully it appears to be unused externally (checked via github
    search). So we keep this old API and ABI for the sake of formal API
    and ABI compatibility. But this old API is now empty and always
    fails (some OS/hardware combinations didn't have functional
    implementations of those hooks anyways).

    New API is 64-bit clean and only provides us with what we need. Namely
    being able to react to virtual address space mapping changes for
    logging, heap profiling and heap leak checker. I.e. no pre hooks or
    mmap-replacement hooks. We also explicitly not ship this API
    externally to give us freedom to change it.

    New code is also hopefully tidier and slightly more portable. At least
    there are fewer arch-specific ifdef-s.

    Another somewhat notable change is, since mmap hook isn't needed in
    "minimal" configuration, we now don't override system's
    mmap/munmap/etc functions in this configuration. No big deal, but it
    reduces risk of damage if we somehow mess those up. I.e. musl's mmap
    does few things that our mmap replacement doesn't, such as very fancy
    vm_lock thingy. Which doesn't look critical, but is good thing for us
    not to interfere with when not necessary.

    Fixes issue #1406 and issue #1407. Lets also mention issue #1010 which
    is somewhat relevant.

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	src/base/low_level_alloc.cc
M	src/base/spinlock.h
M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/malloc_hook-inl.h
M	src/malloc_hook.cc
D	src/malloc_hook_mmap_freebsd.h
D	src/malloc_hook_mmap_linux.h
M	src/memory_region_map.cc
M	src/memory_region_map.h
A	src/mmap_hook.cc
A	src/mmap_hook.h
M	src/tests/malloc_hook_test.cc
A	src/tests/mmap_hook_test.cc
M	src/tests/tcmalloc_unittest.cc
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj.filters
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj.filters

commit 6b691cc019500dc4547822b1eed2fd53adc6b43c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jul 21 14:18:01 2023 -0400

    drop patching virtual alloc fns on windows

    It wasn't implemented exactly right and, most importantly, there is
    nothing on windows that uses those (now dead) mmap hooks.

M	src/windows/patch_functions.cc

commit fecaf37ae4f172c62ce4d1f42062b690cc96fabc
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jul 21 13:51:36 2023 -0400

    drop DevMemSysAllocator

    It was never useful for anything.

M	src/system-alloc.cc

commit e53ec241b6f085a770b3f5e558dac8f85963a4d4
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 20 21:53:54 2023 -0400

    unbreak __sbrk detection on cmake

M	CMakeLists.txt

commit d4f33620351f303e64d1a6dd3c4c79ad53532be6
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jul 21 14:21:37 2023 -0400

    add missing .gitignore for safe_strerror_test.exe

M	.gitignore

commit e0f4c0e6fb402e56e82a82438561f413090f0ac8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 17 19:31:06 2023 +0000

    manually inline MapObjectToSpan into ReleaseToSpans

    It was originally separated into own function due to some (now
    obsolete) compiler optimization bug. We stopped worked around that bug
    few commits ago. But as github user plopresti rightfully pointed
    out (much, much thanks!), we lost `static' on that function. But since
    it is trivial function and used exactly once, it is best to simply
    inline it's 2 lines of code back instead of returning static.

    Previous commit was: 68b442714a86060d1dd95de4c515cc7774e3751e

M	src/central_freelist.cc

commit 46d3315ad7901099bd414740dbfbe6d27f33da9a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jul 14 02:19:21 2023 -0400

    amputate maybe_threads

    This facility allowed us to build tcmalloc without linking in actual
    -lpthread. Via weak symbols we checked at runtime if pthread functions
    are available and if not, special single-threaded stubs were used
    instead. Not always brining in pthread dependency helped performance
    of some programs or libraries which depended at runtime on whether
    threads are linked or not. Most notable of those are libstdc++ which
    uses non-atomic refcounting on single threaded programs.

    But such optional dependency on pthreads caused complications for
    nearly no benefit. One trouble was reported in github issue #1110.

    This days glibc/libstdc++ combo actually depends on
    sys/single_threaded.h facility. So bringing pthread at runtime is
    fine. Also modern glibc ships pthread symbols inside libc anyways and
    libpthread is empty. I also found that for whatever reason on BSDs and
    osx we already pulled in proper pthreads too.

    So we loose nothing and we get issue #1110 fixed. And we simplify
    everything.

M	.gitignore
M	CMakeLists.txt
M	INSTALL
M	Makefile.am
M	configure.ac
M	src/heap-checker.cc
M	src/malloc_extension.cc
M	src/malloc_hook.cc
D	src/maybe_threads.cc
D	src/maybe_threads.h
M	src/profile-handler.cc
M	src/static_vars.cc
M	src/tests/low_level_alloc_unittest.cc
D	src/tests/maybe_threads_unittest.sh
M	src/thread_cache.cc
M	src/thread_cache.h
M	src/windows/port.h

commit 3cd265b05a1c951010ae352fe47bdab850d68357
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jul 14 01:56:28 2023 -0400

    replace pthread_once usages with simple spinlock-backed flag

    Our perftools_pthread_once implementation has some ifdefs and what
    not. I.e. some OSes have complications around early usage and windows
    is windows. But in fact we can implement trivial spinlock-supported
    implementation and depend on nothing.

    Update issue #1110

M	src/base/spinlock.h
M	src/debugallocation.cc
M	src/malloc_hook.cc
M	src/maybe_threads.cc
M	src/maybe_threads.h
M	src/profile-handler.cc
M	src/windows/port.cc
M	src/windows/port.h

commit 215b2d939aebc572d4e44b97fa2b82b992e6fe0c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jul 14 01:00:32 2023 -0400

    drop disabled windows-specific spinlock code

M	src/windows/port.h

commit 37fd4adab461c2005b9855ad3d23945590155ae7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 13 20:54:38 2023 -0400

    use regular off_t on 64-bit linuxes

    off64_t is legacy of the past.

    Update github issue #1407

M	src/malloc_hook_mmap_linux.h

commit 4a923a6b36995adf633fda63d28be05979666920
Author: Gabriel Marin <gmx@chromium.org>
Date:	Thu Aug 23 18:31:16 2018 +0000

    tcmalloc: enable large object pointer offset check

    Original CL: https://chromiumcodereview.appspot.com/10391178

      1. Enable large object pointer offset check in release build.
      Following code will now cause a check error:
      char* p = reinterpret_cast<char*>(malloc(kMaxSize + 1));
      free(p + 1);

      2. Remove a duplicated error reporting function
      "DieFromBadFreePointer",
      can use "InvalidGetAllocatedSize".

    Reviewed-on: https://chromium-review.googlesource.com/1184335
    [alkondratenko@gmail.com] removed some unrelated formatting changes
    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	src/internal_logging.h
M	src/tcmalloc.cc

commit 4b3fc02082a1f89268f44ea2d470f14375bd981e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 13 18:56:19 2023 -0400

    fix clang barking at debugallocator's magic2_ field

    It barks because we access the field in a special way through address
    computation (see magic2_addr), so it is indeed not accessed
    directly. To emphasize that it comes directly after size2_ we simply
    converted size2 and magic2_ into explicit array size_and_magic2_.

M	src/debugallocation.cc

commit c29e3059dd506f48e15de8af446d2bd89b5867a9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 13 18:57:22 2023 -0400

    mark CheckCachedSizeClass as used

    It is only used from inside ASSERT and clang doesn't like it being
    declared but unused when NDEBUG is set.

M	src/tcmalloc.cc

commit f7c6835facf58026f6db493433a0837c9dca5b97
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 13 18:21:24 2023 -0400

    drop unused linuxthreads.cc:local_itoa function

M	src/base/linuxthreads.cc

commit 5a3a324459558f793da77bc4c56eaeadedf9dca7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 13 18:15:25 2023 -0400

    try to avoid certain warnings in tests

    Our tests do explicitly trigger certain "bad" cases. And compilers are
    getting increasingly smarter, so they start giving us warnings. People
    dislike warnings, so lets try to disable them specifically for unit
    tests.

    Refers to issue #1401

M	src/config_for_unittests.h
M	src/tests/debugallocation_test.cc
M	src/tests/profile-handler_unittest.cc

commit e63d2f855de247f78ec11115767a33f689fb9542
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 13 17:45:09 2023 -0400

    avoid semi-bogus use-after-free warning

    In heap checker we actually use test_str address after deletion, to
    verify at runtime that heap checker is indeed tracking deletions. But
    gcc barks. So lets hide allocation from it by calling
    tc_newarray/tc_deletearray.

    Refers to #1401

M	src/heap-checker.cc

commit 9d46f1e8904cfe38f45716ef65e36d611ce8fe21
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 13 17:50:55 2023 -0400

    exercise ASSERTs as part of pagemap_unittest

    This fixes couple gcc warnings (array bounds) when accessing page map
    radix tree.

    Refers to #1401

M	src/tests/pagemap_unittest.cc

commit d2bacb8e36b42af8e889c6c191d7842e3dd8d569
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 13 17:49:23 2023 -0400

    help compiler see that CHECK_CONDITION failures are fatal

    Some compiler warnings are caused by this lack of information to
    compiler.

    Refers to #1401

M	src/internal_logging.h

commit 2ffa4e0841a7eea2906be64a66f36f798559a7a0
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 13 16:07:17 2023 -0400

    unbreak static initialization of initial malloc hooks

    g++ 13 somehow considers reinterpret_cast<uintptr_t>(InitialNewHook)
    as non-constexpr. It then generates runtime constructor for malloc
    hooks, which run too late. That broke heap checker and heap profiler.

    We fix by making array of hooks inside malloc to have proper function
    pointer type, which lets us avoid reinterpret_cast which makes
    construction compile-time again.

M	src/malloc_hook-inl.h
M	src/malloc_hook.cc
M	src/tests/malloc_hook_test.cc

commit 55d559f7c9ea1715db9f0422d589efd7bea6481a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 13 16:04:14 2023 -0400

    fix flakiness of profile-handler_unittest

    When checking if timer is enabled, we should look at
    it_interval.

M	src/tests/profile-handler_unittest.cc

commit 5ba98e397cc67a3539c40692dfa51ca26b20519c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Jul 13 16:03:43 2023 -0400

    when CHECK_OP fails print filename and line number

M	src/base/logging.h

commit 9d781627bb79dc164c338c40b8085db10326d9dc
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 10 01:58:42 2023 -0400

    avoid calling memory allocator under profile handler signal_lock_

    If we don't avoid there is possibility of deadlock. Like this:

    *) thread A runs malloc and happens to have some lock(s) there. It
    gets profiling signal.

    *) thread B runs ProfileHandler::UnregisterCallback or similar and has
    both control_lock_ and signal_lock_.

    *) thread B calls memory allocator (it used to delete token under
    lock) and hits the malloc lock, so waits

    *) thread A that has malloc lock wants to get signal_lock_ and waits
    too.

    Correct behavior is since we grab signal_lock_ from pretty much
    anywhere as part of signal handler, it then implies transitively that
    anything that grabs that lock cannot call into anything that grabs any
    other lock (e.g. including malloc). I.e. signal_lock_ "nests" under
    every other lock in the program.

    So we refector the code some. When removing callbacks we simply copy
    entire list with right token removed. Then grab signal_lock_ and only
    swap copy with old callback list. Then signal_lock_ lock is released
    and all the memory freeing operations are performed.

    When adding callback we utilize splice to also avoid anything "heavy"
    under signal_lock_.

    And as part of that change we're now able to have UpdateTimer method
    only needing control_lock_ instead of signal_lock_.

    We add somewhat elaborate unit test that was able to catch the issue
    without fix and now works fine.

    Closes github issue #412

M	src/profile-handler.cc
M	src/tests/profile-handler_unittest.cc

commit c44e44cecb64686e8157483b81b0dc29614c935d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 10 00:20:13 2023 -0400

    prevent potential corruption of errno in thread lister

    See
    https://github.com/gperftools/gperftools/issues/500#issuecomment-133814659
    for explanations. We of course evolved quite a bit since that comment,
    but general issue still applies.

M	src/base/linuxthreads.cc

commit 2b5743ffa60affcdc796dcf4bf6c4f5fff14c4de
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jul 9 18:05:01 2023 -0400

    amputate tcmalloc unittest trylock counting

    We had this logic to ensure that TesterThread succeeds at least 50% of
    times grabbing passed objects lock, apparently to ensure that multiple
    threads actually participate. But this check occasionally flakes. It
    is totally possible that lock owner gets preempted while holding lock
    and other threads accumulate gazillion of failed trylocks. So while it
    is nice to test this somehow, flakes are bad enough, so we drop this
    test.

M	src/tests/tcmalloc_unittest.cc

commit 2d70ea9ad2b90b85db81e78e3c4e0b9e16e7977b
Author: Chris Cambly <ccambly@ca.ibm.com>
Date:	Fri May 14 11:11:48 2021 -0400

    initial batch of changes to enable AIX in 32-bit and 64-bit

    - Some small automake changes. Add libc++ for AIX instead of libstdc++
    - Add the interface changes for AIX:User-defined malloc replacement
    - Add code to avoid use of pthreads library prior to its
    initialization
    - Some small changes to the unittest case
    - Update INSTALL for AIX

    [alkondratenko@gmail.com]: lower-case/de-trailing-dot for commit
    subject line
    [alkondratenko@gmail.com]: rebase
    [alkondratenko@gmail.com]: amputate unused AM_CONDITIONAL for AIX
    [alkondratenko@gmail.com]: explicitly mention libc_override_aix.h
    in Makefile.am

M	INSTALL
M	Makefile.am
M	configure.ac
A	src/libc_override_aix.h
M	src/libc_override_gcc_and_weak.h
M	src/maybe_threads.cc
M	src/stacktrace_powerpc-darwin-inl.h
M	src/static_vars.cc
M	src/tests/tcmalloc_unittest.cc

commit 26927d13334b7a06d3ec9810b7f68a9428c07223
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jul 9 16:11:51 2023 -0400

    clean up unused link dependencies for malloc_extension_c_test

    We used to explicitly link to libstdc++, libm and even libpthread, but
    this should be handled by libtool since those are dependencies of
    libtcmalloc_minimal. What also helps is we now build everything with
    C++ compiler, not C. So libstdc++ or (libc++) dependency doesn't need
    to be added at all, even if libtool for some reason fails to handle
    it.

M	Makefile.am

commit ea47513a8f8b1b96e0c0e9d776503e2245e45efd
Author: zhangyiru <877061968@qq.com>
Date:	Fri Oct 15 18:21:36 2021 -0400

    avoid memleak exceed int range when using heap-checker

    [alkondratenko@gmail.com] format size_t with %zu
    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	src/heap-profile-table.cc

commit 4ac4d88a99c697fe24fd7b356fb57006c7aaeb57
Author: tigeran <tigeran@tencent.com>
Date:	Tue Jan 10 10:17:30 2023 +0800

    Remove unused using declaration

    std::sort in `heap-profiler.cc` is not in use, so remove it.

M	src/heap-profiler.cc

commit 4e24f4adaa1f0ad982daadb118a5dde321827ad3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jul 4 00:37:52 2023 -0400

    fix overflow in c-f-l populate when span address is close to top

    This fixes github issue #1323.

    When populating span with linked list of objects ptr + size <= limit
    condition could overflow before comparing to limit. So fixed code
    carefully tests limit. We also produce version with
    __builtin_add_overflow since this is semi-hot loop and we want it to
    be fast.

M	src/central_freelist.cc

commit f15425dc9916ea451a3915a8311c3bc248b225c0
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 3 17:36:47 2023 -0400

    implement SafeStrError and use it inside strerror

    This fixes issue #1371

    From time to time things file inside tcmalloc guts where calling to
    malloc is not safe. Regular strerror does locale bits, so will
    occasionally open files/malloc/etc. We avoid this by using our own
    "safe" variant that hardcodes names of all POSIX errno constants.

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	src/debugallocation.cc
M	src/heap-checker.cc
M	src/memfs_malloc.cc
A	src/safe_strerror.cc
A	src/safe_strerror.h
A	src/tests/safe_strerror_test.cc

commit 88d0fd5a3bafb6f82e5786a9c70b4883f75882e7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 3 17:29:13 2023 -0400

    remove dead remains of arm_instruction_set_select header

M	Makefile.am

commit d9cecd6e42d7503b9fe2592ab6d016d5d5832014
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 3 16:45:00 2023 -0400

    print errno whenever dumping heap profile fails for some reason

    Refers to issue #1116

M	src/heap-profiler.cc

commit fe5ba4b5242c143661989a15a981079957835c44
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 3 16:20:26 2023 -0400

    use sys/ptrace.h instead of linux/ptrace.h

    As was pointed out at
    https://github.com/gperftools/gperftools/pull/1329 there is no need
    for us to depend on linux-headers thingy. Libc headers should be
    enough.

M	src/heap-checker.cc

commit 55e798623fabbdaa67d68959008ba9fcd17ad024
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 3 15:31:21 2023 -0400

    unbreak compilation with --disable-cpu-profiler

M	src/stacktrace_generic_fp-inl.h

commit dd89dc7d01e20b83376e30aa0e52cb83c0a8e55e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 3 15:29:56 2023 -0400

    install compat headers and .pc files only with matching libs

    Thix closes issue #1356

M	Makefile.am

commit a63ea13b20baee6df1468c6dfaf8b339471f461b
Author: Ali Saidi <alisaidi@amazon.com>
Date:	Fri Jul 30 12:19:02 2021 -0500

    Add an arm64 implementation for SpinlockPause()

    This patch adds an arm64 implementation of the SpinlockPause()
    function
    allowing the core to adaptively spin to acquire the lock and improving
    performance in multi-threaded environments where the locks can
    be contended.

    From experience with other projects, we've found a single isb is
    the closest
    corollary to the rep; nop timing or x86.

    Overall, across thirty runs, the binary_trees_shared benchmark
    improves 6% in
    average, median, and P90 runtime with this change.

M	src/base/spinlock.cc

commit 3c0738ac1cbe51da438ca01ba74eb751f7080372
Author: Sergey Fedorov <vital.had@gmail.com>
Date:	Mon Jul 3 14:40:59 2023 +0800

    libc_override_osx.h: a small fix for ppc

M	src/libc_override_osx.h

commit cc4e289a8360810a86efd10fc6df6463778a905a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 3 13:02:59 2023 -0400

    drop weakening from cmake build

    Weakening is optional and in github issue #1392 we apparently tried to
    weaken on windows and failed. So lets not even try.

M	CMakeLists.txt
D	cmake/FindObjcopyWithWeaken.cmake

commit 44eb0ee83c3a485cf6af6366d06430fd162d0fa9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 3 12:47:35 2023 -0400

    bump heap profiler stats fields to 64 bit

    People actually seen overflows there. Fixes github issue #1303

M	src/heap-checker.cc
M	src/heap-profile-stats.h
M	src/heap-profile-table.cc
M	src/heap-profiler.cc

commit 972c12f77dfe27253d966a1bb58d10efb79c34c8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jul 2 19:21:21 2023 -0400

    refactor stacktrace.cc and drop x86 backtracer

    We had plenty of old and mostly no more correct i386 cruft. Now that
    generic_fp backtracer covers i386 just fine, we can drop explicit x86
    backtracer.

    With that we refactored and simplified stacktrace.cc mostly around
    picking default implementation, but also adding few more minor
    cleanups.

M	CMakeLists.txt
M	Makefile.am
M	src/getpc.h
M	src/stacktrace.cc
M	src/stacktrace_impl_setup-inl.h
D	src/stacktrace_x86-inl.h
M	src/tests/stacktrace_unittest.cc

commit d9b178695f2a60f20fd2ebc6cc50c15e2b6a6a86
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jul 2 19:43:44 2023 -0400

    support more OSes in generic-fp

    We're still x86+arm+riscv only, but netbsd and freebsd work too. OSX
    as well.

M	src/stacktrace.cc
M	src/stacktrace_generic_fp-inl.h

commit 4b78ffd03cb9a2c3bb7848f766afc964987a5c82
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jul 2 19:35:46 2023 -0400

    try building with -fno-omit-frame-pointer -momit-leaf-frame-pointer

    The idea is -momit-leaf-frame-pointer gives us performance pretty much
    same as fully omitting frame pointers. And having frame pointers
    elsewhere allows us to support cases when user's code is built with
    frame pointers. We also pass all tests with
    TCMALLOC_STACKTRACE_METHOD=generic_fp (not just libunwind or libgcc).

M	CMakeLists.txt
M	Makefile.am
M	configure.ac
M	src/heap-checker.cc

commit e5ac219780ec940904bc0bafea4bdb59f9e0b650
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jul 2 19:31:27 2023 -0400

    restore unwind-bench

    We previously deleted it, since it wasn't portable enough. But
    unportable bits are now ifdef-ed out, so we can return it.

M	.gitignore
M	Makefile.am
A	benchmark/unwind_bench.cc

commit cf046c84214cd9e21a836f840dad23a0f8b50665
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jun 27 23:30:01 2023 -0400

    extend generic frame pointer backtracer to support x86-32 (aka x32)

M	src/stacktrace_generic_fp-inl.h

commit f56c27910a768a4c2b47026a13f507a89c94f491
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jun 27 23:14:38 2023 -0400

    extend generic frame pointer backtracer to support i386

M	src/stacktrace.cc
M	src/stacktrace_generic_fp-inl.h

commit 58d6842576b35f4ce81d5d7dde389968924a590f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jun 27 21:43:43 2023 -0400

    more coverage for stacktrace_unittest

M	src/tests/stacktrace_unittest.cc

commit 25698cd1b811ff8dca54a236571e2a4adba2ed84
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jun 27 16:37:59 2023 -0400

    improve diagnostics for stacktrace_unittest

M	Makefile.am
M	src/tests/stacktrace_unittest.cc

commit a25e7fa8b0564b17cd592a64b618ea451b990601
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jul 2 18:11:51 2023 -0400

    cleanup cmake's config.h stuff

    Some header defines were not cmakedefine01.

M	cmake/config.h.in

commit 88d7e65cc2bb0c5e92892d41eec1e4ea9a7bd6fa
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jun 27 14:08:14 2023 -0400

    drop unused libtool target in our Makefile.am

    Not sure what it was for, but it is not useful today.

M	Makefile.am

commit ae4aafa4689289e42bce4063720d4955b575c176
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 28 00:07:49 2023 -0400

    freebsd+x86-64 pc-from-ucontext is not untested

M	cmake/PCFromUContext.cmake
M	m4/pc_from_ucontext.m4

commit cddd759bd1b1ef63d51373afcda76b4cd1dd1a5c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jun 26 20:33:30 2023 -0400

    disable libgcc stack trace capturing on freebsd

M	CMakeLists.txt
M	configure.ac

commit 4c72b14d35529e989f761050954dc6e4e6d1ca7f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jun 26 17:37:19 2023 -0400

    support proc maps iterator on NetBSD

    Turns out it's procfs is available by default, and is fairly similar
    to Linux's. So we can just reuse our Linux codes. All tests now pass
    on NetBSD!

M	src/base/sysinfo.cc

commit 7ffd35a54b13238b408dc773282fe64adb30aeb8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jun 26 19:57:48 2023 -0400

    correctly detect and link to backtrace_symbols

    BSDs need -lexecinfo

M	Makefile.am
M	configure.ac

commit 5b86aa0a51dfaa252c31f971cae487f2e0357955
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jun 26 18:01:58 2023 -0400

    reimplement GetProgramInvocationName via reading /proc/self/exe

    This enables us to support NetBSD, as it lacks
    program_invocation_name, but has fairly full-featured procfs.

M	src/symbolize.cc

commit 50b5219635dafe08e1170956fb025bf1bf1f958b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jun 26 14:30:05 2023 -0400

    don't NO_INTR close

    This is wrong. See man 2 close.

M	src/base/logging.cc
M	src/base/sysinfo.cc
M	src/tests/profiledata_unittest.cc

commit 7dd1b823786f5953c65bdfb448c7b36447162ec9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jun 26 14:28:02 2023 -0400

    simplify project by making it C++-only

    I.e. no need for any AC_LANG_PUSH stuff in configure. Most usefully,
    only CXXFLAGS needs to be set now when you need to tweak compile
    flags.

M	CMakeLists.txt
M	Makefile.am
R100	benchmark/run_benchmark.c	benchmark/run_benchmark.cc
M	configure.ac
R096	src/base/dynamic_annotations.c	src/base/dynamic_annotations.cc
R099	src/tests/malloc_extension_c_test.c
src/tests/malloc_extension_c_test.cc
M	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj
M	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj.filters
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj.filters
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj.filters

commit cf28e0356782fab54f51e4a394e30642c7371bc5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jun 27 01:20:01 2023 -0400

    correctly order weakening step to avoid race

    Previously we allowed test programs to be linked at the same time as
    weakening is performed, rewriting the .a archives. So lets be more
    explicit. We weaken after all-am (which "runs" everything including
    libraries and programs), but before all target.

M	Makefile.am

commit a39073886a8e06f441a97b6f2cfb833157dac6c6
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jun 26 13:23:20 2023 -0400

    unbreak symbol weakening

    It is kinda minor feature, and apparently we never had it working. But
    is a nice to have. Allows our users to override malloc/free/etc while
    still being able to link to us (for tc_malloc for example). With
    broken weakening we had this use-case broken for static library
    case. And it should now work.

M	Makefile.am
M	cmake/FindObjcopyWithWeaken.cmake
M	configure.ac

commit 630dac81ea55a775044998de69b17a89fa75cacd
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jun 27 01:43:44 2023 -0400

    implement simpler ChangeLog generation for source tarballs

    We used ax_generate_changelog which works great. But it made our
    makefile require GNU make, which was causing annoyance on bsd systems.

D	ChangeLog
M	Makefile.am
M	configure.ac
D	m4/ax_generate_changelog.m4

commit b30b984281bae0b5a921938b885476e23796f377
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jun 25 23:38:55 2023 -0400

    [osx] make profiler unittest pass

    somehow VerifyIdentical tests fail for some formatting details. But
    since it tests --raw feature of our deprecated perl pprof
    implementation, which we don't intend supporting anyways, we drop this
    test.

    There is some details about how wc -l returns stuff and how zsh uses
    it to compare to 3. So we now explicitly strip whitespace and it
    works.

M	src/tests/profiler_unittest.sh

commit 7437e0f612ff54bbf837ea3f7f9b366a60dba629
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jun 25 23:38:44 2023 -0400

    [osx] make heap profiler unittest pass

    Apparently awk's comparison $2 > 90 doesn't work when $2 is 100.0. I
    frobbed it some and it works now.

M	src/tests/heap-profiler_unittest.sh

commit 6683e4f6eeebc52c0704500ef9f461454434578c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jun 25 23:37:44 2023 -0400

    [osx] implement native c++ allocation operators on osx

    OSX has really screwed performance for it's memory allocator due to
    their malloc zones stuff. We and our competitors hook into that
    facility instead directly overriding allocation functions. Which has
    massive performance overhead. This is, apparently, so that malloc is
    same as allocating from default zone.

    As a result, osx'es C++ operator new/delete performance is even worse.
    Because we call operator new, it calls malloc, which calls
    malloc_zone_malloc, which calls more stuff and eventually tc_malloc.

    Thankfully, for C++ API there is no need for such "integration"
    between 'stock' memory allocator and malloc zones stuff. So we can
    hook those APIs directly. This speeds up malloc_bench numbers on OSX
    about 3x.

    This change also unbreaks couple tests (e.g. heap profiler unittest)
    which depend on MallocHook_GetCallerStackTrace to return precisely
    stack trace up to memory allocator call.

    Performance-wise, OSX still lacks good TLS and there is still one jump
    indirection even for operator new/delete API due to lack support of
    aliases. So Linux or BSD, or even windows would still be significantly
    faster on malloc performance on same hardware.

M	src/libc_override_osx.h

commit 11d4253ead0f0db77aac0d6f5779416c7ab9efa2
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jun 25 23:37:10 2023 -0400

    [osx] don't crash debugallocator on 0-sized allocations

    OSX's malloc zones facility is calling 'usable size' before each (!)
    free and uses size to choose between our allocator and something
    else. And returning 0 breaks this choice. Which happens if we got
    0-sized malloc request, which our tests exercise couple times. So we
    don't let debug allocator on OSX to have 0 sized chunks. This unbreaks
    debug allocation tests on OSX.

M	src/debugallocation.cc
M	src/tests/debugallocation_test.cc

commit b0c2ab298adf2be8d9fe23cd7f166cae875e9549
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jun 25 23:36:08 2023 -0400

    [osx] place malloc-zone-related functions to google_malloc section

    On OSX we hook into "system's" malloc through this zones facility, so
    we need to place those those interface functions into google_malloc
    section. This largely unbreaks MallocHook_GetCallerStackTrace on OSX.

M	src/base/basictypes.h
M	src/libc_override_osx.h

commit 531ca4fdcaebd225b4616fe8a693d26a89019792
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jun 25 23:35:26 2023 -0400

    [osx] unbreak LowLevelAlloc

    For some reason clang shipped with osx miscompiles LowLevelAlloc when
    it tries to place Alloc methods into malloc_hooks section. But since
    we don't really need that placement on OSX, we can simply drop that
    section placement.

M	src/base/low_level_alloc.h

commit e78238d94d41764dc72edb37e3d6510255d3dcd4
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:39:38 2023 -0400

    reworked heap leak checker for more portability

    In most practical terms, this expands "official" heap leak checker
    support to Linux/arm64 and Linux/riscv (mips-en and legacy arm are
    likely to work & pass tests too now).

    The code is now explicitly Linux-only, without trying to pretend
    otherwise. Main goal of this change is to finally amputate
    linux_syscall_support.h, which we historically had trouble maintaining
    well. Biggest challenge was around thread listing facility which uses
    clone (ptrace explicitly fails between threads) and that causes
    difficulties around parent and child tasks sharing
    errno. linux_syscall_support stuff had special feature to "redirect"
    errno accesses. But it caused us for more trouble. We switched to
    regular syscalls, and errno stamping avoidance is now simply via
    careful programming.

    A number of other cleanups is made (such us thread finding codes in
    procfs which clearly was built for some ages old and odd kernels).

    sem_post/sem_wait synchronization was previously potentially prone to
    deadlock (if parent died at bad time). We now use pipe pair for this
    synchronization and it is fully robust.

M	CMakeLists.txt
M	Makefile.am
M	cmake/config.h.in
M	configure.ac
M	docs/heap_checker.html
D	src/base/elfcore.h
D	src/base/linux_syscall_support.h
M	src/base/linuxthreads.cc
M	src/base/linuxthreads.h
D	src/base/thread_lister.c
D	src/base/thread_lister.h
M	src/gperftools/heap-checker.h
M	src/heap-checker.cc
M	src/tests/heap-checker_unittest.cc
M	src/windows/config.h

commit 21869679878a3d578adb6bc4ed8eaacb9f86ac3c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:39:35 2023 -0400

    fix heap checker unittest

    We had shell wrapper for heap checker unittest, but it failed to deal
    with heap-checker-debug variant. So we now posix_spawn from .cc test
    instead.

M	CMakeLists.txt
M	Makefile.am
M	src/tests/heap-checker_unittest.cc
D	src/tests/heap-checker_unittest.sh

commit 1c3f0dda1b3f4a5b6ce720604bcea1680e7cbb9a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:39:31 2023 -0400

    ensure that heap checker initialization actually calls malloc

    I.e. all recent compilers (both gcc and clang) optimize out delete(new
    int) sequence to nothing. We call to tc_new and tc_delete directly to
    suppress this optimization.

M	src/heap-checker-bcad.cc

commit b96dc99dbf322195389bbb43b58941c43c744a49
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:39:28 2023 -0400

    one trivial config cleanup

M	configure.ac
M	src/profile-handler.h

commit b7e47a77c0382544eeef50e8e004932bbcae1c0e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:39:25 2023 -0400

    simplify heap checker building default to be Linux-only

    This also fixes cmake and freebsd where previously check for freebsd
    wasn't working.

M	CMakeLists.txt
M	configure.ac

commit b58cbd2e23e582059d8d554354d30ef40a93724f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:39:21 2023 -0400

    make preamble patcher build and run (win64 only)

    First, ml64 (amd64 version of masm) doesn't support /coff. Second, it
    also doesn't support (nor use) .model directive.

    Sadly, asm is inherently amd64-only, so this entire test won't build
    in i386 configuration.

M	src/windows/shortproc.asm
M	vsprojects/preamble_patcher_test/preamble_patcher_test.vcxproj

commit 54605b8a5807fe893a4b9ff8def982a264cdc6c9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:39:18 2023 -0400

    amputate old atomic ops implementation

M	.gitignore
M	CMakeLists.txt
M	Makefile.am
M	cmake/config.h.in
M	configure.ac
D	src/base/arm_instruction_set_select.h
D	src/base/atomicops-internals-arm-generic.h
D	src/base/atomicops-internals-arm-v6plus.h
D	src/base/atomicops-internals-gcc.h
D	src/base/atomicops-internals-linuxppc.h
D	src/base/atomicops-internals-macosx.h
D	src/base/atomicops-internals-mips.h
D	src/base/atomicops-internals-windows.h
D	src/base/atomicops-internals-x86.cc
D	src/base/atomicops-internals-x86.h
D	src/base/atomicops.h
M	src/base/spinlock.h
M	src/base/spinlock_internal.cc
M	src/base/spinlock_internal.h
M	src/base/spinlock_posix-inl.h
M	src/base/vdso_support.cc
M	src/malloc_hook-inl.h
D	src/tests/atomicops_unittest.cc
M	src/windows/config.h
M	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj
M	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj.filters
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj.filters
M	vsprojects/packed-cache_test/packed-cache_test.vcxproj
M	vsprojects/packed-cache_test/packed-cache_test.vcxproj.filters

commit ea0988b02033627b03521435b689483b38600136
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:39:14 2023 -0400

    port spinlocks atomic ops usage to std::atomic

M	src/base/spinlock.cc
M	src/base/spinlock.h
M	src/base/spinlock_internal.h
M	src/base/spinlock_linux-inl.h
M	src/base/spinlock_win32-inl.h

commit 3494eb29d629363b84eb7fcd23f8fc1c049c403e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:39:11 2023 -0400

    switch malloc hooks to std::atomic

    This makes our code one step closer to killing unportable custom
    atomics implementation. I did manually inspect generated code that
    fast-path is identical and slow path's changes of generated code are
    cosmetic.

M	src/malloc_hook-inl.h
M	src/malloc_hook.cc
M	src/tests/malloc_hook_test.cc

commit 0e21f36843279581e5fddda97fb797e93c1dc210
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:39:07 2023 -0400

    unbreak frame skipping in generic-fp backtrace method

M	src/stacktrace_generic_fp-inl.h
M	src/tests/stacktrace_unittest.cc

commit 6f3cacf698c1f3aaa5f21812c83541ee4d565147
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:39:04 2023 -0400

    stacktrace_unittest: test backtracing from signals more reliably

    Somehow I originally choose to segfault to test this, and it caused us
    to deal with 'skipping over' null pointer access. Which ended up not
    so easy to do semi-portably. But easier way is to do same
    itimer/sigprof thing that we do in actual profiler.

    We're still somewhat at the mercy of compiler placing code "normally",
    but this implementation seems more robust anyways.

M	src/tests/stacktrace_unittest.cc

commit 68b442714a86060d1dd95de4c515cc7774e3751e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:39:00 2023 -0400

    stop working around obsolete compilation bug

    This was targeting (some obsure and perhaps even Google-internal
    version) of now-ancient compiler. No need to keep this anymore.

M	src/central_freelist.cc

commit 16889f6ddb51fdae833455ed9d000bc0951fd8d4
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:38:56 2023 -0400

    fix minor clang warning

M	src/central_freelist.cc

commit 246782e1d62d6c10343a955c102b48c3d507d4cb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:38:52 2023 -0400

    use more noopt in various unit tests

    Many our unit tests require specific stack traces or that
    allocation/deallocation is not elimininated. As compilation gets more
    aggressive (such as when cross-object optimization is enabled during
    LTO), we break more of those cases.

    This commit extends noopt usage that disables inlining optimization in
    specific cases. This fixes github issue #1358.

M	src/tests/sampling_test.cc
M	src/tests/tcmalloc_large_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/testutil.h

commit 6bdeec0ecb0ae49a5277897b60492d4f6d0acac4
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:38:44 2023 -0400

    mark stacktrace capturing functions as noinline

    It is required for LTO builds, specifically it fixes
    stacktrace_unittest. This is because API of stacktrace capturing
    functions implicitly assumes that those are not inlined.

    Refers to github issue #1358.

M	src/stacktrace.cc

commit 777182fbdf37f24627410389f829d3bf7d86367a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:38:40 2023 -0400

    enable ATTRIBUTE_NOINLINE for MSVC

M	src/base/basictypes.h

commit 9bde8d837b8ed2a17ddd1206ae03e9b2265a85ee
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:38:35 2023 -0400

    unbreak building with visual studio clang platform toolset

M	src/windows/mini_disassembler_types.h
M	src/windows/patch_functions.cc

commit 0451d21e83483060d6c3e727ff2554692f5bc16e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:38:31 2023 -0400

    use libunwind when it actually works

    Previously we blindly tried to use libunwind whenever header is
    detected. Even if actually working libunwind library is missing. This
    is now fixed, so we attempt to use libunwind when it actually works.

    Somehow recent freebsd ships libunwind.h (which seems to belong to
    llvm's implementation), but apparently without matching .so. So
    then building
    and linking failed.

M	CMakeLists.txt
M	cmake/config.h.in
M	configure.ac
M	src/stacktrace.cc

commit 90eff0637bf17a8df2665287fc0b523b48e5fa92
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:38:26 2023 -0400

    upgrade malloc bench away from std::random_shuffle

    C++17 dropped it, so we use C++11 and later std::shuffle
    instead. Fixes github issue #1378

M	benchmark/malloc_bench.cc

commit b501806f2af8be4b83527cbb7bd6afa040d818d5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 23:08:25 2023 -0400

    fix malloc_bench on clang

    We got bitten again by compiler optimizing out free(malloc(sz))
    combination. We replace calls to malloc/free with calls to global
    function operator new/delete. Those are apparently forbidden by
    standard to be optimized out.

M	benchmark/malloc_bench.cc

commit ff68bcab609b1e99a7a0f3f73693b0873c4f3001
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 23:03:33 2023 -0400

    [benchmark] detect iterations overflow

    If for some reason benchmark function is too fast (like when it got
    optimized out to nothing), we'd previously hang in infinite loop. Now
    we'll catch this condition due to iterations count overflowing.

M	benchmark/run_benchmark.c

commit e003e91b742e5e65645d80c684d14eacaecdc0f1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:38:22 2023 -0400

    drop dependency on PTHREAD_CREATE_JOINABLE

M	CMakeLists.txt
M	cmake/config.h.in
M	src/tests/profile-handler_unittest.cc
M	src/windows/config.h

commit 8fc84c29a34a5feaa928e5027a1c0ba028a57b15
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:38:15 2023 -0400

    mix thread stack address into sampler

    This fixes test failures on freebsd (assert that sampler is seeded
    with non-0 value).

M	src/thread_cache.cc

commit d9b14b9da1a3e0fc55286390aa2ab2490d7eee3d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:38:03 2023 -0400

    actually test malloc/free from InitLateMaybeRecursive

    This days compilers ~always optimize out free(malloc(N)) to nothing.

M	src/static_vars.cc
M	src/thread_cache.cc

commit a80ce7b0e1510577c21a38dfb5596ddc27c59bdf
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:37:58 2023 -0400

    slow down profiler_unittest some more

    On modern machines xoring volatile int is fast enough to occasionally
    make specific test case's profiling results not stable enough. So we
    now force atomics into the picture which is slightly slower (could be
    lots on some platforms and/or optimizer flags).

M	src/tests/profiler_unittest.cc

commit c37f6c4c7c83027e920fa422b471203501be7a13
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:37:51 2023 -0400

    fix deprecated autoconf bits

    As part of that we also upgrade required autoconf version to 2.69
    which is what I see in rhel/centos 7 and ubuntu 14.04. Both are old
    enough. And, of course, .tar.gz releases still ship "packaged"
    configure,
    so will work on older distros.

    This fixes issue #1335.

M	cmake/config.h.in
M	configure.ac
M	m4/ac_have_attribute.m4
M	m4/acx_nanosleep.m4
D	m4/acx_pthread.m4
A	m4/ax_pthread.m4
M	m4/pc_from_ucontext.m4
M	m4/program_invocation_name.m4
M	src/windows/config.h

commit f06052d7362f5d71e8674d3cf46f761c793321e1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Jun 21 10:22:39 2023 -0400

    synchronize ucontext-from-pc tests autoconf -> cmake

    Refers to github issue #1398.

M	cmake/PCFromUContext.cmake

commit 5e923877aaee4ec4bece60148dadcba7ea1f86e6
Author: Henrik Reinstädtler <reinstaedtler@stud.uni-heidelberg.de>
Date:	Mon Jun 19 18:11:10 2023 +0200

    Fix uc_mcontext for apple silicon

M	cmake/PCFromUContext.cmake

commit bf8b714bf5075d0a6f2f28504b43095e2b1e11c5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon May 30 21:21:21 2022 -0700

    bump version to 2.10

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 9d44463380716ebad2f8ba13ce8a737f22bb2602
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon May 30 20:33:18 2022 -0700

    Remove basic support for Elbrus 2000 (e2k)

    This reverts commit 3b1c60cc4ea737ff151977dbcd164c5e2eb859fb.

M	cmake/PCFromUContext.cmake
M	m4/pc_from_ucontext.m4
M	src/base/basictypes.h
M	src/malloc_hook_mmap_linux.h

commit 6c99def347460adbb9f17815feb641cf5474548e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon May 30 19:50:19 2022 -0700

    avoid casting NULL to uinptr_t

    Which somehow fails to compile on musl. Fixes issue #1338.

M	src/heap-checker.cc

commit fe85bbdf4cb891a67a8e2109c1c22a33aa958c7e
Author: Jingyun Hua <huajingyun@loongson.cn>
Date:	Tue Feb 8 20:47:10 2022 +0800

    Add support for LoongArch.

    Only 64-bit is supported at the moment.

    Signed-off-by: Jingyun Hua <huajingyun@loongson.cn>

M	m4/pc_from_ucontext.m4
M	src/base/basictypes.h
M	src/base/linux_syscall_support.h
M	src/base/linuxthreads.h
M	src/malloc_hook_mmap_linux.h
M	src/stacktrace.cc
M	src/tcmalloc.cc

commit e80652b6279a22bd4a4264e4403cd1981293e82f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Jan 14 23:08:57 2022 -0800

    ship cmake bits with tar.gz distribution

    Fixes issue #1321.

M	Makefile.am

commit 003775aa816cb3fe01215455825245089d423a7c
Author: Volodymyr Nikolaichuk <nikolaychuk.volodymyr@gmail.com>
Date:	Wed Sep 15 01:17:51 2021 +0300

    free memory with mmap(PROT_NONE, MAP_FIXED)

M	src/system-alloc.cc

commit 852fb6df031560c5e353b497222b76394190e27d
Author: Natale Patriciello <natale.patriciello@vonage.com>
Date:	Thu Nov 18 18:16:40 2021 +0100

    Implement free_definite_size

    In Monterey, it seems that free_definite_size is required (despite
    the documentation saying that is optional). The implementation
    just forward the call to free.

    Signed-off-by: Natale Patriciello <natale.patriciello@gmail.com>

M	src/libc_override_osx.h

commit c25941200ef4ce39d0774c1332ff7abfbeab7035
Author: stdpain <drfeng08@gmail.com>
Date:	Sat Mar 13 12:42:01 2021 +0800

    fix cmake gperftools_enable_libunwind invalid

M	cmake/config.h.in

commit 43504ab7091c0bcac9a233aa0ee0720a1549791b
Author: Robert Scott <code@humanleg.org.uk>
Date:	Sat Feb 22 18:55:46 2020 +0000

    tcmalloc page fences: add TCMALLOC_PAGE_FENCE_READABLE option

M	src/debugallocation.cc

commit d57a9ea8bc92958733ac1c61a3c4f1ba2e150e96
Author: Matt T. Proud <matt.proud@gmail.com>
Date:	Tue Apr 20 11:11:46 2021 +0200

    README: replace "golang" moniker with "Go"

    This commit replaces the "golang" moniker in the README file with the
    appropriate name of "Go" per https://golang.org/doc/faq#go_or_golang.

    In this context, no disambiguation is required.

M	README

commit f7c6fb6c8e99d6b1b725e5994373bcd19ffdf8fd
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Mar 2 19:32:07 2021 -0800

    bump version to 2.9.1

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit c2f60400a86a5211bf009941bf1ccf9b2947a7c1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 28 17:52:17 2021 -0800

    prefer backtrace() on OSX

    It seems to work and _Unwind_Backtrace which is configured otherwise
    doesn't.

M	CMakeLists.txt
M	cmake/DefineTargetVariables.cmake
M	configure.ac

commit a015377a54eb09fca4b893ae530187a705164df5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 28 17:47:56 2021 -0800

    Set tcmalloc heap limit prior to testing oom

    Otherwise it can take long time to OOM on osex.

M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc

commit c939dd5531fd95e8af2181ac60e0b6e6230226c8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 28 15:42:00 2021 -0800

    correctly check sized delete hint when asserts are on

    We previously tested wrong assumption that larger than page size size
    classes have addresses aligned on page size. New code is making proper
    check of size class.

    Also added is unit test coverage for this previously failing
    condition. And we now also run "assert-ful" unittests for big tcmalloc
    too, not only tcmalloc_minimal configuration.

    This fixes github issue #1254

M	.gitignore
M	Makefile.am
M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc

commit 47b5b59ca9b62ee42cf30273cce463aa9cbba8c7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 15:16:06 2021 -0800

    bump version to 2.9

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit d7cbc8c2ff4ab8dbdc411ab1f25eca459f88502e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 14:55:15 2021 -0800

    unbreak cmake build

    It was trying to use third_party/valgrind.h header which I recently
    removed.

M	CMakeLists.txt

commit be0bbdb3403685798a7c1d5acf6405d2635fba4c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 13:48:11 2021 -0800

    amputate various unused bits from elfcore.h

M	src/base/elfcore.h

commit 42bab59f25dee53f91c0ba45e95b73754e197c20
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 13:35:43 2021 -0800

    liberate profile handler from linux_syscall_support

    We can get thread's tid in more portable way via libc syscall wrapper.

M	src/profile-handler.cc

commit 4629511e99f85fa8ca40fcbe105e014a725059d2
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 13:32:08 2021 -0800

    liberate spinlock futex waits from linux_syscall_support includes

    We've been using libc syscall wrapper some time now.

M	src/base/spinlock_linux-inl.h

commit 2e7094a86215118f3dcd3ad6f2c9099dc409ecc5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 13:28:48 2021 -0800

    liberate malloc_hook_mmap_linux.h from linux_syscall_support

    It was not used some time now, as we're rightfully trusting libc
    syscall wrapper instead.

M	src/malloc_hook_mmap_linux.h

commit 35301e2e59b30b7379981e60f3046124a2dfd68e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 12:40:45 2021 -0800

    add missing noopt wrappings around more operator new calls

    This fixes tests passing on clang which otherwise eliminates those
    new/delete calls so checking for hooks being called failed.

M	src/tests/tcmalloc_unittest.cc

commit fa412adfe38ffd3f545a0e10139bd20b38b688e9
Author: Venkatesh Srinivas <venkateshs@chromium.org>
Date:	Wed Feb 17 17:50:43 2021 -0800

    Fix thread-safety (annotalysis) annotations

    tcmalloc contains some thread-safety annotations; however those
    annotations have not been exercised for some time, as they used
    macros/attributes only supported by a legacy branch of gcc.

    Pull request #1251 converted those macros to support modern
    versions of clang; this CR fixes the annotations that were
    enabled. For the most part, this just requires re-enabling
    annotations on member functions that take/release locks. For the
    tcmalloc fork (pre-fork and post-fork) handlers, we mark the
    functions as exempt from this analysis, as it takes a dynamic
    number of locks.

M	src/base/low_level_alloc.cc
M	src/base/spinlock.h
M	src/central_freelist.h
M	src/static_vars.cc

commit cc496aecb81ee5966c865f3723743ff02046c5ad
Author: Venkatesh Srinivas <venkateshs@chromium.org>
Date:	Wed Feb 17 16:23:17 2021 -0800

    tcmalloc: Switch thread-safety annotations to support clang

    tcmalloc contains its own copy of thread_annotations.h, wrapper
    macros for static thread-safety analysis expressions. These thread-
    safety expressions allow asserting (at compile time) that certain
    locks are held or excluded or certain data is protected by specific
    locks; they are checked at compile-time by recent versions of clang
    or a gcc branch (https://gcc.gnu.org/wiki/ThreadSafetyAnnotation).

    Convert the #if-guard and macro names from the no-longer-supported
    gcc branch's defines & macros to the versions supported by recent
    versions of clang.

M	src/base/thread_annotations.h

commit 96ba58e19b7b93fcf1db6a0551c9510296ce26da
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 23:18:57 2021 -0800

    bump version to 2.9rc

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 9ce32aefa9c66698817be50e141c5a39fe3823c8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 23:02:28 2021 -0800

    upgrade test bot to xenial (ubuntu 16.04 LTS)

    Older glibc seemingly doesn't have right unwind info for signal frame,
    so fails recently upgraded stacktrace_unittest. But since this version
    is not supported anymore, lets just test newer glibc.

M	.travis.yml

commit 91ff3114492f368a651ee790c8311eb6fadf3e8e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 22:36:55 2021 -0800

    don't default to generic_fp without frame pointers

    I.e. on x86-64 and riscv.

M	src/stacktrace.cc

commit 4cf7dd0a7502849b117e15ad5eb1eb68eab4b6dc
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 22:28:34 2021 -0800

    enable emergency_malloc on all architectures with mmap

    It is actually needed for libgcc backtracer from time to time. And
    we've seen libunwind to need it too. Plus we've not heard of any
    problems with it. So lets just always enable it.

    This should fix github issue #1248.

M	configure.ac

commit 37087ec5360e821627155d3129f9b55a321a0001
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 21:37:20 2021 -0800

    prefer libunwind on x86-64 even with -fno-omit-frame-pointer

    Libunwind is mostly safe on x86-64 and most of OS (e.g. libc) is
    compiled without frame pointers anyways. Even when libc is built with
    frame pointers, various libc asm routines (e.g. memcpy) are not. And
    even for code built with frame pointers we actually sometimes get
    SIGPROF inside function prologues, before frame pointer is
    established. Which then causes imperfect backtraces.

    Libunwind should handle this all (when it doesn't crash or deadlock).

M	src/stacktrace.cc

commit f4aa2a435eed63fc047448635f705a9c6037bd97
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 7 11:59:44 2021 -0800

    implement generic frame pointer backtracer

    This supports frame pointer backtracing on x86-64, aarch64 and
    riscv-s (should work for both 32 and 64 bits).

    Also added is detection of borked libunwind on aarch64-s. In this case
    frame pointer unwinder is preferred.

M	Makefile.am
M	src/stacktrace.cc
A	src/stacktrace_generic_fp-inl.h
M	src/tests/stacktrace_unittest.cc

commit 17bab484aea43cf1a5247c823e036dfb52f5d92b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 6 13:21:12 2021 -0800

    always respect --enable-frame-pointers

    Previously it only was respected on x86_64, but this days lots
    of modern
    ABIs are without frame pointers by default (e.g. arm64 and riscv, and
    even older mips).

M	CMakeLists.txt
M	Makefile.am
D	cmake/CheckNoFPByDefault.cmake
M	configure.ac

commit 22c0eceddcf986a9b3f853b36d855acb38fa678f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 16:29:14 2021 -0800

    add emacs mode line annotations to remaining files

M	src/base/arm_instruction_set_select.h
M	src/base/dynamic_annotations.c
M	src/base/dynamic_annotations.h
M	src/base/linuxthreads.h
M	src/base/thread_annotations.h
M	src/base/thread_lister.c
M	src/base/vdso_support.cc
M	src/base/vdso_support.h
M	src/gperftools/heap-profiler.h
M	src/gperftools/profiler.h
M	src/gperftools/tcmalloc.h.in
M	src/stacktrace_powerpc-darwin-inl.h
M	src/tests/stacktrace_unittest.cc
M	src/windows/addr2line-pdb.c
M	src/windows/config.h
M	src/windows/ia32_modrm_map.cc
M	src/windows/ia32_opcode_map.cc
M	src/windows/nm-pdb.c
M	src/windows/patch_functions.cc
M	src/windows/system-alloc.cc

commit b12139ddbaa3e16ba491a24ce6fec51009e70cce
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 16:13:15 2021 -0800

    delete-trailing-whitespace on all files

M	src/addressmap-inl.h
M	src/base/atomicops-internals-gcc.h
M	src/base/atomicops-internals-linuxppc.h
M	src/base/atomicops-internals-macosx.h
M	src/base/atomicops-internals-windows.h
M	src/base/atomicops-internals-x86.cc
M	src/base/atomicops-internals-x86.h
M	src/base/atomicops.h
M	src/base/commandlineflags.h
M	src/base/googleinit.h
M	src/base/linuxthreads.cc
M	src/base/logging.cc
M	src/base/logging.h
M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h
M	src/base/simple_mutex.h
M	src/base/spinlock.cc
M	src/base/spinlock.h
M	src/base/spinlock_linux-inl.h
M	src/base/spinlock_posix-inl.h
M	src/base/spinlock_win32-inl.h
M	src/base/stl_allocator.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/base/thread_annotations.h
M	src/base/vdso_support.cc
M	src/common.cc
M	src/config_for_unittests.h
M	src/getenv_safe.h
M	src/google/heap-profiler.h
M	src/google/malloc_extension.h
M	src/google/malloc_extension_c.h
M	src/google/malloc_hook.h
M	src/google/malloc_hook_c.h
M	src/google/profiler.h
M	src/google/stacktrace.h
M	src/google/tcmalloc.h
M	src/gperftools/heap-profiler.h
M	src/gperftools/malloc_extension.h
M	src/gperftools/malloc_extension_c.h
M	src/gperftools/malloc_hook.h
M	src/gperftools/malloc_hook_c.h
M	src/gperftools/profiler.h
M	src/gperftools/stacktrace.h
M	src/heap-checker-bcad.cc
M	src/heap-profile-stats.h
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/internal_logging.h
M	src/malloc_extension.cc
M	src/malloc_hook-inl.h
M	src/malloc_hook.cc
M	src/maybe_threads.cc
M	src/maybe_threads.h
M	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/pagemap.h
M	src/profile-handler.cc
M	src/profile-handler.h
M	src/raw_printer.cc
M	src/raw_printer.h
M	src/sampler.cc
M	src/sampler.h
M	src/stacktrace_powerpc-inl.h
M	src/symbolize.cc
M	src/symbolize.h
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tests/addressmap_unittest.cc
M	src/tests/atomicops_unittest.cc
M	src/tests/frag_unittest.cc
M	src/tests/heap-profiler_unittest.cc
M	src/tests/low_level_alloc_unittest.cc
M	src/tests/malloc_extension_c_test.c
M	src/tests/malloc_extension_test.cc
M	src/tests/markidle_unittest.cc
M	src/tests/memalign_unittest.cc
M	src/tests/pagemap_unittest.cc
M	src/tests/profiler_unittest.cc
M	src/tests/realloc_unittest.cc
M	src/tests/sampler_test.cc
M	src/tests/stacktrace_unittest.cc
M	src/tests/system-alloc_unittest.cc
M	src/tests/tcmalloc_large_unittest.cc
M	src/tests/testutil.cc
M	src/tests/testutil.h
M	src/tests/thread_dealloc_unittest.cc
M	src/windows/get_mangled_names.cc
M	src/windows/google/tcmalloc.h
M	src/windows/ia32_modrm_map.cc
M	src/windows/ia32_opcode_map.cc
M	src/windows/mingw.h
M	src/windows/mini_disassembler.cc
M	src/windows/mini_disassembler.h
M	src/windows/mini_disassembler_types.h
M	src/windows/nm-pdb.c
M	src/windows/override_functions.cc
M	src/windows/patch_functions.cc
M	src/windows/port.cc
M	src/windows/preamble_patcher.cc
M	src/windows/preamble_patcher.h
M	src/windows/preamble_patcher_test.cc
M	src/windows/preamble_patcher_with_stub.cc
M	src/windows/system-alloc.cc

commit 419c85814de497d6dfaf6f9a19d153138a7dec08
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 16:02:56 2021 -0800

    amputate unused dynamic annotations support

M	CMakeLists.txt
M	Makefile.am
M	cmake/config.h.in
M	configure.ac
M	src/base/dynamic_annotations.c
M	src/base/dynamic_annotations.h
M	src/base/low_level_alloc.cc
M	src/base/spinlock.h
M	src/profile-handler.cc
D	src/third_party/valgrind.h
M	src/windows/config.h

commit 73a72cdb6154ab7bdd49b1dde91349a30e8d7973
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 15:11:12 2021 -0800

    don't check for snprintf

M	CMakeLists.txt
M	cmake/config.h.in
M	src/windows/config.h
M	src/windows/mingw.h
M	src/windows/port.h

commit 95b52b0504a7cb2bce36d72b8bb0825833500b4c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 15:02:57 2021 -0800

    don't check for unused uname symbol

M	CMakeLists.txt
M	cmake/config.h.in
M	configure.ac
M	src/windows/config.h

commit 01c2697fac41a5d6175ad0da21d9d753f0b385a1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 14:30:29 2021 -0800

    amputate unused SleepForMilliseconds from sysinfo.{h,cc}

M	src/base/sysinfo.cc
M	src/base/sysinfo.h

commit ac68c97187e3729668ff5048c9bd27aae14e974d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 14:25:49 2021 -0800

    don't check for useless __builtin_stack_pointer

    It doesn't seem to be supported anyways, and we're not using it too.

M	CMakeLists.txt
M	cmake/config.h.in
M	configure.ac
M	src/windows/config.h

commit 7271bb72be08db491d3f0c60c1b0d5593cc1b5b5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 14:22:08 2021 -0800

    unbreak cmake check for TLS support

M	CMakeLists.txt

commit 7c106ca241a344993f8011397de8004a224e094a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 14:14:55 2021 -0800

    don't bother checking for stl namespace and use std

    Because there are no compilers left that don't do std namespace.

M	CMakeLists.txt
M	cmake/config.h.in
M	configure.ac
D	m4/namespaces.m4
D	m4/stl_namespace.m4
M	src/heap-profiler.cc
M	src/malloc_extension.cc
M	src/tcmalloc.cc
M	src/windows/config.h

commit 0d6f32b9cef7ee044e55a746e7c76db62d23cd86
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 14:04:10 2021 -0800

    use standard way to print size_t-sized ints

    I.e. just use zu/zd/zx instead of finding out right size and defining
    PRI{u,x,d}S defines. Compilers have long caught up to this part of
    standard.

M	cmake/config.h.in
M	configure.ac
D	m4/compiler_characteristics.m4
M	src/debugallocation.cc
M	src/emergency_malloc.cc
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profiler.cc
M	src/memory_region_map.cc
M	src/profiledata.cc
M	src/tcmalloc.cc
M	src/tests/markidle_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/windows/config.h

commit 0c11d35f4a2a0f5f42ee684a3f5b27cbab8abae2
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 13:39:55 2021 -0800

    amputate checking for __int64

    Since everything supports stdint.h this days.

M	CMakeLists.txt
M	cmake/config.h.in
M	configure.ac
M	src/windows/config.h
M	src/windows/port.h

commit 92718aaaeb08d139b346633333235bf2260d0848
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 13:34:58 2021 -0800

    amputate checking for conflict-signal.h

    It was never found or used.

M	CMakeLists.txt
M	cmake/config.h.in
M	src/profiler.cc
M	src/windows/config.h

commit 9bb2937261bca6c0257a8cfd62ff97f69c450acb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 14 13:33:10 2021 -0800

    amputate checking for inline keyword support

    It is supported everywhere now.

M	CMakeLists.txt
M	cmake/config.h.in
M	configure.ac
M	src/windows/config.h

commit d9c4c3b481e641b719d3d790987ed7d094157bf2
Author: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Date:	Fri Feb 12 19:21:18 2021 +0700

    profile-handler: use documented sigev_notify_thread_id in sigevent

    sigevent(7) is documented to have sigev_notify_thread_id as its
    member.
    In glibc system, it's a macro expanded to the legacy _sigev_un._tid,
    _sigev_un._tid is obviously an internal implementation detail as
    signaled by its underscore prefix. And this macro was hidden inside
    linux/signal.h in older version of glibc.

    On Linux that use musl libc, sigev_notify_thread_id is also a
    macro, but
    it's expanded to __sev_fields.sigev_notify_thread_id

    [alkondratenko@gmail.com: amputated broken linux/signal.h dependency]
    [alkondratenko@gmail.com: see
    https://github.com/gperftools/gperftools/pull/1250]
    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	src/profile-handler.cc

commit 43459feb33b87d3300e3b8b4917e5226678e4a0f
Author: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Date:	Sat Feb 13 17:35:20 2021 +0700

    configure.ac: check for features.h once

M	configure.ac

commit 290b123c01f6578391b20bb31849f26b02401112
Author: Venkatesh Srinivas <venkateshs@chromium.org>
Date:	Mon Feb 8 12:32:23 2021 -0800

    atomicops: Remove Acquire_Store / Release_Load

    gperftools' internal atomicops library included atomic
    Release Load and Acquire Store operations; those operations
    were unused and expressed ordering constraints that aren't
    expressible in the C++ standard memory model.

    Remove them, to make a transition to C++11 atomics easier
    and to avoid confusing use of them.

M	src/base/atomicops-internals-arm-generic.h
M	src/base/atomicops-internals-arm-v6plus.h
M	src/base/atomicops-internals-gcc.h
M	src/base/atomicops-internals-linuxppc.h
M	src/base/atomicops-internals-macosx.h
M	src/base/atomicops-internals-mips.h
M	src/base/atomicops-internals-windows.h
M	src/base/atomicops-internals-x86.h
M	src/base/atomicops.h
M	src/tests/atomicops_unittest.cc

commit 3b1c60cc4ea737ff151977dbcd164c5e2eb859fb
Author: SSE4 <tomskside@gmail.com>
Date:	Wed Jan 27 11:15:56 2021 +0300

    Add support for Elbrus 2000 (e2k)

M	cmake/PCFromUContext.cmake
M	m4/pc_from_ucontext.m4
M	src/base/basictypes.h
M	src/malloc_hook_mmap_linux.h

commit c5747615da78f7c2d91112f2a6b6b4da4f18540a
Author: Jarno Rajahalme <jarno@covalent.io>
Date:	Fri Jan 29 09:54:18 2021 -0800

    syscall: Mark x8 as clobbered

    Mark arm64 register x8 as clobbered by syscall body inline assembly as
    it is being used to store the syscall number. Otherwise the compiler
    may try to use it for some other purpose.

    This fix is derived from a resolution to clang Bugzilla report
    https://bugs.llvm.org/show_bug.cgi?id=48798.  See this report for a
    minimal reproducer derived from the code fixed here as well as the
    resolution.

    This should fix SEGFAULTs as reported in
    https://github.com/envoyproxy/envoy/issues/14756.

    Fixes: #1241
    Signed-off-by: Jarno Rajahalme <jarno@covalent.io>

M	src/base/linux_syscall_support.h

commit d8eb315fb18f6fb0d6efa923401f166343727bc6
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Dec 20 23:35:08 2020 -0800

    bump version to 2.8.1

M	CMakeLists.txt
M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 6ed61f8e91ffc00310b253ad2c777c0e862bd742
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Dec 19 19:14:50 2020 -0800

    add note that cmake build is preliminary

M	CMakeLists.txt

commit 6bbf2ed1501e27e215bb412b9b0b930921598bca
Author: okhowang(王沛文) <okhowang@tencent.com>
Date:	Sat Sep 12 02:43:56 2020 +0800

    Update cmake

M	CMakeLists.txt
M	cmake/FindObjcopyWithWeaken.cmake
D	cmake/GPerftoolsAddTarget.cmake
M	cmake/config.h.in
A	cmake/pkgconfig.pc
M	cmake/tcmalloc.h.in
M	src/tests/addressmap_unittest.cc
A	src/windows/CMakeLists.txt

commit 913d3eb7d7fc1c5cc025920d5699b528c268f0fa
Author: Isaac Hier <ihier@uber.com>
Date:	Wed Nov 8 11:20:25 2017 -0500

    Fix a few macros for Apple

M	CMakeLists.txt
M	cmake/config.h.in

commit 64a73b1cb87a6661e4c3092b07bfd5032fe9a1fa
Author: Isaac Hier <isaachier@gmail.com>
Date:	Wed Nov 8 07:24:08 2017 -0500

    Work on fixing linking errors in stacktrace

M	CMakeLists.txt
M	cmake/config.h.in

commit b788d51eb4cf80adc7d782fa8df7175ee96d41d9
Author: Isaac Hier <isaachier@gmail.com>
Date:	Tue Nov 7 21:25:34 2017 -0500

    Fix conditional definitions

M	CMakeLists.txt

commit 495229b625d65b19f3fc98fed5b626d31a89ee03
Author: Isaac Hier <isaachier@gmail.com>
Date:	Tue Nov 7 13:26:10 2017 -0500

    Make internal tcmalloc libs

M	CMakeLists.txt

commit cca7f6f669657218a15ef5a176706660ad2c1d67
Author: Isaac Hier <isaachier@gmail.com>
Date:	Sun Nov 5 16:53:28 2017 -0500

    More unit tests and libraries

M	CMakeLists.txt

commit 11dc65c3c40618065ae48ccdb1e1548e339bff32
Author: Isaac Hier <isaachier@gmail.com>
Date:	Sun Nov 5 12:53:07 2017 -0500

    Fix config headers, add more unit tests

M	CMakeLists.txt
M	cmake/config.h.in
M	cmake/tcmalloc.h.in

commit 6078fe40d9a5b829cbbadc6ec824163d6d9eda5b
Author: Isaac Hier <isaachier@gmail.com>
Date:	Sun Nov 5 12:23:42 2017 -0500

    Finish configure.ac conversion to CMake, start on Makefile.am

M	CMakeLists.txt
A	cmake/CheckNoFPByDefault.cmake
M	cmake/DefineTargetVariables.cmake
A	cmake/FindObjcopyWithWeaken.cmake
A	cmake/GPerftoolsAddTarget.cmake
M	cmake/PCFromUContext.cmake
M	cmake/config.h.in

commit 515fb221966a2413d00184186da97719b90e3915
Author: Isaac Hier <isaachier@gmail.com>
Date:	Fri Nov 3 09:10:27 2017 -0400

    Generate config header

M	CMakeLists.txt
D	cmake/DefineArchVariables.cmake
A	cmake/DefineTargetVariables.cmake
M	cmake/PCFromUContext.cmake
A	cmake/config.h.in
A	cmake/tcmalloc.h.in

commit 4adb5ff74d35900dd8d0ed07959eef68f85c8886
Author: Isaac Hier <ihier@uber.com>
Date:	Thu Nov 2 20:07:29 2017 -0400

    Add architecture checks

M	CMakeLists.txt
A	cmake/DefineArchVariables.cmake
M	src/tcmalloc.h

commit fa9bedc82cbbc289875a07b6e431e553b1a15b77
Author: Isaac Hier <isaachier@gmail.com>
Date:	Wed Nov 1 09:52:02 2017 -0400

    Add most of CMake build

M	CMakeLists.txt
A	cmake/PCFromUContext.cmake

commit 9e4f72fd1faa3f406f468796b4b6908391c8019c
Author: Isaac Hier <ihier@uber.com>
Date:	Mon Oct 30 22:26:13 2017 -0400

    Define options, start system checks

M	CMakeLists.txt

commit a6ce98174b47213f11c84d57cfbc1e3cdd609bfb
Author: Isaac Hier <isaachier@gmail.com>
Date:	Mon Oct 30 09:35:34 2017 -0400

    Add CMakeLists.txt

A	CMakeLists.txt

commit 313495587598fb1a69b94c44a83735f6056f6049
Author: Steve Langasek <steve.langasek@canonical.com>
Date:	Thu Oct 8 16:49:21 2020 -0700

    Additional porting for riscv64.

    Adds handling for the PC register, malloc_hook_mmap, and syscalls.

    Successfully built in Ubuntu with these changes.

M	m4/pc_from_ucontext.m4
M	src/base/linux_syscall_support.h
M	src/malloc_hook_mmap_linux.h

commit f0e289bdbb2fbbb7fa71496d846988c1bac0e310
Author: Steve Langasek <steve.langasek@canonical.com>
Date:	Thu Oct 8 07:54:03 2020 -0700

    Enable build on riscv64.

    Cacheline length may be implementation-specific, but this is known
    to be
    correct on the U54.

M	src/base/basictypes.h

commit 6c715b4fa183e221a29c5d7a4ea87aeba4ee02cf
Author: Tim Gates <tim.gates@iress.com>
Date:	Sat Oct 10 17:26:00 2020 +1100

    docs: fix simple typo, defininitions -> definitions

    There is a small typo in src/base/linux_syscall_support.h.

    Should read `definitions` rather than `defininitions`.

M	src/base/linux_syscall_support.h

commit 02d5264018cc76a36713f97329870dbf85969519
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Dec 19 17:15:31 2020 -0800

    Revert "drop page heap lock when returning memory back to kernel"

    This reverts commit be3da70298bf3d25c7d64655922ab82dd819ec98.

    There are reports of crashes and false-positive OOMs from this
    patch. Crashes under aggressive decommit mode are understood, but I
    have yet to get confirmations whether false-positive OOMs were seen
    under aggressive decommit or not. Thus lets revert for now.

    Updates issue #1227 and issue #1204.

M	src/page_heap.cc
M	src/page_heap.h
M	src/tests/page_heap_test.cc

commit 151cbf5146cd5b359a4470860d1f7d8f6a843d62
Author: Grant Henke <granthenke@gmail.com>
Date:	Thu Nov 26 20:56:46 2020 -0600

    Add OS X arm64 program counter

    [alkondratenko@gmail.com: updated comment that it is tested]

    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	m4/pc_from_ucontext.m4

commit 140e3481d0541044cdc27f45129b47f92d5940b7
Merge: bda3c82e 0fc5cabd
Author: Aliaksey Kandratsenka (aka Aliaksei Kandratsenka)
<alkondratenko@gmail.com>
Date:	Tue Nov 17 14:30:59 2020 -0800

    Merge pull request #1231 from PatriosTheGreat/master

    Fix implicit-int-float-conversion warning.

commit 0fc5cabdfc966affb6f336848d9587ec5d904d0c
Author: Levon Ter-Grigoryan <patrios@google.com>
Date:	Tue Nov 17 12:29:22 2020 +0100

    Fix implicit-int-float-conversion warning.

M	src/sampler.cc

commit bda3c82e11615ca9e7751d1f3cfb161026ee742a
Author: Kerrick Staley <kstaley@lyft.com>
Date:	Wed Jul 8 16:42:12 2020 -0700

    Increase kMaxStackDepth to 254

    [alkondratenko@gmail.com: reduced value from 256 to 254]

M	src/profiledata.h

commit 1d9b8bb59d5610f2c3e9faad6bbd91ceca17fb93
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jul 11 20:33:40 2020 -0700

    don't test sbrk hook if we're on linux and don't have __sbrk

    "mmap" hooks code for linux only hooks sbrk when __sbrk is
    defined. But musl doesn't offer this function (reasonably so), so
    sbrk hooking doesn't work there. Not big loss, but lets make sure
    tests don't fail.

    Lets reference this to issue #1198

M	src/tests/tcmalloc_unittest.cc

commit 180bfa10d7cb38e8b3784d60943d50e8fcef0dcb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Jul 6 02:51:43 2020 -0700

    bumped version to 2.8

M	Makefile.am
M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit c1bcc412ba4a94deaf8c3230519ecb4dda60557d
Author: Ryan Macnak <rmacnak@google.com>
Date:	Fri May 1 11:50:16 2020 -0700

    Don't try to mark esp as clobbered in linux syscall support.

    Compare 9e5b1628737c67b4587f937164572774592978c4, issue #1076

M	src/base/linux_syscall_support.h

commit 50f89afaed3d07d384fa8d86c98460ccff1e870e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 19 22:21:07 2020 -0700

    liberate gperftools tests from relying on -fno-builtin-XXX flags

    Clang mostly ignores those anyways, so our tests needed better way to
    disable optimizations (clang is quite aggressive replacing new/delete
    pair with stack allocation).

M	Makefile.am
M	README
M	src/tests/debugallocation_test.cc
M	src/tests/system-alloc_unittest.cc
M	src/tests/tcmalloc_large_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/testutil.h

commit 98ccd0f1029c11a3df0a51e4a14b543e430a96f8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 19 22:50:16 2020 -0700

    prevent inlining in heap-checker unittest

    The test relies on stuff "mmaper" function not being inlined, but
    compilers are getting smarter and latest clang actually does inline it
    now. Adding volatile to pointer declaration fixes it.

M	src/tests/heap-checker_unittest.cc

commit e521472f1ac1ecf028e8c922ca4f8741473afd66
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jul 5 22:49:41 2020 -0700

    fix linking of page_heap_test on windows

    After change to release page heap lock around returning memory back to
    kernel, page heap test got dependency on page heap lock. Which was not
    available on windows since relevant symbols are not exported.

    Proposed fix is to simply duplicate all needed .cc files in
    page_heap_test project instead of linking to dll. This is not perfect
    but gets job done, until we figure out better solution (GNU/Linux will
    eventually get hidden visibility and will need it).

    This fixes github issue 1189.

M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj.filters

commit e5f77d6485bd2f6ce43862e3e57118b1bb97d30a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Mar 23 01:21:27 2020 -0700

    chmod -x Makefile.am gperftools.sln

M	Makefile.am
M	gperftools.sln

commit 6b92e00cecb82e7fae6e019583865faced29c6f7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Mar 23 01:15:40 2020 -0700

    don't assume HAVE_MMAP on mingw builds

    Fixes github issue #1108.

M	configure.ac

commit 4cddede3990a96969aac9ff13ce3c8195ec91ce7
Author: Kirill Müller <krlmlr@mailbox.org>
Date:	Tue Feb 25 09:09:22 2020 +0100

    New ProfilerGetStackTrace()

M	Makefile.am
M	src/gperftools/profiler.h
M	src/profiler.cc

commit db7aa547abb5abdd558587a15502584cbc825438
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 8 20:57:01 2020 -0700

    bumped version to 2.8rc

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit be3da70298bf3d25c7d64655922ab82dd819ec98
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 8 19:32:02 2020 -0700

    drop page heap lock when returning memory back to kernel

    Fixes issue #754.

M	src/page_heap.cc
M	src/page_heap.h
M	src/tests/page_heap_test.cc

commit 87acc2782fe49a8b57d19783f61ff8bc667db68d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 8 18:22:17 2020 -0700

    amputate span events history

    Nobody used it in years. Abseil tcmalloc had it amputated years ago.

M	src/central_freelist.cc
M	src/page_heap.cc
M	src/span.cc
M	src/span.h

commit e40c7f231ad89e1ee8bf37a1d6680880c519c901
Author: Ilya Leoshkevich <iii@linux.ibm.com>
Date:	Thu Feb 27 13:10:29 2020 +0100

    Fix mmap syscall on s390

    mmap arguments must be passed in an array on s390.

    Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>

M	src/malloc_hook_mmap_linux.h

commit b7607ee7d4ab35504a54588e5912a8e850686db2
Author: Jon Kohler <jon@nutanix.com>
Date:	Sun Jan 19 22:09:08 2020 -0500

    tcmalloc: ability to disable fallback allocator in memfs

    Whenever tcmalloc memfs allocator runs out of huge memory, it falls
    back to the
    default system allocator, which will start allocating from normal
    anonymous
    memory pool (small pages).	For use cases that exclusively want
    hugepage backed
    memory, such as using tcmalloc in combination with Intel SPDK, this is
    problematic.

    This change adds an environment variable
    "TCMALLOC_MEMFS_DISABLE_FALLBACK"
    which when set to true will ensure that tcmalloc doesn't fallback
    to using the
    system allocator when the system runs out of hugepages. This is
    false by
    default, such that all other tcmalloc consumers will not see any
    changes.

    For those curious, you can see part of our upstream SPDK work here:
    https://review.gerrithub.io/c/spdk/spdk/+/475943

M	src/memfs_malloc.cc

commit 1bfcb5bc3a779b6c0c63125737f035c2afcc9e95
Author: Jon Kohler <jon@nutanix.com>
Date:	Tue Feb 18 11:14:49 2020 -0500

    tcmalloc: fragmentation overhead instrumentation

    This patch adds visibility into the overhead due to fragmentation
    for each size
    class in the tcmalloc central free list, which is helpful when
    debugging
    fragmentation issues.

M	src/tcmalloc.cc

commit 36bf1309de52433f0088274b347b4fc385ea056f
Author: Todd Lipcon <todd@cloudera.com>
Date:	Mon Jun 3 10:29:06 2019 -0700

    Fix a clang-tidy readability warning for static member access

    This fixes the following warning:

    src/thread_cache.cc:281:10: warning: static member accessed through
    instance [readability-static-accessed-through-instance]
      return sampler_.GetSamplePeriod();
	     ^~~~~~~~~~~~~~~~~~~~~~~~
	     tcmalloc::Sampler::

M	src/thread_cache.cc

commit 2b2a962c2bdc3ecbdbd45873a07989c7ccb56560
Author: prehistoricpenguin <prehistoricpenguin@qq.com>
Date:	Fri Jul 12 16:25:55 2019 +0800

    Remove executable flag for c++ files

M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/stacktrace_instrument-inl.h
M	src/symbolize.cc
M	src/system-alloc.cc
M	src/tests/sampler_test.cc

commit 8f308afbfedeca0991ef431e3b8e0b01bd5b8a8f
Author: Henrik Edin <henrik.edin@mongodb.com>
Date:	Tue Apr 9 15:16:55 2019 -0400

    Increase kClassSizesMax to 128 to allow for page size of 4K

M	src/common.h

commit d3fefdb69439292ec914cd8c65dd83ed1bcbdc65
Author: Henrik Edin <henrik.edin@mongodb.com>
Date:	Tue Jan 29 13:25:40 2019 -0500

    Allow configuring page size to 4K, 8K, 16K, 32K, 64K, 128K and 256K

M	INSTALL
M	configure.ac
M	src/common.h
M	src/windows/config.h

commit cf2df3b000c58155d3c83bd01b603894b4559c0b
Author: Laurent Stacul <laurent.stacul@gmail.com>
Date:	Fri Feb 7 09:37:34 2020 +0000

    Fix the removed std::allocator::pointer member type removed in C++20

M	src/tests/heap-checker_unittest.cc

commit 31024506c543132adb315b8de89d5faa85e0ff0e
Author: shipujin <shipujin.t@gmail.com>
Date:	Tue Aug 20 13:24:57 2019 +0800

    Add mips64* support

M	src/base/linux_syscall_support.h

commit fe62a0baab87ba3abca12f4a621532bf67c9a7d2
Author: Holy Wu <HolyWu@users.noreply.github.com>
Date:	Tue Apr 9 18:33:26 2019 +0800

    Update config.h in Windows

M	src/windows/config.h

commit 8272631b5a9f9e840eb1b014f43b3ddea16ff67d
Author: 风 <invalid_ms_user@live.com>
Date:	Wed Apr 17 10:55:06 2019 +0800

    Fix a long time typo

    Thought this fix may not effect the behavior or performance, but it
    seems indeed a bug.

M	src/pprof

commit c1d546d7b22cc503f37e9a6efa1d249be60243a3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 7 15:27:17 2019 -0700

    never test and always default HAVE_MMAP to on

    This should alleviate vboxfs problems from issue #1008.

M	configure.ac

commit fba6ce0e7aaa094fec09ef8763e86b19dc815624
Author: pkubaj <pkubaj@users.noreply.github.com>
Date:	Mon Feb 4 16:10:06 2019 +0000

    Fix build on FreeBSD

    On FreeBSD the following syntax is used:
    mr REGA,REGB

M	src/stacktrace_powerpc-darwin-inl.h

commit 98ac4ee9bc6ab285429fc5d97335b4c94fc0b919
Author: Jakub Wilk <jwilk@jwilk.net>
Date:	Wed Apr 3 09:50:40 2019 +0200

    Fix typos

M	README

commit 9e5b1628737c67b4587f937164572774592978c4
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 10 12:46:18 2019 -0800

    don't try to mark rsp as clobbered in linux syscall support

    rsp is not actually clobbered by that code and later gccs actually
    (correctly) bark
    at it.

    Fixed issue #1076.

M	src/base/linux_syscall_support.h

commit 1e36ed705548ae2a5170bb00dfee0954b8ef76de
Author: Romain Geissler <romain.geissler@amadeus.com>
Date:	Tue Jan 29 18:31:19 2019 +0000

    Use initial exec TLS model for all thread local variables from
    thread_cache.cc

    This avoids a deadlock when a library which is being dlopen'ed creates
    as part of its static constructors a thread which quickly need to call
    malloc. We are still in the dlopen call (so with some internal glibc
    mutex taken) when the thread executes code and later needs to call
    malloc which in term calls tls_get_addr_tail, which wait for the
    dlopen
    mutex to be unlocked. If later the dlopen'ing thread also calls malloc
    as part of its constructors, we are in a deadlock.

    Fix is similar to
    https://github.com/gperftools/gperftools/commit/7852eeb75b9375cf52a7da01be044da6e915dd08

    Stack of the dlopening thread:
	#0  0x00007fd5406ca93c in __lll_lock_wait () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/libpthread.so.0
	#1  0x00007fd5406c45a5 in pthread_mutex_lock () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/libpthread.so.0
	... proprietary code in the stack
	#9  0x00007fd5074f0367 in
	__static_initialization_and_destruction_0 (__initialize_p=1,
	__priority=65535) at src/ClientImpl.cpp:15
	#10 0x00007fd5074f06d7 in _GLOBAL__sub_I_ClientImpl.cpp(void)
	() at src/ClientImpl.cpp:85
	#11 0x00007fd50757aa46 in __do_global_ctors_aux ()
	#12 0x00007fd5073e985f in _init () from ...
	#13 0x00007fd53bf9dec8 in ?? () from ...
	#14 0x00007fd54d637a5d in call_init.part () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/ld-linux-x86-64.so.2
	#15 0x00007fd54d637bab in _dl_init () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/ld-linux-x86-64.so.2
	#16 0x00007fd54d63c160 in dl_open_worker () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/ld-linux-x86-64.so.2
	#17 0x00007fd54d637944 in _dl_catch_error () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/ld-linux-x86-64.so.2
	#18 0x00007fd54d63b7d9 in _dl_open () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/ld-linux-x86-64.so.2
	#19 0x00007fd54d61f2b9 in dlopen_doit () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/libdl.so.2
	#20 0x00007fd54d637944 in _dl_catch_error () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/ld-linux-x86-64.so.2
	#21 0x00007fd54d61f889 in _dlerror_run () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/libdl.so.2
	#22 0x00007fd54d61f351 in dlopen@@GLIBC_2.2.5 () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/libdl.so.2

    Stack of the newly created thread calling tls_get_addr_tail:
	#0  0x00007fd5406ca93c in __lll_lock_wait () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/libpthread.so.0
	#1  0x00007fd5406c4622 in pthread_mutex_lock () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/libpthread.so.0
	#2  0x00007fd54d63a2ed in tls_get_addr_tail () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/ld-linux-x86-64.so.2
	#3  0x00007fd53fee877d in
	tcmalloc::ThreadCache::CreateCacheIfNecessary () at
	src/thread_cache.cc:344
	#4  0x00007fd53fecb4ab in tcmalloc::ThreadCache::GetCache ()
	at src/thread_cache.h:437
	#5  0x00007fd53fefeccb in (anonymous namespace)::do_malloc
	(size=56) at src/tcmalloc.cc:1354
	#6  tcmalloc::do_allocate_full<tcmalloc::cpp_throw_oom> (size=56)
	at src/tcmalloc.cc:1762
	#7  tcmalloc::allocate_full_cpp_throw_oom (size=56) at
	src/tcmalloc.cc:1776
	#8  0x00007fd53ff01b80 in
	tcmalloc::dispatch_allocate_full<tcmalloc::cpp_throw_oom>
	(size=56) at src/tcmalloc.cc:1785
	#9  malloc_fast_path<tcmalloc::cpp_throw_oom> (size=56) at
	src/tcmalloc.cc:1845
	#10 tc_new (size=56) at src/tcmalloc.cc:1980
	... proprietary code in the stack
	#26 0x00007fd5406c1ef4 in start_thread () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/libpthread.so.0
	#27 0x00007fd5403ba01d in clone () from
	/data3/mwrep/rgeissler/core.tls/opt/1A/toolchain/x86_64-2.6.32-v2/lib64/libc.so.6

M	src/thread_cache.cc

commit 8f9a873fce14337e113a3837603a11ade06da533
Author: pkubaj <pkubaj@users.noreply.github.com>
Date:	Mon Feb 4 16:06:32 2019 +0000

    Fix accessing PC on FreeBSD/powerpc and powerpc64

M	m4/pc_from_ucontext.m4

commit fc00474ddc21fff618fc3f009b46590e241e425e
Author: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Date:	Fri Feb 8 10:33:09 2019 -0200

    Include asm/ptrace.h when accessing ucontext_t

    In some architectures (e.g. powerpc, powerpc64 and powerpc64le), the
    macro that specifies the position of the program counter is defined in
    header asm/ptrace.h.

    When glibc bug 21457 got fixed in version 2.27, header sys/ucontext.h
    stopped including signal.h, which indirectly removed asm/ptrace.h too.

    Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>

M	m4/pc_from_ucontext.m4
M	src/getpc.h

commit 5574c87e39ee592c909cb48245c1d91e90ddaf4d
Author: Laurent Stacul <laurent.stacul@amadeus.com>
Date:	Mon Oct 15 16:56:18 2018 +0200

    Compile time aggressive decommit option

    [alkondratenko@gmail.com: performed s/agressive/aggressive/g]
    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	configure.ac
M	src/static_vars.cc

commit e9ab4c53041ac62feefbbb076d326e9a77dd1567
Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date:	Sun Oct 7 18:12:03 2018 +0200

    undef mmap64 function

    mmap64 can already been defined and as a result the following error is
    raised:

    In file included from src/malloc_hook.cc:686:0:
    src/malloc_hook_mmap_linux.h: In function ‘void* mmap(void*,
    size_t, int, int, int, off_t)’:
    src/malloc_hook_mmap_linux.h:173:18: error: redefinition of ‘void*
    mmap(void*, size_t, int, int, int, off_t)’
     extern "C" void* mmap(void *start, size_t length, int prot,
     int flags,
		      ^~~~
    In file included from src/malloc_hook.cc:41:0:
    src/malloc_hook_mmap_linux.h:159:18: note: ‘void* mmap(void*,
    size_t, int, int, int, off_t)’ previously defined here
     extern "C" void* mmap64(void *start, size_t length, int prot,
     int flags,
		      ^
    Makefile:4874: recipe for target
    'src/libtcmalloc_minimal_internal_la-malloc_hook.lo' failed

    Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

M	src/malloc_hook_mmap_linux.h

commit 5eec9d0ae396aa90ebcb5756dfd0f3d101667490
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Oct 7 08:17:04 2018 -0700

    Drop not very portable and not very useful unwind benchmark.

M	.gitignore
M	Makefile.am
D	benchmark/getcontext_light.cc
D	benchmark/unwind_bench.cc

commit 1561f0946fcc96d1384dae2a81f3ed111338a341
Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date:	Sat Oct 6 20:43:19 2018 +0200

    check for __sbrk

    __sbrk is not defined in musl so add a check for it in configure.ac
    and
    replace the check on ifndef __UCLIBC__ by a check on ifdef HAVE__SBRK
    in src/malloc_hook_mmap_linux.h

    Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

M	configure.ac
M	src/malloc_hook_mmap_linux.h

commit 1de76671d478e848f0dd210e00df43bfa463ca9f
Author: Gabriel Marin <gmx@chromium.org>
Date:	Thu Oct 4 22:52:35 2018 +0000

    Fix mmap region iteration while no regions are recorded.

    If no mmap regions are recorded, iteration failed since the RegionSet
    (std::set) object is not initialized.

    Original CL https://codereview.chromium.org/14769008

    Reviewed-on: https://chromium-review.googlesource.com/c/1130807

M	src/memory_region_map.cc
M	src/memory_region_map.h

commit acdcacc28f17d2e8db1d1bb634025f820f912d93
Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date:	Sun Apr 29 23:48:41 2018 +0200

    Use off64_t instead of __off64_t

    __off64_t is a kernel internal symbol, which happens to be
    user-visible
    with glibc, but not necessarily with other C libraries such as musl.

    Switching from __off64_t to off64_t allows the code to build properly
    with musl.

    Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

M	src/malloc_hook_mmap_linux.h

commit 0177a2420aa68229f55bec970c59136813a50613
Author: Gabriel Marin <gmx@chromium.org>
Date:	Fri Oct 5 21:49:50 2018 +0000

    Return early in WriteProfile to reduce indentation

    Small code refactoring to reduce indentation. This change was
    originally
    part of https://codereview.chromium.org/9963095.

    Reviewed-on: https://chromium-review.googlesource.com/c/1130804

M	src/heap-profile-table.cc

commit b85652bf268d061a0ad0aec90f0d3c29aa80a6b5
Author: Gabriel Marin <gmx@chromium.org>
Date:	Wed Oct 3 18:15:16 2018 +0000

    Add generic.total_physical_bytes property to MallocExtension

    Original CL:

    - https://codereview.chromium.org/1410353005

      Add generic.total_physical_bytes property to MallocExtension

      The actual physical memory usage of tcmalloc cannot be obtained by
      GetNumericProperty. This accounts for the current_allocated_bytes,
      fragmentation and malloc metadata, and excludes the unmapped memory
      regions. This helps the user to understand how much memory is
      actually
      being used for the allocations that were made.

    Reviewed-on: https://chromium-review.googlesource.com/1130803

M	src/gperftools/malloc_extension.h
M	src/tcmalloc.cc

commit 90df23c81fe6baf7799b5d3df37d2846ab88fc60
Author: Gabriel Marin <gmx@chromium.org>
Date:	Fri Oct 5 22:00:33 2018 +0000

    Make some tcmalloc constants truly const

    Reviewed-on: https://chromium-review.googlesource.com/c/1130809

M	src/tcmalloc.cc

commit 49dbe4362b431629111b85929d91fe9a46c42295
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Sep 3 16:44:52 2018 -0700

    Add comment about gperftools 2.8 not deduplicating heapz samples.

M	src/gperftools/malloc_extension.h

commit 63a12a5ed3c4aca61cc46078b6cdf1d161425a69
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Aug 27 20:10:09 2018 -0700

    Drop de-duplication of heap sample (aka heapz) entries.

    pprof can aggregate them, and it can do it way better than we
    can. With
    proper unsampling etc.

M	src/stack_trace_table.cc
M	src/stack_trace_table.h
M	src/static_vars.cc
M	src/static_vars.h
M	src/tests/stack_trace_table_test.cc

commit 954f9dc0e37ff46cb0cb24edfb39dc77fd2e7d0b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 26 11:37:59 2018 -0700

    Add flag to disable installing unmaintained & deprecated pprof.

    Everyone should be using golang pprof from github.com/google/pprof,
    but
    distros still ship our perl version and not everyone is aware of
    better pprof yet.

    This is another step in completely dropping perl pprof. We still
    default to installing it, but hopefully we'll be able to convince
    distros to disable this soon.

    We still install pprof under pprof-symbolize name because
    stack traces symbolization depends on it, and because golang pprof
    won't support this feature.

    This is related to issue #1038.

M	.gitignore
M	Makefile.am
M	configure.ac
M	src/symbolize.cc

commit 893bff51bcf220b724a812d340d878b5fb8ce911
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 26 11:35:44 2018 -0700

    Avoid static initialization of pprof path for symbolization.

    This is one of the things that chrome's fork fixes, but with c++11 we
    can do it even nicer. Proposed fix is to use c++11 local static
    variable to ensure that pprof path is initialized once on as-needed
    basis.

M	src/symbolize.cc

commit 69867c523b334028c90f2acf22b5ae528fdc2356
Author: Holy Wu <HolyWu@users.noreply.github.com>
Date:	Fri Aug 10 17:19:29 2018 +0800

    Clean up MSVC projects

    1.Remove superfluous per file settings for include directory and
    runtime library.
    2.Remove unnecessary project tcmalloc_minimal_unittest-static. We
    can simply build libtcmalloc_minimal as a static library and then
    link against the single .lib file.
    3.Add separate configurations of patching and overriding facility
    for release mode.

M	Makefile.am
M	gperftools.sln
M	vsprojects/addr2line-pdb/addr2line-pdb.vcxproj
M	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj
M
vsprojects/current_allocated_bytes_test/current_allocated_bytes_test.vcxproj
M	vsprojects/frag_unittest/frag_unittest.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj
M	vsprojects/malloc_extension_test/malloc_extension_test.vcxproj
M	vsprojects/malloc_hook_test/malloc_hook_test.vcxproj
M	vsprojects/markidle_unittest/markidle_unittest.vcxproj
M	vsprojects/nm-pdb/nm-pdb.vcxproj
M	vsprojects/packed-cache_test/packed-cache_test.vcxproj
M	vsprojects/page_heap_test/page_heap_test.vcxproj
M	vsprojects/pagemap_unittest/pagemap_unittest.vcxproj
M	vsprojects/preamble_patcher_test/preamble_patcher_test.vcxproj
M	vsprojects/realloc_unittest/realloc_unittest.vcxproj
M	vsprojects/sampler_test/sampler_test.vcxproj
M	vsprojects/stack_trace_table_test/stack_trace_table_test.vcxproj
M	vsprojects/system-alloc_unittest/system-alloc_unittest.vcxproj
M
vsprojects/tcmalloc_minimal_large/tcmalloc_minimal_large_unittest.vcxproj
M
vsprojects/tcmalloc_minimal_unittest/tcmalloc_minimal_unittest.vcxproj
M	vsprojects/thread_dealloc_unittest/thread_dealloc_unittest.vcxproj
D	vsprojects/tmu-static/tmu-static.vcxproj
D	vsprojects/tmu-static/tmu-static.vcxproj.filters

commit f2bca77aed83107197abadee0652c39e2c4c73d3
Author: Brian Silverman <brian@peloton-tech.com>
Date:	Thu Aug 9 16:33:39 2018 -0700

    Fix page_heap_test flakiness

    After 71fa9f87 (use 2-level page map for 48-bit addresses), there is a
    potential for allocs of additional leaves in the middle of the test.
    With ASLR enabled on amd64 (without TCMALLOC_SMALL_BUT_SLOW), this
    results in the test failing sometimes (< 1% of the time). Instead,
    make
    sure all those leaves are allocated before deciding on the baseline
    heap
    usage in the test.

M	src/tests/page_heap_test.cc

commit c41688bf20186723367b560ceb539b2330951ddb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 5 20:39:07 2018 -0700

    Use standard-conforming alignof in debugallocation.cc

    Clang was giving warning that alignof(<variable>) is extension. So
    we're now doing alignof of decltype.

M	src/debugallocation.cc

commit 71c8cedacafe700e662c008b65f5064b23426070
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 5 18:54:01 2018 -0700

    Fix incompatible aliasing warnings

    We aliased functions with different signatures and gcc now correctly
    gives warning for that. Originally gcc 5 same code merging feature
    caused us to alias more than necessary, but I am not able to reproduce
    this problem anymore. So we're now aliasing only compatible functions.

M	src/libc_override_gcc_and_weak.h
M	src/tcmalloc.cc

commit 8dd304035848e780372a5a4bb1afac2b2d20bc43
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 5 19:52:11 2018 -0700

    Format and fix out of bound access in CpuProfilerSwitch

    GCC was giving warning on snprintf and it hinted at base_profile_name
    and full_profile_name not being long enough.

    Fix is to ensure base_profile_name is long enough for PATH_MAX and
    that full_profile_name is enough longer to fit extra chars.

M	src/profiler.cc

commit 467502e70acb89f36b475bf29fe12333939fe5c7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 5 17:42:04 2018 -0700

    provide constexpr constructor for Sampler

    Constexpr constructor lets us use Sampler in TLS variable in cleaner
    way.

M	src/sampler.h
M	src/tests/sampler_test.cc

commit 1fb543cc708f22017cb39ae874a28c0addcf5a63
Author: HolyWu <holywu@gmail.com>
Date:	Tue May 1 18:04:57 2018 +0800

    Patch _free_dbg to make Debug mode in MSVC works

    Like _free_base, _free_dbg is called by CRT internal functions or
    operator delete in Debug mode.

    This closes #719 and closes #894.

    [alkondratenko@gmail.com: trivial formatting fixes]
    [alkondratenko@gmail.com: build free_dbg even in release builds]

M	src/windows/patch_functions.cc

commit 267f431d8071799282f9f4af10455b7b6adeee38
Author: Gabriel Marin <gmx@chromium.org>
Date:	Thu Aug 2 17:16:25 2018 -0700

    Use indirect system calls in the linux spinlock implementation

M	src/base/spinlock_linux-inl.h

commit 73ee9b15440d72d5c4f93586ea1179c0a265980c
Author: Gabriel Marin <gmx@chromium.org>
Date:	Mon Jul 2 09:31:10 2018 -0700

    Use indirect system calls in the mmap malloc hooks.

    sys_{mmap|munmap|mremap}(...) calls are replaced with
    syscall(SYS_{mmap|munmap|mremap}, ...).

M	src/malloc_hook_mmap_linux.h

commit 3af509d4f91aa1fae3f8caeb17b158f20e9b5e59
Author: Gabriel Marin <gmx@chromium.org>
Date:	Tue Jul 17 18:28:01 2018 -0700

    benchmark: use angle brackets to include ucontext.h

    Using quotes for a system header file fails a presubmit check in
    Chromium.

M	benchmark/unwind_bench.cc

commit 0cdda6d7cc5e082bb704a9352934148e13dc0a0d
Author: Gabriel Marin <gmx@chromium.org>
Date:	Tue Jul 17 18:36:31 2018 -0700

    use utf-8 for special symbols

    A few files in the windows port that haven't been touched in a
    long time,
    use non-utf8 codes for special symbols, breaking a presubmit
    checker in
    Chromium.

M	src/windows/ia32_modrm_map.cc
M	src/windows/ia32_opcode_map.cc
M	src/windows/mini_disassembler.h

commit c7a0cfda880a7310a030c62546f04a2987a11ec2
Author: etienneb <etienneb@chromium.org>
Date:	Thu Apr 20 12:58:02 2017 -0700

    Fix potential missing nul character on resolved symbol names

    The symbol name returned by SymFromName may not contains a NUL
    character
    when the symbol name is exactly the size of the buffer. It believe
    this
    may also happen when the symbol name is too long and truncated.

    The original code is based on:
      https://msdn.microsoft.com/en-us/library/windows/desktop/ms680580(v=vs.85).aspx

    A right implementation can be found here:
      https://cs.chromium.org/chromium/src/base/debug/stack_trace_win.cc?l=145&rcl=f4ecb9e37e9e2d59e32b8b96f23ac4a1e33b9552

    As described here:
      https://msdn.microsoft.com/en-us/library/windows/desktop/ms680686(v=vs.85).aspx

      NameLen
	The length of the name, in characters, not including the
	null-terminating character.
      MaxNameLen
	The size of the Name buffer, in characters. If this member is 0,
	the Name member is not used.

    This issue was causing the catapult symbolisation script to encode
    incorrect (random) characters into the symbol names.
    See the example in the bug.

    Original BUG=713741

    Review-Url: https://codereview.chromium.org/2832643004
    Cr-Commit-Position: refs/heads/master@{#466098}

    BUG=724399,b:70905156

    Change-Id: Ia6de4ddbd5c66a966b74ecec3fda5e853f36073b

M	src/windows/addr2line-pdb.c

commit e42bfc8c06abd1ea1a7e92d1d6d72d1959ec27b6
Author: Gabriel Marin <gmx@chromium.org>
Date:	Thu Jul 19 11:10:31 2018 -0700

    tcmalloc: use relative addresses with the windows addr2line wrapper

    Modifies the Windows addr2line wrapper to expect addresses relative to
    DllBase to better simulate how addr2line works with modules in Linux.

    Windows DLLs have a concept of "default load address" which hints
    to the OS
    where to load the binary image after relocation. The dbghelp.dll
    symbolization library will load the module at this location in
    the virtual
    address space meaning the caller of these functions would need to
    be aware
    of the base address. This makes things unnecessarily complex in the
    face of
    ASLR and also diverges from the behavior of addr2line when used
    with linux-
    style DSOs. This CL simply adds the module base address to the
    incoming
    addresses, thereby making the input relative addresses for the
    module which
    both is easier to use and lines up better with linux's addr2line
    behavior.

    These changes were made originally as part of CL
    https://codereview.chromium.org/2730473002.

    BUG=724399,b:70905156

    Change-Id: I0abe9e0c380e7e60ae29a11021bb805b31718d08

M	src/windows/addr2line-pdb.c

commit d8f8d1cced71c37ff86ff577c3afe03b7cd1648f
Author: Gabriel Marin <gmx@chromium.org>
Date:	Wed Jul 18 18:50:30 2018 -0700

    tcmalloc: add long form flag '--exe' to specify the binary

    This change was originally made as part of CL
    https://codereview.chromium.org/2730473002

    BUG=724399,b:70905156

    Change-Id: I33ee28eac4dab6077cf162358cf4c10b41c0f6a2

M	src/windows/addr2line-pdb.c

commit 25c53aca125b54df1d5c0e64c96f074bdb92ade2
Author: Gabriel Marin <gmx@chromium.org>
Date:	Wed Jul 18 18:39:15 2018 -0700

    tcmalloc: fixes for the windows addr2line wrapper

    Fixes a few small format string bugs and makes the windows library
    configuration #defines more friendly for chromium builds.

    Based on original CL: https://codereview.chromium.org/2730473002

    BUG=724399,b:70905156

    Change-Id: If54c6cfc5c508744d2ee18f251677b2456acda72

M	src/windows/addr2line-pdb.c

commit f02e28f3488122f497755de59dc822f08c6449b9
Author: Gabriel Marin <gmx@chromium.org>
Date:	Tue Jul 31 15:35:53 2018 -0700

    Replace builtin_expect configure test with a direct GCC compiler check

M	configure.ac
M	src/base/basictypes.h

commit 62c4eca6e7ec9dc78333dc6b499f90eef9849378
Author: obones <obones@free.fr>
Date:	Fri Jul 20 11:07:02 2018 +0200

    Under x64, the PE loader looks for callbacks in constant sections

    [alkondratenko@gmail.com: deleted some trailing whitespace]

M	src/windows/port.cc

commit 0b588e7490eac4ef37b59c9265f1f3f05f4bb27c
Author: Brian Silverman <brian@peloton-tech.com>
Date:	Tue Jul 31 15:53:47 2018 -0700

    Fix uninitialized memory use in sampler_test

    Sampler's documentation states the following:
      C++03 requires that types stored in TLS be POD.  As a result,
      you must
      initialize these members to {0, 0, false} before using this class!

    However, the test code wasn't doing that. MemorySanitizer and
    UndefinedBehaviorSanitizer both failed because of it.

M	src/tests/sampler_test.cc

commit 51a5613f21a34197ed655c363c54c71cf68271ba
Author: Aliaksei Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 5 15:28:27 2018 -0700

    Upgrade MSVC projects to MSVC2015

M	Makefile.am
M	gperftools.sln
D	vsprojects/addr2line-pdb/addr2line-pdb.vcproj
A	vsprojects/addr2line-pdb/addr2line-pdb.vcxproj
A	vsprojects/addr2line-pdb/addr2line-pdb.vcxproj.filters
D	vsprojects/addressmap_unittest/addressmap_unittest.vcproj
A	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj
A	vsprojects/addressmap_unittest/addressmap_unittest.vcxproj.filters
D
vsprojects/current_allocated_bytes_test/current_allocated_bytes_test.vcproj
A
vsprojects/current_allocated_bytes_test/current_allocated_bytes_test.vcxproj
A
vsprojects/current_allocated_bytes_test/current_allocated_bytes_test.vcxproj.filters
D	vsprojects/frag_unittest/frag_unittest.vcproj
A	vsprojects/frag_unittest/frag_unittest.vcxproj
A	vsprojects/frag_unittest/frag_unittest.vcxproj.filters
D	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
A	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj
A	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcxproj.filters
D
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
A
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj
A
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcxproj.filters
D	vsprojects/malloc_extension_test/malloc_extension_test.vcproj
A	vsprojects/malloc_extension_test/malloc_extension_test.vcxproj
A
vsprojects/malloc_extension_test/malloc_extension_test.vcxproj.filters
D	vsprojects/malloc_hook_test/malloc_hook_test.vcproj
A	vsprojects/malloc_hook_test/malloc_hook_test.vcxproj
A	vsprojects/malloc_hook_test/malloc_hook_test.vcxproj.filters
D	vsprojects/markidle_unittest/markidle_unittest.vcproj
A	vsprojects/markidle_unittest/markidle_unittest.vcxproj
A	vsprojects/markidle_unittest/markidle_unittest.vcxproj.filters
D	vsprojects/nm-pdb/nm-pdb.vcproj
A	vsprojects/nm-pdb/nm-pdb.vcxproj
A	vsprojects/nm-pdb/nm-pdb.vcxproj.filters
D	vsprojects/packed-cache_test/packed-cache_test.vcproj
A	vsprojects/packed-cache_test/packed-cache_test.vcxproj
A	vsprojects/packed-cache_test/packed-cache_test.vcxproj.filters
D	vsprojects/page_heap_test/page_heap_test.vcproj
A	vsprojects/page_heap_test/page_heap_test.vcxproj
A	vsprojects/page_heap_test/page_heap_test.vcxproj.filters
D	vsprojects/pagemap_unittest/pagemap_unittest.vcproj
A	vsprojects/pagemap_unittest/pagemap_unittest.vcxproj
A	vsprojects/pagemap_unittest/pagemap_unittest.vcxproj.filters
D	vsprojects/preamble_patcher_test/preamble_patcher_test.vcproj
A	vsprojects/preamble_patcher_test/preamble_patcher_test.vcxproj
A
vsprojects/preamble_patcher_test/preamble_patcher_test.vcxproj.filters
D	vsprojects/realloc_unittest/realloc_unittest.vcproj
A	vsprojects/realloc_unittest/realloc_unittest.vcxproj
A	vsprojects/realloc_unittest/realloc_unittest.vcxproj.filters
D	vsprojects/sampler_test/sampler_test.vcproj
A	vsprojects/sampler_test/sampler_test.vcxproj
A	vsprojects/sampler_test/sampler_test.vcxproj.filters
D	vsprojects/stack_trace_table_test/stack_trace_table_test.vcproj
A	vsprojects/stack_trace_table_test/stack_trace_table_test.vcxproj
A
vsprojects/stack_trace_table_test/stack_trace_table_test.vcxproj.filters
D	vsprojects/system-alloc_unittest/system-alloc_unittest.vcproj
A	vsprojects/system-alloc_unittest/system-alloc_unittest.vcxproj
A
vsprojects/system-alloc_unittest/system-alloc_unittest.vcxproj.filters
D
vsprojects/tcmalloc_minimal_large/tcmalloc_minimal_large_unittest.vcproj
A
vsprojects/tcmalloc_minimal_large/tcmalloc_minimal_large_unittest.vcxproj
A
vsprojects/tcmalloc_minimal_large/tcmalloc_minimal_large_unittest.vcxproj.filters
D
vsprojects/tcmalloc_minimal_unittest/tcmalloc_minimal_unittest.vcproj
A
vsprojects/tcmalloc_minimal_unittest/tcmalloc_minimal_unittest.vcxproj
A
vsprojects/tcmalloc_minimal_unittest/tcmalloc_minimal_unittest.vcxproj.filters
D	vsprojects/thread_dealloc_unittest/thread_dealloc_unittest.vcproj
A	vsprojects/thread_dealloc_unittest/thread_dealloc_unittest.vcxproj
A
vsprojects/thread_dealloc_unittest/thread_dealloc_unittest.vcxproj.filters
D	vsprojects/tmu-static/tmu-static.vcproj
A	vsprojects/tmu-static/tmu-static.vcxproj
A	vsprojects/tmu-static/tmu-static.vcxproj.filters

commit 44da4ce5397344342e71ea3cc2c246c2ca4aedb6
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Aug 5 15:09:20 2018 -0700

    build with c++11 or later

M	configure.ac
A	m4/ax_cxx_compile_stdcxx.m4

commit f47a52ce85c3d8d559aaae7b7a426c359fbca225
Author: HolyWu <holywu@gmail.com>
Date:	Mon Apr 30 15:41:50 2018 +0800

    Make _recalloc adhere to MS's definition

M	src/tcmalloc.cc
M	src/windows/override_functions.cc

commit fe87ffb7ea5a7c6ce4dea45222331716907ddbf4
Author: Junhao Li <streaver91@gmail.com>
Date:	Sun May 20 13:45:32 2018 -0400

    Disable large allocation report by default

    Fixes issue #360.

    [alkondratenko@gmail.com: adjusted commit message a bit]
    [alkondratenko@gmail.com: adjusted configure help message]
    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	configure.ac
M	src/tcmalloc.cc

commit 9608fa3bcf8020d35f59fbf70cd3cbe4b015b972
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 29 16:55:59 2018 -0700

    bumped version to 2.7

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit db890ccfade3cf054ec330dfb4a9ddfab971367e
Author: HolyWu <holywu@gmail.com>
Date:	Mon Apr 30 12:08:51 2018 +0800

    Clean up src/windows/config.h

M	src/windows/config.h

commit 497ea331654f7ea9e4e6405f5beaea8ebcc9d10b
Author: HolyWu <holywu@gmail.com>
Date:	Sun Apr 15 22:47:17 2018 +0800

    Fix WIN32_OVERRIDE_ALLOCATORS for VS2017

    At first I try to add some functions as what Chrome does at their
    https://chromium.googlesource.com/chromium/src/+/master/base/allocator/allocator_shim_override_ucrt_symbols_win.h,
    but it still fails. So I decide to remove all heap-related objects
    from libucrt.lib to see what happens. At the end I find that a lot of
    functions in the CRT directly invoke _malloc_base instead of
    malloc (and the others alike), hence we need to override them as well.

    This should close issue #716.

    [alkondratenko@gmail.com: added reference to ticket]
    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	src/libc_override.h
M	src/tcmalloc.cc
M	src/windows/override_functions.cc
M	src/windows/port.h

commit ebc85cca9083241ae360e0c68e2f1d7538001fa3
Author: HolyWu <holywu@gmail.com>
Date:	Tue Apr 17 11:40:49 2018 +0800

    Enable aligned new/delete declarations on Windows when applicable

M	src/windows/gperftools/tcmalloc.h
M	src/windows/gperftools/tcmalloc.h.in

commit a3badd6d2127c161f6fbad853fccd6e8064fcde7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 29 16:34:54 2018 -0700

    Really fix CheckAddressBits compilation warning

    It looks like previous fix introduced another warning on gcc for
    i386. Somehow it barked on kAddressBits shift even that shift was dead
    code.

    Anyways, we now avoid possibility of undefined shift even
    stronger. And it actually removes compile warning on all compilers I
    tested.

M	src/system-alloc.cc

commit 7c718fe1768273f94acf2bd43cfa1f44a4b9bdcc
Author: HolyWu <holywu@gmail.com>
Date:	Thu Apr 19 13:49:28 2018 +0800

    Add tests for sized deallocation

M	src/tests/tcmalloc_unittest.cc

commit 30e5e614a846d5f046454341f108bc4cb2b70189
Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date:	Sun Apr 22 19:17:12 2018 +0200

    Fix build without static libraries

    Only add -static to malloc_bench_LDFLAGS and binary_trees_LDFLAGS if
    ENABLE_STATC is set otherwise build with some compilers will fail if
    user has decided to build only the shared version of gperftools
    libraries

    Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

M	Makefile.am

commit 836c4f29a585e4b176738f64cf8d312171be5fe0
Author: Ben Dang <me@bdang.it>
Date:	Fri Apr 13 10:54:05 2018 -0700

    Update documentation for heap_checker.html

    Make it clear that the static methods used require the "namespace",
    `HeapLeakChecker::`.

M	docs/heap_checker.html

commit e47d0d1c5142a4ad1203e58db31af2f58bafcda9
Author: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Date:	Tue Apr 10 15:56:52 2018 -0300

    powerpc: Re-enable VDSO support

    Powerpc requires VDSO support in order to produce a stack trace.
    Without this, it isn't possible to complete a build.
    Tested on powerpc, powerpc64 and powerpc64le.

M	src/base/vdso_support.h

commit 0a66dd3a6ac60e57d9c01f17309a40e2ebe06837
Author: Christoph Müllner <christophm30@gmail.com>
Date:	Sat Apr 7 09:00:09 2018 +0200

    linux: add aarch64_ilp32 support.

    This patch adds aarch64 (arm64) ILP32 support by using
    the proper syscalls for sys_fcntl(), sys_fstat(), sys_lseek()
    and sys_mmap().

    Signed-off-by: Christoph Müllner <christophm30@gmail.com>

M	src/base/linux_syscall_support.h

commit 05dff0966362932631a2120eaeb8eebb50dd9300
Author: Christoph Müllner <christophm30@gmail.com>
Date:	Sat Apr 7 08:30:32 2018 +0200

    Fix signature of sbrk.

    The manpage of sbrk says that its argument is of type intptr_t.
    This patch fixes a compiler warning on gcc 7.3.0.

    Signed-off-by: Christoph Müllner <christophm30@gmail.com>

M	src/malloc_hook_mmap_linux.h

commit 33ae0ed2ae7ce143276658be029c28ec6f2a73c9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Apr 9 20:57:29 2018 -0700

    unbreak compilation on GNU/Linux i386

    Recent commit to fix int overflow for implausibly huge allocation
    added call to std::min. Notably, first arg was old size divided by
    unsigned long 4. And on GNU/Linux i386 size_t is not long. So such
    division was promoting first arg to unsigned long while second arg was
    still size_t, so just unsigned. And that caused compilation to fail.

    Fix is droping 'ul'.

M	src/tcmalloc.cc

commit 977e0d45003514d088e4bb83474c985094acee47
Author: Christoph Müllner <christophm30@gmail.com>
Date:	Sat Apr 7 08:35:42 2018 +0200

    Remove not needed header in vdso_support.cc.

    Signed-off-by: Christoph Müllner <christophm30@gmail.com>

M	src/base/vdso_support.cc

commit 36bfa9a4046109efa40ccc0806c72331de9c915b
Author: Mao <littlecvr@gmail.com>
Date:	Mon Mar 26 17:22:19 2018 +0800

    Enable tcmalloc VDSO support only on x86 to reduce static initializers

    Background context
    ------------------
    crrev.com/1466173002 switched the GN tcmalloc target from source_set
    -> static_library. There are good reasons for keeping tcmalloc a
    source_set (see "Note on static libraries" in [1]).  However, in the
    current state source_set was exposing extra static initializers in the
    GN build which, are not present in the gyp build due to the linker gc
    sections.

    Resolution of this CL
    ---------------------
    The fact that vdso_support.cc is GC-ed by the linker is the symptom
    that such code is unreachable. A search in the codebase shows that the
    only client is stacktrace_x86-inl.h, which depends on VDSO only when
    defined(__linux__) && defined(__i386__) This CL is therefore matching
    this condition in vdso_support.h and conditioning the #define
    HAVE_VDSO_SUPPORT with the same conditions.

    [1]
    https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/cookbook.md

    References:
    https://bugs.chromium.org/p/chromium/issues/detail?id=559766
    https://bugs.chromium.org/p/chromium/issues/detail?id=564618

M	src/base/vdso_support.h

commit 1cb5de6db9f30daa56a0b54652a7ff6da288c1bd
Author: Mao <littlecvr@gmail.com>
Date:	Mon Mar 26 17:28:28 2018 +0800

    Explicitly prevent int overflow

M	src/tcmalloc.cc

commit 8f63f2bb983e93b57e24a05964104f1d833c575b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 24 21:15:01 2018 -0700

    Correctly detect presence of various functions in tcmalloc.h

    This fixes test miscompilations on some clang 6.0
    installations. Particularly issue #946.

    Defines tested by tcmalloc.h where totally wrong defines. configure
    actually puts defines of HAVE_DECL_FOOBAR kind in config.h. Which is
    what we're using now.

M	src/tcmalloc.h

commit 736648887b0b27ec70a50f0954a614dd65c1eb12
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 24 15:54:48 2018 -0700

    Don't test OOM handling of debugallocator

    This may fix issue #969.

    When testing OOM handling we set up sys allocator that fails memory
    allocation. But debugallocator itself allocates some internal metadata
    memory via malloc and crashes if those allocations fail. So
    occasionally this test failed when debugallocator's internal malloc
    ended up causing sys allocator.

    So instead of failing tests from time to time, we drop it for debug
    allocator. It's OOM handling is already crashy anyways.

M	src/tests/tcmalloc_unittest.cc

commit c4a8e00da41c43da7e78858e06f3153f09f6967d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 24 19:09:15 2018 -0700

    Fix warning about one of CheckAddressBits functions unused

M	src/system-alloc.cc

commit 47c99cf492fa340671fa89afec263b8d6e859755
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 24 18:29:06 2018 -0700

    unbreak printing large span stats

    One of recent commits started passing kMaxPages to printf but not used
    it. Thankfully compilers gave us warning. Apparently intention was to
    print real value of kMaxPages, so this is what we're doing now.

M	src/tcmalloc.cc

commit 34f78a2dcd8160b483d86474702785337bbeb7ac
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 18 16:39:06 2018 -0700

    bumped version to 2.7rc

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit db98aac55a90d45e9abe188c8a928c3561d3f223
Author: Todd Lipcon <todd@cloudera.com>
Date:	Sat Mar 17 09:43:34 2018 -0700

    Add a central free list for kMaxPages-sized spans

    Previously, the central free list with index '0' was always unused,
    since freelist index 'i' tracked spans of length 'i' and there are no
    spans of length 0. This meant that there was no freelist for spans of
    length 'kMaxPages'. In the default configuration, this corresponds to
    1MB, which is a relatively common allocation size in a lot of
    applications.

    This changes the free list indexing so that index 'i' tracks spans of
    length 'i + 1', meaning that free list index 0 is now used and
    freelist[kMaxPages - 1] tracks allocations of kMaxPages size (1MB by
    default).

    This also fixes the stats output to indicate '>128' for the large
    spans
    stats rather than the incorrect '>255' which must have referred to a
    historical value of kMaxPages.

    No new tests are added since this code is covered by existing tests.

M	docs/pageheap.dot
M	docs/pageheap.gif
M	docs/tcmalloc.html
M	src/common.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/tcmalloc.cc

commit d7be9385609328a03c5cfe775473a7dc8e014fd3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 4 23:29:46 2018 -0800

    implement more robust detection of sized delete support

    As reported in issue #954, osx clang compiler is able to optimize our
    previous detection away while not really having runtime support for
    sized delete. So this time we use AC_LINK_IFELSE and more robust code
    to prevent compiler from optimizing away sized delete call. This
    should reliably catch "bad" compilers.

    Special thanks to Alexey Serbin for reporting the issue, suggesting a
    fix and verifying it.

    Fixes issue #954.

M	configure.ac

commit f1d3fe4a21e339a3fd6e4592ee7444484a7b92dc
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 25 13:55:53 2018 -0800

    refactored handling of reverse span set iterator for correctness

    I.e. no more questionable memcpy and we run iterator's destructor when
    we remove span from SpanSet.

M	src/page_heap.cc
M	src/span.h

commit 59c77be0fad2a49e31d51877985e7c48f73afcea
Author: Todd Lipcon <todd@cloudera.com>
Date:	Sun Feb 11 16:21:42 2018 -0800

    Update docs for central page heap to reflect tree

M	docs/pageheap.dot
M	docs/pageheap.gif
M	docs/tcmalloc.html

commit 06c9414ec423ffe442c047b2560555f9d5847b1d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jun 3 15:31:06 2017 -0700

    Implemented O(log n) searching among large spans

    This is implemented via std::set with custom STL allocator that
    delegates to PageHeapAllocator. Free large spans are not linked
    together via linked list, but inserted into std::set. Spans also store
    iterators to std::set positions pointing to them. So that removing
    span from set is fast too.

    Patch implemented by Aliaksey Kandratsenka and Todd Lipcon based on
    earlier research and experimentation by James Golick.

    Addresses issue #535

    [alkondratenko@gmail.com: added Todd's fix for building on OSX]
    [alkondratenko@gmail.com: removed unnecessary Span constructor]
    [alkondratenko@gmail.com: added const for SpanSet comparator]
    [alkondratenko@gmail.com: added operator != for STLPageHeapAllocator]

M	src/page_heap.cc
M	src/page_heap.h
M	src/page_heap_allocator.h
M	src/span.h
M	src/tests/tcmalloc_unittest.cc

commit a42e44738a330783781541411392ba27df88b8b3
Author: Ishan Arora <ishan.arora@gravitonresearch.com>
Date:	Tue Jan 9 01:33:13 2018 +0530

    typo in docs/tcmalloc.html

M	docs/tcmalloc.html

commit 71bf09aabe93dbe390ebb54c57d3c5b3d627c142
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Dec 9 09:58:31 2017 -0800

    bumped version to 2.6.3

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 0bccb5e658762f30e6e3abbc40dc244e8f8911c1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Dec 9 08:51:19 2017 -0800

    fix malloc fast path for patched windows functions

    malloc_fast_path now receives oom function instead of full allocation
    function and windows/patch_function.cc wasn't updated until now. It
    caused assertion failures as reported in issue #944.

M	src/windows/patch_functions.cc

commit 8b1d13c631024ce7e80508c284c7bc5b1327e131
Author: Stephan Zuercher <stephan@turbinelabs.io>
Date:	Tue Dec 5 09:49:36 2017 -0800

    configure.ac: use link check for std::align_val_t

M	configure.ac

commit 36ab068baa3b07c083bd79029622aa382aeff84a
Author: Stephan Zuercher <stephan@turbinelabs.io>
Date:	Tue Dec 5 09:31:38 2017 -0800

    configure.ac: better test for -faligned-new

    XCode 9 provides only partial support for aligned new/delete when
    -faligned-new
    is specified. Require successful linking to enable aligned new/delete.

M	configure.ac

commit 6a4b0799975576c2722daa75b35f6f65220d22b6
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Nov 30 18:19:17 2017 +0000

    bumped version to 2.6.2

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 22917145186bc8bbb6d98090d788ed7c87b282b1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Nov 30 16:36:33 2017 +0000

    implement fast-path for memalign/aligned_alloc/tc_new_aligned

    We're taking advantage of "natural" alignedness of our size classes
    and instead of previous loop over size classes looking for suitably
    aligned size, we now directly compute right size. See align_size_up
    function. And that gives us ability to use our existing malloc
    fast-path to make memalign neat and fast in most common
    cases. I.e. memalign/aligned_alloc now only tail calls and thus avoids
    expensive prologue/epilogue and is almost as fast as regular malloc.

M	src/common.cc
M	src/tcmalloc.cc

commit 8b9728b02325a9bee9afd3957e506c111ed40d40
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Nov 30 18:12:32 2017 +0000

    add memalign benchmark to malloc_bench

M	benchmark/malloc_bench.cc

commit 79c91a9810c928d7f6d0cb168c10ce470a714aa8
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Nov 29 21:15:04 2017 +0000

    always define empty PERFTOOLS_NOTHROW

    Because somehow clang still builds "this function will not throw" code
    even with noexcept. Which breaks performance of
    tc_malloc/tc_new_nothrow. The difference with throw() seems to be just
    which function is called when unexpected exception happens.

    So we work around this sillyness by simply dropping any exception
    specification when compiling tcmalloc.

M	src/tcmalloc.cc

commit 03da6afff57c12845260997213b6ad89e420bab3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Nov 29 20:19:07 2017 +0000

    unbreak throw declarations on operators new/delete

    We now clearly separate PERFTOOLS_NOTHROW (used for tc_XXX functions)
    and throw()/noexcept (used for operators we define).

    The former is basically "nothrow() for our callers, nothing for
    us". It is roughly equivalent of what glibc declares for malloc and
    friends. If some exception-full C++ code calls such function it
    doesn't have to bother setting up exception handling around such
    call. Notably, it is still important for those functions to _not have
    throw() declarations when we're building tcmalloc. Because C++ throw()
    requires setting up handling of unexpected exceptions thrown from
    under such functions which we don't want.

    The later is necessary to have operators new/delete definitions have
    "correct" exception specifications to calm down compiler
    warnings. Particularly older clang versions warn if new/delete aren't
    defined with correct exception specifications. Also this commit fixes
    annoying gcc 7+ warning (and gnu++14 mode) that complains about
    throw() being deprecated.

M	src/base/basictypes.h
M	src/libc_override.h
M	src/libc_override_gcc_and_weak.h
M	src/libc_override_redefine.h
M	src/tests/tcmalloc_unittest.cc
M	src/windows/get_mangled_names.cc

commit 89fe59c8318b2f8cec8ce00182dd24c357252c96
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Nov 29 13:37:50 2017 +0000

    Fix OOM handling in fast-path

    Previous fast-path malloc implementation failed to arrange proper oom
    handling for operator new. I.e. operator new is supposed to call new
    handler and throw exception, which was not arranged in fast-path case.

    Fixed code now passes pointer for oom function to
    ThreadCache::FetchFromCentralCache which will call it in oom
    condition. Test is added to verify correct behavior.

    I've also updated some fast-path-related comments for more accuracy.

M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc
M	src/thread_cache.cc
M	src/thread_cache.h

commit a29a0cf348e131d5b8ec26c39dabeac89cf13fcd
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Nov 28 14:43:11 2017 +0000

    delete-trailing-whitespace on thread_cache.*

M	src/thread_cache.cc
M	src/thread_cache.h

commit e6cd69bdecde074c3c7a52ccb099eafcecf668dc
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Nov 29 19:49:18 2017 +0000

    reintroduce aliasing for aligned delete

    Without aliasing performance is likely to be at least partially
    affected. There is still concern that aliasing between functions of
    different signatures is not 100% safe. We now explicitly list of
    architectures where aliasing is known to be safe.

M	src/tcmalloc.cc

commit fb30c3d435c4712785a50f8a422c76ad490a12b2
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Wed Nov 29 19:10:23 2017 +0000

    fully disable aligned new on windows for now

M	src/windows/gperftools/tcmalloc.h
M	src/windows/gperftools/tcmalloc.h.in

commit 7efb3ecf37d88edf9cf9a43efb89b425eaf81d5e
Author: Andrey Semashev <andrey.semashev@gmail.com>
Date:	Sat Sep 30 17:47:35 2017 +0300

    Add support for C++17 operator new/delete for overaligned types.

    - Add auto-detection of std::align_val_t presence to configure
    scripts. This
      indicates that the compiler supports C++17 operator new/delete
      overloads
      for overaligned types.

    - Add auto-detection of -faligned-new compiler option that appeared
    in gcc 7.
      The option allows the compiler to generate calls to the new
      operators. It is
      needed for tests.

    - Added overrides for the new operators. The overrides are enabled
    if the
      support for std::align_val_t has been detected. The implementation
      is mostly
      based on the infrastructure used by memalign, which had to be
      extended to
      support being used by C++ operators in addition to C functions. In
      particular,
      the debug version of the library has to distinguish memory
      allocated by
      memalign from that by operator new. The current implementation
      of sized
      overaligned delete operators do not make use of the supplied
      size argument
      except for the debug allocator because it is difficult to calculate
      the exact
      allocation size that was used to allocate memory with
      alignment. This can be
      done in the future.

    - Removed forward declaration of std::nothrow_t. This was not
    portable as
      the standard library is not required to provide nothrow_t
      directly in
      namespace std (it could use e.g. an inline namespace within
      std). The <new>
      header needs to be included for std::align_val_t anyway.

    - Fixed operator delete[] implementation in libc_override_redefine.h.

    - Moved TC_ALIAS definition to the beginning of the file in
    tcmalloc.cc so that
      the macro is defined before its first use in nallocx.

    - Added tests to verify the added operators.

    [alkondratenko@gmail.com: fixed couple minor warnings, and some
    whitespace change]
    [alkondratenko@gmail.com: removed addition of TC_ALIAS in debug
    allocator]
    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	Makefile.am
M	configure.ac
M	src/debugallocation.cc
M	src/gperftools/tcmalloc.h.in
M	src/libc_override_gcc_and_weak.h
M	src/libc_override_redefine.h
M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc
M	src/windows/gperftools/tcmalloc.h
M	src/windows/gperftools/tcmalloc.h.in

commit 7a6e25f3b143c35ed6fff8bb2c0f8de1ab348a39
Author: Andrew Morrow <acm@mongodb.com>
Date:	Tue Nov 7 15:57:17 2017 -0500

    Add new statistics for the PageHeap

    [alkondratenko@gmail.com: addressed init order mismatch warning]
    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	src/page_heap.cc
M	src/page_heap.h
M	src/tcmalloc.cc

commit 6e3a702fb9c86eb450f22b326ecbceef4b0d6604
Author: Jianbo Yang <jianbyan@microsoft.com>
Date:	Tue Oct 17 01:09:18 2017 +0800

    Fix data race setting size_left_ in ThreadCache::SetMaxSize

    This commit is to fix the data race in ThreadCache::SetMaxSize.
    ThreadCache::size_left_ is removed and ThreadCache::size_ is
    added. ThreadCache::size_left_ was introduced for optimization.
    It is updated in several functions of ThreadCache, including the
    ThreadCache::SetMaxSize. But thread A can update size_left_ of
    thread B via SetMaxSize without protection or synchronization.

    There should not be data race around ThreadCache::size_, for it
    isn't accessed by multi threads.

    The optimization of tail-call in tc_{malloc, new, free} is kept
    and no other logics are affected.

M	src/thread_cache.cc
M	src/thread_cache.h

commit 235471f96564aa95354839bb135661e561966001
Author: cs-lee <sollcs.star@gmail.com>
Date:	Sun Aug 6 04:57:42 2017 -0700

    fix memory leak in Symbolize function

    [alkondratenko@gmail.com: reworded commit message]
    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	src/symbolize.cc

commit 47efdd60f596f7180689337cbba2dab35539ba98
Author: cs-lee <sollcs.star@gmail.com>
Date:	Sun Aug 6 04:51:52 2017 -0700

    Added mising va_end() in TracePrintf function

    Normally the va_end function does not do anything,
    but it should be called because some platforms need it.

    [alkondratenko@gmail.com: reworded commit message]
    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	src/debugallocation.cc

commit 497b60ef0fa93ed41ccacf6ffd0d536789401d29
Author: Vladimir <Volodimir.Krylov@gmail.com>
Date:	Fri Jul 14 15:13:32 2017 +0300

    Implemented GetProgramInvocationName on FreeBSD

    Few lines of code was taken from
    /usr/src/contrib/libexecinfo/backtrace.c

    [alkondratenko@gmail.com: updated commit message
    Signed-off-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>

M	src/symbolize.cc

commit ac072a3fc768b9699b1e809a379f576aa3e48983
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Sep 23 14:55:33 2017 -0700

    Revert "Ignore current_instance heap allocation when leak sanitizer
    is enabled"

    This reverts commit 70a35422b5509a456584b132ad8ce4466af323ea.

M	Makefile.am
M	src/malloc_extension.cc

commit fb5987d57913867e3b0f20490461ea55bfabe9ee
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Sep 23 14:55:20 2017 -0700

    Revert "Ensure that lsan flags are appended on all necessary targets"

    This reverts commit a3bf61ca81b68e7792739c451aceef00cf7d7d03.

M	Makefile.am

commit 5815f02105acd5d7fd0e6ec038a9e96ccc36911f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Sep 16 21:14:23 2017 -0700

    Use safe getenv for setting up backtrace capturing method

    This code runs very early, so using special "early" version of getenv
    is reasonable. It should fix issue #912.

M	src/stacktrace.cc

commit aab4277311759b32ae8c442b49edf002230ea165
Author: Dorin Lazăr <dorin.lazar@gmail.com>
Date:	Thu Sep 21 22:11:49 2017 +0300

    Fixed LTO warning about the mismatch between return values for
    ProfilingIsEnabledForAllThreads()

M	src/heap-checker.cc

commit d406f2285390c402e824dd28e6992f7f890dcdf9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Aug 5 22:05:10 2017 -0700

    implement support for C11 aligned_alloc

    Just like glibc does, we simply alias it to memalign.

M	Makefile.am
M	src/libc_override_gcc_and_weak.h
M	src/libc_override_redefine.h

commit 92a27e41a137704772479277786d035763938921
Author: Piotr Sikora <piotrsikora@google.com>
Date:	Mon Aug 21 15:06:23 2017 -0700

    Fix build on macOS.

    Fixes #910.

    Signed-off-by: Piotr Sikora <piotrsikora@google.com>

M	Makefile.am

commit e033431e5a9e02e4d1882bb6fcd212c4fab56173
Author: Khem Raj <raj.khem@gmail.com>
Date:	Sun Jul 16 19:28:17 2017 -0700

    include fcntl.h for loff_t definition

    Fixes
    linux_syscall_support.h:2641:26: error: 'loff_t' has not been declared

    Signed-off-by: Khem Raj <raj.khem@gmail.com>

M	src/base/linux_syscall_support.h

commit e41bc414048eb4a37743e294bed3f1c63a1fa559
Author: Khem Raj <raj.khem@gmail.com>
Date:	Sat Jul 1 13:21:21 2017 -0700

    Use ucontext_t instead of struct ucontext

    Newer glibc has dropped the ucontext tag from exposing

    Signed-off-by: Khem Raj <raj.khem@gmail.com>

M	src/stacktrace_powerpc-linux-inl.h

commit bf840dec0495e17f5c8403e68e10b9d6bf05c559
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jul 9 14:55:33 2017 -0700

    bumped version to 2.6.1

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 2d220c7e26bd279ec87f9d1fc694ca5114b20bee
Author: Romain Geissler <romain.geissler@amadeus.com>
Date:	Sun Jun 18 15:21:19 2017 +0200

    Replace "throw()" by "PERFTOOLS_NOTHROW"

    Automatically done with:
    sed -e 's/\<throw[[:space:]]*([[:space:]]*)/PERFTOOLS_NOTHROW/g' -i
    $(git grep -l 'throw[[:space:]]*([[:space:]]*)')

    [alkondratenko@gmail.com: updated to define empty PERFTOOLS_NOTHROW
    only on pre-c++11 standards]

M	src/libc_override_gcc_and_weak.h
M	src/libc_override_redefine.h
M	src/tcmalloc.cc
M	src/windows/get_mangled_names.cc

commit c4de73c0e69b9a75b6795fdd4598234baed8496d
Author: Romain Geissler <romain.geissler@amadeus.com>
Date:	Sun Jun 18 15:16:16 2017 +0200

    Add PERFTOOLS_THROW where necessary (as detected by GCC).

M	src/base/basictypes.h
M	src/libc_override_gcc_and_weak.h
M	src/tests/tcmalloc_unittest.cc

commit e5fbd0e24e19bf3c9a8777cfc78e6188c5557025
Author: Romain Geissler <romain.geissler@amadeus.com>
Date:	Sun Jun 18 15:05:46 2017 +0200

    Rename PERFTOOLS_THROW into PERFTOOLS_NOTHROW.

    Automatically done with:
    sed -e 's/\<PERFTOOLS_THROW\>/PERFTOOLS_NOTHROW/g' -i $(git grep
    -l PERFTOOLS_THROW)

M	src/debugallocation.cc
M	src/gperftools/tcmalloc.h.in
M	src/tcmalloc.cc
M	src/windows/gperftools/tcmalloc.h
M	src/windows/gperftools/tcmalloc.h.in

commit eeb7b84c20146c0e2e039ce72a2ea083a94ba80d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jul 8 15:23:37 2017 -0700

    Register tcmalloc atfork handler as early as possible

    This is what other mallocs do (glibc malloc and jemalloc). The idea is
    malloc is usually initialized very eary. So if we register atfork
    handler at that time, we're likely to be first. And that makes our
    atfork handler a bit safer, since there is much less chance of some
    other library installing their "take all locks" handler first and
    having fork take malloc lock before library's lock and deadlocking.

    This should address issue #904.

M	src/static_vars.cc
M	src/static_vars.h
M	src/thread_cache.cc

commit 208c26caeff24fd8c1defea80cb723ec1ab4bf06
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jul 4 19:50:04 2017 -0700

    Add initial syscall support for mips64 32-bit ABI

    This applies patch by Adhemerval Zanella from
    https://github.com/gperftools/gperftools/issues/845.

    Only malloc (i.e. tcmalloc_minimal) was tested to work so far.

M	src/base/linux_syscall_support.h
M	src/malloc_hook_mmap_linux.h

commit a3bf61ca81b68e7792739c451aceef00cf7d7d03
Author: Francis Ricci <francisjricci@gmail.com>
Date:	Wed Jul 5 12:39:41 2017 -0400

    Ensure that lsan flags are appended on all necessary targets

M	Makefile.am

commit 97646a193237af0f941e5bd3078eb72edbc2d548
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jul 4 21:02:34 2017 -0700

    Add missing NEWS entry for recent 2.6 release

    Somehow I managed to miss this last commit in 2.6 release. So lets add
    it now even if it is too late.

M	NEWS

commit 4be05e43a1adab9ceea9bdaaae546fb938f0a86c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Jul 4 20:35:25 2017 -0700

    bumped version up to 2.6

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 70a35422b5509a456584b132ad8ce4466af323ea
Author: Francis Ricci <francisjricci@gmail.com>
Date:	Thu Jun 15 11:04:33 2017 -0400

    Ignore current_instance heap allocation when leak sanitizer is enabled

    Without this patch, any user program that enables LeakSanitizer will
    see a leak from tcmalloc. Add a weak hook to __lsan_ignore_object,
    so that if LeakSanitizer is enabled, the allocation can be ignored.

M	Makefile.am
M	src/malloc_extension.cc

commit 6eca6c64fabbff55c43a78537e466312524b3acd
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jul 1 18:48:58 2017 -0700

    Revert "issue-654: [pprof] handle split text segments"

    This reverts commit 8c3dc52fcfe02412a529769a22cbc75388a5d368.

    People have reported issues with this so lets stay safe and use older
    even if less powerful code.

M	src/pprof

commit a495969cb6157cc361fc03228ae12ff7c0ecac4b
Author: KernelMaker <songzhao.asm@icloud.com>
Date:	Wed May 24 16:46:49 2017 +0800

    update the prev_class_size in each loop, or the min_object_size of
    tcmalloc.thread will always be 1 when calling GetFreeListSizes

M	src/tcmalloc.cc

commit 163224d8af5abdbbd8208ad6d37f13fb450af46f
Author: Kim Gräsman <kim.grasman@gmail.com>
Date:	Fri May 26 13:09:03 2017 +0200

    Document HEAPPROFILESIGNAL environment variable

M	docs/heapprofile.html

commit 5ac82ec5b96d24219efd4c8aec47a45466eabd00
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon May 29 13:07:39 2017 -0700

    added stacktrace capturing benchmark

M	.gitignore
M	Makefile.am
A	benchmark/getcontext_light.cc
A	benchmark/unwind_bench.cc

commit c571ae2fc9433e958f29b3c3525d34c22a9cb884
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon May 22 19:04:20 2017 -0700

    2.6rc4

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit f2bae51e7e609855c26095f14ffbb84082694acb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon May 22 18:58:15 2017 -0700

    Revert "Revert "disable dynamic sized delete support by default""

    This reverts commit b82d89cb7c8781a6028f6f5959cabdc5a273aec3.

    Dynamic sized delete support relies on ifunc handler being able to
    look up environment variable. The issue is, when stuff is linked with
    -z now linker flags, all relocations are performed early. And sadly
    ifunc relocations are not treated specially. So when ifunc handler
    runs, it cannot rely on any dynamic relocations at all, otherwise
    crash is real possibility. So we cannot afford doing it until (and if)
    ifunc is fixed.

    This was brought to my attention by Fedora people at
    https://bugzilla.redhat.com/show_bug.cgi?id=1452813

M	configure.ac

commit 6426c0cc8049dd50a681dc337ac9962577d5fa14
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun May 21 22:55:29 2017 -0700

    2.6rc3

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 0c0e2fe43b5095d19470abdc3b4d83613fe37c6d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon May 22 02:39:29 2017 -0700

    enable 48-bit page map on msvc as well

M	src/common.h

commit 83d6818295cb337b6201fe307e15755df9dcd47f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon May 22 02:38:13 2017 -0700

    speed up 3-level page map access

    There is no need to have pointer indirection for root node. This also
    helps the case of early free of garbage pointer because we didn't
    check root_ pointer for NULL.

M	src/pagemap.h

commit f7ff175b92df5577aef9caf3fb02f9ff37b822ca
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun May 21 23:28:48 2017 -0700

    add configure-time warning on unsupported backtrace capturing

    Both libgcc and libc's backtrace() are not really options for stack
    trace capturing from inside profiling signal handler. So lets warn
    people.

M	configure.ac

commit cef582350c952bad761476d01ea64bb4087371ce
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun May 21 23:15:59 2017 -0700

    align fast-path functions only if compiler supports that

    Apparently gcc only supports __attribute__((aligned(N))) on functions
    only since version 4.3. So lets test it in configure script and only
    use when possible. We now use CACHELINE_ALIGNED_FN macro for aligning
    functions.

M	configure.ac
M	src/base/basictypes.h
M	src/tcmalloc.cc

commit bddf862b189c4508d5212f6e0e8ea81c4dd18811
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun May 21 22:24:19 2017 -0700

    actually support very early freeing of NULL

    This was caught by unit tests on centos 5. Apparently some early
    thingy is trying to do vprintf which calls free(0). Which used to
    crash since before size class cache is initialized it'll report
    hit (with size class 0) for NULL pointer, so we'd miss the case of
    checking NULL pointer free and crash.

    The fix is to check for IsInited in the case when thread cache is
    null, and if so then we escalte to free_null_or_invalid.

M	src/tcmalloc.cc
M	src/thread_cache.cc

commit 07a124d8c16bc7d52524ceb9f50d7a65b868e129
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun May 21 22:22:21 2017 -0700

    don't use arg-ful constructor attribute for early nallocx test

    101 is not very early anyways and arg-ful constructor attribute is
    only supported since gcc 4.3 (and e.g. rhel 5's compiler fails to
    compile it). So there seems to be very little value trying to ask for
    priority of 101.

M	src/tests/tcmalloc_unittest.cc

commit 5346b8a4def33915e6f877e308fb948f570a6120
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun May 21 22:18:01 2017 -0700

    don't depend on SIZE_MAX definition in sampler.cc

    It was reported that SIZE_MAX isn't getting defined in C++ mode when
    C++ standard is less than c++11. Because we still want to support
    non-c++11 systems (for now), lets make it simple and not depend on
    SIZE_MAX (original google-internal code used
    std::numeric_limits<ssize_t>::max, but that failed to compile on
    msvc).

    Fixes issue #887 and issue #889.

M	src/sampler.cc

commit 50125d8f70007fb2aa4d1c87df6a3092a3371edf
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon May 15 00:02:43 2017 -0700

    2.6rc2

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit a5e8e42a47fc0175c8044d0d77bf192b03347964
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun May 14 23:45:08 2017 -0700

    don't link-in libunwind if libunwind.h is missing

    I got report that some build environments for
    https://github.com/lyft/envoy are having link-time issue due to
    linking libunwind. It was happening despite libunwind.h being present,
    which is clear bug as without header we won't really use libunwind.

M	configure.ac

commit e92acdf98db229e8dc84993fd8895d55e6c69129
Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
Date:	Wed Apr 26 06:46:43 2017 -0300

    Fix compilation error for powerpc32

    Fix the following compilation error for powerpc32 platform when using
    latest glibc.
    error: ‘siginfo_t’ was not declared in this scope

M	src/stacktrace_powerpc-linux-inl.h

commit b48403a4b065830129e238feffe022abd93af807
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 16 21:45:51 2017 -0700

    2.6rc

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 53f15325d93fbe0ba17bb3fac3da86ffd3f0f1ad
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun May 14 20:24:27 2017 -0700

    fix compilation of tcmalloc_unittest.cc on older llvm-gcc

M	src/tests/tcmalloc_unittest.cc

commit b1d88662cb4a38ee47aa48076745898033526f9d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 2 19:27:00 2017 -0700

    change size class to be represented by 32 bit int

    This moves code closer to Google-internal version and provides for
    slightly tighter code encoding on amd64.

M	src/common.h
M	src/packed-cache-inl.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/tcmalloc.cc
M	src/tests/packed-cache_test.cc
M	src/thread_cache.cc
M	src/thread_cache.h

commit 991f47a159f0e169883f06686f13c31688fa2bf0
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 2 15:58:08 2017 -0800

    change default transfer batch back to 32

    Some tensorflow benchmarks are seeing large regression with elevated
    values. So lets stick to old safe default until we understand how
    to make
    larger values work for all workloads.

M	src/common.cc

commit 7bc34ad1f60be2df6ca38f4bffdba4daa9aa9a7d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 2 15:38:41 2017 -0800

    support different number of size classes at runtime

    With TCMALLOC_TRANSFER_NUM_OBJ environment variable we can change
    transfer batch size. And with that comes slightly different number of
    size classes depending on value of transfer batch size.

    We used to have hardcoded number of size classes, so we couldn't
    really support any batch size setting.

    This commit adds support for dynamic number of size classes (runtime
    value returned by Static::num_size_classes()).

M	src/central_freelist.cc
M	src/common.cc
M	src/common.h
M	src/page_heap.cc
M	src/static_vars.cc
M	src/static_vars.h
M	src/tcmalloc.cc
M	src/thread_cache.cc
M	src/thread_cache.h

commit 4585b78c8dae9183dbf5f124c0343a9f1244ed67
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Feb 21 00:27:39 2017 -0800

    massage allocation and deallocation fast-path for performance

    This is significant speedup of fast-path of malloc. Large part comes
    from avoiding expensive function prologue/epilogue. Which is achieved
    by making sure that tc_{malloc,new,free} etc are small functions that
    do only tail-calls. We keep only critical path in those functions and
    tail-call to slower "full" versions when we need to deal with less
    common case. This helps compiler generate much tidier code.

    Fast-path readyness check is now different too. We used to have "min
    size for slow path" variable, which was set to non-zero value when we
    know that thread cache is present and ready. We now have use
    thread-cache pointer not equal to NULL as readyness check.

    There is special ThreadCache::threadlocal_data_.fast_path_heap copy of
    that pointer that can be temporarily nulled to disable malloc fast
    path. This is used to enable emergency malloc.

    There is also slight change to tracking thread cache size. Instead of
    tracking total size of free list, it now tracks size headroom. This
    allows for slightly faster deallocation fast-path check where we're
    checking headroom to stay above zero. This check is a bit faster than
    comparing with max_size_.

M	src/linked_list.h
M	src/tcmalloc.cc
M	src/thread_cache.cc
M	src/thread_cache.h
M	src/windows/patch_functions.cc

commit 5964a1d9c98ea3c178435ff01f9b06e03eeda58d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Feb 21 00:42:29 2017 -0800

    always inline a number of hot functions

M	src/page_heap.h
M	src/pagemap.h
M	src/tcmalloc.cc
M	src/thread_cache.h

commit e419b7b9a66c39b44115b01520fb25a5100cec83
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 20 21:11:14 2017 -0800

    introduce ATTRIBUTE_ALWAYS_INLINE

M	src/base/basictypes.h
M	src/tcmalloc.cc

commit 7d588da7ec4f315ea2d02824d7e8813b0f95171d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Dec 18 18:36:57 2016 -0800

    synchronized Sampler implementation with Google-internal version

    This is mostly dropping FastLog2 which was never necessary for
    performance, and making sampler to be called always, even if sampling
    is disabled (this benefits more for always-sampling case of Google
    fork).

    We're also getting TryRecordAllocationFast which is not used yet, but
    will be as part of subsequent fast-path speedup commit.

M	src/sampler.cc
M	src/sampler.h
M	src/static_vars.cc
M	src/tests/sampler_test.cc
M	src/thread_cache.h

commit 27da4ade70d45312bfdf334aa8cf0d63bf78df14
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Tue Feb 21 00:41:43 2017 -0800

    reduce size of class_to_size_ array

    Since 32-bit int is enough and accessing smaller array will use a bit
    less of cache.

M	src/common.h
M	src/tcmalloc.cc
M	src/thread_cache.cc
M	src/thread_cache.h

commit 335f09d4e43a8413642e17e5ac374f925906c4e3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 20 23:49:15 2017 -0800

    use static location for pageheap

    Makes it a bit faster to access, since we're dropping pointer
    indirection.

M	src/static_vars.cc
M	src/static_vars.h

commit 6ff332fb517734cf01e86272fe37521b7155c995
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 20 23:37:33 2017 -0800

    move size classes map earlier in SizeMap

    Since we access them more often, having at least one of them at offset
    0 makes pi{c,e} code a bit smaller.

M	src/common.h

commit 121b1cb32e7416ecb7b0c739588f1bd916c4913a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 20 22:57:43 2017 -0800

    slightly faster size class cache

    Lower bits of page index are still used as index into hash
    table. Those lower bits are zeroed, or-ed with size class and
    placed into hash table. So checking is just loading value from hash
    table, xoring with higher bits of address and checking if resultant
    value is lower than 128. Notably, size class 0 is not considered
    "invalid" anymore.

M	src/central_freelist.cc
M	src/packed-cache-inl.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/tcmalloc.cc
M	src/tests/packed-cache_test.cc

commit b57c0bad41700238f524b28483a1c6c18c0a621f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 16 23:15:16 2017 -0700

    init tcmalloc prior to replacing system alloc

    Currently on windows, we're depending on uninitialized tcmalloc
    variables to detect freeing foreign malloc's chunks. This works
    somewhat by chance due to 0-initialized size classes cache working as
    cache with no values. But this is about to change, so lets do explicit
    initialization.

M	src/tcmalloc.cc

commit 71fa9f873065e3d7c1f4ce0581d26b6498712f00
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 20 21:17:48 2017 -0800

    use 2-level page map for 48-bit addresses

    48 bits is size of x86-64 and arm64 address spaces. So using 2 levels
    map for them is slightly faster. We keep 3 levels for small-but-slow
    configuration, since 2 levels consume a bit more memory.

    This is partial port of Google-internal commit by Sanjay
    Ghemawat (same idea, different implementation).

M	src/page_heap.h
M	src/pagemap.h

commit bad70249dd5c829b4981aecdc25953800d6745c3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 20 21:12:58 2017 -0800

    use 48-bit addresses on 64-bit arms too

M	src/common.h

commit 5f12147c6dbfe2cfbdc7553521fe0110073135f0
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 20 21:03:58 2017 -0800

    use hidden visibility for some key global variables

    So that our -fPIC code is faster

M	src/base/basictypes.h
M	src/static_vars.h

commit dfd53da578137d5962fe8d588980870bb0ab8aa9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 22 21:08:51 2017 -0800

    set ENOMEM in handle_oom

M	src/tcmalloc.cc

commit 14fd551072426cef317f43d587f91004d4fdae75
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 8 06:02:04 2017 +0300

    avoid O(N²) in thread cache creation code

M	src/thread_cache.cc

commit 507a105e849422d5ceff4348d38aaf72371a6161
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 12 14:25:10 2016 -0800

    pass original size to DoSampledAllocation

    It makes heap profiles more accurate. Google's internal malloc
    is doing
    it as well.

M	src/tcmalloc.cc

commit bb77979dea796ab743e1308af25e9259ec97f2b1
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 12 18:10:19 2016 -0800

    don't declare throw() on malloc funtions since it is faster

    Apparently throw() on functions actually asks compiler to generate
    code
    to detect unexpected exceptions. Which prevents tail calls
    optimization.

    So in order to re-enable this optimization, we simply don't tell
    compiler about throw() at all. C++11 noexcept would be even better,
    but
    it is not universally available yet.

    So we change to no exception specifications. Which at least for gcc &
    clang on Linux (and likely for all ELF platforms, if not just all)
    really eliminates all overhead of exceptions.

M	src/debugallocation.cc
M	src/gperftools/tcmalloc.h.in
M	src/tcmalloc.cc
M	src/windows/gperftools/tcmalloc.h
M	src/windows/gperftools/tcmalloc.h.in

commit 89c74cb79ca41cd75a1f9131af4ea2ab362593ae
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 12 20:26:40 2016 -0800

    handle duplicate google_malloc frames in malloc hook stack trace

    Subsequent optimization may cause multiple malloc functions in
    google_malloc section to be in call stack. Particularly when fast-path
    malloc function calls slow-path and compiler chooses to implement such
    call as regular call instead of tail-call.

    Because we need stacktrace just until first such function, once
    we find
    innermost such frame, we're simply checking if next outer frame
    is also
    google_malloc and consider it instead.

M	src/malloc_hook.cc

commit 0feb1109ac957144a50d964b0ff244a6a286174a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 12 21:08:57 2016 -0800

    fix stack trace capturing in debug malloc

    Particularly, hardcoded skip count was relying on certain behavior of
    compiler. Namely, that tail calls inside DebugDeallocate path are not
    actually implemented as tail calls.

    New implementation is using google_malloc section as a marker
    of malloc
    boundary. But in order for this to work, we have to prevent
    tail-call in
    debugallocation's tc_XXX functions. Which is achieved by doing
    volatile
    read of static variable at the end of such functions.

M	src/debugallocation.cc

commit 0506e965ee5184490fbe7acea470458562128a79
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Dec 18 18:36:00 2016 -0800

    replace LIKELY/UNLIKELY with PREDICT_{TRUE,FALSE}

    Google-internal code is using PREDICT_TRUE/FALSE, so we should be
    doing it too.

M	src/base/basictypes.h
M	src/common.cc
M	src/common.h
M	src/emergency_malloc.h
M	src/malloc_hook-inl.h
M	src/tcmalloc.cc
M	src/thread_cache.h

commit 59a4987054021eaf24143a27cf01252fafb5052d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 13 16:04:43 2016 -0700

    prevent inlining ATTRIBUTE_SECTION functions

    So that their code is always executing in prescribed section.

M	src/base/basictypes.h

commit ebb575b8a0153a70f43fd1c3ec33fe30f94c97d0
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Thu Feb 2 15:41:13 2017 -0800

    Revert "enabled aggressive decommit by default"

    This reverts commit 7da5bd014d77ddaf694054b1e3ae0a3ef92ab384.

    Some tensorflow benchmarks are getting slower with aggressive
    decommit.

M	src/static_vars.cc
M	src/tests/tcmalloc_unittest.sh

commit b82d89cb7c8781a6028f6f5959cabdc5a273aec3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 22 13:15:39 2017 -0800

    Revert "disable dynamic sized delete support by default"

    This reverts commit 06811b3ae4c5365880898148d188ae91d20f52f2.

M	configure.ac

commit fac0bb44d5661946d9839496ddf104942dd00abe
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 22 13:11:05 2017 -0800

    Do not depend on memchr in commandlineflags::StringToBool

    It lets us use it from inside ifunc handler.

M	src/base/commandlineflags.h

commit 7d49f015a01e35155517332a2dfd95f16b568939
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 22 13:08:34 2017 -0800

    Make GetenvBeforeMain work inside ifunc handler

    Depending on things such us strlen, which are ifunc-ed themselves is
    not supported from inside ifunc handler.

    Thus we implement strlen, memchr and memcmp in slow naive C++ just for
    that place.

M	src/base/sysinfo.cc

commit a2550b6309153c250f67255b6271ec988cc7d0fb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 26 23:46:18 2017 -0800

    turn bench_fastpath_throughput into actual throughput benchmark

    Previously we bumped size by 16 between iterations, but for many size
    classess that gave is subsequent iteration into same size
    class. Multiplying by prime number randomizes sizes more so speeds up
    this benchmark on at least modern x86.

M	benchmark/malloc_bench.cc

commit b762b1a4923f769487de818175655c1683d84db5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 12 14:12:02 2016 -0800

    added sized free benchmarks to malloc_bench

M	benchmark/malloc_bench.cc

commit 71ffc1cd6b3ea99c97ed6d0e16caeb9d1b20eec7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 12 14:11:40 2016 -0800

    added free lists randomization step to malloc_bench

M	benchmark/malloc_bench.cc

commit 732dfeb83d726de0aea47f0e6aa2abff3e0ad680
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 22 13:57:31 2017 -0800

    Run StartStopNoOptionsEmpty profiledata unittest

    Somehow we had this test, but didn't arrange to actually run it. GCC
    gave warning and now we do.

M	src/tests/profiledata_unittest.cc

commit cbb312fbe8022378c4635b3075a80a7827555170
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Dec 18 11:08:54 2016 -0800

    aggressive decommit: only free necessary regions and fix O(N²)

    We used to decommit (with MADV_FREE or MADV_DONTNEED) whole combined
    span when freeing span in aggressive decommit mode. The issue with
    that is preceding or following span with which we combined span we're
    freeing could be freed already and fairly large. By passing all of
    that memory to decommit, we force kernel to scan all of those pages.

    When mass-freeing many objects old behavior led to O(N^2) behavior
    since freeing single span could lead to MADV_{FREE,DONTNEED}-ing of
    most of the heap.

    New implementation just does decommit of individual bits as needed.

    While there, I'm also adding locking to calls of
    PageHeap::{Get,Set}AggressiveDecommit.

    This partially (or mostly) fixes issue #839.

M	src/page_heap.cc
M	src/page_heap.h
M	src/tcmalloc.cc

commit 6d98223a9035ec1c5e9a7eb0196b21021d48a41f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 12 17:12:44 2017 -0800

    don't build with -fno-exceptions

    It looks like, in past it could produce better code. But since
    unwinding is totally different since almost forever now, there is no
    perfomance benefit of it anymore.

M	Makefile.am

commit d6a1931cce303ea279b744c9b438686e4f5994e5
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 12 15:33:10 2016 -0800

    fixed warning in casting heap of checker's main_thread_counter

    I.e. compiler didn't like int to void * casting and upcasting to
    intptr_t first (which has same size as void *) makes it happier.

M	src/heap-checker.cc

commit 5c778701d98c642ecff97d044cd1c0b8b862aba3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 12 17:54:59 2017 -0800

    added tcmalloc minimal unittest with ASSERTs checked

M	.gitignore
M	Makefile.am

commit a9167617abbcebe9d472141c53a20ce00c8c8d75
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Apr 29 19:09:47 2017 -0700

    drop unused g_load_map variable in patch_functionc.cc

M	src/windows/patch_functions.cc

commit d52e56dcb5aad0521ccc67d7e57dfcb8d41ea568
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Apr 29 19:06:55 2017 -0700

    don't compare integer to NULL

M	src/windows/preamble_patcher.cc

commit bae00c0341f49ade473d24c117226552a59d3e75
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 23 20:33:16 2017 -0700

    add fake_stacktrace_scope to few msvc projects

    Otherwise it predictably fails at linking phase due to missing
    symbols.

M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
M	vsprojects/tmu-static/tmu-static.vcproj

commit 79aab4fed40f9aac03dacb32a108861eff689beb
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 16 22:17:56 2017 -0700

    correctly dllexport nallocx on windows

M	src/gperftools/nallocx.h
M	src/tcmalloc.cc

commit b010895a088703f512cb0e225c838306b2904069
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Apr 30 18:32:10 2017 -0700

    don't undef PERFTOOLS_DLL_DECL

    This is not necessary and will help adding more headers with
    dll-exported functions.

M	src/gperftools/tcmalloc.h.in
M	src/windows/gperftools/tcmalloc.h
M	src/windows/gperftools/tcmalloc.h.in

commit 491b1aca7edbbaed9ea6f7baaa547a35cf385130
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Apr 29 16:46:21 2017 -0700

    don't try to use pthread_atfork on windows

M	src/maybe_threads.cc
M	src/windows/mingw.h

commit 691045b95761bedb9170d758be82f9b2f15c673a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 12 14:41:28 2016 -0800

    suppress warnings from legacy headers while building legacy headers
    test

M	src/google/heap-checker.h
M	src/google/heap-profiler.h
M	src/google/malloc_extension.h
M	src/google/malloc_extension_c.h
M	src/google/malloc_hook.h
M	src/google/malloc_hook_c.h
M	src/google/profiler.h
M	src/google/stacktrace.h
M	src/google/tcmalloc.h
M	src/tests/simple_compat_test.cc

commit 22f7ceb97a63bcbc9d824a80916bb7a809fad1f2
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Apr 29 15:25:06 2017 -0700

    use unsigned for few flags in mini_disassembler_types.h

    We're initializing them with value that doesn't fit into signed 32-bit
    int and somehow mingw version that I have not just warns, but actually
    errors on that.

M	src/windows/mini_disassembler_types.h

commit 9b17a8a5ba1c8320d12c6e6df0ab54ff218b50e6
Author: Mostyn Bramley-Moore <mostynb@opera.com>
Date:	Thu May 11 20:40:18 2017 +0200

    remove superfluous size_t value >= 0 check

M	src/debugallocation.cc

commit 86ce69d77ff5f881c5701901bf7d1ef884f9e33a
Author: Eugene <n.eugene536@gmail.com>
Date:	Sat Feb 4 17:57:34 2017 +0300

    Update binary_trees.cc

M	benchmark/binary_trees.cc

commit cd8586ed6c8bed550ad727ce8af83a1a6bd1ca8e
Author: Ola Olsson <ola1olsson@gmail.com>
Date:	Tue Mar 21 14:07:16 2017 +0100

    Fix path names in README

M	README

commit 98753aa73772bb0fae8cee668e513d5754ab7737
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 20 16:04:14 2017 -0800

    test that sized deallocation really works before enabling it

    Weirdly, some OSX compiler does allow -fsized-deallocation, yet barks
    on any attempt to actually use it at compile time (!). So lets detect
    this as well in configure and opt out as necessary.

    Should fix issue #870.

M	configure.ac

commit 5618ef78505a854bd0d2c145fd9cf7967226a20e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 20 15:31:41 2017 -0800

    Don't assume memalign exists in memalign vs nallocx test

    OSX and windows have issues with memalign. So test against tc_memalign
    instead.

    This should fix _memalign linker-time part of issue #870.

M	src/tests/tcmalloc_unittest.cc

commit bf640cd740fe38f6f10faa8683e8361fee971aba
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 20 14:51:27 2017 -0800

    rename sys allocator's sys_alloc symbol to tcmalloc_sys_alloc

    Since we're not building with hidden visibility, symbols of other DSOs
    can interpose our symbols. And sys_alloc is just too generic name.

    And in fact erlang runtime has sys_alloc function. Which means we're
    trying to write to it's first bytes as part of initializing system
    allocator and crash.

    This should fix issue #843.

M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/windows/system-alloc.cc

commit 069e3b16551186f8da0a41c185550fdfd11af35b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 20 14:25:18 2017 -0800

    build malloc_bench_shared_full only when full tcmalloc is built

    I.e. because otherwise, when --enable-minimal is given, we're building
    empty libtcmalloc.la and linking it to malloc_bench_shared_full. Which
    has no effect at all and actually breaks builds on OSX.

    Should fix issue #869.

M	Makefile.am

commit b8f9d0d44f94177d34b069180618b7d002e85b69
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Dec 18 09:35:02 2016 -0800

    ported nallocx support from Google-internal tcmalloc

    nallocx is extension introduced by jemalloc. It returns effective size
    of allocaiton without allocating anything.

    We also support MALLOCX_LG_ALIGN flag. But all other jemalloc
    flags (which at the moment do nothing for nallocx anyways) are
    silently ignored, since there is no sensible way to return errors in
    this API.

    This was originally contributed by Dmitry Vyukov with input from
    Andrew Hunter. But due to significant divergence of Google-internal
    and free-software forks of tcmalloc, significant massaging was done by
    me. So all bugs are mine.

M	Makefile.am
A	src/gperftools/nallocx.h
M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc

commit b0abefd93834d9d9c7ffaae2d23bd48ed8e96477
Author: Andrew Morrow <acm@mongodb.com>
Date:	Sat Dec 17 13:57:41 2016 -0500

    Fix a typo in the page fence flag declaration

M	src/debugallocation.cc

commit 855b3800064db49af823b85a54be269923eb6f4d
Author: Kirill Müller <krlmlr@mailbox.org>
Date:	Tue Nov 15 09:58:11 2016 +0100

    replace docs by doc

M	Makefile.am
M	README
D	doc
M	packages/deb/docs
M	packages/deb/libgperftools0.manpages
M	src/gperftools/heap-checker.h
M	src/gperftools/heap-profiler.h
M	src/gperftools/profiler.h
M	src/profiledata.h
M	src/tcmalloc.cc

commit 664210ead806d700cdbe5eeaf75d7a066fdac541
Author: Kirill Müller <krlmlr@mailbox.org>
Date:	Tue Nov 15 09:42:12 2016 +0100

    doc -> docs, with symlink

A	doc
R100	doc/cpuprofile-fileformat.html	docs/cpuprofile-fileformat.html
R100	doc/cpuprofile.html	docs/cpuprofile.html
R100	doc/designstyle.css	docs/designstyle.css
R100	doc/heap-example1.png	docs/heap-example1.png
R100	doc/heap_checker.html	docs/heap_checker.html
R100	doc/heapprofile.html	docs/heapprofile.html
R100	doc/index.html	docs/index.html
R100	doc/overview.dot	docs/overview.dot
R100	doc/overview.gif	docs/overview.gif
R100	doc/pageheap.dot	docs/pageheap.dot
R100	doc/pageheap.gif	docs/pageheap.gif
R100	doc/pprof-test-big.gif	docs/pprof-test-big.gif
R100	doc/pprof-test.gif	docs/pprof-test.gif
R100	doc/pprof-vsnprintf-big.gif	docs/pprof-vsnprintf-big.gif
R100	doc/pprof-vsnprintf.gif docs/pprof-vsnprintf.gif
R100	doc/pprof.1	docs/pprof.1
R100	doc/pprof.see_also	docs/pprof.see_also
R100	doc/pprof_remote_servers.html	docs/pprof_remote_servers.html
R100	doc/spanmap.dot docs/spanmap.dot
R100	doc/spanmap.gif docs/spanmap.gif
R100	doc/t-test1.times.txt	docs/t-test1.times.txt
R100	doc/tcmalloc-opspercpusec.vs.threads.1024.bytes.png
docs/tcmalloc-opspercpusec.vs.threads.1024.bytes.png
R100	doc/tcmalloc-opspercpusec.vs.threads.128.bytes.png
docs/tcmalloc-opspercpusec.vs.threads.128.bytes.png
R100	doc/tcmalloc-opspercpusec.vs.threads.131072.bytes.png
docs/tcmalloc-opspercpusec.vs.threads.131072.bytes.png
R100	doc/tcmalloc-opspercpusec.vs.threads.16384.bytes.png
docs/tcmalloc-opspercpusec.vs.threads.16384.bytes.png
R100	doc/tcmalloc-opspercpusec.vs.threads.2048.bytes.png
docs/tcmalloc-opspercpusec.vs.threads.2048.bytes.png
R100	doc/tcmalloc-opspercpusec.vs.threads.256.bytes.png
docs/tcmalloc-opspercpusec.vs.threads.256.bytes.png
R100	doc/tcmalloc-opspercpusec.vs.threads.32768.bytes.png
docs/tcmalloc-opspercpusec.vs.threads.32768.bytes.png
R100	doc/tcmalloc-opspercpusec.vs.threads.4096.bytes.png
docs/tcmalloc-opspercpusec.vs.threads.4096.bytes.png
R100	doc/tcmalloc-opspercpusec.vs.threads.512.bytes.png
docs/tcmalloc-opspercpusec.vs.threads.512.bytes.png
R100	doc/tcmalloc-opspercpusec.vs.threads.64.bytes.png
docs/tcmalloc-opspercpusec.vs.threads.64.bytes.png
R100	doc/tcmalloc-opspercpusec.vs.threads.65536.bytes.png
docs/tcmalloc-opspercpusec.vs.threads.65536.bytes.png
R100	doc/tcmalloc-opspercpusec.vs.threads.8192.bytes.png
docs/tcmalloc-opspercpusec.vs.threads.8192.bytes.png
R100	doc/tcmalloc-opspersec.vs.size.1.threads.png
docs/tcmalloc-opspersec.vs.size.1.threads.png
R100	doc/tcmalloc-opspersec.vs.size.12.threads.png
docs/tcmalloc-opspersec.vs.size.12.threads.png
R100	doc/tcmalloc-opspersec.vs.size.16.threads.png
docs/tcmalloc-opspersec.vs.size.16.threads.png
R100	doc/tcmalloc-opspersec.vs.size.2.threads.png
docs/tcmalloc-opspersec.vs.size.2.threads.png
R100	doc/tcmalloc-opspersec.vs.size.20.threads.png
docs/tcmalloc-opspersec.vs.size.20.threads.png
R100	doc/tcmalloc-opspersec.vs.size.3.threads.png
docs/tcmalloc-opspersec.vs.size.3.threads.png
R100	doc/tcmalloc-opspersec.vs.size.4.threads.png
docs/tcmalloc-opspersec.vs.size.4.threads.png
R100	doc/tcmalloc-opspersec.vs.size.5.threads.png
docs/tcmalloc-opspersec.vs.size.5.threads.png
R100	doc/tcmalloc-opspersec.vs.size.8.threads.png
docs/tcmalloc-opspersec.vs.size.8.threads.png
R100	doc/tcmalloc.html	docs/tcmalloc.html
R100	doc/threadheap.dot	docs/threadheap.dot
R100	doc/threadheap.gif	docs/threadheap.gif

commit 75dc9a6e1470fa82b828f9687edad48f53d740b1
Author: zmertens <zmertens@asu.edu>
Date:	Fri Nov 18 15:27:32 2016 -0700

    Fix Post(s)cript tyos

M	doc/pprof.1
M	src/pprof

commit dde32f8bbc95312379f9f5a651799815bb6327c5
Author: Francis Ricci <fjricci@fb.com>
Date:	Tue Oct 11 11:14:06 2016 -0700

    Fix unaligned memory accesses in debug allocator

M	src/base/basictypes.h
M	src/debugallocation.cc

commit 02eeed29df112728564a5dde6417fa4622b57a06
Author: Ryan Macnak <rmacnak@google.com>
Date:	Tue Sep 27 14:03:05 2016 -0700

    Fix redefinition of mmap on aarch64.

M	src/base/linux_syscall_support.h

commit c07a15cff4b904ac45e4019f8e36eeffd3e8186c
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Sep 24 18:56:22 2016 -0700

    [windows] patch _free_base as well

    Looks like _free_base is used as generic free/delete, which is not
    checked for free/delete mismatch by their debug runtime. Issue #817
    occurs because something that is allocated by regular allocation
    functions (new or malloc) is freed by _free_base. Patch it as
    well fixes
    the problem.

    Closes #817.

M	src/windows/patch_functions.cc

commit acac6af26b0ef052b39f61a59507b23e9703bdfa
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Sep 24 16:19:27 2016 -0700

    Fix finding default zone on macOS sierra

    This is taken from jemalloc patch at
    https://github.com/jemalloc/jemalloc/pull/427/commits/19c9a3e828ed46f1576521c264640e60bd0cb01f
    by Mike Hommey (aka glandium).

    The issue was reported together with advise to take that jemalloc
    fix by
    Koichi Shiraishi and David Ribeiro Alves at gperftools issue #827.

    Closes issue #827.

M	src/libc_override_osx.h

commit 7822b5b0b9fa7e016e1f6b46ea86f26f4691a457
Author: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Date:	Mon Aug 8 13:50:10 2016 -0300

    Stop using glibc malloc hooks

    glibc deprecated malloc hooks in 2011 and will be removing them soon.
    These hooks aren't safe and aren't necessary when the malloc API is
    fully exported.

M	configure.ac
M	src/libc_override_glibc.h

commit c92f0ed0891d69888cdc7e904c82048362b2dd8d
Author: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Date:	Wed Jul 27 17:15:52 2016 -0300

    Remove references to __malloc_initialize_hook

    __malloc_initialize_hook has been deprecated in glibc since 2011
    and is
    being removed on glibc 2.24.

M	src/libc_override_glibc.h

commit 9709eef361aa8c46d6b14c08bebead7b8185e731
Merge: eb474c99 44f276e1
Author: Aliaksey Kandratsenka (aka Aliaksei Kandratsenka)
<alkondratenko@gmail.com>
Date:	Wed Aug 24 22:33:05 2016 -0700

    Merge pull request #821 from jtmcdole/patch-1

    Rename TCMALLOC_DEBUG to PERFTOOLS_VERBOSE

commit 44f276e132eef8ba013a04b4af92ce26464e2b54
Author: John McDole <jtmcdole@gmail.com>
Date:	Wed Aug 24 17:47:28 2016 -0700

    Rename TCMALLOC_DEBUG to PERFTOOLS_VERBOSE

M	README

commit eb474c995eadef3edb47bc081f09693228832794
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jul 3 18:20:32 2016 -0700

    Summary: support gcc atomic ops on clang too

    Clang actually does support __atomic_XXX atomic ops builtins but does
    not advertise itselt as gcc 4.7 or later. So we now detect clang
    separetely.

    We're enabling gcc atomic ops on clang >= 3.4 since this is the oldest
    version that I can test.

    This should fix issue #797.

M	src/base/atomicops.h

commit 7f86eab1f3e0636a79a96fd44e3bb51db0457a86
Author: Kenton Varda <kenton@sandstorm.io>
Date:	Thu Jun 30 18:32:39 2016 -0700

    Recognize .node files as shared libraries

    node.js extensions are regular shared libraries named with the `.node`
    extension. With this small change I was able to get a usable heap
    profile out of node to debug an extension I'm working on.

M	src/pprof

commit bf8eacce69df877d1cecdab8c7a6cc3f218ebcc2
Author: Bryan Chan <bryanpkc@gmail.com>
Date:	Wed Jun 15 00:10:45 2016 -0400

    Add support for 31-bit s390; merge linux_syscall_support.h changes
    from upstream.

M	configure.ac
M	m4/pc_from_ucontext.m4
M	src/base/basictypes.h
M	src/base/linux_syscall_support.h
M	src/base/linuxthreads.h
M	src/getpc.h
M	src/malloc_hook_mmap_linux.h

commit c54218069b96e5a64e81186cd14107bf6660b61d
Author: savefromgoogle <savefromgoogle@users.noreply.github.com>
Date:	Sat May 14 17:50:34 2016 +0200

    Update README

    typo corrected and direct link to Google Group mailinglist added

M	README

commit 06f4ce65c226e2bed432119bd830a478012ea336
Author: iivlev <iivlev@productengine.com>
Date:	Fri Apr 15 17:46:25 2016 +0300

    Small performance tweak: avoid calling time() if we don't need it

M	src/heap-profiler.cc

commit db8d4836091b93100b176e8cab4e842974234e4e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jun 25 16:24:40 2016 -0700

    Autogenerate ChangeLog from git on make dist

    This fixes build breakage introduced in preceding commit for issue
    #796.

A	ChangeLog
M	Makefile.am
M	configure.ac
A	m4/ax_generate_changelog.m4

commit 4a1359831938b5a71b2faf38c02003053af253d9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Jun 25 16:12:48 2016 -0700

    renamed ChangeLog to ChangeLog.old

    I.e. to avoid confusion. This should fix issue #796.

R100	ChangeLog	ChangeLog.old

commit 7852eeb75b9375cf52a7da01be044da6e915dd08
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Apr 9 13:09:18 2016 -0700

    Use initial-exec tls for libunwind's recursion flag

    If we don't do it, then reading variable calls to __tls_get_addr,
    which
    uses malloc on first call. initial-exec makes dynamic linker
    reserve tls
    offset for recusion flag early and thus avoid unsafe calls to malloc.

    This fixes issue #786.

M	src/base/basictypes.h
M	src/stacktrace_libunwind-inl.h
M	src/thread_cache.h

commit a07f9fe75af25ce388af3d4ff4514b42513d766f
Author: Mike Gaffney <mike@uberu.com>
Date:	Thu Mar 31 11:27:21 2016 -0700

    gerftools -> gperftools in readme

M	README

commit 9fd6d2687914a1f58a8ce457d6a1bd3d55ea0747
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 20 12:29:40 2016 -0700

    added define to enable MADV_FREE usage on Linux

    Building with -DTCMALLOC_USE_MADV_FREE will enable usage of
    MADV_FREE on
    Linux if glibc copy of kernel headers has MADV_FREE defined.

    I.e. so that people can test this more easily.

    Affects ticket #780.

M	src/system-alloc.cc

commit 6f7a14f45e2e2e16fbbd250543f5758078e2f5f0
Author: Mathias Stearn <redbeard0531@gmail.com>
Date:	Wed Mar 16 18:22:32 2016 -0400

    Don't use MADV_FREE on Linux

    Addresses #780.

M	src/system-alloc.cc

commit 55cf6e6281f2f19ed04a6b2a90e2dcaec08e16d0
Author: Aman Gupta <aman@tmm1.net>
Date:	Mon Mar 14 12:20:40 2016 -0700

    Fix symbol resolution on OSX

    The library mapping ranges on OSX and Linux are sorted in opposite
    orders

      7f71c3323000-7f71c3339000 r-xp 00000000 09:02 29099128
      /lib/x86_64-linux-gnu/libz.so.1.2.3.4
      7f71c3339000-7f71c3538000 ---p 00016000 09:02 29099128
      /lib/x86_64-linux-gnu/libz.so.1.2.3.4
      7f71c3538000-7f71c3539000 r--p 00015000 09:02 29099128
      /lib/x86_64-linux-gnu/libz.so.1.2.3.4
      7f71c3539000-7f71c353a000 rw-p 00016000 09:02 29099128
      /lib/x86_64-linux-gnu/libz.so.1.2.3.4

    vs

      108f8d000-108f95000 r-xp 00025000 00:00 0
      /usr/local/opt/libmemcached/lib/libmemcached.11.dylib
      108f8c000-108f8d000 r-xp 00024000 00:00 0
      /usr/local/opt/libmemcached/lib/libmemcached.11.dylib
      108f68000-108f8c000 r-xp 00000000 00:00 0
      /usr/local/opt/libmemcached/lib/libmemcached.11.dylib

M	src/pprof

commit 8e858436223db7729d41304ad29a29946d47382b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Mar 13 15:11:50 2016 -0700

    added simple .travis.yml config

A	.travis.yml

commit 05e40d29c034c0d68322e589b8d6e234f562be2e
Author: Brian Silverman <bsilver16384@gmail.com>
Date:	Tue Mar 8 15:58:02 2016 -0500

    Recognize modern Linux ARM

    Commit e580d7888154fa7f95b3cef9e18f1ce69182212b fixed the macros
    in some
    of the code but not other places.

    `make check` still fails in the same places on a Debian Jessie armhf
    system.

M	src/base/elfcore.h
M	src/base/linuxthreads.h

commit 632de2975e63f89613af9ab99bc1603a4a6332aa
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 12 11:48:20 2016 -0800

    bumped version up to 2.5

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 6682016092c735feb29021acbb8c2067fdf1a209
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 12 10:54:05 2016 -0800

    Unbreak profiling with CPUPROFILE_FREQUENCY=1

    This closes ticket #777.

    No test sadly, since it's not trivial to unittest this case. But
    fix with single-shot manual testing is better than nothing.

M	src/profile-handler.cc

commit 6ff86ff6a783a277956e45db68c6a2b729f27000
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 5 16:17:28 2016 -0800

    bumped version to 2.4.91 for 2.5rc2

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 782165fa7f2c49d6a67c2415626a1f215cc21ac2
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 5 15:47:25 2016 -0800

    build sized delete aliases even when sized-delete is disabled

    In this case we alias to regular delete. This is helpful because if we
    don't override sized delete, then apps will call version in libstdc++
    which delegates calls to regular delete, which is slower than calling
    regular delete directly.

M	configure.ac
M	src/libc_override_gcc_and_weak.h

commit 06811b3ae4c5365880898148d188ae91d20f52f2
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 5 15:08:50 2016 -0800

    disable dynamic sized delete support by default

    IFUNC relocations don't support our advanced use case (calling
    application function or looking up environment variable).

    Particularly, it doesn't work on PPC and arm when tcmalloc is linked
    with -Wl,-z,now. See RedHat's bugzilla ticket
    https://bugzilla.redhat.com/show_bug.cgi?id=1312462 for more details.

M	configure.ac

commit d4d99eb608f3d778fa301137a85cc4903a1dd33e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Mar 5 14:53:42 2016 -0800

    unbreak compilation with visual studio

    Specifically, this commit adds missing fake_stacktrace_scope.cc
    to msvc
    build and removes undef-ing of PERFTOOLS_DLL_DECL by tcmalloc.h.

M	src/gperftools/tcmalloc.h.in
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h
M	src/windows/gperftools/tcmalloc.h.in
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj

commit 126d4582c18d053452d22ce12351c5429513aabe
Author: Brian Silverman <bsilver16384@gmail.com>
Date:	Tue Mar 1 17:57:33 2016 -0500

    Call function pointers with the right type

    I think it's undefined behavior, but it's definitely weird. ubsan
    complains too.

M	src/tests/tcmalloc_unittest.cc

commit e0fa28ef7d50158b271da90f53ab3aee5ba441d8
Author: Brian Silverman <bsilver16384@gmail.com>
Date:	Tue Mar 1 17:56:32 2016 -0500

    Don't shift a type by more than its width

    It's undefined behavior, so ubsan complains.

M	src/tests/sampler_test.cc

commit a1c764d2632cc0090f31d8d56effb94a8d049b54
Author: Brian Silverman <bsilver16384@gmail.com>
Date:	Tue Mar 1 17:55:59 2016 -0500

    Initialize counters in test

M	src/tests/profile-handler_unittest.cc

commit 22123a37c236e26535d3f3fff7f31a5b6515d7d6
Author: Brian Silverman <bsilver16384@gmail.com>
Date:	Tue Mar 1 17:55:53 2016 -0500

    Don't overflow a signed integer

    It's undefined behavior and ubsan catches it.

M	src/base/low_level_alloc.cc

commit 66e1e94f38467b5c7bbfb05e3c7267f3039a2c69
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Mon Feb 29 20:09:39 2016 -0800

    added minimal "header section" to README

M	README

commit 2804b7cfee8d49d5ab98340cbf3050c0a5f57b98
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 20:27:48 2016 -0800

    bumped version to 2.5rc

M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit f47fefbfc1083e7efbada3e7e7d2859d31e151e7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 22:38:23 2016 -0800

    updated NEWS for 2.5rc

M	NEWS

commit cef60361741e858041f4bb4d46ce00c6db89b711
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 23:03:41 2016 -0800

    alias same malloc/free variants to their canonical versions

    This is similar to what gcc 5 does anyways, except gcc 5 is placing
    jumps which adds a bit of overhead.

    Instead of letting gcc do it, we alias using ELF symbol aliasing. All
    free variants (tc_delete{,array}_{,nothrow}) are aliased to
    tc_free. There are 3 malloc variants that differ by oom
    handling. tc_newarray is aliased to tc_new. And tc_newarray_nothrow is
    aliased to tc_new_nothrow.

    This aliasing only happens in non-debug malloc, since debug malloc
    does
    distinguish between different variants since it needs checking for
    mismatch.

M	src/tcmalloc.cc

commit ea8d242061460309d174d9053a224cf94e65e6fe
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 20:16:37 2016 -0800

    Re-enable MultipleIdleNonIdlePhases test

    Which was accidentally removed as part of MarkThreadTemporarilyIdle
    support.

M	src/tests/markidle_unittest.cc

commit c9962f698b0edb37315445b33a06820f9bcf5df9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 20:07:37 2016 -0800

    added maybe_emergency_malloc.h to Makefile.am

    Because without this reference it isn't packaged by make dist.

M	Makefile.am

commit 7dd4af65365d74a5d8d30d5811c26117a9192238
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 19:26:37 2016 -0800

    don't round up sizes for large allocation when sampling

    This closes #723.

    Since rounding up prior to sampling is introducing possibility of
    arithmetic overflow, we're just not doing it.

    It introduces some error (up to 4k), but since we're dealing with at
    least 256k allocations, we're fine.

M	src/tcmalloc.cc

commit 4f3410e759ec42cb307429222d690a81e3cd37b0
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Feb 21 13:52:47 2016 -0800

    enable emergency malloc by default on arm when using libunwind

    Because by default libunwind on arm does fopen which mallocs
    which will
    deadlock unless we enable emergency malloc.

M	configure.ac

commit 7f12051dbe1f402771a747c1192a66e7571d94f9
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 31 23:17:50 2016 -0800

    implemented emergency malloc

    Emergency malloc is enabled for cases when backtrace capturing
    needs to
    call malloc. In this case, we enable emergency malloc just prior to
    calling such code and disable it after it is done.

M	Makefile.am
M	configure.ac
M	src/debugallocation.cc
A	src/emergency_malloc.cc
A	src/emergency_malloc.h
A	src/emergency_malloc_for_stacktrace.cc
A	src/fake_stacktrace_scope.cc
M	src/malloc_hook.cc
A	src/maybe_emergency_malloc.h
M	src/stacktrace.cc
M	src/tcmalloc.cc
M	src/thread_cache.h

commit 3ee2360250c639f02b354820bc50efc6e104b754
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 20 21:49:58 2016 -0800

    replaced invalid uses of __THROW

    We're now using it only when overriding glibc functions (such
    as malloc
    or mmap). In other cases (most importantly in public tcmalloc.h
    header)
    we're doing our own throw() to avoid possible breakage on future glibc
    changes.

M	src/debugallocation.cc
M	src/gperftools/tcmalloc.h.in
M	src/libc_override_glibc.h
M	src/libc_override_redefine.h
M	src/tcmalloc.cc
M	src/windows/gperftools/tcmalloc.h
M	src/windows/gperftools/tcmalloc.h.in

commit 013b82abcfeaa158da2490ff86d6bff5a5434d7f
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 20 21:19:37 2016 -0800

    unbreak <malloc.h> inclusion in gperftools/tcmalloc.h

    We have shipped header which checked HAVE_XXX defines which we only
    defined in project-local config.h. So it could never work correctly.

    We're now doing #include <malloc.h> just like tc_mallinfo on constant
    which we detect at configure time and write into header that we
    install.

M	src/gperftools/tcmalloc.h.in

commit 19903e6f156d0ff8063880ddc5051b5dc261c1ff
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 20 21:18:18 2016 -0800

    drop detection of sys/malloc.h and malloc/malloc.h

    Which we don't really need.

M	configure.ac

commit cdff090ebd7a3cef8de60109bef52251758181d7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 20 20:43:21 2016 -0800

    Fix several harmless clang warnings

M	src/common.cc
M	src/internal_logging.cc
M	src/malloc_hook.cc
M	src/tests/current_allocated_bytes_test.cc

commit 9095ed08402620b04591c2d27ca222594f0da6db
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 20 20:33:27 2016 -0800

    implemented stacktrace capturing via libgcc's C++ ABI function

    Particularly _Unwind_Backtrace which seems to be gcc extension.

    This is what glibc's backtrace is commonly is using.

    Using _Unwind_Backtrace directly is better than glibc's backtrace,
    since
    it doesn't call into dlopen. While glibc does dlopen when it is
    built as
    shared library apparently to avoid link-time dependency on libgcc_s.so

M	Makefile.am
M	configure.ac
M	src/stacktrace.cc
A	src/stacktrace_libgcc-inl.h

commit 728cbe102108be8296f2485e384392a4408ce9db
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 20 13:06:08 2016 -0800

    force profiler_unittest to do 'real' work

    'XOR loop' in profiler unittest wasn't 100% effective because
    it allowed
    compiler to avoid loading and storing to memory.

    After marking result variable as volatile, we're now forcing
    compiler to
    read and write memory, slowing this loops down sufficiently. And
    profiler_unittest is now passing more consistently.

    Closes #628

M	src/tests/profiler_unittest.cc

commit fff6b4fb8814b5f25d4f97889d5003537f7dcc92
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 31 23:14:43 2016 -0800

    Extend low-level allocator to support custom pages allocator

M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h

commit 32d992679589ea83e044d3f8263583ae960b0b16
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 31 22:42:20 2016 -0800

    added malloc_bench_shared_full

M	.gitignore
M	Makefile.am

commit 00d8fa1ef8d6650f08e00f59baa22cd31b908432
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 6 19:13:07 2016 -0800

    always use real throw() on operators new/delete

    Since non-glibc-s have no __THROW and lack of throw() on operators
    gives
    us warning.

M	src/libc_override_gcc_and_weak.h

commit 08e034ad5940f24f99a24630c7b71a0de728d05b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 6 16:19:54 2016 -0800

    Detect working ifunc before enabling dynamic sized delete support

    Particularly, on arm-linux and x86-64-debian-kfreebsd compilation
    fails
    due to lack of support for ifunc. So it is necessary to test at
    configure time whether ifunc is supported.

M	configure.ac

commit a788f354a0cd6de3d714a58ad3e6ae5baf806c3b
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Feb 6 16:01:25 2016 -0800

    include unistd.h for getpid in thread_lister.c

    This fixes warning produced on arm-linux.

M	src/base/thread_lister.c

commit 644a6bdbdb50b26a25e4428c43556467a6e8b5cc
Author: Bryan Chan <bryanpkc@gmail.com>
Date:	Fri Jan 22 12:26:47 2016 -0500

    Add support for Linux s390x

    This resolves gperftools/gperftools#761.

M	configure.ac
M	m4/pc_from_ucontext.m4
M	src/base/basictypes.h
M	src/base/linux_syscall_support.h
M	src/base/linuxthreads.h
M	src/malloc_hook_mmap_linux.h

commit bab7753aad44b3395a063966f32c23f632fee174
Author: Bryan Chan <bryanpkc@gmail.com>
Date:	Fri Jan 29 02:38:42 2016 -0500

    Fix typo in heap-checker-death_unittest.sh

M	src/tests/heap-checker-death_unittest.sh

commit 17182e1d3c324e8fe9cc02ce2822caa746d7d17a
Author: Simon Que <sque@chromium.org>
Date:	Fri Jan 29 18:17:16 2016 -0800

    Fix include of malloc_hook_c.h in malloc_hook.h

    malloc_hook.h includes malloc_hook_c.h as
    <gperftools/malloc_hook_c.h>.
    This requires the compiler to have designated src/gperftools as a
    standard include directory (-I), which may not always be the case.

    Instead, include it as "malloc_hook_c.h", which will search in
    the same
    directory first. This will always work, regardless of whether it was
    designated a standard include directory.

M	src/gperftools/malloc_hook.h

commit c69721b2b2ceae426c36de191dd0a6fa443c5c7a
Author: Andrew Morrow <acm@mongodb.com>
Date:	Sun Nov 22 15:19:12 2015 -0500

    Add support for obtaining cache size of the current thread and
    softer idling

M	src/gperftools/malloc_extension.h
M	src/gperftools/malloc_extension_c.h
M	src/malloc_extension.cc
M	src/tcmalloc.cc
M	src/tests/markidle_unittest.cc
M	src/thread_cache.cc
M	src/thread_cache.h

commit 5ce42e535d6b3bf6c5e41ceb9cf876a70a7e3318
Author: Brian Silverman <bsilver16384@gmail.com>
Date:	Tue Jan 26 16:53:48 2016 -0500

    Don't always arm the profiling timer.

    It causes a noticeable performance hit and can sometimes confuse GDB.

    Tested with CPUPROFILE_PER_THREAD_TIMERS=1.

    Based on an old version by mnissler@google.com.

M	src/profile-handler.cc
M	src/profile-handler.h
M	src/tests/profile-handler_unittest.cc

commit 7f801ea091e03dae7b13160f76fecce15727c9c0
Author: Duncan Sands <baldrick@free.fr>
Date:	Fri Jan 15 18:12:51 2016 +0100

    Make sure the alias is not removed by link-time optimization when
    it can prove
    that it isn't used by the program, as it might still be needed to
    override the
    corresponding symbol in shared libraries (or inline assembler for
    that matter).
    For example, suppose the program uses malloc and free but not calloc
    and is
    statically linked against tcmalloc (built with -flto) and LTO
    is done.  Then
    before this patch the calloc alias would be deleted by LTO due to
    not being
    used, but the malloc/free aliases would be kept because they are
    used by the
    program.  Suppose the program is dynamically linked with a shared
    library that
    allocates memory using calloc and later frees it by calling free.
    Then calloc
    will use the libc memory allocator, because the calloc alias was
    deleted, but
    free will call into tcmalloc, resulting in a crash.

M	src/libc_override_gcc_and_weak.h

commit 6b3e6ef5e0ab65030d116dd55dac8d64f9c72d33
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Jan 24 19:45:16 2016 -0800

    don't retain compatibility with old docdir behavior

    Since it is not really needed. And since we don't care about too
    ancient
    autoconfs.

M	configure.ac

commit ccffcbd9e988a39654fe6ec5edd6d817f266ded9
Author: Chris Mayo <aklhfex@gmail.com>
Date:	Sun Dec 27 18:55:05 2015 +0000

    support use of configure --docdir argument

    Value of docdir was being overridden in Makefile.

    Retain compatibility with old Autoconf versions that do not provide
    docdir.

M	Makefile.am
M	configure.ac

commit 050f2d28be8a63836bd74558b82be7983770a654
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Dec 12 18:27:40 2015 -0800

    use alias attribute only for elf platforms

    It was reported that clang on OSX doesn't support alias
    attribute. Most
    likely because of executable format limitations.

    New code limits use of alias to gcc-compatible compilers on elf
    platforms (various gnu and *bsd systems). Elf format is known
    to support
    aliases.

M	src/tcmalloc.cc

commit 07b0b21ddd168d977c04b1395677de71bb3e402e
Author: cyshi <wbstsa@gmail.com>
Date:	Wed Dec 2 14:47:15 2015 +0800

    fix compilation error in spinlock

M	src/base/spinlock.cc

commit e14450366abc51c7a25256615179daf0bae1de34
Author: gshirishfree <gshirishfree@gmail.com>
Date:	Mon Nov 23 11:34:13 2015 -0800

    Added better description for GetStats API

M	src/gperftools/malloc_extension.h

commit 64892ae730b704a7f3f23bd8eaeaf206901df201
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Nov 21 19:17:36 2015 -0800

    lower default transfer batch size down to 512

    Some workloads get much slower with too large batch size.

    This closes bug #678.

    binary_trees benchmark benefits from larger batch size. And I
    found that
    512 is not much slower than huge value that we had.

M	src/common.cc

commit 6fdfc5a7f40ebcff3fdaada1a2994ff54be2f9c7
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Oct 24 23:16:45 2015 -0700

    implemented enabling sized-delete support at runtime

    Under gcc 4.5 or greater we're using ifunc function attribute
    to resolve
    sized delete operator to either plain delete implementation
    (default) or
    to sized delete (if enabled via environment variable
    TCMALLOC_ENABLE_SIZED_DELETE).

M	configure.ac
M	src/libc_override_gcc_and_weak.h
M	src/tests/tcmalloc_unittest.sh

commit c2a79d063c949584170b3e7dd2939a4548c16079
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Oct 23 21:44:04 2015 -0700

    use x86 pause in spin loop

    This saves power and improves performance, particulary on SMT.

M	src/base/spinlock.cc

commit 0fb6dd8aa3c2fe3245c31c138ec4dfb05efd7f6d
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Fri Oct 23 22:09:25 2015 -0700

    added binary_trees benchmark

M	.gitignore
M	Makefile.am
A	benchmark/binary_trees.cc

commit a8852489e54e915d22abbdad1688d1f25ccb7925
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Oct 18 00:40:15 2015 -0700

    drop unsupported allocation sampling code in tcmalloc_minimal

M	src/tcmalloc.cc
M	src/thread_cache.h

commit a9db0ae516c225543976280047b22b1e0ca08b93
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Oct 4 21:12:28 2015 -0700

    implemented (disabled by default) sized delete support

    gcc 5 and clang++-3.7 support sized deallocation from C++14. We are
    taking advantage of that by defining sized versions of operator
    delete.

    This is off by default so that if some existing programs that
    define own
    global operator delete without sized variant are not broken by
    tcmalloc's sized delete operator.

    There is also risk of breaking exiting code that deletes objects using
    wrong class (i.e. base class) without having virtual destructors.

M	configure.ac
M	src/gperftools/tcmalloc.h.in
M	src/libc_override_gcc_and_weak.h
M	src/libc_override_redefine.h
M	src/tcmalloc.cc
M	src/windows/gperftools/tcmalloc.h
M	src/windows/gperftools/tcmalloc.h.in

commit 88686972b9caf8fd132c4e30d89da78c3d324c27
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Oct 4 11:15:37 2015 -0700

    pass -fsized-deallocation to gcc 5

    Otherwise it gives warning for declaration of sized delete operator.

M	Makefile.am
M	configure.ac

commit 0a18fab3af2f1b59b851836d319a1eff0db5d44e
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Oct 4 21:07:54 2015 -0700

    implemented sized free support via tc_free_sized

M	src/debugallocation.cc
M	src/gperftools/tcmalloc.h.in
M	src/tcmalloc.cc
M	src/windows/gperftools/tcmalloc.h
M	src/windows/gperftools/tcmalloc.h.in
M	src/windows/patch_functions.cc

commit 464688ab6ddb82db22ea9b934ddea192478e4535
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sun Oct 4 21:27:56 2015 -0700

    speedup free code path by dropping "fast path allowed check"

M	src/tcmalloc.cc

commit 10f7e207166bd6652ed8803b9885917bfbbd90d0
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Oct 3 18:47:14 2015 -0700

    added SizeMap::MaybeSizeClass

    Because it allows us to first check for smaller sizes, which is most
    likely.

M	src/common.h

commit 436e1dea43dc097525e43a43e6d79810ba6921b5
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Oct 3 15:40:21 2015 -0700

    slightly faster GetCacheIfPresent

M	src/thread_cache.h

commit 04df911915ecfcbc5e6b13fdab1b86f825ed1938
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Oct 3 15:38:33 2015 -0700

    tell compiler that non-empty hooks are unlikely

M	src/malloc_hook-inl.h

commit 8cc75acd1f4024ca978858b1cf85b45204ed32b2
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Oct 4 11:04:12 2015 -0700

    correctly test for -Wno-unused-result support

    gcc is only giving warning for unknown -Wno-XXX flags so test never
    fails on gcc even if -Wno-XXX is not supported. By using
    -Wunused-result we're able to test if gcc actually supports it.

    This fixes issue #703.

M	configure.ac

commit 7753d8239b1e427d83729b6d5c0401e1d80308fd
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Oct 4 18:26:59 2015 -0700

    fixed clang warning about shifting negative values

M	src/base/basictypes.h

commit ae09ebb3833f3f207b7623245e360ddf122b823e
Author: Jens Rosenboom <j.rosenboom@x-ion.de>
Date:	Thu Nov 19 17:45:44 2015 +0100

    Fix tmpdir usage in heap-profiler_unittest.sh

    Using a single fixed directory would break when tests were being
    run in
    parallel with "make -jN".

    Also, the cleanup at the end of the test didn't work because it
    referred
    to the wrong variable.

M	src/tests/heap-profiler_unittest.sh

commit df34e71b575daa6e4fa7588ae0deb9d529566f08
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Nov 21 16:03:09 2015 -0800

    use $0 when referring to pprof

    This fixed debian bug #805536. Debian ships pprof under google-pprof
    name so it is handy when google-pprof --help refers to itself
    correctly.

M	src/pprof

commit 7773ea64ee254700ef0ffc5673539f0e111a4f86
Author: Adhemerval Zanella <adhemerval.zanella@linaro.com>
Date:	Fri Nov 6 16:29:12 2015 -0200

    Alignment fix to static variables for system allocators

    This patch the placement new for some system allocator to force the
    static buffer to pointer value.

M	src/memfs_malloc.cc
M	src/system-alloc.cc

commit c46eb1f3d2f7a2bdc54a52ff7cf5e7392f5aa668
Author: Boris Sazonov <bsazonov@gmail.com>
Date:	Thu Oct 15 17:39:08 2015 +0300

    Fixed printf misuse in pprof - printed string was passed as
    format. Better use print instead

M	src/pprof

commit 9bbed8b1a8f1229cf0f1b4185683f309267ee1b9
Author: Boris Sazonov <bsazonov@gmail.com>
Date:	Wed Sep 23 19:46:13 2015 +0300

    Fixed assembler argument passing inside _syscall6 on MIPS - it was
    causing 'Expression too complex' compilation errors in spinlock

M	src/base/linux_syscall_support.h

commit 962aa53c55968f62f548f6f6f4849a384b505ca0
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Oct 10 20:31:50 2015 -0700

    added more fastpath microbenchmarks

    This also makes them output nicer results. I.e. every benchmark is
    run 3
    times and iteration duration is printed for every run.

    While this is still very synthetic and unrepresentave of malloc
    performance
    as a whole, it is exercising more situations in tcmalloc fastpath. So
    it a
    step forward.

M	Makefile.am
M	benchmark/malloc_bench.cc
A	benchmark/run_benchmark.c
A	benchmark/run_benchmark.h

commit 347a830689e4dba2adc1368d00fe4723ba726b4a
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Oct 10 15:58:11 2015 -0700

    Ensure that PPROF_PATH is set for debugallocation_test

    Which fixes issue #728.

M	src/tests/debugallocation_test.sh

commit a9059b7c30308a4f4ab25f00e55b67c649614ed3
Author: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Date:	Sat Oct 10 15:35:54 2015 -0700

    prevent clang from inlining Mallocer in heap checker unittest

    Looks like existing "trick" to avoid inlining doesn't really prevent
    sufficiently smart compiler from inlining Mallocer function. Which
    breaks tests, since test relies Mallocer having it's own separate
    stack
    frame.

    Making mallocer_addr variable volatile is seemingly enough to
    stop that.

M	src/tests/heap-checker_unittest.cc

commit 6627f9217d8897b297c6da038cfbcff6a3086cfa
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Sep 26 19:52:37 2015 -0700

    drop cycleclock

M	Makefile.am
D	src/base/cycleclock.h
M	src/base/sysinfo.cc
M	vsprojects/addressmap_unittest/addressmap_unittest.vcproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
M	vsprojects/packed-cache_test/packed-cache_test.vcproj

commit f985abc29607b8a5662ddac7bd1ed99c71ceeb11
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Sep 26 19:50:03 2015 -0700

    amputate unportable and unused stuff from sysinfo

    We still check number of cpus in the system (in spinlock code),
    but old
    code was built under assumption of "no calls malloc" which is
    not needed
    in tcmalloc. Which caused it to be far more complicated than
    necessary (parsing procfs files, ifdefs for different OSes and
    arch-es).

    Also we don't need clock cycle frequency measurement.

    So I've removed all complexity of ald code and NumCPUs function and
    replaced it with GetSystemCPUsCount which is straightforward and
    portable call to sysconf.

    Renaming of cpus count function was made so that any further code that
    we might port from Google that depends on old semantics of NumCPUs
    will
    be detected at compile time. And has to be inspected for whether it
    really needs that semantics.

M	src/base/spinlock.cc
M	src/base/sysinfo.cc
M	src/base/sysinfo.h

commit 16408eb4d71ecbb1dd3b3c7ff22c94bd254d7b58
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Tue Sep 29 11:59:25 2015 -0700

    amputated wait_cycles accounting in spinlocks

    This is not needed and pulls in CycleClock dependency that lowers
    code portability.

M	src/base/spinlock.cc
M	src/base/spinlock.h

commit fedceef40cd217ef406bc2522e9a8f879d60b0c0
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Tue Sep 29 11:55:35 2015 -0700

    drop cycleclock reference in ThreadCache

M	src/thread_cache.cc

commit d7fdc3fc9ddc0937eb7961b1d8c864cc8182f0d9
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Tue Sep 29 11:43:09 2015 -0700

    dropped unused and unsupported synchronization profiling facility

    Spinlock usage of cycle counter is due do tracking of time it's spent
    waiting for lock. But this tracking is only useful we actually have
    synchronization profiling working, which dont have. Thus I'm dropping
    calls to this facility with eye towards further removal of cycle clock
    usage.

M	Makefile.am
M	src/base/spinlock.cc
D	src/base/synchronization_profiling.h

commit 3a054d37c1f5323462bd77f55be02c5b0d764611
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Mon Sep 28 15:40:15 2015 -0700

    dropped unused SpinLockWait function

M	src/base/spinlock.cc
M	src/base/spinlock_internal.cc
M	src/base/spinlock_internal.h

commit 5b62d38329f04ee30fb475a36b552c1ebc4e1e79
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Mon Sep 28 10:27:49 2015 -0700

    avoid checking for dup. entries on empty backtrace

    This might fix issue #721. But it is right thing to do
    regardless. Since
    if depth is 0 we'll be reading random "garbage" on the stack.

M	src/profiler.cc

commit 7b9ded722e4cef9a44b8d8bfa80d3e1e108cf590
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Sep 12 16:26:54 2015 -0700

    fixed compiler warning in memory_region_map.cc

M	src/memory_region_map.cc

commit 4194e485cbb5d8c59f65aba49da63c08ecc573da
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Sep 12 16:20:53 2015 -0700

    Don't link libtcmalloc_minimal.so to libpthread.so

    So that LD_PRELOAD-ing doesn't force loading libpthread.so which may
    slow down some single-threaded apps.

    tcmalloc already has maybe_threads facility that can detect if
    libpthread.so is loaded (via weak symbols) and provide 'simulations'
    of
    some pthread functions that tcmalloc needs.

M	Makefile.am
M	src/maybe_threads.cc
M	src/maybe_threads.h
M	src/static_vars.cc

commit 121038308d8c5b34707614c44de265816a322563
Author: Fredrik Mellbin <fredrik.mellbin@gmail.com>
Date:	Sun Sep 27 01:18:31 2015 +0200

    Check if _MSC_VER is defined to avoid warnings

M	src/windows/port.h

commit 73673229955cf35c5b3046ee3100d94e82d33bc2
Author: Fredrik Mellbin <fredrik.mellbin@gmail.com>
Date:	Sun Sep 27 01:11:14 2015 +0200

    Make default config.h work with VS2015

M	src/windows/config.h

commit ae0a444db06b2327441e6160eafa33d8b7b95629
Author: Dair Grant <dair@feralinteractive.com>
Date:	Thu Oct 1 13:46:22 2015 +0100

    Ensure ThreadCache objects are CACHELINE_ALIGNED.

M	src/base/basictypes.h
M	src/common.cc
M	src/system-alloc.cc

commit ea0b1d315497771d9d077c754fb9d6a92d1c01dc
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Sep 26 11:13:13 2015 -0700

    unbreak TestErrno again

    Somehow in previous commit I managed to break assignment of memalign
    result to variable being tested. Luckily gcc gave me warning.

M	src/tests/tcmalloc_unittest.cc

commit e53aef24add50bdee5ab2943d96e5c5b2b3bf596
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Sep 26 09:58:45 2015 -0700

    don't try to test memalign on windows

    This unbreaks tcmalloc_unittest.cc on windows.

M	src/tests/tcmalloc_unittest.cc

commit 7707582448d5bdf311d88726c5f77fcbb0bedd09
Merge: 5078abdb 9eb63bdd
Author: Aliaksey Kandratsenka (aka Aliaksei Kandratsenka)
<alkondratenko@gmail.com>
Date:	Sat Sep 26 09:43:50 2015 -0700

    Merge pull request #717 from myrsloik/master

    Use correct mangled new and delete symbols on windows x64

commit 9eb63bddfb7a8a7b086bb3daceeeaa2e3b1d8f67
Author: Fredrik Mellbin <fredrik.mellbin@gmail.com>
Date:	Thu Sep 24 19:57:26 2015 +0200

    Use correct mangled new and delete symbols on windows x64

M	src/windows/patch_functions.cc

commit 5078abdb331e63d7a216994f186eb736861f8df7
Author: fdeweerdt <fdeweerdt@cloudmark.com>
Date:	Tue Aug 18 09:27:39 2015 -0700

    Don't discard curl options if timeout is not defined.

    Editing the options passed to curl via 'my @URL_FETCHER = ("curl",
    "-s");' (in particular to add a -k to ignore self signed certs) fails
    for some invocations of curl. In FetchDynamicProfile, 'my @fetcher =
    AddFetchTimeout($fetch_timeout, @URL_FETCHER);' ends up being just
    'curl' if timeout is not defined.

    This happens because AddFetchTimeout doesn't retrieve all the
    arguments
    from the caller.

    [alk@tut.by: updated commit message]
    Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>

M	src/pprof

commit 54505f1d50c2d1f4676f5e87090b64a117fd980e
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Aug 2 19:28:03 2015 -0700

    help clang with inlining important fast-path functions

    Clang's recent focus on code size doesn't help us in malloc fast-path
    because somehow clang completely ignores inline directives.

    In order to help clang generate code that was actually intended by
    original authors, we're adding always_inline attribute to key
    fast-path functions.

    Clang also guessed likely branch "wrong" in couple places. Which is
    now addressed by UNLIKELY declarations there.

M	src/tcmalloc.cc
M	src/thread_cache.h

commit 73c0c8c61b84e268bafd961bf304b2e4d296142f
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Aug 2 19:09:02 2015 -0700

    moved do_mallor_or_cpp_alloc in better place

M	src/tcmalloc.cc

commit 41aca070e85258d9d47b0ac47f5eddece8bf45ba
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Aug 2 10:53:32 2015 -0700

    always set errno to ENOMEM on OOM condition and in single place

    While standards do not require us to set errno to ENOMEM in certain
    places (like posix_memalign), existing code may sometimes set it
    (i.e. because mmap or sbrk couldn't get memory from kernel)
    anyways. And from my reading of glibc, it's malloc is doing more or
    less same by just always setting ENOMEM on OOM condition.

    This commit also eliminates some functions (XXX_no_errno) that are not
    needed anymore.

M	src/debugallocation.cc
M	src/page_heap.cc
M	src/tcmalloc.cc

commit c4493874cd3b662d2778f3b79a3096ae61569b67
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Aug 1 22:20:15 2015 -0700

    deal with OOM handling in one place and prior to returning result

    This commit removes 4 (four!) duplicates of C++ OOM handling. And
    introduces one helper for that.

    Other change is that malloc doesn't have to check tc_new_mode anymore
    until it _actually_ deals with OOM condition. Which shaves off couple
    instructions from fast-path.

M	src/debugallocation.cc
M	src/tcmalloc.cc

commit 09448a8fe977eaa083340c2504caac8820832179
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Aug 2 18:11:04 2015 -0700

    added tcmalloc_unittest path with TCMALLOC_HEAP_LIMIT_MB=512

    I.e. so that we can exercise "voluntary" OOM conditions better.

M	src/tests/tcmalloc_unittest.sh

commit 73fb7c7eb37e488bab8298be4110e30d83af2184
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Aug 2 01:47:55 2015 -0700

    added test on errno = ENOMEM on out of memory

M	src/tests/tcmalloc_unittest.cc

commit eb725ff26371dfb5ae2523802c6abe75833cacef
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Aug 1 20:54:39 2015 -0700

    unbreak heap-profiler-unittest on gcc 5

    gcc 5 has got nice new optimization (-fipa-icf) which merges identical
    functions into one. And that causes heap-profiler_unittest to fail
    since it expects to see both Allocate and Allocate2 in heap
    profiles. And smart GCC detects that they are same function and makes
    one function out of two and thus breaks this test.

    New code simply adds (disabled) logging calls to make those functions
    non-identical.

M	src/tests/heap-profiler_unittest.cc

commit 53833298f3822b2b8b78c9dc85160d65d78a6857
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Aug 1 19:46:34 2015 -0700

    unbreak heap_checker_unittest on gcc 5

    GCC 5 ended up too smart and optimized out assignment of allocated
    block to global variable. Which caused test to fail since it triggered
    unexpected "leak".

M	src/tests/heap-checker_unittest.cc

commit 024bae96ce8e1591993fc0da191ce0a92d609481
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Aug 1 17:41:42 2015 -0700

    dropped support for PREANSINEW define which nobody needs anymore

M	src/debugallocation.cc
M	src/tcmalloc.cc

commit 64e0133901a20f83c41adb36748fd19d21228515
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun May 3 12:55:47 2015 -0700

    added trivial malloc fast-path benchmark

    While this is not good representation of real-world production malloc
    behavior, it is representative of length (instruction-wise and well as
    cycle-wise) of fast-path. So this is better than nothing.

M	.gitignore
M	Makefile.am
A	benchmark/malloc_bench.cc

commit e1d1311cfb6312cd44e086c879f3e95cbfa0eb9d
Author: Tom Conerly <tomconerly@gmail.com>
Date:	Mon Jul 27 11:35:29 2015 -0700

    issue-699: Free list on error paths

M	src/heap-profile-table.cc

commit b5b79860fd2b8e1a9b0573e93f942695f2992b59
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Aug 1 11:24:56 2015 -0700

    issue-702: correctly declare arg-less functions in profiler.h

    This is patch by user mitchblank.

    From his words:

    The problem is pretty simple.  Ancient C code allowed declarations
    without argument prototypes, i.e.

      int foo();

    For compatibility this is still accepted.  If you want to declare a
    function with zero prototypes the correct way to do it is:

       int foo(void);

    C++ also accepts this syntax, but it's not needed there.

    Normally compilers still accept the old-style entries, but with
    sufficient warning flags gcc will complain about them.  It is good for
    header files to have the explicit "void" argument so all compilers are
    kept happy.

    I'm attaching a simple patch to add the "void" parameter to that file.
    I haven't checked if other headers have the same problem (I'm just
    using the profiler at the moment)

    <end of quote>

    In fact "int foo()" means "foo accepts any args" and we really want
    "foo has no args". For which int foo (void) is right declaration.

M	src/gperftools/profiler.h

commit 7df7f14c949d89d9c3f5c7c339bbdda81fb8abc7
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jun 13 21:35:06 2015 -0700

    issue-693: enable futex usage on arm

    This patch was contributed by user spotrh.

M	src/base/linux_syscall_support.h
M	src/base/spinlock_linux-inl.h

commit cb998e56d763cfe901cf30a692d4cfd4f85259ae
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jun 13 21:28:28 2015 -0700

    issue-693: convert sys_futex to it's 6-arg form

    Because sys_futex actually takes 6 args in more recent kernels (even
    though last two args are unused for FUTEX_{WAKE,WAIT}.

    This is patch contributed by user spotrh.

M	src/base/linux_syscall_support.h

commit 36066b8df4bc516ade5209a1f60bd84d6448b531
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jun 27 21:15:30 2015 -0700

    issue-695: implementated TCMALLOC_TRACE_FILE variable

    This is contributed by Paolo Bonzini.

    This commit adds TCMALLOC_TRACE_FILE environment variable, which if
    defined overrides location of malloc trace file.

M	src/debugallocation.cc

commit c4069d2d37b67296d675c2d1de42a46dc6d43efc
Author: Brian Silverman <bsilver16384@gmail.com>
Date:	Tue Jun 16 16:56:48 2015 -0700

    Add empty virtual destructor to class with virtual methods.

    Clang 3.5 has a warning about deleting objects with virtual methods
    through non-virtual destructors which was triggered. I'm not sure
    whether this actually creates any undefined or otherwise incorrect
    behavior, but it seems like a good thing to fix regardless.

    Example compiler warning:
    third_party/gperftools/src/tests/profile-handler_unittest.cc:282:5:
    error:
      delete called on '(anonymous namespace)::BusyThread' that has
      virtual
      functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
	delete busy_worker_;
	^

M	src/tests/profile-handler_unittest.cc

commit 019362fefcdca39a46d1a831ed46266c24b9a273
Author: Patrick LoPresti <lopresti@gmail.com>
Date:	Mon May 25 11:56:51 2015 -0700

    Add support for CPUPROFILE_TIMER_SIGNAL environment variable.

    Which both enables per-thread timers and allows the signal number for
    the timer to be selected.

    [alk@tut.by: reformatted commit message for subject line length]
    Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>

M	src/profile-handler.cc
M	src/tests/profile-handler_unittest.cc

commit 81d8d2a9e7f941a2051781fd0fe62c683c32f1ef
Author: Milton Chiang <milton.chiang@mediatek.com>
Date:	Wed May 13 21:53:05 2015 +0800

    Add "ARMv8-A" to the supporting list of ARM architecture.

M	src/base/arm_instruction_set_select.h

commit 64d1a86cb8da245c982d470a7dfdd635197e6e5e
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat May 9 15:38:12 2015 -0700

    include time.h for struct timespec on Visual Studio 2015

    This patch was submitted by user wmamrak.

M	src/windows/port.h

commit 7013b219970a329d1db58fbd7fa7c907bec8dbba
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat May 9 12:48:11 2015 -0700

    hook mi_force_{un,}lock on OSX instead of pthread_atfork

    This is patch by Anton Samokhvalov.

    Apparently it helps with locking around forking on OSX.

M	src/libc_override_osx.h
M	src/static_vars.cc

commit f25f8e0bf2d361f852929848d79d7ba54586c352
Author: Angus Gratton <gus@projectgus.com>
Date:	Mon May 4 08:18:43 2015 +1000

    Clarify that only tcmalloc_minimal is supported on Windows.

M	INSTALL
M	README_windows.txt

commit 772a686c45455893708178d3b59b1d3b571015aa
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun May 3 13:15:16 2015 -0700

    issue-683: fix compile error in clang with -m32 and 64-bit off_t

M	src/malloc_hook_mmap_linux.h

commit 0a3bafd645764250732f3c0627534142568f6f1f
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Apr 11 10:35:53 2015 -0700

    fix typo in PrintAvailability code

    This is patch contributed by user ssubotin.

M	src/windows/nm-pdb.c

commit 6ce10a2a05f13803061538d5c77e89695de59be4
Author: Matt Cross <mat.cross@gmail.com>
Date:	Thu Mar 26 16:13:56 2015 -0400

    Add support for printing collapsed stacks for generating flame graphs.

M	src/pprof

commit 2c1a165fa56a6f8dff8fa2662ceda971ad676ead
Author: Matt Cross <matt.cross@gmail.com>
Date:	Thu Mar 26 12:10:23 2015 -0400

    Add support for reading debug symbols automatically on systems
    where shared libraries with debug symbols are installed at
    "/usr/lib/debug/<originalpath>.debug", such as RHEL and CentOS.

M	src/pprof

commit 2e654956287043a30aeaec20e5c19650358af618
Author: Jonathan Lambrechts <jonathan@aljl.eu>
Date:	Fri Feb 13 18:52:21 2015 +0100

    callgrind : handle inlined functions

M	src/pprof

commit 90d7408d381cf2ad68ce4974cbccd51ed5222ca3
Author: Jonathan Lambrechts <jonathan@aljl.eu>
Date:	Fri Feb 13 18:51:33 2015 +0100

    pprof : callgrind : fix unknown files

M	src/pprof

commit aa963a24ae7a74b095a631ea6a86cd071c453911
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Mon Feb 9 08:35:03 2015 -0800

    issue-672: fixed date of news entry of gperftools 2.4 release

    It is 2015 and not 2014. Spotted and reported by Armin Rigo.

M	NEWS

commit c66aeabdbacbfd3aff7a6633f34526ca32642f67
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jan 10 14:35:54 2015 -0800

    fixed default value of HEAP_PROFILER_TIME_INTERVAL in .html doc

M	doc/heapprofile.html

commit 689e4a5bb4b2a8afecb85e83b8e4f294f80b6124
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jan 10 12:26:51 2015 -0800

    bumped version to 2.4

M	NEWS
M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 3f5f1bba0c2cb4862c38b0c9050f1cede8a5c344
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Dec 28 18:18:27 2014 -0800

    bumped version to 2.4rc

M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit c4dfdebc796c2e802db686a7eea483f3d31edbcf
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Dec 28 17:53:02 2014 -0800

    updated NEWS for gperftools 2.4rc

M	NEWS

commit 0096be5f6f0bb2a01438ee78b7bb6158ffa5a1fb
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Dec 20 17:17:41 2014 -0800

    pprof: allow disabling auto-removal of "constant 2nd frame"

    "constand 2nd frame" feature is supposed to detect and workaround
    incorrect cpu profile stack captures where parts of or whole cpu
    profiling signal handler frames are not skipped.

    I've seen programs where this feature incorrectly removes non-signal
    frames.

    Plus it actually hides bugs in stacktrace capturing which we want be
    able to spot.

    There is now --no-auto-signal-frm option for disabling it.

M	src/pprof

commit 4859d8020579cd8db8b1f8bc6af382104b38f96f
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Dec 20 19:56:13 2014 -0800

    cpuprofiler: drop correct number of signal handler frames

    We actually have 3 and not 2 of them.

M	src/profiler.cc

commit 812ab1ee7e4365e6a9568834c7e8f4aef10018fb
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Dec 20 19:53:12 2014 -0800

    pprof: eliminate duplicate top frames if dropping signal frames

    In cpu profiles that had parts of signal handler we could have
    situation like that:

    * PC
    * signal handler frame
    * PC

    Specifically when capturing stacktraces via libunwind.

    For such stacktraces pprof used to draw self-cycle in functions
    confusing everybody. Given that me might have a number of such
    profiles in the wild it makes sense to treat that duplicate PC issue.

M	src/pprof

commit e6e78315e4761ad121a5eeb4fdffe3571d81ac17
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Dec 20 19:04:43 2014 -0800

    cpuprofiler: better explain deduplication of top stacktrace entry

M	src/profiler.cc

commit 24b8ec28464712bc124af5655ebf877fb3f79032
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Dec 20 17:10:38 2014 -0800

    cpuprofiler: disable capturing stacktrace from signal's ucontext

    This was reported to cause problems due to libunwind occasionally
    returning top level pc that is 1 smaller than real pc which causes
    problems.

M	src/stacktrace_libunwind-inl.h

commit 83588de7204124c8d60703f169c2f3af8aa0ce5f
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Dec 20 17:04:10 2014 -0800

    pprof: added support for dumping stacks in --text mode

    Which is very useful for diagnosing stack capturing and processing
    bugs.

M	src/pprof

commit 2f29c9b06220ce6ad75d5ab2b98e9f63ade79eea
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Dec 20 17:03:36 2014 -0800

    pprof: made --show-addresses work

M	src/pprof

commit b8b027d09a53dd6292d2f7c45aec40198628a808
Author: Raphael Moreira Zinsly <rzinsly@linux.vnet.ibm.com>
Date:	Tue Dec 23 10:55:22 2014 -0200

    Make PPC64 use 64K of internal page size for tcmalloc by default

    This patch set the default tcmalloc internal page size to 64K when
    built on PPC.

M	configure.ac

commit 3f55d874be8812aef9f0f567048188584962b4c1
Author: Raphael Moreira Zinsly <rzinsly@linux.vnet.ibm.com>
Date:	Tue Dec 23 10:29:49 2014 -0200

    New configure flags to set the alignment and page size of tcmalloc

    Added two new configure flags, --with-tcmalloc-pagesize and
    --with-tcmalloc-alignment, in order to set the tcmalloc internal page
    size and tcmalloc allocation alignment without the need of a compiler
    directive and to make the choice of the page size independent of the
    allocation alignment.

M	INSTALL
M	configure.ac
M	src/common.h

commit 1035d5c18f64d114ac790b92a96f3b3a1a301eb9
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Dec 21 19:52:34 2014 -0800

    start building malloc_extension_c_test even with static linking

    Comment in Makefile.am stating that it doesn't work with static
    linking is not accurate anymore.

M	Makefile.am

commit d570a6391cf4c5a5570e22ada5cf0b324c7b8dfd
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Dec 21 19:33:25 2014 -0800

    unbreak malloc_extension_c_test on clang

    Looks like even force_malloc trick was not enough to force clang to
    actually call malloc. I'm now calling tc_malloc directly to prevent
    that smartness.

M	src/tests/malloc_extension_c_test.c

commit 4ace8dbbe2e04da1029a539c72b90dee1724c33f
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Dec 21 18:49:47 2014 -0800

    added subdir-objects automake options

    This is suggested by automake itself regarding future-compat.

M	.gitignore
M	Makefile.am

commit f72e37c3f99d942dd648e392abc65f294aa94fa8
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Dec 21 18:27:03 2014 -0800

    fixed C++ comment warning in malloc_extension_c.h from C compiler

M	src/gperftools/malloc_extension_c.h

commit f94ff0cc0943c7b7bb9390f9d83a57c9d9e11fd0
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Nov 9 14:41:36 2014 -0800

    made AtomicOps_x86CPUFeatureStruct hidden

    So that access to has_sse2 is faster under -fPIC.

M	src/base/atomicops-internals-x86.h

commit 987a724c23df4b29eb457e96bb5c1bbab15dc90e
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Nov 9 14:20:20 2014 -0800

    dropped atopmicops workaround for irrelevant Opteron locking bug

    It's not cheap at all when done in this way (i.e. without runtime
    patching) and apparently useless.

    It looks like Linux kernel never got this workaround at all. See
    bugzilla ticket: https://bugzilla.kernel.org/show_bug.cgi?id=11305

    And I see no traces of this workaround in glibc either.

    On the other hand, opensolaris folks apparently still have it (or
    something similar, based on comments on linux bugzilla) in their code:
    https://github.com/illumos/illumos-gate/blob/32842aabdc7c6f8f0c6140a256cf42cf5404fefb/usr/src/uts/i86pc/os/mp_startup.c#L1136

    And affected CPUs (if any) are from year 2008 (that's 6 years now).

    Plus even if somebody still uses those cpus (which is unlikely), they
    won't have working kernel and glibc anyways.

M	src/base/atomicops-internals-x86.cc
M	src/base/atomicops-internals-x86.h

commit 7da5bd014d77ddaf694054b1e3ae0a3ef92ab384
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Dec 20 21:18:07 2014 -0800

    enabled aggressive decommit by default

    TCMALLOC_AGGRESSIVE_DECOMMIT=f is one way to disable it and
    SetNumericProperty is another.

M	src/static_vars.cc
M	src/tests/tcmalloc_unittest.sh

commit 51b0ad55b3267caff6cd2d25815bfb913179b526
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Nov 9 17:36:49 2014 -0800

    added basic unit test for singular malloc hooks

M	src/tests/malloc_extension_c_test.c

commit bce72dda078d2cb3e9745077f9903e642a966131
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Nov 9 17:12:05 2014 -0800

    inform compiler that tcmalloc allocation sampling is unlikely

    Now compiler generates slightly better code which produces jump-less
    code for common case of not sampling allocations.

M	src/tcmalloc.cc

commit 4f051fddcd7af53e1607b6a4866ffa461a0033ef
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Mar 15 13:18:28 2014 -0700

    eliminated CheckIfKernelSupportsTLS

    We don't care about pre-2.6.0 kernels anymore. So we can assume that
    if compile time check worked, then at runtime it'll work.

M	src/tcmalloc.cc
M	src/thread_cache.cc
M	src/thread_cache.h
M	src/windows/port.cc

commit 81291ac3992ec7500faf2026c72feb80c9634dc3
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Nov 9 16:48:45 2014 -0800

    set elf visibility to hidden for malloc hooks

    To speed up access to them under -fPIC.

M	src/malloc_hook-inl.h

commit 105c004d0c84137f32cc71b8d3f7899fcc8c2e72
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Nov 9 14:40:30 2014 -0800

    introduced ATTRIBUTE_VISIBILITY_HIDDEN

    So that we can disable elf symbol interposition for certain
    perf-sensitive symbols.

M	src/base/basictypes.h

commit 6a6c49e1f53df3d00a0661a86090534146ce686c
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Nov 9 16:23:06 2014 -0800

    replaced separate singular malloc hooks with faster HookList

    Specifically, we can now check in one place if hooks are set at all,
    instead of two places. Which makes fast path shorter.

M	src/malloc_hook-inl.h
M	src/malloc_hook.cc

commit ba0441785bae214566008e69adcd915800d9dbb3
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Nov 9 16:13:54 2014 -0800

    removed extra barriers in malloc hooks mutation methods

    Because those are already done under spinlock and read-only and
    lockless Traverse is already tolerant to slight inconsistencies.

M	src/malloc_hook.cc

commit 890f34c77ef79dfe1e00ce36a3f91aee7fe759b7
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Nov 9 16:08:59 2014 -0800

    introduced support for deprecated singular hooks into HookList

    So that we can later drop separate singular hooks.

M	src/malloc_hook-inl.h
M	src/malloc_hook.cc

commit 81ed7dff11de915b12c4111d403e52c81c786f82
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Dec 7 13:33:40 2014 -0800

    returned date of 2.3rc in NEWS back

M	NEWS

commit 463a619408219fff8955d47a71de1aab31ebd129
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Dec 7 12:53:35 2014 -0800

    bumped version to 2.3

M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 76e8138e12567e2ee1f638e8fcffadc2ca1de83d
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Dec 7 12:46:49 2014 -0800

    updated NEWS for gperftools 2.3

M	NEWS

commit 8eb4ed785ae883acb6425fd980e9d3e6bdcab89d
Author: Raphael Moreira Zinsly <rzinsly@linux.vnet.ibm.com>
Date:	Thu Nov 27 14:11:09 2014 -0200

    Added option to disable libunwind linking

    This patch adds a configure option to enable or disable libunwind
    linking.
    The patch also disables libunwind on ppc by default.

M	configure.ac

commit 3b94031d21fac39ce5be820f4f8bc37626ed4c08
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Thu Nov 27 11:48:08 2014 -0800

    compile libunwind unwinder only of __thread is supported

    This fixed build on certain OSX that I have access to.

M	src/stacktrace.cc

commit 3ace468202a8647a16134d0bb42fa497fa3ec0d4
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Thu Nov 27 10:43:11 2014 -0800

    issue-658: correctly close socketpair fds when socketpair fails

    This applies patch by glider.

M	src/symbolize.cc

commit e7d5e512b068fb76f5eeed7985bebd9c0d14e226
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Nov 2 20:02:12 2014 -0800

    bumped version to 2.3rc

M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 1d44d378513a8782c058833118b664f38214810b
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Nov 2 19:38:29 2014 -0800

    updated NEWS for gperftools 2.3rc

M	NEWS

commit 1108d83cf4a1692fce3b736e16d3e98c33329177
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Sep 7 13:09:14 2014 -0700

    implemented cpu-profiling mode that profiles threads separately

    Default mode of operation of cpu profiler uses itimer and
    SIGPROF. This timer is by definition per-process and no spec defines
    which thread is going to receive SIGPROF. And it provides correct
    profiles only if we assume that probability of picking threads will be
    proportional to cpu time spent by threads.

    It is easy to see, that recent Linux (at least on common SMP hardware)
    doesn't satisfy that assumption. Quite big skews of SIGPROF ticks
    between threads is visible. I.e. I could see as big as 70%/20%
    division instead of 50%/50% for pair of cpu-hog threads. (And I do see
    it become 50/50 with new mode)

    Fortunately POSIX provides mechanism to track per-thread cpu time via
    posix timers facility. And even more fortunately, Linux also provides
    mechanism to deliver timer ticks to specific threads.

    Interestingly, it looks like FreeBSD also has very similar facility
    and seems to suffer from same skew.  But due to difference in a way
    how threads are identified, I haven't bothered to try to support this
    mode on FreeBSD.

    This commit implements new profiling mode where every thread creates
    posix timer which tracks thread's cpu time. Threads also also set up
    signal delivery to itself on overflows of that timer.

    This new mode requires every thread to be registered in cpu
    profiler. Existing ProfilerRegisterThread function is used for that.

    Because registering threads requires application support (or suitable
    LD_PRELOAD-able wrapper for thread creation API), new mode is off by
    default. And it has to be manually activated by setting environment
    variable CPUPROFILE_PER_THREAD_TIMERS.

    New mode also requires librt symbols to be available. Which we do not
    link to due to librt's dependency on libpthread.  Which we avoid due
    to perf impact of bringing in libpthread to otherwise single-threaded
    programs. So it has to be either already loaded by profiling program
    or LD_PRELOAD-ed.

M	Makefile.am
M	configure.ac
M	src/maybe_threads.cc
M	src/maybe_threads.h
M	src/profile-handler.cc
M	src/tests/profile-handler_unittest.cc

commit 714bd93e42535e759716324a90fbb395506499d2
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Aug 10 20:28:11 2014 -0700

    drop workaround for too old redhat 7

    Note that this is _not_ RHEL7 but original redhat 7 from early 2000s.

M	configure.ac

commit 8de46e66fcd2577758ab297b553bb0f468d8a97a
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Aug 10 19:38:07 2014 -0700

    don't add leaf function twice to profile under libunwind

M	src/profiler.cc

commit 2e5ee0488996437aeef2028ad95d969b56abcad1
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Aug 10 12:19:45 2014 -0700

    pprof: indicate if using remote profile

    Missing profile file is common source of confusion. So a bit more
    clarify is useful.

M	src/pprof

commit 6efe96b41c9531f68f806faa0464445f884178ce
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Oct 11 15:09:18 2014 -0700

    issue-493: correctly detect __ARM_ARCH_6ZK__ for MemoryBarrier

    Which should fix issue reported by user pedronavf

M	src/base/atomicops-internals-arm-v6plus.h

commit 8e97626378d5c4151a480dea1964e25969c9311d
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Nov 2 11:28:30 2014 -0800

    issue-655: use safe getenv for aggressive decommit mode flag

    Because otherwise we risk deadlock due to too early use of getenv on
    windows.

M	src/base/commandlineflags.h
M	src/static_vars.cc

commit 8c3dc52fcfe02412a529769a22cbc75388a5d368
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Oct 18 16:35:57 2014 -0700

    issue-654: [pprof] handle split text segments

    This applies patch by user simonb.

    Quoting:

    Relocation packing splits a single executable load segment into two.
    Before:

      LOAD	     0x000000 0x00000000 0x00000000 0x2034d28 0x2034d28
      R E 0x1000
      LOAD	     0x2035888 0x02036888 0x02036888 0x182d38 0x1a67d0
      RW  0x1000

    After:
      LOAD	     0x000000 0x00000000 0x00000000 0x14648 0x14648 R
      E 0x1000
      LOAD	     0x014648 0x0020c648 0x0020c648 0x1e286e0 0x1e286e0
      R E 0x1000
      ...
      LOAD	     0x1e3d888 0x02036888 0x02036888 0x182d38 0x1a67d0
      RW  0x1000

    The .text section is in the second LOAD, and this is not at
    offset/address zero.  The result is that this library shows up in
    /proc/self/maps as multiple executable entries, for example (note:
    this trace is not from the library dissected above, but rather from an
    earlier version of it):

      73b0c000-73b21000 r-xp 00000000 b3:19 786460
      /data/.../libchrome.2160.0.so
      73b21000-73d12000 ---p 00000000 00:00 0
      73d12000-75a90000 r-xp 00014000 b3:19 786460
      /data/.../libchrome.2160.0.so
      75a90000-75c0d000 rw-p 01d91000 b3:19 786460
      /data/.../libchrome.2160.0.so

    When parsing this, pprof needs to merge the two r-xp entries above
    into a single entry, otherwise the addresses it prints are incorrect.

    The following fix against 2.2.1 was sufficient to make pprof --text
    print the correct output.  Untested with other pprof options.

M	src/pprof

commit 44c61ce6c4c713b194330641f400bbf64fd2abec
Author: Ricardo M. Correia <rcorreia@wizy.org>
Date:	Wed Oct 8 04:39:14 2014 +0200

    Fix parsing /proc/pid/maps dump in CPU profile data file

    When trying to use pprof on my machine, the symbols of my program were
    not being recognized.

    It turned out that pprof, when calculating the offset of the text list
    of mapped objects (the last section of the CPU profile data file), was
    assuming that the slot size was always 4 bytes, even on 64-bit
    machines.

    This led to ParseLibraries() reading a lot of garbage data at the
    beginning of the map, and consequently the regex was failing to
    match on
    the first line of the real (non-garbage) map.

M	src/pprof

commit 2a28ef24ddf8013bff59914b10902f1fb07bf9b2
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Sep 6 16:49:24 2014 -0700

    Added remaining memory allocated info to 'Exiting' dump message

    This applies patch by user yurivict.

M	src/heap-profiler.cc

commit bbf346a856d4a7c5c2ab0e65d7cccf3dc1f23f13
Author: Adam McNeeney <adam@meliorist.co.uk>
Date:	Fri Aug 22 10:01:24 2014 +0100

    Cope with new addr2line outputs for DWARF4

    Copes with ? for line number (converts to 0).
    Copes with (discriminator <num>) suffixes to file/linenum (removes).

    Change-Id: I96207165e4852c71d3512157864f12d101cdf44a

M	src/pprof

commit b08d760958dbacc8da822f7f3db76d58c95a114d
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Aug 23 14:45:08 2014 -0700

    issue-641: Added --show_addresses option

    This applies patch by user yurivict.

M	src/pprof

commit 3c326d9f200a527bba45f1d222aa6aff20d42bc3
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Tue Aug 19 08:14:08 2014 -0700

    issue-644: fix possible out-of-bounds access in GetenvBeforeMain

    As suggested by user Ivan L.

M	src/base/sysinfo.cc

commit f1ae3c446f34f6e8ac901caba281051ec269e4df
Author: jiakai <jia.kai66@gmail.com>
Date:	Mon Jul 28 11:28:03 2014 -0700

    Add an option to allow disabling stripping template argument in pprof

M	src/pprof

commit a12890df2519d254d1c497b8e0a65bb8fc9e1ab2
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jul 26 14:12:42 2014 -0700

    issue-635: allow whitespace in libraries paths

    This applies change suggested by user mich...@sebesbefut.com

M	src/pprof

commit d5e36788d8bc626403dc020a86213cfc740ee73d
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jul 26 13:59:22 2014 -0700

    issue-636: fix prof/web command on Windows/MinGW

    This applies patch sent by user chaishushan.

M	src/pprof

commit 4b788656bb9c480640d917d27d8a94a5eae436f5
Author: Michael Pasieka <michael.pasieka@highwinds.com>
Date:	Sun Jul 13 18:09:35 2014 -0700

    added option to display stack traces in output for heap checker

    Quoting from email:

    I had the same question as William posted to stack overflow back on
    Dec 9,2013: How to display symbols in stack trace of google-perftools
    heap profiler (*).	I dug into the source and realized the
    functionality was not there but could be added. I am hoping that
    someone else will find this useful/helpful.

    The patch I created will not attach so I am adding below.

    Enjoy!

    -- Michael

    *
    http://stackoverflow.com/questions/20476918/how-to-display-symbols-in-stack-trace-of-google-perftools-heap-profiler

M	src/pprof

commit 3abb5cb819bafe7004363f041c194afd827cb053
Author: WenSheng He <zhsBernie@gmail.com>
Date:	Mon Jun 30 14:39:13 2014 +0800

    issue-630: The env var should be "CPUPROFILE"

    To enable cpu profile, the env var should be "CPUPROFILE", not
    "PROFILE"
    actually.

    Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>

M	src/gperftools/profiler.h

commit fd81ec257883c6d5486e4568c955dff86dbed5c8
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jun 28 13:05:12 2014 -0700

    issue-631: fixed miscompilation of debugallocation without mmap

    This applies patch sent by user iamxujian.

    Clearly, when I updated debugallocation to fix issue-464 I've broken
    no-mmap path by forgetting closing brace.

M	src/debugallocation.cc

commit 2e90b6fd72fec33aedf547d1977bdee6b77645b9
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jun 21 15:45:44 2014 -0700

    bumped version to 2.2.1

M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 577b940cc0a0ef207115d071a81127f93f02c083
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jun 21 15:39:46 2014 -0700

    updated NEWS for 2.2.1

M	NEWS

commit 2fe4b329ad4d3f242b0bd73295375e70be79187b
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun May 18 10:59:06 2014 -0700

    applied chromium patch fixing some build issue on android

    This applies patch from: https://codereview.chromium.org/284843002/ by
    jungjik.lee@samsung.com

M	src/libc_override_gcc_and_weak.h

commit c009398e3239be8ae6185ad83685caf7458c49bb
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Jun 15 12:53:14 2014 -0700

    issue-628:package missing stacktrace_powerpc-{linux,darwin}-inl.h

    This headers were missing in .tar.gz because they were not mentioned
    anywhere in Makefile.am.

M	Makefile.am

commit 81d99f21ede78ab8d5fec15d0055416ac1b581f3
Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Date:	Tue Jun 3 07:50:56 2014 -0500

    issue-626: Fix SetupAggressiveDecommit initialization

    This patch fixes the SetupAggressiveDecommit initialization to
    run after
    pageheap_ creation.  Current code it not enforcing it, since
    InitStaticVars is being called outside the static_vars module.

M	src/static_vars.cc

commit 846b775dfadb77901202ae7ddbac30ad1de7df01
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat May 3 17:50:11 2014 -0700

    bumped version to 2.2

M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit cdf8e1e932016bd5f1737e1f10bce07226228d15
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat May 3 17:44:38 2014 -0700

    updated NEWS for 2.2

M	NEWS

commit 0807476f56b9dc024375467be0f0b07fae3ee7fb
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat May 3 17:38:14 2014 -0700

    issue-620: windows dll patching: fixed delete of old stub code

    After code for issue 359 was applied PreamblePatcher started using
    it's own code to manage memory of stub code fragments. It's not using
    new[] anymore. And it automatically frees stub code memory on
    Unpatch.

    Clearly, author of that code forgot to remote that no more needed
    delete call. With that delete call we end up trying to free memory
    that was never allocated with any of known allocators and crash.

M	src/windows/patch_functions.cc

commit facd7e83b341e069875b7c1cd7774cf671d932b5
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Apr 19 11:08:51 2014 -0700

    bumped version to 2.1.90

M	configure.ac
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit e8e082af25952e9bd10c37c3f028c91fcbbd1cbd
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Apr 19 13:16:02 2014 -0700

    updated NEWS for 2.2rc

M	NEWS

commit 802fdb739e7aabcb15443030842a2137a5559338
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Apr 12 18:07:11 2014 -0700

    issue-610: use TCMallocGetenvSafe from inside malloc

    Instead of plain getenv. So that windows getenv implementation that
    may call malloc does not deadlock.

M	src/common.cc
M	src/thread_cache.cc

commit 6b83516adefcf0806825f6dba2eb2232615d744b
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Apr 12 18:06:32 2014 -0700

    issue-610: made dynamic_annotations.c use TCMallocGetenvSafe

M	src/base/dynamic_annotations.c

commit aeef3b44201ba663c19ca1c97792b724346e84a9
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Apr 12 18:05:59 2014 -0700

    issue-610: introduced TCMallocGetenvSafe

    This is version of GetenvBeforeMain that's available to C code.

M	Makefile.am
M	src/base/sysinfo.cc
A	src/getenv_safe.h

commit 125e5ed58b72550e6b74e0139c2c3dd5e262a6ec
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Apr 12 12:38:19 2014 -0700

    don't enable backtrace() for stacktrace capturing by default

    Because we don't yet have a treatment for deadlocks that are caused by
    (recursive) use of malloc from within that facility.

M	configure.ac

commit 75b65f96b0bb44d70e0a461a03a3f8c928390283
Author: Raphael Moreira Zinsly <rzinsly@linux.vnet.ibm.com>
Date:	Tue Apr 8 17:45:13 2014 -0300

    PowerPC: stacktrace function refactor and fixes

    This patch fixes the stacktrace creating when the function is
    interrupted by a signal. For Linux, the vDSO signal trampoline
    symbol is
    compared against LR from stack backchain and handled different in that
    case (since the signal trampoline layout a different stack frame).

    Because of this extensive change the PowerPC stacktrace code has now
    been refactored to split in Linux and Darwin specific codes.

M	src/stacktrace.cc
A	src/stacktrace_powerpc-darwin-inl.h
A	src/stacktrace_powerpc-linux-inl.h

commit 8deea9ff2a3e6eef8af64ea0727d6cb840c13769
Author: Raphael Moreira Zinsly <rzinsly@linux.vnet.ibm.com>
Date:	Tue Apr 8 17:44:08 2014 -0300

    VDSOsupport cleanup

    This patch cleans up unused VDSO getcpu racking from VDSOsupport
    class,
    since the code is not used anywhere in gperftools and symbol name
    is not
    architecture independent.

M	src/base/vdso_support.cc
M	src/base/vdso_support.h

commit 9d5e1a0aa5a6ad1c7af18b65016fa5c9b7fccb47
Author: Raphael Moreira Zinsly <rzinsly@linux.vnet.ibm.com>
Date:	Tue Apr 8 17:43:11 2014 -0300

    Fixed issues with heap checker on PPC64 LE.

    Fixed the wrapper for the syscall sys_clone and the test for heap
    checker on PPC64 LE. Both use the ODP structure, which is only
    used on BE architectures.

M	src/base/linux_syscall_support.h
M	src/tests/heap-checker_unittest.cc

commit 49237462c8ae7920332c1034c623e57b50a6109c
Author: Raphael Moreira Zinsly <rzinsly@linux.vnet.ibm.com>
Date:	Tue Apr 8 17:42:17 2014 -0300

    Fixed the way that pprof packed profile data in BE.

    pprof was writing profile data in a way that only works for
    little-endian
    files, this patch verifies if the system is big-endian and writes
    packed
    data correctly.

M	src/pprof

commit a1ae66ef110bd87ff97903e86fd84c745db24646
Author: Raphael Moreira Zinsly <rzinsly@linux.vnet.ibm.com>
Date:	Tue Apr 8 17:37:29 2014 -0300

    Fixed the use of addr2line to discover the separator symbol.

    In systems where addr2line has a version greater than 2.22 pprof fails
    in discover the separator symbol (_fini). This patch identifies if
    addr2line can find the symbol, otherwise pprof uses objdump to recover
    a address that addr2line's newer versions can recognize as the
    separator
    function.

M	src/pprof

commit 8b2e5ee831760a94bc407dc255a522eda242b04f
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Tue Apr 1 22:29:11 2014 -0700

    issue-614: use tc_memalign in ReallocAfterMemalloc test

    Because some OSes lack plain memalign. And we really need to test our
    implementation which is always available via tc_malloc.

M	configure.ac
M	src/tests/debugallocation_test.cc

commit 0399af1019240e2d9127a588ddc8e31ff4656df0
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Tue Apr 1 21:30:27 2014 -0700

    added tc_malloc_skip_new_handler

    This is port of corresponding chromium change at:
    https://codereview.chromium.org/55333002/

    Basic idea is that sometimes apps that use tc_set_new_mode in order to
    have C++ out-of-memory handler catch OOMs in malloc, need to invoke
    usual malloc that returns 0 on OOM.

    That new API is exactly for that. It'll always return NULL on OOM even
    if tc_new_mode is set to true.

M	src/debugallocation.cc
M	src/gperftools/tcmalloc.h.in
M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc
M	src/windows/gperftools/tcmalloc.h
M	src/windows/gperftools/tcmalloc.h.in

commit d77317247e1c8de1ea4e0419318b26f636e64431
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Mar 1 12:13:02 2014 -0800

    issue deprecation warning on use of google/ headers

M	src/google/heap-checker.h
M	src/google/heap-profiler.h
M	src/google/malloc_extension.h
M	src/google/malloc_extension_c.h
M	src/google/malloc_hook.h
M	src/google/malloc_hook_c.h
M	src/google/profiler.h
M	src/google/stacktrace.h
M	src/google/tcmalloc.h

commit e7297f0c14b0c09ec52707ed7477c7aee43a1882
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Mar 15 12:44:11 2014 -0700

    speed up MallocExtension::instance()

    It was reported that pthread_once is expensive, especially on ppc.

    In new implementation in hot path instead of doing potentially
    expensive atomic read with barrier, we do just plain read.

    It's slightly less robust than older implementation, but it should be
    faster.

    New code is making assumption that programs do not spawn threads
    before main() is called. And therefore all variables & modules are
    initialized before threads are created. Which looks like pretty safe
    assumption. With that assumption, doing plain read is safe, because
    current_instance is initialized as part of module init and therefore
    before threads are spawned.

    This patch is based on feedback of Adhemerval Zanella.

M	src/malloc_extension.cc

commit df227794361f9725eca7420d95e65ab997c79716
Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Date:	Sun Feb 2 19:32:37 2014 -0200

    Fix getpc_test for PPC64v2 LE

    This patch fix the PPC64 guard to get the function address for
    PPC64v2.
    It removes the use of an indirection (to get the ODP text address),
    since the PPCv2 does not have function descriptors.

M	src/tests/getpc_test.cc

commit e3deb42d5dcdeeb8a340d03f207f2488ef3fb2eb
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Mar 29 13:28:01 2014 -0700

    issue-613: remove friend declaration from HeapLeakChecker

    This applies patch by davide.italiano@10gen.com:

    heap-checker.h contains the following friend declaration of main:
    friend int main(int, char**).

    C99 allows another declaration of main, i.e. int main(int, char**,
    char**), and if code uses it and includes the heap-checker header,
    this might result in a conflict, e.g.

    error: declaration of C function 'int main(int, char**, char**)'
    conflicts with
     int main(int argc, char* argv[], char** envp)

    Actually the comment above the friend declaration of main() mentions
    that this is required to get the unittest working and for other
    internal usage, but I'm not completely sure if this is true as long as
    I'm able to build and run the unittest removing the declaration.

M	src/gperftools/heap-checker.h

commit 1a28754656bd6dfc1297d62a4c5811b0a5f03180
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Mar 29 13:23:00 2014 -0700

    issue-612: added missing include for std::min

    Otherwise Visual Studio 2013 rightfully complains

M	src/windows/system-alloc.cc

commit fe566314267fc3f67c5068d0afe004b1733ff19a
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Mar 1 12:38:08 2014 -0800

    unbreak building with libunwind

    Caused by premature merging of previous patch.

    When we're searching for backtrace in libexecinfo and don't find it,
    we should not reset UNWIND_LIBS to empty value.

    Correct fix is to first search for backtrace in libunwind and then to
    search for it in libexecinfo.

M	configure.ac

commit 91179961490a601f2c611889b3075e995fa5437e
Author: Thomas Klausner <wiz@NetBSD.org>
Date:	Tue Feb 25 21:41:28 2014 +0100

    Look for backtrace() in libexecinfo as well.

    Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>

M	configure.ac

commit fd3379a213b2a99a72a7544b6208056daf15d0d2
Author: Thomas Klausner <wiz@NetBSD.org>
Date:	Tue Feb 25 21:41:07 2014 +0100

    Fix unportable test(1) construct.

    Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>

M	configure.ac

commit a7223c2a14431ffd783117c55f84a2c84423d313
Author: Thomas Klausner <wiz@NetBSD.org>
Date:	Tue Feb 25 21:40:11 2014 +0100

    Test for memalign in configure.ac. Disable a test that uses memalign
    if it is not found.

    Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>

M	configure.ac
M	src/tests/debugallocation_test.cc

commit bd9665ebbe1aca5e1ba993de4214e64ee8bbe43a
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Feb 22 13:46:42 2014 -0800

    issue-489: added tcmalloc test pass with chromium-style decommit

M	src/tests/tcmalloc_unittest.sh

commit 6a000d6dd5968ac29f8fc43f7dfc736338e11781
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Feb 22 13:46:11 2014 -0800

    issue-489: added unit test for chromium-style decommitting

M	src/tests/tcmalloc_unittest.cc

commit eb2d69014cb3e163f2ab3ed676fbedf5c3a97caa
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Feb 22 13:10:08 2014 -0800

    issue-489: made tests pass on enabled chromium-style decommitting

M	src/tests/tcmalloc_unittest.cc

commit a92fc76f72318f7a46e91d9ef6dd24f2bcf44802
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Feb 22 13:09:05 2014 -0800

    issue-489: enable chromium-style decommitting on env variable

    TCMALLOC_AGGRESSIVE_DECOMMIT=t now enables aggressive decommitting by
    default.

M	src/static_vars.cc

commit c7ce50cd04ea08bd20d4ea4b2924e6a4451d2565
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 9 17:35:24 2013 -0800

    issue-489: implemented API to set chromium-style de-committing

    Chrome has code to decommit (release back to OS) every span that's
    released. I don't want to make it default, but indeed some
    applications may want to enable this mode.

    The code itself is taken from 2-way-merging of code from Chromium
    fork.

M	src/page_heap.cc
M	src/page_heap.h
M	src/tcmalloc.cc

commit 1d707cd4a3dfe6f238a530f945291acfd5995042
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 9 17:19:34 2013 -0800

    issue-489: fixed warning

    Computing certain values just for ASSERT raises just warning from
    compiler because if NDEBUG is set those are dead code.

M	src/page_heap.cc

commit 91bffcbad60d84beebe8b69a1db6c85c10fc04bf
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 9 16:22:35 2013 -0800

    issue-489: ported chromium windows decommitting code

    I tried to do it cleanly with merges but chromium code has so many
    relevant commits (with frequent reverts) that makes it near
    impossible.

    Simpler 2-way emerge-files worked in the end. I've removed chromium's
    aggressive 'always decommit' behavior which I want to make optional
    later.

    Majority of this work is the following commits (but there are more,
    particularly against port.cc):

    commit 9c92338c5f8770c440799d24387c3733fd6d826b
    Author: jamesr@chromium.org
    <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
    Date:   Tue Oct 6 18:33:31 2009 +0000

	Tracks the amount of committed vs uncommitted memory in tcmalloc's
	page heap's freelists

	Keeps track of the number of reserved but not committed pages in
	the freelist and uses that to calculate a waste metric, which is
	the ratio of committed pages vs pages used by the application.
	This is exposed in the GetStats() call (which is used for
	about:tcmalloc) and through GetNumericalProperty() in Malloc

	BUG=none
	TEST=open about:tcmalloc and monitor 'WASTE' columns while using
	the browser

	Review URL: http://codereview.chromium.org/251065

	git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28133
	0039d316-1c4b-4281-b951-d872f2087c98

    commit aef4f1be3eec2059a7c6e2c106050a5f3d6ccf12
    Author: jar@chromium.org
    <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
    Date:   Mon Oct 5 17:58:51 2009 +0000

	Revert further back to MBelshe's baseline forking TCMalloc

	This changes to decommitting in all paths through the
	page_heap delete method (which adds spans to the free lists).

	r=mbelshe,jamesr
	Review URL: http://codereview.chromium.org/255067

	git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28006
	0039d316-1c4b-4281-b951-d872f2087c98

    commit e94afbb913b95f512cb8745a2729c73f82b15ae7
    Author: jar@chromium.org
    <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
    Date:   Thu Oct 1 00:25:41 2009 +0000

	Rollback Scavenge implemetation and rely on existing functionality
	to free

	This is a landing of a patch provided by antonm.  See:
	http://codereview.chromium.org/235022

	Also included change to browser_about_handler.cc to fix build,
	and I set
	TCMALLOC_RELEASE_RATE to 1.0 on line 40 of page_heap.cc (I
	think this
	was an inadvertent rollback element).

	r=antonm
	Review URL: http://codereview.chromium.org/257009

	git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27692
	0039d316-1c4b-4281-b951-d872f2087c98

    commit c585892d2c42a47c95d06a684a6685156c545403
    Author: mbelshe@google.com
    <mbelshe@google.com@0039d316-1c4b-4281-b951-d872f2087c98>
    Date:   Wed Sep 2 17:33:23 2009 +0000

	Landing for Anton Muhin's tcmalloc patch:
	http://codereview.chromium.org/180021/show

	Restore decommitting in IncrementalScavenge and draft Scavenge
	method to
	be invoked periodically
	to reduce amount of committed pages.

	BUG=none
	TEST=none

	Review URL: http://codereview.chromium.org/187008

	git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25188
	0039d316-1c4b-4281-b951-d872f2087c98

    commit 14239acc00731e94736ac62e80fc6b17c31ea131
    Author: mbelshe@google.com
    <mbelshe@google.com@0039d316-1c4b-4281-b951-d872f2087c98>
    Date:   Wed Aug 12 02:17:14 2009 +0000

	Major changes to the Chrome allocator.

	Changes include:
	* Fix tcmalloc to release memory.  Implements the
	TCMalloc_SystemCommit()
	  mechanism so that tcmalloc can implement SystemRelease()
	  and later
	  reuse that memory.
	* Enable dynamic switching of allocators based on an environment
	variable.
	  Users can now switch between tcmalloc, jemalloc, the default
	  windows
	  heap, and the windows low-fragmentation heap.
	* Implements set_new_mode() across all allocators so that we
	can be sure
	  that out-of-memory conditions are handled safely.

	BUG=18345
	TEST=none; plan to get all unit tests running through these
	allocators.

	Review URL: http://codereview.chromium.org/165275

	git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23140
	0039d316-1c4b-4281-b951-d872f2087c98

M	src/page_heap.cc
M	src/page_heap.h
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/windows/system-alloc.cc

commit 7be2edfe7f09e7e8c123e958742815784a718880
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Feb 22 12:14:11 2014 -0800

    issue-525: only warn if --enable-frame-pointers are not given

    This fixes issue when frame pointers warning is given even if frame
    pointers are enabled

M	configure.ac

commit 7e24b6ca2aa2c15a24504c02fad09f47e1ece8b5
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Feb 16 17:04:26 2014 -0800

    added debugallocation check for offset_ corruption

    It was previously possible (although unlikely) for damaged offset_
    field
    to lead FromRawPointer implementation into different MallocBlock.

    As is usual with any damage, it's best to catch errors at earliest
    possible time.

M	src/debugallocation.cc

commit 6dcd73f1eb5ce2cc44ab918c53cd42c472f44c52
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Feb 16 16:59:43 2014 -0800

    avoid crash in DebugMallocImplementation::GetOwnership

    It was possible that if GetOwnership is passed pointer to memory not
    owned by tcmalloc, it would crash. Or incorrectly return
    owned. I.e. due to indirection in FromRawPointer.

    New implementation prevents that, but introduces different bug
    instead. New implementation incorrectly returns "not owned" for
    memalign chunks with big alignment. But in can be argued that passing
    pointer returned from different memalign implementation did not work
    previously too.

M	src/debugallocation.cc

commit 33280ffb71fc0e4eb75e455d53824c344d011e35
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Feb 16 16:25:14 2014 -0800

    removed unused "using" in malloc_extension_test.cc

M	src/tests/malloc_extension_test.cc

commit 066e524d6e33e9e3364bb6819f98a02b347c14ef
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Feb 16 14:58:35 2014 -0800

    eliminated useless BASE_XXX defines in debugallocation.cc

    And closed TODO entry for that.

M	src/debugallocation.cc

commit a2375a1f360c0451ec2a2b852ea26a71fb731727
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Feb 16 14:49:57 2014 -0800

    issue-464: correctly handle realloc after memalign in debugalloc

    debug memalign is creating special header block to allow us to find
    real allocated block. And previous implementation of data copying
    wasn't taking that into account and was copying that "alignment
    header" into newly allocated block.

M	src/debugallocation.cc
M	src/tests/debugallocation_test.cc

commit d31f522f0e1b0e87ee3d5941e331ba745a0f5c23
Author: Riku Voipio <riku.voipio@linaro.org>
Date:	Mon Feb 3 16:31:32 2014 +0200

    Add aarch64 defines

    With atomic operations and system call support in place, enable
    with __aarch64__ defines Aarch64 support in other files around
    the google-perftools header files. After these, google-perftools
    testsuite (make check) results:

    8 of 46 tests failed.

    FAIL: sampling_test.sh
    FAIL: heap-profiler_unittest.sh
    FAIL: heap-checker_unittest.sh
    FAIL: heap-checker-death_unittest.sh
    FAIL: sampling_debug_test.sh
    FAIL: heap-profiler_debug_unittest.sh
    FAIL: heap-checker_debug_unittest.sh
    FAIL: profiler_unittest.sh

    While it indicates that there is still work to do, This is still
    better than the result I get on ARMv7:

    12 of 46 tests failed.

M	src/base/basictypes.h
M	src/base/cycleclock.h
M	src/base/linuxthreads.h
M	src/malloc_hook_mmap_linux.h

commit 15b5e7a35c83ce5d38fa523f2c291a2ac30bb8ed
Author: Riku Voipio <riku.voipio@linaro.org>
Date:	Tue Feb 4 11:09:47 2014 +0200

    linux_syscall_support.h: add aarch64 support

    Aarch64 support for linux_syscall_support.h. Since Aarch64 is a brand
    new architecture, none of the legacy system calls are neccesarily
    available. Thus some changes were neccesary affect other architectures
    as well:

    1) use getdents64 where available and else getdents (for ppc64)

    2) other legacy system calls, pipe, waitpid and open replaced
    by pipe2,
       wait4 and openat where available.

    3) use fstatat if stat is not available.

    The aarch64 system call interface follows the Aarch64 calling
    convention
    (regs x0-x5 for arguments and x8 system call number - return in x0).
    Clone implementation is adapted from glibc.

    v2: step back in getdents removal due to ppc64

M	src/base/linux_syscall_support.h
M	src/base/linuxthreads.cc

commit b5e584dfdc22328f713488311707f502aa77ff5f
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Feb 16 19:41:37 2014 -0800

    issue-525: warn user on lack of libunwind but don't fail

    Because we now have access to other backtrace capturing method(s) at
    runtime.

M	configure.ac

commit 90ba15d1f2f6704af96f62ce1e8c5f214697bab1
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Feb 8 15:30:36 2014 -0800

    issue-604: implement runtime-selectable stacktrace capturing

    We're now building all supported stacktrace capturing methods. And
    there's now a way to select at runtime which method is used.

M	Makefile.am
M	configure.ac
M	src/stacktrace.cc
M	src/stacktrace_arm-inl.h
D	src/stacktrace_config.h
M	src/stacktrace_generic-inl.h
C055	src/stacktrace.cc	src/stacktrace_impl_setup-inl.h
M	src/stacktrace_instrument-inl.h
M	src/stacktrace_libunwind-inl.h
M	src/stacktrace_powerpc-inl.h
M	src/stacktrace_win32-inl.h
M	src/stacktrace_x86-inl.h

commit 33f6781d64af88ea23698a084188d8c2ab94ecb1
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Feb 16 18:47:04 2014 -0800

    issue-605: avoid compilation errors if pthread_key_t is pointer

    Which seems to be the case on later cygwin

M	src/maybe_threads.cc

commit 100f310088aa30d347cd5d07bbe9d9f80cf2c2d0
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Feb 16 18:27:14 2014 -0800

    unbreak make dist

M	Makefile.am

commit a0ed9ace534372fbeee9bfefd6e26b922f0a1835
Author: Wang YanQing <udknight@gmail.com>
Date:	Tue Feb 11 23:20:31 2014 +0800

    debugallocation: fix bus error on mipsel-linux platform when enable
    use_malloc_page_fence

    Fix below "BUS ERROR" issue:

    a0 hold start address of memory block allocated by DebugAllocate
    in debugallocation.cc

    gdb) info registers
	      zero	 at	  v0	   v1	    a0	     a1
	      a2       a3
     R0   00000000 10008700 772f62a0 00084d40 766dcfef 7fb5f420 00000000
     004b4dd8
		t0	 t1	  t2	   t3	    t4	     t5
		t6	 t7
     R8   7713c1a0 7712dbc0 ffffffff 777bc000 f0000000 00000001 00000000
     00403d10
		s0	 s1	  s2	   s3	    s4	     s5
		s6	 s7
     R16  7fb5ff1c 00401b9c 77050020 7fb5fb18 00000000 004cb008 004ca748
     ffffffff
		t8	 t9	  k0	   k1	    gp	     sp
		s8	 ra
     R24  0000002f 771adcd4 00000000 00000000 771f4140 7fb5f408 7fb5f430
     771add6c
		sr	 lo	  hi	  bad	 cause	     pc
	  00008713 0000e9fe 00000334 766dcff7 00800010 771adcfc
	       fsr	fir
	  00000004 00000000

    (gdb) disassemble
    Dump of assembler code for function _ZNSs4_Rep10_M_disposeERKSaIcE:
       0x771adcd4 <+0>:     lui     gp,0x4
       0x771adcd8 <+4>:     addiu   gp,gp,25708
       0x771adcdc <+8>:     addu    gp,gp,t9
       0x771adce0 <+12>:    lw	    v0,-28696(gp)
       0x771adce4 <+16>:    beq     a0,v0,0x771add38
       <_ZNSs4_Rep10_M_disposeERKSaIcE+100>
       0x771adce8 <+20>:    nop
       0x771adcec <+24>:    lw	    v0,-30356(gp)
       0x771adcf0 <+28>:    beqzl   v0,0x771add1c
       <_ZNSs4_Rep10_M_disposeERKSaIcE+72>
       0x771adcf4 <+32>:    lw	    v0,8(a0)
       0x771adcf8 <+36>:    sync
    => 0x771adcfc <+40>:    ll	    v0,8(a0)
       0x771add00 <+44>:    addiu   at,v0,-1
       0x771add04 <+48>:    sc	    at,8(a0)
       0x771add08 <+52>:    beqz    at,0x771adcfc
       <_ZNSs4_Rep10_M_disposeERKSaIcE+40>
       0x771add0c <+56>:    nop
       0x771add10 <+60>:    sync
       0x771add14 <+64>:    b	    0x771add24
       <_ZNSs4_Rep10_M_disposeERKSaIcE+80>
       0x771add18 <+68>:    nop
       0x771add1c <+72>:    addiu   v1,v0,-1
       0x771add20 <+76>:    sw	    v1,8(a0)
       0x771add24 <+80>:    bgtz    v0,0x771add38
       <_ZNSs4_Rep10_M_disposeERKSaIcE+100>
       0x771add28 <+84>:    nop
       0x771add2c <+88>:    lw	    t9,-27072(gp)
       0x771add30 <+92>:    jr	    t9
       0x771add34 <+96>:    nop
       0x771add38 <+100>:   jr	    ra
       0x771add3c <+104>:   nop
    End of assembler dump.

    ll instruction manual:
    Load Linked:
    Loads the destination register with the contents of the word
    that is at the memory location. This instruction implicity performs
    a SYNC operation; all loads and stores to shared memory fetched prior
    to the ll must access memory before the ll, and loads and stores to
    shared memory fetched subsequent to the ll must access memory
    after ll.
    Load Linked and Store Conditional can be use to automatically update
    memory locations. *This instruction is not valid in the mips1
    architectures.
    The machine signals an address exception when the effective address
    is not
    divisible by four.

    Signed-off-by: Wang YanQing <udknight@gmail.com>
    Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>
    [alk@tut.by: removed addition of unused #include]

M	src/debugallocation.cc

commit 38bfc7a1c2f9ba718bcaa9b82fdcd9c429c8f85f
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Feb 8 14:10:11 2014 -0800

    removed irrelevant comment

M	src/base/atomicops.h

commit d03c467a3446088b229f0106d9f47fab6d7c52a4
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Feb 8 13:35:16 2014 -0800

    allow asking for gcc atomics on all platforms

    I.e. by doing ./configure CPPFLAGS=-DTCMALLOC_PREFER_GCC_ATOMICS

M	src/base/atomicops.h

commit 6de1f38b687e3974d67adad45217f35a2c376049
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Feb 8 13:43:04 2014 -0800

    chmod -x configure.ac

    Because configure.ac is not really executable. And because it
    interferes with tab completion of configure.

M	configure.ac

commit e8fe990fa06e337a07059c55adc6ed2a0888de95
Author: Riku Voipio <riku.voipio@linaro.org>
Date:	Wed Jan 29 10:54:29 2014 +0200

    implement atomics with gcc intrinsics

    Gcc after 4.7 provides atomic builtins[1]. Use these instead of adding
    yet-another-assembly port for Aarch64 (64-bit ARM). This patch enables
    succesfully building and running atomicops unittest on Aarch64.

    This patch enables using gcc builtins only when no assembly
    implementation is provided. But as a quick check, atomicops_unittest
    and rest of testsuite passes with atomicops-internals-gcc also
    ARMv7 and X86_64 if the ifdef in atomicops is adjusted to prefer
    the generic implementation.

    [1] http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html

A	src/base/atomicops-internals-gcc.h
M	src/base/atomicops.h

commit fa4b1c401da1ac381d4d72172825231b3d5518d9
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Jan 19 22:37:44 2014 -0800

    issue-599: fixing FreeBSD issue with sbrk

    Applied patch by yurivict.

    It was wrong assembly specifically for FreeBSD in sbrk overriding
    code.

M	src/malloc_hook_mmap_freebsd.h

commit 71a239e559c9ea2300ad0511f8de7077db5369c3
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Jan 19 12:30:53 2014 -0800

    check debug_malloc_implementation_space via COMPILE_ASSERT

    Because we can and because compile-time is always better.

M	src/debugallocation.cc

commit 54568e32fc2321e0adef15fb1eab4e3a7f8ce5b0
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Sep 21 18:14:00 2013 -0700

    issue-565: don't pollute global namespace with thread lister API

    Instead those functions that are original taken from google's "base"
    code now have prefix TCMalloc_. So that they don't conflict with other
    google's libraries having same functions.

M	src/base/linuxthreads.cc
M	src/base/thread_lister.c
M	src/base/thread_lister.h
M	src/gperftools/heap-checker.h
M	src/heap-checker.cc
M	src/memory_region_map.h

commit 64bc1baa1f4723d73ba40cd730b72896bd45a810
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat May 18 17:11:58 2013 -0700

    issue-{66,547}: use signal's ucontext when unwinding backtrace

    In issue-66 (and readme) it is pointed out that sometimes there are
    some issues grabbing backtrace across signal handler boundary.

    This code attempts to fix it by grabbing backtrace from signal's
    ucontext which clearly does not include signal handler boundary.

    We're using "feature" of libunwind that for some important platforms
    libunwind's context is same as libc's ucontext_t which is given to us
    as part of calling signal handler.

M	src/stacktrace_libunwind-inl.h

commit 185bf3fcc36f8cb3839abdfe652f615bfb5306d1
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jan 11 12:46:02 2014 -0800

    issue-581: avoid destructing DebugMallocImplementation

    Because otherwise destructor might be invoked well before other places
    that might touch malloc extension instance.

    We're using placement new to initialize it and pass pointer to
    MallocExtension::Register. Which ensures that destructor for it is
    never run.

    Based on idea suggested by Andrew C. Morrow.

M	src/debugallocation.cc

commit 48a0d131c1aa088c6075e9c4676ee430f81d8600
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jan 18 13:27:41 2014 -0800

    issue-548: pass -fno-builtin to compiler for unittests

    Because clang doesn't understand -fno-builtin-malloc and friends. And
    otherwise new/delete pairs get optimized away causing our tests that
    expect hooks to be called to fail.

M	Makefile.am

commit e98371540d63dde53ce4b7c772d78c1da6b59ea8
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jan 11 16:28:15 2014 -0800

    eliminated gcc warning on __thread configure snippet

    gcc complained about lack of matching ' in code that force-fails
    __thread detection on mingw

M	configure.ac

commit 60b12171bc73117c0108b847bb310af095cd2778
Author: xiaoyur347 <xiaoyur347@gmail.com>
Date:	Sat Jan 11 11:39:53 2014 +0800

    fix GCC version detect for platforms other than X86/X64

    [alk@tut.by: commented why we're disabling __thread not just for x86]

    Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>

M	configure.ac

commit 764d304222f0c3057ab99babd06246016cbfa505
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Jan 5 12:49:23 2014 -0800

    don't re-define strtoq for VS2013

    Which is part of previous change that wasn't correctly applied.

M	src/windows/port.h

commit 1fc768864d506466b45f3f38474912bcb69bb772
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jan 4 18:28:36 2014 -0800

    fix compilation under VS 2013

    This is essentially a copy of corresponding chromium change from:
    https://codereview.chromium.org/27017003

M	src/windows/port.cc
M	src/windows/port.h

commit 4c274b9e20132230e62117ff583ebadd83081d90
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jan 4 18:28:36 2014 -0800

    issue-592: handle recent mingw with C++11 threads

    Somehow it's c++ headers (like string) define pthread symbols without
    even us asking for. That breaks old assumption that pthread symbols
    are not available on windows.

    In order to fix that we detect this condition in configure.ac and
    avoid defining windows versions of pthread symbols.

M	Makefile.am
M	configure.ac
M	src/windows/mingw.h
M	src/windows/port.h

commit 1458ee2239e0791567e69112931dc17eb0456cf8
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jan 4 13:54:24 2014 -0800

    issue-596: removed unused AtomicIncrement operation

    There's no need for us to attempt to maintain Google's atomic ops code
    in era of C++11.

M	src/base/atomicops-internals-arm-generic.h
M	src/base/atomicops-internals-arm-v6plus.h
M	src/base/atomicops-internals-linuxppc.h
M	src/base/atomicops-internals-macosx.h
M	src/base/atomicops-internals-mips.h
M	src/base/atomicops-internals-windows.h
M	src/base/atomicops-internals-x86.h
M	src/base/atomicops.h
M	src/tests/atomicops_unittest.cc

commit 6630b24e27c6a62727fe73aaae21dcc7364b8fee
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jan 4 13:07:35 2014 -0800

    Removed unused AtomicPtr::CompareAndSwap

M	src/malloc_hook-inl.h
M	src/malloc_hook.cc

commit a15115271cc475509b17bf7fecbe1ac4966baf2e
Author: xiaoyur347 <xiaoyur347@gmail.com>
Date:	Fri Dec 20 09:41:08 2013 +0800

    add "-finstrument-functions" support for MIPS uclibc.
    should configure with CXXFLAGS="-finstrument-functions"

M	src/stacktrace_config.h
A	src/stacktrace_instrument-inl.h

commit 7c4888515ed93347d4793fc066cd6048e519a197
Author: xiaoyur347 <xiaoyur347@gmail.com>
Date:	Fri Dec 20 09:02:49 2013 +0800

    add uclibc support
    * some variables defined with "char *" should be modified to
    "const char*"
    * For uclibc, glibc's "void malloc_stats(void)" should be "void
    malloc_stats(FILE *)", is commented now.
    * For uclibc, __sbrk is with attribute "hidden", so we use mmap
    allocator for uclibc.

M	Makefile.am
M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/libc_override_gcc_and_weak.h
M	src/malloc_hook_mmap_linux.h
M	src/memory_region_map.cc
M	src/symbolize.cc
M	src/system-alloc.cc

commit 7bd193bca97d93b43ff6c824bc9f39227329312f
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Dec 14 12:03:02 2013 -0800

    issue-586: detect main executable even if PIE is active

    Previous logic of detecting main program addresses is to assume that
    main executable is at least addressess. With PIE (active by default on
    Ubuntus) it doesn't work.

    In order to deal with that, we're attempting to find main executable
    mapping in /proc/[pid]/maps. And old logic is preserved too just in
    case.

M	src/pprof

commit f8a2163b5131050765ea877e2573f4930e41f630
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Fri Dec 6 12:23:48 2013 -0800

    Added AM_MAINTAINER_MODE to disable Makefile rebuild rules

    Some people might want to check-in unpacked result on make dist into
    git. But because git doesn't preserve timestamps it would cause those
    automatic "auto-retool" rules to trigger. Sometimes even causing build
    breakage if system's autotools version don't match autotools version
    used for make dist.

    Easiest way around this problem is to simply disable those unnecessary
    "maintainer" rebuild rules. Especially given that source is always
    freely available via git and therefore there should be no reason to
    regenerate any of autotools products in 'make dist'-produced sources.

M	configure.ac

commit 925bbaea76b91bd307634908cfd6902f99804544
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 16 14:01:38 2013 -0800

    actually check result of CheckAddressBits

    Previously call to CheckAddressBits was made but nothing was done to
    it's result.

    I've also make sure that actual size is used in checks and in bumping
    up of TCMalloc_SystemTaken.

M	src/system-alloc.cc

commit f216317a879e972ceafe77e61b2d66fd5f29922e
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 16 15:05:45 2013 -0800

    use AC_PROG_LIBTOOL to summon libtool

    So that older autotools of rhel 5 can be used

M	configure.ac

commit d4f4c5a3104e30b14b1090241fb4d0fac6a0e357
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 16 14:00:19 2013 -0800

    assert that ClassSize(0) is 0 instead >=0

    Because it's return value being size_t cannot be negative
    anyways. This fixes clang warning

M	src/common.cc

commit 946203d60e50488a0b9e0fe003c13662873fa17d
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 16 13:35:59 2013 -0800

    assert key size in way that is clearer to gcc

    Both new and old asserts are checking same condition, however new
    assert helps gcc see that out of bounds access is not possible in
    root_ array.

M	src/pagemap.h

commit bf2d7bd3f8c1fb6a0843e55e652e37f4ce0fae3d
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 16 13:31:34 2013 -0800

    fixed gcc warning

    We've recently changed old_signal_handler to by integer, so comparing
    it with NULL is not good idea.

M	src/heap-profiler.cc

commit dd5f979c5e6e7e3127835a659a5af89ac21597d5
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 16 13:31:08 2013 -0800

    fixed -Wreorder warning in HeapProfileTable constructor

M	src/heap-profile-table.cc

commit e4ea98f147a7602979f70be022de068b04e68060
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 9 14:19:16 2013 -0800

    issue-585: fixed use of TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES

    In order to apply that, we're now doing explicit EnvToInt64 call as
    part of initializing thread cache module.

M	src/thread_cache.cc

commit e0102230ec7e8304155798bf7f03d6abcd5991ee
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 16 12:03:35 2013 -0800

    issue-588: Fix profiler_unittest.cc fork()

    As suggested by Hannes Weisbach.

    Call heap-profiler_unittest with the arguments 1 -2 (one iteration, 2
    fork()ed children).

    Instead of running the test, the program crashes with a std::bad_alloc
    exception.	This is caused by unconditionally passing the
    number-of-threads-argument (0 or positive for threads, negative for
    fork()s) in RunManyThreads(), thus allocating an array of pthread_t of
    size -2.  Depending on the sign of the thread number argument either
    RunManyThreads or fork() should be called.

M	src/tests/profiler_unittest.cc

commit 2bf83af65664a2badbaebdb722ad498e8b38548c
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 16 11:35:32 2013 -0800

    issue-587: fix typos in unit test scripts

    As proposed by Hannes Weisbach.

    The argument will be garbled because of a misplaced brace, for example
    (heap-checker_unittest.sh):

    HEAP_CHECKER="${1:-$BINDIR}/heap-checker_unittest"
    which should be:
    HEAP_CHECKER="${1:-$BINDIR/heap-checker_unittest}"

    This unit test is used to check the binaries heap-checker_unittest and
    heap-checker_debug_unittest.  With the typo, the executable
    heap-checker_debug_unittest is never actually run.

M	src/tests/heap-checker-death_unittest.sh
M	src/tests/heap-checker_unittest.sh
M	src/tests/heap-profiler_unittest.sh
M	src/tests/tcmalloc_unittest.sh

commit b3b19269783cf1ed163bdb447cef9ca11b10851c
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Nov 9 12:28:55 2013 -0800

    issue-584: added license note to files without explicit license

    As suggested at corresponding chromium issue discussion it's seemingly
    sufficient to simply refer to project-wide LICENSE file.

M	src/tests/page_heap_test.cc
M	src/tests/profile-handler_unittest.cc
M	src/tests/raw_printer_test.cc
M	src/tests/stack_trace_table_test.cc
M	src/windows/config.h

commit 7be35fb0d844c73f5c5301f62074294df5acbc5c
Author: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Date:	Thu Oct 10 14:26:47 2013 +0900

    central_freelist: change fetch ordering

    When we fetch objects from the span for thread cache, we make
    reverse-ordered list against original list on the span and suppy
    this list
    to thread cache. This algorithm has trouble with newly created span.
    Newly created span has ascending ordered objects list. Since thread
    cache
    will get reverse-ordered list against it, user gets objects as
    descending order.

    Following example shows what occurs in this algorithm.

    new span: object list: 1 -> 2 -> 3 -> 4 -> 5 -> ...
    fetch N items: N -> N-1 -> N-2 -> ... -> 2 -> 1 -> NULL
    thread cache: N -> N-1 -> N-2 -> ... -> 2 -> 1 -> NULL

    user's 1st malloc: N
    user's 2nd malloc: N-1
    ...
    user's Nth malloc: 1

    In general, access memory with ascending order is better than
    descending
    order in terms of the performance. So this patch fix this situation.

    I run below program to measure performance effect.

	    #define MALLOC_SIZE (512)
	    #define CACHE_SIZE (64)
	    #define TOUCH_SIZE (512 / CACHE_SIZE)

	    array = malloc(sizeof(void *) * count);

	    for (i = 0; i < 1; i++) {
		    for (j = 0; j < count; j++) {
			    x = malloc(MALLOC_SIZE);
			    array[j] = x;
		    }
	    }

	    repeat = 10;
	    for (i = 0; i < repeat; i++) {
		    for (j = 0; j < count; j++) {
			    x = array[j];
			    for (k = 0; k < TOUCH_SIZE; k++) {
				    *(x + (k * CACHE_SIZE)) = '1';
			    }
		    }
	    }

    LD_PRELOAD=libtcmalloc_minimal.so perf stat -r 10 ./a.out 1000000

    **** Before ****
     Performance counter stats for './a.out 1000000' (10 runs):

	   2.715161299 seconds time elapsed
	   ( +-  0.07% )

    **** After ****
     Performance counter stats for './a.out 1000000' (10 runs):

	   2.259366428 seconds time elapsed
	   ( +-  0.08% )

M	src/central_freelist.cc

commit 7315b45c28564afdc2699beff934a3b45457edc6
Author: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Date:	Thu Oct 10 11:46:12 2013 +0900

    central_freelist: fetch objects as much as possible during each trial

    It is better to reduce function call if possible. If we try to fetch
    objects from one span as much as possible during each function call,
    number of function call would be reduced and this would help
    performance.

M	src/central_freelist.cc
M	src/central_freelist.h

commit cc002ea19363e1ebbd7f3e809d116ab81a6862cd
Author: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Date:	Thu Oct 10 10:06:33 2013 +0900

    skip unnecessary check during double-check SizeClass intergrity

    On initialization step, tcmalloc double-checks SizeClass integrity
    with
    all possible size values, 0 to kMaxSize. This causes tremendous
    overhead
    for short-lived applications.

    For example, consider following command.
    'find -exec grep something {} \;'

    Actual work of each grep is really small, but double-check requires
    more work. To reduce this overhead, it is best to remove double-check
    entirely. But we cannot be sure the integrity without double-checking,
    so alternative is needed.

    This patch doesn't remove double-check, instead, try to skip
    unnecessary
    check based on ClassIndex() implementation. This reduce much
    overhead and
    the code has same coverage as previous double-check. Following is
    the result of this patch.

    time LD_PRELOAD=libtcmalloc_minimal.so find ./ -exec grep "SOMETHING"
    {} \;

    * Before
    real    0m3.675s
    user    0m1.000s
    sys     0m0.640s

    * This patch
    real    0m2.833s
    user    0m0.056s
    sys     0m0.220s

    * Remove double-check entirely
    real    0m2.675s
    user    0m0.072s
    sys     0m0.184s

M	src/common.cc

commit 3e9a33e8c708ccf3ec91e3a3b14e924f5f79e4a6
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Oct 26 16:54:03 2013 -0700

    issue-583: include pthread.h into static_var.cc

    Because we're doing pthread_atfork.

    Fix suggested by user named drussel.

M	src/static_vars.cc

commit db0d5730ee059d72b895fbead5237f9cb5bbf98a
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Jun 22 13:48:11 2013 -0700

    issue-579: ensure order between memory region and libunwind locks

    I.e. to prevent possible deadlock when this locks are taked by
    different threads in different order.

    This particular problem was also reported as part of issue 66.

M	src/memory_region_map.cc

commit 42ddc8d42c82ba6f5137c26b4e7f752b1a022831
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Sep 21 19:03:52 2013 -0700

    added emacs -*- mode lines for google coding style

M	src/addressmap-inl.h
M	src/base/atomicops-internals-arm-generic.h
M	src/base/atomicops-internals-arm-v6plus.h
M	src/base/atomicops-internals-linuxppc.h
M	src/base/atomicops-internals-macosx.h
M	src/base/atomicops-internals-mips.h
M	src/base/atomicops-internals-windows.h
M	src/base/atomicops-internals-x86.cc
M	src/base/atomicops-internals-x86.h
M	src/base/atomicops.h
M	src/base/basictypes.h
M	src/base/commandlineflags.h
M	src/base/cycleclock.h
M	src/base/elf_mem_image.cc
M	src/base/elf_mem_image.h
M	src/base/elfcore.h
M	src/base/googleinit.h
M	src/base/linux_syscall_support.h
M	src/base/linuxthreads.cc
M	src/base/logging.cc
M	src/base/logging.h
M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h
M	src/base/simple_mutex.h
M	src/base/spinlock.cc
M	src/base/spinlock.h
M	src/base/spinlock_internal.cc
M	src/base/spinlock_internal.h
M	src/base/spinlock_linux-inl.h
M	src/base/spinlock_posix-inl.h
M	src/base/spinlock_win32-inl.h
M	src/base/stl_allocator.h
M	src/base/synchronization_profiling.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/base/thread_lister.h
M	src/central_freelist.cc
M	src/central_freelist.h
M	src/common.cc
M	src/common.h
M	src/config_for_unittests.h
M	src/debugallocation.cc
M	src/getpc.h
M	src/gperftools/heap-checker.h
M	src/gperftools/heap-profiler.h
M	src/gperftools/malloc_extension.h
M	src/gperftools/malloc_hook.h
M	src/gperftools/profiler.h
M	src/gperftools/stacktrace.h
M	src/gperftools/tcmalloc.h.in
M	src/heap-checker-bcad.cc
M	src/heap-checker.cc
M	src/heap-profile-stats.h
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/internal_logging.h
M	src/libc_override.h
M	src/libc_override_gcc_and_weak.h
M	src/libc_override_glibc.h
M	src/libc_override_osx.h
M	src/libc_override_redefine.h
M	src/linked_list.h
M	src/malloc_extension.cc
M	src/malloc_hook-inl.h
M	src/malloc_hook.cc
M	src/malloc_hook_mmap_freebsd.h
M	src/malloc_hook_mmap_linux.h
M	src/maybe_threads.cc
M	src/maybe_threads.h
M	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/packed-cache-inl.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/page_heap_allocator.h
M	src/pagemap.h
M	src/profile-handler.cc
M	src/profile-handler.h
M	src/profiledata.cc
M	src/profiledata.h
M	src/profiler.cc
M	src/raw_printer.cc
M	src/raw_printer.h
M	src/sampler.cc
M	src/sampler.h
M	src/span.cc
M	src/span.h
M	src/stack_trace_table.cc
M	src/stack_trace_table.h
M	src/stacktrace.cc
M	src/stacktrace_arm-inl.h
M	src/stacktrace_config.h
M	src/stacktrace_generic-inl.h
M	src/stacktrace_libunwind-inl.h
M	src/stacktrace_powerpc-inl.h
M	src/stacktrace_win32-inl.h
M	src/stacktrace_x86-inl.h
M	src/static_vars.cc
M	src/static_vars.h
M	src/symbolize.cc
M	src/symbolize.h
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/tcmalloc.h
M	src/tcmalloc_guard.h
M	src/tests/addressmap_unittest.cc
M	src/tests/atomicops_unittest.cc
M	src/tests/current_allocated_bytes_test.cc
M	src/tests/debugallocation_test.cc
M	src/tests/frag_unittest.cc
M	src/tests/getpc_test.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/heap-profiler_unittest.cc
M	src/tests/low_level_alloc_unittest.cc
M	src/tests/malloc_extension_c_test.c
M	src/tests/malloc_extension_test.cc
M	src/tests/malloc_hook_test.cc
M	src/tests/markidle_unittest.cc
M	src/tests/memalign_unittest.cc
M	src/tests/packed-cache_test.cc
M	src/tests/page_heap_test.cc
M	src/tests/pagemap_unittest.cc
M	src/tests/profile-handler_unittest.cc
M	src/tests/profiledata_unittest.cc
M	src/tests/profiler_unittest.cc
M	src/tests/raw_printer_test.cc
M	src/tests/realloc_unittest.cc
M	src/tests/sampler_test.cc
M	src/tests/sampling_test.cc
M	src/tests/simple_compat_test.cc
M	src/tests/stack_trace_table_test.cc
M	src/tests/system-alloc_unittest.cc
M	src/tests/tcmalloc_large_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/testutil.cc
M	src/tests/testutil.h
M	src/tests/thread_dealloc_unittest.cc
M	src/thread_cache.cc
M	src/thread_cache.h
M	src/windows/auto_testing_hook.h
M	src/windows/get_mangled_names.cc
M	src/windows/gperftools/tcmalloc.h
M	src/windows/gperftools/tcmalloc.h.in
M	src/windows/mingw.h
M	src/windows/mini_disassembler.cc
M	src/windows/mini_disassembler.h
M	src/windows/mini_disassembler_types.h
M	src/windows/override_functions.cc
M	src/windows/port.cc
M	src/windows/port.h
M	src/windows/preamble_patcher.cc
M	src/windows/preamble_patcher.h
M	src/windows/preamble_patcher_test.cc
M	src/windows/preamble_patcher_with_stub.cc

commit 799a22624c85e8749f8bed0bfa63282b03e75bdd
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Sep 28 19:32:20 2013 -0700

    issue-575: do not use cycle count register on arm6

    Apparently not all arm6 implementations implement it in this
    particular way.

    This applies patch by Ben Avison.

M	src/base/cycleclock.h

commit 2a2d6596f8c3d62b7ec444761f4edf0c85d10d92
Author: Petr Hosek <phosek@chromium.org>
Date:	Fri Aug 23 23:58:47 2013 -0700

    Adds system-alloc_unittest Visual Studio project

M	gperftools.sln
A	vsprojects/system-alloc_unittest/system-alloc_unittest.vcproj

commit 83aed118e009b92ea88645ef1f7b842a921612c5
Author: Petr Hosek <phosek@chromium.org>
Date:	Fri Aug 23 13:53:35 2013 -0700

    issue-567: Allows for overriding system allocator on Windows

    [alk@tut.by: minor changes to make mingw build work]
    Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>

M	Makefile.am
M	src/windows/port.cc
A	src/windows/system-alloc.cc
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M	vsprojects/tmu-static/tmu-static.vcproj

commit 4ad16873a0a2d8861a0bfe8234d45e31cc70ee90
Author: Petr Hosek <phosek@chromium.org>
Date:	Sat Aug 24 14:24:47 2013 -0700

    Exports SysAllocator class to avoid .dll build errors

M	src/gperftools/malloc_extension.h

commit 326990b5c30d249c3cf4688a88fc415b05494aca
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Sep 14 14:38:53 2013 -0700

    issue-557: added support for dumping heap profile via signal

    This applies patch from Jean Lee.

    I've reformatted it to match surronding code style and changed
    validation logic a bit. I.e. we're not checking signal for range
    anymore given we're not sure what different platforms support, but
    we're checking return value of signal() for SIG_ERR instead.

M	src/heap-profiler.cc

commit cb65e49b83c84bc205203c12793f2dd00c4a7721
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Sep 14 16:45:42 2013 -0700

    issue-536: do not PrintStats if running under valgrind

    When we detect running under valgrind we do not initialize our own
    malloc. So trying to print malloc stats when asked via MALLOCSTATS
    cannot work.

    This does fix proposed by Philippe Waroquiers. In which we detect
    running under valgrind prior to checking MALLOCSTATS environment
    variable and refuse printing stats if we detect valgrind.

M	src/tcmalloc.cc

commit 6979583592df555a369a2c975f5117a1f61911af
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Mon Sep 9 07:59:25 2013 -0700

    issue-564: added atomic ops support for mips{,64}

    This merges patch contributed by Jovan Zelincevic.

    And with that patch tcmalloc build with --enable-minimal (just malloc
    replacement) appears to work (passes unit tests).

M	Makefile.am
A	src/base/atomicops-internals-mips.h
M	src/base/atomicops.h
M	src/base/basictypes.h
M	src/base/linux_syscall_support.h
M	src/stacktrace_config.h

commit 28dd85e2825af71138621a4417e6ab004631924d
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Fri Aug 30 16:57:14 2013 +0300

    implement pc from ucontext access for mips

M	m4/pc_from_ucontext.m4

commit 819a2b051f1dba9526f2338098fff6dd1700bdb6
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Thu Aug 29 19:00:31 2013 +0300

    issue-413: disable __thread usage on OSX

    Because it was found that __thread variables access is compiled into
    calls to tlv_get_addr which was found to call malloc. Because we
    actually use thread-local storage from inside malloc it leads to stack
    overflow. So we'll continue using pthreads API for that which is known
    to work on OSX.

M	configure.ac

commit 43809080931127037ce6e748f37a28ce7489387d
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Thu Aug 29 18:51:48 2013 +0300

    lowered autoconf requirement

    Autoconf 2.59 works. And most notably it will not affect our releases
    which are all prepared with newer autoconf.

M	configure.ac

commit 7a178d472737d988583bade3f0345201651cd43f
Author: Joon-Sung Um <joonsung.um@gmail.com>
Date:	Tue Aug 27 22:16:18 2013 +0900

    Update document for tcmalloc

    Update tcmalloc.html for new parameters.

     * kMaxSize = 256k
     * kNumClasses = 88
     * kPageShift = 13

    Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>

M	doc/tcmalloc.html

commit 313e08b5a1a951f710b0323b3ca4e1e8d869520e
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Aug 4 20:44:06 2013 +0300

    issue-560: Revert "issue-481: ...

    ...Replaced test mechanism for distinct address spaces with a more
    reliable mechanism"

    This reverts commit 5dd53ab6cbf9d98f2d60546835e84785a104da46 (svn
    revision 167)

    With this commit rhel 6.2 fails heap-checker-death_unittest and
    without it passes.

    Ticket refers to 2 things and both are invalid:

    * that ptrace PEEKDATA ignores data argument. I've checked kernel
      source and found it to be wrong

    * something about distinct address spaces

    And in addition to all that original ticket admits that it doesn't fix
    anything.

    It looks like, compared to original code that "fix" is not succesfully
    wait-ing on parent's ptrace request. I.e. by adding some additional
    diagnostics I'm seeing this sys_waitpid returning ECHILD.

M	src/base/linuxthreads.cc

commit 6d00cbce92c5576b4bcf07a2b5634b4dcfa14f8a
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Aug 17 15:52:53 2013 +0300

    issue-561: don't cast function pointer to void *

    Which gcc-3.4 (as shipped in rhel 4) doesn't like.

    Cast to void * was originally added to avoid issue on OSX which
    doesn't have sighandler_t.

    In that place we only need to know if it's null or not. So casting to
    intptr_t looks like simplest possible way to achieve that.

M	src/profiler.cc

commit 7d8d522d737f6c55169264b35ebe0be1f9b23efd
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sat Aug 17 15:52:22 2013 +0300

    add heap-profile-stats.h to dist .tar.gz

M	Makefile.am

commit d76cfa6d6ca5944d6300765fcb9160e889423750
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Aug 4 18:35:55 2013 +0300

    issue-502: Count m(un)map for each stacktrace in MemoryRegionMap

    ..instead of HeapProfileTable

    This upstreams chromium commit reviewed at:
    https://codereview.chromium.org/12388070

    Original and upstreaming author is: Dai MIKURUBE

    This patch fixes a bug that gperftools(TCMalloc)'s mmap profiler
    (HEAP_PROFILE_MMAP) doesn't hook some memory pages used by the
    profiler itself.

    This problem has been lived in gperftools for a long time.
    It is discussed in gperftools' issue 502.
    https://code.google.com/p/gperftools/issues/detail?id=502

    Some bugs in the mmap profiler were fixed by
    https://code.google.com/p/gperftools/issues/detail?id=383,
    but the patch in the issue 383 didn't fix the bug mentioned in
    the issue 502.

    This change reverts the previous patch and http://crrev.com/132771
    at first. Then, it modifies MemoryRegionMap to count m(un)map
    calls for each stacktrace in itself instead of merging the counts
    for each stacktrace in HeapProfileTable.

    This change also cleans up heap-profiler, heap-profile-table and
    deep-heap-profile.

    Chromium-BUG=https://code.google.com/p/chromium/issues/detail?id=181517
    Chromium-Committed:
    https://src.chromium.org/viewvc/chrome?view=rev&revision=188176

M	src/heap-checker.cc
A	src/heap-profile-stats.h
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h

commit 89b163a0883d40a612331ed8565b8ab1219fdbd0
Author: Aliaksey Kandratsenka <alk@tut.by>
Date:	Sun Aug 4 18:27:07 2013 +0300

    added .gitignore

A	.gitignore

commit 18fbc316eebea9db2d7ec41e161c0a3fbb09fa42
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Jul 31 04:02:19 2013 +0000

    Fix a C++11 error.

    This merges patch by Nico Weber.

    New clang versions complain in C++11 mode that:

    error: cannot initialize a variable of type 'void *' with an rvalue
    of type 'uintptr_t' (aka 'unsigned long')

    This same change was done for the google-internal version of
    tcmalloc too.

    Reviewed-at: https://codereview.appspot.com/12132043



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@238
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/stack_trace_table.cc

commit 674fcd94a8a0a3595f64e13762ba3a6529e09926
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Jul 30 09:14:20 2013 +0000

    bump version to 2.1



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@236
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	NEWS
M	configure.ac
M	packages/deb/changelog
M	src/windows/config.h
M	src/windows/gperftools/tcmalloc.h

commit 805a6601939edd9bca60a8911e56b217e477c75e
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Jul 30 08:30:45 2013 +0000

    issue-559: don't setup fork handler in InitStaticVars

    Because on OSX it calls malloc which leads to deadlock.

    Given that we don't really need that fork handler _that_ early, it's
    fine to change it to normal static initializer



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@235
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/static_vars.cc

commit c583a5babb54aedf6ab6e7746fd976ef2469839d
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Jul 30 08:30:19 2013 +0000

    issue-559: don't depend on sighandler_t

    Which is not available on OSX.

    I've also fixed style around this place.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@234
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/profiler.cc

commit 1af20041bf5821167e69bf905596b2d45d1d94da
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Jul 30 08:29:46 2013 +0000

    issue-559: AtomicWord xxx_AtomicExchange are all inline

    Otherwise OSX correctly complains about duplicate definitions



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@233
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/atomicops.h

commit 7a9c4e075fe2572307cddd11bc2f5c7d6b3d29ee
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Jul 26 19:36:08 2013 +0000

    issue-556: update windows PACKAGE_{VERSION,STRING}



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@232
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/windows/config.h

commit 11d46f0aac5ef941b74114412bda4747a349c60d
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Jul 26 19:35:38 2013 +0000

    issue-556: dll-export getpagesize

    Because page_heap_test needs this.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@231
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/windows/port.cc
M	src/windows/port.h

commit 6d4ad4428bb8f587d890fa5b7a76ba65dcf48dcb
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Jul 26 19:35:20 2013 +0000

    issue-556: drop malloc limit at the end of page_heap_test

    Which otherwise causes somewhat weird stack overflow on release
    windows builds.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@230
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/tests/page_heap_test.cc

commit be54c3f3ed192eabab9b075ec924d2479a956b9d
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Jul 26 19:34:54 2013 +0000

    issue-556: dll-export TCMalloc_System{Alloc,Release}

    because page_heap_test is using this stuff



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@229
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/system-alloc.h
M	src/windows/port.cc

commit e3716145cbfa1247fa37dd627b2136a061944255
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Jul 26 18:19:05 2013 +0000

    issue-552: Fix page_heap_test for system with different page size

    This is patch by Adhemerval Zanella.

    PowerPC uses 64K page size instead of 4k for x86 and x86_64. It
    makes the
    page_heap_test fails because the following test:

     static bool HaveSystemRelease =
	TCMalloc_SystemRelease(TCMalloc_SystemAlloc(kPageSize, NULL,
	0), kPageSize);

    will always fail if kPageSize is less than getpagesize() (the default
    configuration).

    The following patch fixes it by trying to allocate/deallocate
    an entire
    page instead.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@228
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/tests/page_heap_test.cc

commit f45133e75c09ca7d5e86bda2db16e30c6fa348c0
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Jul 26 18:04:03 2013 +0000

    issue-553: Fix syscall wrapper for PowerPC

    This is patch by Adhemerval Zanella.

    * src/stacktrace_powerpc-inl.h: It is just a cleanup for the
    stacktrace
      functions for PowerPC. The idea is to simplify the code.
    * src/tests/heap-checker_unittest.cc: Handles the PPC64 function
    descriptor
      correctly in malloc tracers. Different from other architecture,
      for PPC64
      the address returned in function pointers are the ODP entry, not the
      symbol address in .text segment. This leads the comparison bogus,
      since
      it will compare a ODP entry with a .text address.
    * src/heap-checker.cc: Add support for PPC in ptrace.
    * src/base/elfcore.h: Likewise.
    * src/base/linuxthreads.cc: Fix the thread creation using the clone
    wrapper.
    * src/base/linux_syscall_support.h: Various fixes for PPC32 and PPC64:
      fixes the kernel_stat[64] struct layout, and sys_clone and
      sys_socket
      implementation.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@227
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/elfcore.h
M	src/base/linux_syscall_support.h
M	src/base/linuxthreads.cc
M	src/heap-checker.cc
M	src/stacktrace_powerpc-inl.h
M	src/tests/heap-checker_unittest.cc

commit ee2bf097133b115e3da249e43507e02645e46e59
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Jul 20 21:37:26 2013 +0000

    updated NEWS and packages/ for 2.1rc



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@226
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	NEWS
M	packages/deb/changelog
M	packages/deb/control
M	packages/deb/copyright
M	packages/rpm/rpm.spec

commit 60ab178aeb827378d78cae8f1c6f893b14deaaf0
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Jul 20 21:37:01 2013 +0000

    bump version number for 2.1rc



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@225
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	configure.ac
M	src/windows/gperftools/tcmalloc.h

commit 7c2aa2f7c2cf901c17b9b9215224f725e798d1f2
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Jul 20 21:35:56 2013 +0000

    issue-546: fixed return type of Release_AtomicExchange on arm6+



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@224
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/atomicops-internals-arm-v6plus.h

commit d8e12e94ea09eaf8b040c6887f75cdf832b5619b
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Jul 20 21:35:14 2013 +0000

    issue-549: handle most recent mingw that has sleep and nanosleep

    I.e. we have to check their presence in configure and in case of their
    presence we have to avoid re-defining then in window's port.h



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@223
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	configure.ac
M	src/windows/port.h

commit ac354636de8a4f11e4fde679b52e9f58fda0e079
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Jul 14 04:19:02 2013 +0000

    issue-550: remove config.h.in

    Which is autoconf product and thus is not needed in source repository



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@222
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

D	src/config.h.in

commit e54971d58641853a9515d9f0313645729eab113a
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Jul 6 21:54:34 2013 +0000

    issue-534: fixed a number of gcc warnings

    This applies patch from Adhemerval Zanella.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@221
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/basictypes.h
M	src/heap-profiler.cc
M	src/profiler.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/page_heap_test.cc

commit 7dd038d7c58c9de889e3fcc552161533ea1baab1
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Jul 6 20:48:18 2013 +0000

    issue-545: corrected README for CPUPROFILE_FREQUENCY variable

    Applied patch by Mikhail Veltishchev



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@220
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	README

commit a833a146b7de93774f0a9428edc5eda410d9a7dc
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Jul 6 20:46:50 2013 +0000

    issue-528: fixed spelling

    This simply applies patch by Lajos Veres



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@219
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	doc/heapprofile.html
M	doc/pprof_remote_servers.html
M	src/base/spinlock.cc
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/gperftools/profiler.h
M	src/pprof
M	src/stacktrace_x86-inl.h
M	src/windows/patch_functions.cc
M	src/windows/preamble_patcher.cc

commit 205abf1e7cb860224cbf391c7f69a6192ccc5076
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun May 12 19:15:13 2013 +0000

    issue-518: add support for x32 ABI to linux_syscall_support.h

    As pointed out in the ticket this is taken from chromium review system
    here: https://codereview.chromium.org/13648012



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@218
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/linux_syscall_support.h

commit 376a3107aa06063d72132318ac5ad266466e4325
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue May 7 22:28:05 2013 +0000

    issue-368: allocate enough bytes for large metadata allocations

    During issue-368 review it was correctly pointed out then in place
    where I compare metadata allocation size to threshold I should pass
    that size down to TCMalloc_SystemAlloc instead of threshold.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@217
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/common.cc

commit 58d39a1b2190b9d0b719ee33f7bc5383a9b27462
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue May 7 22:23:37 2013 +0000

    issue-368: added missing large_heap_fragmentation_unittest.cc



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@216
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

A	src/tests/large_heap_fragmentation_unittest.cc

commit c45bb7d6033952ea33bb181c1f96999317b535a1
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue May 7 19:22:45 2013 +0000

    issue-511: fixed negative offset handling for conditional jumps

    While doing and testing issue-511 I've found one subtle bug which is
    incorrect handling of short offsets. They are defined to be signed but
    previous code used unsigned char for them which caused negative
    offsets to look like larger positive offsets. Fix is trivial.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@215
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/windows/preamble_patcher.cc

commit 3567b1701aa55a6421aefa5f3de1ca5507cbdf79
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue May 7 19:15:35 2013 +0000

    issue-511: recognise rex.w jmpq *<literal>(%rip) as iat jump

    Apparently Windows Server 2012 (and presumably windows 8) now has this
    form of iat jump. Which is quite useless (rex.w is according to my
    understanding is not needed at all) but because of rex.w our code to
    recognize jumps like that didn't work.

    Fix is just skip this prefix.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@214
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/windows/preamble_patcher.cc

commit 7fcb5ac0696e7ef7f7e7e51c18745af25de7da96
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue May 7 19:13:29 2013 +0000

    issue-511: implemented rel8 jump patching

    I've found that Visual Studio 2012 release 32-bit C runtime library
    patching fails because array new has rel8 jmp which previous code
    could not handle.

    Implementation is largely copied from conditional jumps handling code.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@213
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/windows/preamble_patcher.cc
M	src/windows/preamble_patcher.h
M	src/windows/preamble_patcher_with_stub.cc

commit 8cb4086a0aee539869bd087a85881788545b23d6
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon May 6 19:50:59 2013 +0000

    issue-368: test that we don't fragment large spans too badly

    This adds unit test that does essentially same things as code to
    reproduce bug in
    https://code.google.com/p/gperftools/issues/detail?id=368




    git-svn-id: http://gperftools.googlecode.com/svn/trunk@212
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am

commit f25ac4421f9efb635b88105e9c0830293ce19f9d
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon May 6 19:50:23 2013 +0000

    issue-{368,443}: allocate metadata in big batches

    It uses same approach as PageHeapAllocator. Namely allocates big chunk
    which is then used to satisfy smaller allocations.

    In issue-443 gradual heap grows causes old code that allocates
    metadata in smaller pieces and thus more frequently to fragment the
    heap. It's also causing most of 368 heap fragmentation too.

    New code allocates 8 megs of address space at once for metadata
    allocations. Most OSes will allocate actual memory only when
    corresponding pages are touched. Thus this change should not cause
    increased memory usage.

    I've also made sure metadata is always properly aligned in case we
    ever allocate something that breaks natural alignment. E.g. strings.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@211
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/common.cc

commit 4fd762cead660d4661359ad507083ac4f4967ee4
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon May 6 19:49:48 2013 +0000

    issue-368: unmap free spans and retry before growing heap

    Because unmapped spans are not coalesced with normal spans it's
    possible that we indeed have a large enough free span, but we fail to
    see that because we always consider unmapped and normal spans
    separately. That behavior is more likely for larger spans.

    In order to protect programs that grow heap frequently and by small
    amounts from much more frequent minor page faults, there's limit of
    running that force pages unmap path once per 128 megs of heap growth.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@210
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/page_heap.cc

commit 99fe9944de32046fd954399e60415fba7d03eeb0
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Apr 1 05:32:22 2013 +0000

    issue-510: remove duplicate arm #elif



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@209
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/basictypes.h

commit 6354e2c8cdaaaeffdfe7d5b347b125394e2d55fa
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 11 19:24:49 2013 +0000

    issue-506: fixed bogus unit test failure

    Looks like my version of GCC is aware that free(malloc(X)) is a
    no-op. So it optimizes that away completely ignoring simple fact that
    we're observing malloc hooks invocations. By adding check that malloc
    succeeded we force gcc to actually preserve that malloc call.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@208
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/tests/malloc_extension_c_test.c

commit 7896dcb9db2375fcd1d8d19052985a12ad113ba9
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 11 19:16:47 2013 +0000

    issue-504: disable tls on mingw

    Which is known to fail.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@207
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	configure.ac

commit 8bf4522aa53a7b612a865bc10716192f0f05314b
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 11 19:15:46 2013 +0000

    issue-504: do not define HAVE_MMAP on mingw

    Because, clearly, windows doesn't have one



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@206
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	configure.ac

commit 9c24d255cdd8dab7482d968acc69d493680233ce
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 11 19:15:23 2013 +0000

    issue-504: add AM_LDFLAGS to all *_la targets

    Because automake will not automatically add AM_LDFLAGS if there's
    per-target LDFLAGS. See their good info manual.

    This fixes .dll compilation of tcmalloc



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@205
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am

commit a2275fc6b48b98d5265388bb8586faa7c8cc581f
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 11 19:14:18 2013 +0000

    issue-504: don't try to typedef pid_t on mingw

    Because recent mingws (more then few years ago seemingly) do that
    already.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@204
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/windows/mingw.h
M	src/windows/port.h

commit f00977533de6fd27a2f796b2e8e9adb7fcd965e8
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 11 19:13:53 2013 +0000

    issue-504: use gcc inline assembly atomic ops on mingw

    Because those are well tested and can be trusted



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@203
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	src/base/atomicops.h

commit 34cdd6821b637b124722687578aa119e8714266c
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 11 19:13:13 2013 +0000

    issue-504: use lowercase windows includes for mingw x-compilation

    I.e. so that I can build tcmalloc.dll using comfortable environment of
    my GNU/Linux box and without having to touch actual windows box or VM.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@202
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	src/base/sysinfo.h
M	src/windows/patch_functions.cc

commit 0971d80d0ef0c881dcf46453e576a7e289d86975
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 11 18:35:16 2013 +0000

    issue-503: updated svn:ignore to ignore generated files



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@201
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

commit 05b100d9d4ffeb1342eb5ecf50bd0d2339e626c5
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 11 18:32:05 2013 +0000

    issue-503: removed checked in configure and other auto* products

    So that it's easier to contribute and review contributions.

    People wishing to build gperftools from svn checkout should run
    autogen.sh first which will create those files and then ./configure &&
    make as usual

    INSTALL file has updated instructions too.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@200
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	INSTALL
D	Makefile.in
D	aclocal.m4
M	autogen.sh
D	compile
D	config.guess
D	config.sub
D	configure
M	configure.ac
D	depcomp
D	install-sh
D	ltmain.sh
D	m4/libtool.m4
D	m4/ltoptions.m4
D	m4/ltsugar.m4
D	m4/ltversion.m4
D	m4/lt~obsolete.m4
D	missing
D	mkinstalldirs

commit dcf55b976f19a186ac04d60d95e03ed2795285c4
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 11 18:29:00 2013 +0000

    issue-503: recover original INSTALL file

    That was accidently overwritten by autotools files update in r196



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@199
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	INSTALL

commit 5037f687d1de80722f634e84763572caf2725f98
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 11 01:35:37 2013 +0000

    issue-425: Fixed tcmalloc unittest crashes for windows builds

    Missing use of volatile was causing vs2010 to perform unwanted
    optimization resulting in the crash. See issue for more details.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@198
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/tests/tcmalloc_unittest.cc

commit beb78cc05babf0a49d21aed0ec789f19fc0f2d28
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 11 00:23:03 2013 +0000

    issue-493: Fix for building against ARM targets

    gperftools was failing to build for arm targets for the following
    reasons:
    1. Some ARMv7 instructions used when the target is ARMv6 so those
    fail to assemble
    2. The cache line length is undefined for ARM architectures


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@197
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/atomicops-internals-arm-v6plus.h
M	src/base/basictypes.h

commit bd3b3a7e9a67fac846cf574f5bfd241157bdfe3c
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Mar 10 20:17:21 2013 +0000

    issue-496: Fixes an issue where tcmalloc might deadlock in a thread
    calling fork

    tcmalloc contained a bug where some internal locks were left in a
    undefined state
    between fork, leaving the child process in a deadlock state. This
    patch fixes the
    issue by introducing stricter locking between the parent nd child
    while forking.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@196
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	INSTALL
M	Makefile.in
M	aclocal.m4
M	config.guess
M	config.sub
M	configure
M	configure.ac
M	depcomp
M	install-sh
M	missing
M	mkinstalldirs
M	src/central_freelist.h
M	src/config.h.in
M	src/static_vars.cc

commit 560ca8650c8a9d2971420970f0ed5e17848150eb
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Mar 10 20:02:46 2013 +0000

    issue-491: Significant performance improvement for spin lock
    contention

    This patch fixes issues where spinlocks under contention were
    failing to
    wakeup waiters, sometimes resulting in blow ups from 13ns to as high
    as 256ms.
    Under heavy contention, applications were observed sleeping for
    minutes at a
    time giving the appearance of a hang.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@195
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/spinlock.h

commit b591d53af951eac60683237204464ebfec2c3afa
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Mar 10 19:54:39 2013 +0000

    issue-490: Added support for acquire/release atomic exchange

    The atomic ops API was missing support for all of the various
    flavors of Acquire_AtomicExchange and Release_AtomicExchange
    which have now been added.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@194
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/atomicops-internals-arm-generic.h
M	src/base/atomicops-internals-arm-v6plus.h
M	src/base/atomicops-internals-linuxppc.h
M	src/base/atomicops-internals-macosx.h
M	src/base/atomicops-internals-windows.h
M	src/base/atomicops-internals-x86.h
M	src/base/atomicops.h
M	src/tests/atomicops_unittest.cc

commit 687207b5fcfadc821a3d5b94f2ea112ca933e476
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Mar 10 19:44:43 2013 +0000

    issue-443: Increase the number of objects transferred between thread
    cache and central free list

    This fix is a result of a performance degradation observed in
    multi-threaded programs where large
    amounts of memory (30GB) are consumed, released by a pool of threads
    in a cyclic manner. This was
    mainly due to the amount of time we were spending in the slow path
    consolidating memory between
    the thread cache and central free list. The default has been bumped
    up to 32768 and is now also
    controllable through the TCMALLOC_TRANSFER_NUM_OBJ environment
    setting.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@193
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	src/common.cc
M	src/common.h
A	src/tests/tcmalloc_unittest.sh

commit 19eff86f850e54683c8868316e362af8919df18a
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Mar 9 01:16:17 2013 +0000

    actually made svn:ignore work



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@192
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

commit 177a896a8273ae73affc48a126fcf9a3ba91f502
Author: alkondratenko@gmail.com
<alkondratenko@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Mar 9 01:06:58 2013 +0000

    added proper svn:ignore



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@191
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

commit b96203b591f63d24cd2979241b18534d22358bca
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Dec 22 20:14:08 2012 +0000

    issue-461: Fix to malloc_extension.h so that it builds with
    -std=gnu++98


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@190
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/gperftools/malloc_extension.h

commit 84b983c8d43f43a3c7f71d45d51fc4adcc688cd9
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Dec 22 20:06:47 2012 +0000

    issue-465: Adding automagic support for __builtin_expect

    Previously __builtin_ expect was based on a macro check against
    gcc version.
    Now we perform the check via AM which is a cleaner approach. There
    are also
    a number of code changes here to utilize LIKELY/UNLIKELY macros
    based on
    __builtin_expect to improve performance.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@189
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	configure
M	configure.ac
M	src/base/basictypes.h
M	src/common.h
M	src/config.h.in
M	src/tcmalloc.cc

commit a5dacccd6ae4cbfedb5263bfe0f325f03c7f0db8
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Dec 22 19:06:35 2012 +0000

    issue-466: Clarified stats output and comments for ExtractStats()
    and GetThreadStats()


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@188
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/tcmalloc.cc
M	src/thread_cache.h

commit 09d97533b09e473c0cdd269e8cf4e9a9737e49fa
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Dec 22 19:02:52 2012 +0000

    issue-467: Fixed issue with allocation size being narrowed to 32-bit



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@187
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/tcmalloc.cc

commit 990889e6232ff3787f1d42d4091a0478ffb93988
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Dec 22 18:53:18 2012 +0000

    issue-470: Allows the default system allocator to be overidden

    This is useful when you run into cases where you need an allocator
    before tcmalloc has been fully initialized.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@186
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/system-alloc.cc

commit 3bf5f55d78769d2f8525626dd662457d2f014151
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Dec 22 18:38:48 2012 +0000

    issue-482: Adds support for CACHELINE_ALIGNED value for arm based
    devices

    Hardcoded the cacheline size to 32 because this value is supported
    by several
    arm devices, however a better logic needs to be implemented at some
    point to
    handle more arm devices.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@185
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/basictypes.h

commit 6856d1d1b2a807efd84dcafa10b865b6de22bc28
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Dec 22 18:34:43 2012 +0000

    issue-488: Performance improvement for initialization checks

    These came in from the Google-internal version of tcmalloc. They
    saw some
    decent speed improvements, both on microbenchmarks and big
    programs. The
    idea is to improve the speed of the "Is everything initialized?" type
    of
    code, that's at the start of all allocations and deallocations.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@184
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/static_vars.h
M	src/tcmalloc.cc
M	src/thread_cache.cc
M	src/thread_cache.h

commit ad5aa05838121d52ad1fde5463a796c3320fe067
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Dec 22 18:25:58 2012 +0000

    issue-483: Speed up accesses to ClassIndex()

    Making its return type unsigned can save a conversion from
    signed to unsigned, and getting rid of the ternary operators
    seems to help a little bit as well. Various gcc versions weren't
    generating conditional moves for them as one would expect.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@183
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/basictypes.h
M	src/common.h

commit 8de78fd85b69bc569ac8fc9e75144e02f5cae851
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Nov 5 04:45:01 2012 +0000

    issue-452: Adds a control mechanism to the cpu profiler to be switched
    on and off using a user defined signal.

    CPUPROFILESIGNAL - Takes a signal number between the value of 1 and
    64 inclusive which represents a signal
		       number as defined by signal.h. The signal must
		       not be in use by the program. Sending this
		       signal to the program turns profiling on and off
		       like a switch. By default the switch is
		       off when the program starts. Successive profiles
		       are suffixed with a monotonically increasing
		       number.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@182
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	doc/cpuprofile.html
M	src/profiler.cc

commit 46f06ca0db41d3f598750caefdaf3c6063969e64
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Nov 4 23:08:17 2012 +0000

    issue-451: Fixed incorrect assembly for 64-bit barrier load and
    store on windows platforms.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@181
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/atomicops-internals-windows.h

commit 5fe91d5623c2351ba4675db71822fc6be5e2cbce
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Nov 4 22:53:01 2012 +0000

    issue-450: Move includes for struct mallinfo from tcmalloc.cc to
    tcmalloc.h to fix compiler warnings from clang.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@180
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/gperftools/tcmalloc.h.in
M	src/tcmalloc.cc

commit 86a55316baf2a7c0718670fd7342b648e0ef4a87
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Nov 4 19:12:42 2012 +0000

    issue-449: Disables mmap check when cross compiling since it is
    meaningless anyways

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@179
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	configure
M	configure.ac

commit 6f6c2bf68576e43491884364fc05c9ed752adb4f
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Nov 4 19:02:15 2012 +0000

    issue-448: New environment setting that allows you to set an explicit
    heap limit

    TCMALLOC_HEAP_LIMIT_MB - The maximum amount of heap memory that
    tcmalloc can use.
    TCMALLOC_DISABLE_MEMORY_RELEASE - emulate platform with no
    MADV_DONTNEED support (generally for testing purposes).


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@178
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/page_heap.cc
M	src/page_heap.h
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tests/page_heap_test.cc
M	src/tests/tcmalloc_unittest.cc
M	src/windows/port.cc

commit 644b1c6e355a0f5dd948ca482a575f49a4bd2032
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Nov 4 18:30:05 2012 +0000

    issue-445: Fix for wrong cmpx instruction in OSAtomicCompareAndSwap64
    for ppc64


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@177
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/atomicops-internals-linuxppc.h

commit e32bb2d9a76dc5ee42ee41a2ca2c6e5caece0150
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Nov 4 18:24:46 2012 +0000

    issue-444: Fix for invalid conversion build error in signal handler
    code


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@176
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/linux_syscall_support.h

commit abeaf46028c8dfab7e7867ee7a3a49ebe21cf129
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Nov 4 18:15:11 2012 +0000

    issue-430: Introduces 8-byte alignment support for tcmalloc


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@175
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/common.cc
M	src/common.h
M	src/tests/tcmalloc_unittest.cc

commit baaf0188295582ca68df03f70baa13d96a88e2eb
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Nov 4 17:41:47 2012 +0000

    issue-473: Fix for make install error regarding
    src/windows/google/tcmalloc.h


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@174
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in

commit 1363bc69550f43af693f6455118432988042a8dd
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Nov 4 17:21:00 2012 +0000

    issue-475: Re-applying changes made originally for r150 and r151

    - Used aclocal, autoupdate, autoconf, and automake to
    correctly apply changes made to Makefile.am. Detailed
    instructions on this procedure can be found here
    http://inti.sourceforge.net/tutorial/libinti/autotoolsproject.html.
    - Fixed a number of error/warning messages due to use of newer
    aclocal, autoconf, and automake utilities.
    - Directly and indirectly related to issue-385 and issue-480.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@173
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	aclocal.m4
M	configure
M	configure.ac
M	m4/libtool.m4

commit 1243295cdcc20f2f47df9bdc9b8bb50b69c085b0
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Nov 4 15:59:08 2012 +0000

    issue-475: Amend of r151 and r150

    In revisions 151 and 150 an attempt was made to enable frame pointers
    by default for i386. However, in the process of doing so a number of
    files were inadvertently touched as a result of running autogen.sh. As
    a result, I have needed to roll back these revisions so that I can
    reattempt the change.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@172
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	INSTALL
M	Makefile.am
M	Makefile.in
M	aclocal.m4
M	config.guess
M	config.sub
M	configure
M	configure.ac
M	depcomp
M	install-sh
M	ltmain.sh
M	m4/libtool.m4
M	m4/ltoptions.m4
M	m4/ltversion.m4
M	m4/lt~obsolete.m4
M	missing
M	mkinstalldirs

commit 5c17459c5e7b4133a2dec5ffe6a9237a114f5378
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Nov 3 16:14:25 2012 +0000

    issue-476: Amendment to r152:issue-437 to fix a build error due to
    PR_SET_TRACER not being defined in older glibc releases.

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@171
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/linuxthreads.cc

commit 6287bbbbad8730712cfd1ee28ecc0648cbaa9f94
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Nov 3 15:56:27 2012 +0000

    issue-477: Fix clang compilation errors regarding format specifiers

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@170
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/sysinfo.cc
M	src/debugallocation.cc
M	src/getpc.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profiler.cc
M	src/malloc_extension.cc
M	src/memory_region_map.cc
M	src/symbolize.cc
M	src/tcmalloc.cc
M	src/tests/markidle_unittest.cc
M	src/tests/tcmalloc_unittest.cc

commit 87699c97cc07b30fc2765415853ae685f7bc45f2
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Nov 3 15:40:01 2012 +0000

    issue-478: Added the heap profiler tunnable setting
    HEAP_PROFILER_TIME_INTERVAL used to dump heap profiles on a specified
    time interval.

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@169
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	doc/heapprofile.html
M	src/heap-profiler.cc

commit 4eb6946d689bbaa74f8be78265f6d6ff9ae04ab2
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Nov 3 15:27:58 2012 +0000

    issue-479: Replaced sscanf usage while iterating proc maps entries
    to fix a deadlock introduced by glibc-2.15.

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@168
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/sysinfo.cc

commit 5dd53ab6cbf9d98f2d60546835e84785a104da46
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Nov 3 14:52:42 2012 +0000

    issue-481: Replaced test mechanism for distinct address spaces with
    a more reliable mechanism

    Rather than using sys_ptrace+PTRACE_PEEK_DATA to determine whether
    address spaces are distinct, we now use sys_waitpid+__WCLONE. See
    issue-481 for a more detailed rationale.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@167
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/linuxthreads.cc

commit 6c436203522156699ef11c6792ed481e02cef366
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Nov 3 14:36:33 2012 +0000

    amend-r165: forgot to regenrate configure and Makefile.in

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@166
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.in
M	configure

commit c566266b10d2fc4e0c67fec25e2a45ebad803196
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Nov 3 14:13:21 2012 +0000

    issue-480: duplicate of issue-385 fixed in r150 however some of the
    comments in the code
    regarding frame pointers needed to be clarified.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@165
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	configure.ac

commit 4f325fbcc9f0db17fbf108188a32b2c67bcd38e0
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Oct 28 19:45:03 2012 +0000

    issue-424: Updated heap profiler documentation that had
    mispelling for the heap profiler mmap only environment setting
    (HEAP_PROFILE_ONLY_MMAP)

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@164
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	doc/heapprofile.html

commit a828c0a8ff59300fffce466cc617d40fa39dedea
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Oct 28 19:30:23 2012 +0000

    issue-417: This commit removed the fatal error message printed along
    with the pprof usage information when pprof is run with no arguments.

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@163
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/pprof

commit e5b095abdc2368111f53cedf376cd1505a2c7583
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Oct 28 18:28:21 2012 +0000

    issue-411: This commit adds additional logging to the cpu profiler
    to warn when the profiler is run and no CPUPROFILE environment
    setting can be found. It also adds a new environment variable
    PERFTOOLS_UNITTEST to allow certain modules to take action when
    running under the umbrella of a unit test.

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@162
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/profiler.cc
M	src/tests/profiler_unittest.sh

commit 57c48e9b5ffdb0f177c07ea8420c4072e816e1a7
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sun Oct 28 14:51:41 2012 +0000

    issue-405: backed out original commit made in revision 147 due to
    the fact that it didn't work as intended

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@161
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/heap-checker.cc

commit 3e296c28c3c2b67df624d372b75650ae65c87b04
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Sep 18 02:47:24 2012 +0000

    issue-442: Fixes an issue encountered on PPC with undefined
    conversions from 'base::subtle::Atomic64*' to 'const volatile
    Atomic32*'

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@160
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/spinlock_internal.cc

commit 1f59bb34d3ce03df51c8356dd44fcb0b15de4769
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Sep 18 02:33:00 2012 +0000

    Adding support for CPU frequencies for Linux on PowerPC

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@159
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/sysinfo.cc

commit a2fec7c694ce992a3b7d3fe4205bb8710b017bab
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Sep 18 01:43:02 2012 +0000

    issue-446: Fixes compatability issues in malloc_hook_test for PPC64

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@158
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/tests/malloc_hook_test.cc

commit b05b6fc7655ba7fee8397da7013db007f0c47e30
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Sep 18 01:27:34 2012 +0000

    issue-458: Optimizes malloc hooks for weakly consistent memory
    architectures

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@157
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/malloc_hook-inl.h

commit 00edf667f62e17a268f03c6aaef19946add75dcf
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Sep 18 01:18:15 2012 +0000

    issue-456: Adds support for CACHELINE_ALIGNED values for PPC

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@156
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/basictypes.h

commit 731d0932a081d521a36462df7dcbc45fa4221011
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Sep 18 00:59:16 2012 +0000

    issue-455: Adds another size for large pages in tcmalloc through
    the new define TCMALLOC_LARGE_PAGES64K

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@155
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/common.h

commit 771b6bcf689bd089b802ddcdb27a40b4fb4a8e3b
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Sep 18 00:52:13 2012 +0000

    issue-457: Fixed an issue where the 'getpc' testcase was using the
    wrong PPC64 preprocessor directive

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@154
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/tests/getpc_test.cc

commit 711232a1ef4997305a681287191de74f6597dabc
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Sep 18 00:42:23 2012 +0000

    issue-453 Added support to get the timebase register value using
    just one instruction and also adjusts the PPC32 code to the recent
    GLIBC one that implements the same functionality

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@153
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/cycleclock.h

commit fa0209f261c5e065d523bb1858f84fd91eb2f39a
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Sep 18 00:00:20 2012 +0000

    issue-437 Fixed issues related to new glibc shipped with Ubuntu 10.10

    1. ptrace permissions were modifed to be a bit more strict which
    required
       us to programatically set the permissions while syncing up to
       the profiling
       thread.

    2. Order of destructors registered with atexit changed which was
    casuing us to
       miss generating the backtrace when heap checker was finished. Seems
       that we
       initially fixed this for FreeBSD and now linux has changed their
       behaviour
       to be the same. We are now a bit stricter on the rules here
       accross all
       platforms.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@152
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/linuxthreads.cc
M	src/heap-checker.cc

commit cd723b43ff783a05321f0c0ba79a82494185b23c
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed May 16 12:24:13 2012 +0000

    issue-385: updates to automake to pick up the explicit setting of
    the -fno-omit-frame-pointer for i386

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@151
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	INSTALL
M	Makefile.am
M	Makefile.in
M	aclocal.m4
M	config.guess
M	config.sub
M	configure
M	configure.ac
M	depcomp
M	install-sh
M	ltmain.sh
M	m4/libtool.m4
M	m4/ltoptions.m4
M	m4/ltversion.m4
M	m4/lt~obsolete.m4
M	missing
M	mkinstalldirs

commit 0c0382234d5812474b070b6eccdfd99c98490548
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed May 16 01:28:08 2012 +0000

    issue-385: as of gcc 4.6 we now need to enable frame pointers for
    i386 platforms since the default is to now omit frame pointers

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@150
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am

commit bafd0f8b7cec4dd0b74a4a8e5456b96744640679
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Apr 21 17:27:54 2012 +0000

    Changing internal behaviour of tcmalloc to return an
    allocated size of 0 when the target pointer is null (refer to
    TCMallocImplementation::GetAllocatedSize). This change was reviewed
    as https://codereview.appspot.com/5833050/.

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@149
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/tcmalloc.cc

commit 9be2f8d802a19ab6e4b2abed3f7cd84780628d16
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Apr 21 16:15:20 2012 +0000

    Adding in further support for 64-bit NoBarrier_Load on windows

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@148
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/atomicops-internals-windows.h

commit 68df7fa6057a29b3130d41a27592f74d58c2df57
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Mar 3 19:45:49 2012 +0000

    issue-405: Added a tunable to the heap checker that allows the heap
    checker error exit code to be overridden. For larger projects this
    allows certain heap checked programs that have intentional/known
    leaks to be managed.

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@147
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/heap-checker.cc

commit 0a9d3f8af373c71e5fabdc8c01239c47df4743ed
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Mar 2 06:04:08 2012 +0000

    issue-410: This set of changes exposes the central cache free list
    size, transfer cache free list size, and the meta data overhead size
    through the getNumericProperty() function.

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@146
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/gperftools/malloc_extension.h
M	src/tcmalloc.cc

commit 1233f0f9101c3f4e85e04711c7223dc7f73ec4fb
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Feb 21 03:02:43 2012 +0000

    This file is in the tarball, but I forgot to put it in svn as well.
    (It's tricky because it's auto-generated from tcmalloc.h.in at
    tarball-making time.)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@145
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

A	src/windows/gperftools/tcmalloc.h

commit ce2891234584069f90e6e0a446e28bf7ca3e031d
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Feb 4 00:10:11 2012 +0000

    Url-typo in the latest NEWS message.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@144
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	NEWS

commit 4e9432c5090d5b8354b0b57fca8b96b2efef37e3
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Feb 4 00:07:36 2012 +0000

    Fri Feb 03 15:40:45 2012  Google
    Inc. <google-perftools@googlegroups.com>

	    * gperftools: version 2.0
	    * Renamed the project from google-perftools to gperftools
	    (csilvers)
	    * Renamed the .deb/.rpm packagse from google-perftools to
	    gperftools too
	    * Renamed include directory from google/ to gperftools/
	    (csilvers)
	    * Changed the 'official' perftools email in setup.py/etc
	    * Renamed google-perftools.sln to gperftools.sln
	    * PORTING: Removed bash-isms & grep -q in
	    heap-checker-death_unittest.sh
	    * Changed copyright text to reflect Google's relinquished
	    ownership


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@142
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	AUTHORS
M	ChangeLog
M	INSTALL
M	Makefile.am
M	Makefile.in
M	NEWS
M	README
M	README_windows.txt
M	aclocal.m4
M	config.guess
M	config.sub
M	configure
M	configure.ac
M	depcomp
M	doc/cpuprofile.html
M	doc/designstyle.css
M	doc/heap_checker.html
M	doc/heapprofile.html
M	doc/index.html
M	doc/pprof.1
M	doc/pprof.see_also
M	doc/pprof_remote_servers.html
R100	google-perftools.sln	gperftools.sln
M	install-sh
M	missing
M	mkinstalldirs
M	packages/deb/changelog
M	packages/deb/control
M	packages/deb/copyright
R071	packages/deb/libgoogle-perftools-dev.dirs
packages/deb/libgperftools-dev.dirs
R079	packages/deb/libgoogle-perftools-dev.install
packages/deb/libgperftools-dev.install
R100	packages/deb/libgoogle-perftools0.dirs
packages/deb/libgperftools0.dirs
R100	packages/deb/libgoogle-perftools0.install
packages/deb/libgperftools0.install
R100	packages/deb/libgoogle-perftools0.manpages
packages/deb/libgperftools0.manpages
M	packages/rpm/rpm.spec
M	src/base/low_level_alloc.cc
M	src/config.h.in
M	src/debugallocation.cc
M	src/google/heap-checker.h
M	src/google/heap-profiler.h
M	src/google/malloc_extension.h
M	src/google/malloc_extension_c.h
M	src/google/malloc_hook.h
M	src/google/malloc_hook_c.h
M	src/google/profiler.h
M	src/google/stacktrace.h
A	src/google/tcmalloc.h
C099	src/google/heap-checker.h	src/gperftools/heap-checker.h
C100	src/google/heap-profiler.h	src/gperftools/heap-profiler.h
C100	src/google/malloc_extension.h	src/gperftools/malloc_extension.h
C100	src/google/malloc_extension_c.h
src/gperftools/malloc_extension_c.h
C099	src/google/malloc_hook.h	src/gperftools/malloc_hook.h
C100	src/google/malloc_hook_c.h	src/gperftools/malloc_hook_c.h
C100	src/google/profiler.h	src/gperftools/profiler.h
C100	src/google/stacktrace.h src/gperftools/stacktrace.h
R098	src/google/tcmalloc.h.in	src/gperftools/tcmalloc.h.in
M	src/heap-checker-bcad.cc
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/libc_override.h
M	src/libc_override_gcc_and_weak.h
M	src/libc_override_glibc.h
M	src/libc_override_osx.h
M	src/malloc_extension.cc
M	src/malloc_hook-inl.h
M	src/malloc_hook.cc
M	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/page_heap.cc
M	src/page_heap.h
M	src/pprof
M	src/profiler.cc
M	src/stacktrace.cc
M	src/stacktrace_arm-inl.h
M	src/stacktrace_generic-inl.h
M	src/stacktrace_libunwind-inl.h
M	src/stacktrace_powerpc-inl.h
M	src/stacktrace_win32-inl.h
M	src/stacktrace_x86-inl.h
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/current_allocated_bytes_test.cc
M	src/tests/debugallocation_test.cc
M	src/tests/frag_unittest.cc
M	src/tests/heap-checker-death_unittest.sh
M	src/tests/heap-checker_unittest.cc
M	src/tests/heap-profiler_unittest.cc
M	src/tests/low_level_alloc_unittest.cc
M	src/tests/malloc_extension_c_test.c
M	src/tests/malloc_extension_test.cc
M	src/tests/malloc_hook_test.cc
M	src/tests/markidle_unittest.cc
M	src/tests/profiler_unittest.cc
M	src/tests/sampling_test.cc
C059	src/tests/current_allocated_bytes_test.cc
src/tests/simple_compat_test.cc
M	src/tests/stacktrace_unittest.cc
M	src/tests/system-alloc_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/thread_dealloc_unittest.cc
A	src/windows/auto_testing_hook.h
M	src/windows/config.h
A	src/windows/google/tcmalloc.h
R098	src/windows/google/tcmalloc.h.in
src/windows/gperftools/tcmalloc.h.in
M	src/windows/patch_functions.cc
M
vsprojects/current_allocated_bytes_test/current_allocated_bytes_test.vcproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
M	vsprojects/malloc_extension_test/malloc_extension_test.vcproj
M	vsprojects/malloc_hook_test/malloc_hook_test.vcproj
M	vsprojects/tmu-static/tmu-static.vcproj

commit e10b720797359e1855a5e4769424988b4e76c3e7
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Feb 4 00:06:48 2012 +0000

    Last of the remnant empty directories that I don't know why they're
    there.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@141
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

commit e55949bba69b7a6eede3468765e86c5ed000be52
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Feb 4 00:06:06 2012 +0000

    This directory got renamed tmu-static a long time ago.  Get rid of
    this ancient remnant.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@140
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

commit 0f588815f979721346a6cb05a1cbd83d670b975a
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Feb 4 00:05:39 2012 +0000

    Apparently I'm not good at deleting files from svn after they're no
    longer used anymore.  Get rid of a few more that fall into this
    category.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@139
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

D	src/stacktrace_nacl-inl.h
D	src/stacktrace_x86_64-inl.h

commit 2b2016f6844a88b9448d445f90ad1c849a56ea23
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Feb 4 00:03:35 2012 +0000

    I have no idea why I created this directory, but it's never been
    used.  Delete it.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@138
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

commit ace2da06732ee549b6d64c1f59b62181f5110230
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Feb 4 00:02:15 2012 +0000

    This file has been obsolete for almost a year now; I just forgot to
    delete it from svn.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@137
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

D	src/base/atomicops-internals-arm-gcc.h

commit 0afb078b34700859cef8d708463fc5c955e26c31
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Jan 31 19:11:26 2012 +0000

    Tue Jan 31 10:43:50 2012	Google Inc. <opensource@google.com>

	    * google-perftools: version 1.10 release
	    * PORTING: Support for patching assembly on win
	    x86_64! (scott.fr...)
	    * PORTING: Work around atexit-execution-order bug on freebsd
	    (csilvers)
	    * PORTING: Patch _calloc_crt for windows (roger orr)
	    * PORTING: Add C++11 compatibility method for stl allocator
	    (jdennett)
	    * PORTING: use MADV_FREE, not MADV_DONTNEED, on freebsd
	    (csilvers)
	    * PORTING: Don't use SYS_open when not supported on solaris
	    (csilvers)
	    * PORTING: Do not assume uname() returns 0 on success
	    (csilvers)
	    * LSS: Improved ARM support in linux-syscall-support
	    (dougkwan)
	    * LSS: Get rid of unused syscalls in linux-syscall-support
	    (csilvers)
	    * LSS: Fix broken mmap wrapping for ppc (markus)
	    * LSS: Emit .cfi_adjust_cfa_offset when appropriate
	    (ppluzhnikov)
	    * LSS: Be more accurate in register use in __asm__ (markus)
	    * LSS: Fix __asm__ calls to compile under clang (chandlerc)
	    * LSS: Fix ARM inline assembly bug around r7 and swi (lcwu)
	    * No longer log when an allocator fails (csilvers)
	    * void* -> const void* for MallocExtension methods (llib)
	    * Improve HEAP_PROFILE_MMAP and fix bugs with it (dmikurube)
	    * Replace int-based abs with more correct fabs in a test
	    (pmurin)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@135
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	Makefile.am
M	Makefile.in
M	NEWS
M	README_windows.txt
M	configure
M	configure.ac
M	google-perftools.sln
M	packages/deb/changelog
M	packages/deb/copyright
M	src/pprof
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/windows/config.h
M	src/windows/mini_disassembler.h
M	src/windows/patch_functions.cc
M	src/windows/preamble_patcher.h
M	src/windows/preamble_patcher_test.cc
M	src/windows/shortproc.asm
A	vsprojects/preamble_patcher_test/preamble_patcher_test.vcproj

commit e0eaf5981eede6311e311ac5054489b85015c5d7
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Jan 28 00:13:43 2012 +0000

	    * PORTING: Support for patching assembly on win
	    x86_64! (scott.fr...)
	    * PORTING: Work around atexit-execution-order bug on freebsd
	    (csilvers)
	    * PORTING: Patch _calloc_crt for windows (roger orr)
	    * PORTING: Add C++11 compatibility method for stl allocator
	    (jdennett)
	    * PORTING: use MADV_FREE, not MADV_DONTNEED, on freebsd
	    (csilvers)
	    * PORTING: Don't use SYS_open when not supported on solaris
	    (csilvers)
	    * PORTING: Do not assume uname() returns 0 on success
	    (csilvers)
	    * LSS: Improved ARM support in linux-syscall-support
	    (dougkwan)
	    * LSS: Get rid of unused syscalls in linux-syscall-support
	    (csilvers)
	    * LSS: Fix broken mmap wrapping for ppc (markus)
	    * LSS: Emit .cfi_adjust_cfa_offset when appropriate
	    (ppluzhnikov)
	    * LSS: Be more accurate in register use in __asm__ (markus)
	    * LSS: Fix __asm__ calls to compile under clang (chandlerc)
	    * LSS: Fix ARM inline assembly bug around r7 and swi (lcwu)
	    * No longer log when an allocator fails (csilvers)
	    * void* -> const void* for MallocExtension methods (llib)
	    * Improve HEAP_PROFILE_MMAP and fix bugs with it (dmikurube)
	    * Replace int-based abs with more correct fabs in a test
	    (pmurin)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@134
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	NEWS
M	configure
M	configure.ac
M	doc/cpuprofile.html
M	src/base/atomicops-internals-arm-v6plus.h
M	src/base/linux_syscall_support.h
M	src/base/stl_allocator.h
M	src/base/sysinfo.cc
M	src/debugallocation.cc
M	src/google/malloc_extension.h
M	src/google/malloc_extension_c.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/malloc_extension.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/sampler_test.cc
M	src/thread_cache.cc
M	src/windows/ia32_opcode_map.cc
M	src/windows/mini_disassembler.cc
M	src/windows/mini_disassembler.h
M	src/windows/mini_disassembler_types.h
M	src/windows/patch_functions.cc
M	src/windows/preamble_patcher.cc
M	src/windows/preamble_patcher.h
A	src/windows/preamble_patcher_test.cc
M	src/windows/preamble_patcher_with_stub.cc
A	src/windows/shortproc.asm

commit 4fa02db374683d3c69c1b36158534c011513ed31
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Dec 24 01:00:32 2011 +0000

    Ready to release perftools 1.9.1  :-/

    Added the ARM stacktrace file to the tarball (for 'make dist')


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@132
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	NEWS
M	configure
M	configure.ac

commit 2a7b3b88371c2f78ab31be202f384fd0ed466890
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Dec 23 00:45:49 2011 +0000

    Thu Dec 22 16:22:45 2011	Google Inc. <opensource@google.com>

	    * google-perftools: version 1.9 release
	    * Lightweight check for double-frees (blount)
	    * BUGFIX: Fix pprof to exit properly if run with no args
	    (dagitses)
	    * Suggest ASan as a way to diagnose buggy code (ppluzhnikov)
	    * Get rid of unused CACHELINE_SIZE (csilvers)
	    * Replace atexit() calls with global dtors; helps freebsd
	    (csilvers)
	    * Disable heap-checker under AddressSanitizer (kcc)
	    * Fix bug in powerpc stacktracing (ppluzhnikov)
	    * PERF: Use exponential backoff waiting for spinlocks (m3b)
	    * Fix 64-bit nm on 32-bit binaries in pprof (csilvers)
	    * Add ProfileHandlerDisallowForever (rsc)
	    * BUGFIX: Shell escape when forking in pprof (csilvers)
	    * No longer combine overloaded functions in pprof (csilvers)
	    * Fix address-normalizing bug in pprof (csilvers)
	    * More consistently call abort() instead of exit() on failure
	    (csilvers)
	    * Allow NoGlobalLeaks to be safely called more than once
	    (csilvers)
	    * PORTING/BUGFIX: Fix ARM cycleclock to use volatile asm
	    (dougkwan)
	    * PORTING: 64-bit atomic ops for ARMv7 (dougkwan)
	    * PORTING: Implement stacktrace for ARM (dougkwan)
	    * PORTING: Fix malloc_hook_mmap_linux for ARM (dougkwan)
	    * PORTING: Update linux_syscall_support.h for ARM/etc
	    (evannier, sanek)
	    * PORTING: Fix freebsd to work on x86_64 (chapp...@gmail.com)
	    * PORTING: Added additional SYS_mmap fixes for FreeBSD
	    (chappedm)
	    * PORTING: Allow us to compile on OS X 10.6 and run on 10.5
	    (raltherr)
	    * PORTING: Check for mingw compilers that *do* define timespec
	    * PORTING: Add "support" for MIPS cycletimer
	    * PORTING: Fix fallback cycle-timer to work with Now
	    (dougkwan)
	    * PERF: Move stack trace collecting out of the mutex (taylorc)
	    * PERF: Get the deallocation stack trace outside the mutex
	    (sean)
	    * Make PageHeap dynamically allocated for leak checks (maxim)
	    * BUGFIX: Fix probing of nm -f behavior in pprof (dpeng)
	    * BUGFIX: Fix a race with the CentralFreeList lock before main
	    (sanjay)
	    * Support /pprof/censusprofile url arguments (rajatjain)
	    * Change IgnoreObject to return its argument (nlewycky)
	    * Update malloc-hook files to support more CPUs
	    * BUGFIX: write our own strstr to avoid libc problems
	    (csilvers)
	    * Use simple callgrind compression facility in pprof
	    * Print an error message when we can't run pprof to symbolize
	    (csilvers)
	    * Die in configure when g++ is't installed (csilvers)
	    * DOC: Beef up the documentation a bit about using libunwind
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@130
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	NEWS
M	configure
M	configure.ac
M	packages/deb/changelog
M	src/pprof
M	src/windows/config.h

commit 75f5a791bc1c0af0ddf43453c18f44723884f37e
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Dec 23 00:45:14 2011 +0000

	    Add the magical incantations to get perftools to compile
	    cleanly under windows.  The only non-trivial one is the #undef
	    of small, which I needed to compile under the latest cygwin --
	    I ran g++ with -dD under cygwin and saw the '#define small
	    char' with my own eyes.  I wouldn't have thought it...


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@129
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/internal_logging.h
M	src/tcmalloc.cc
M	src/windows/port.h

commit 76131b04cf41a7f0fed99503f985847fc261b930
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Dec 23 00:44:53 2011 +0000

	    In my testing for a new release, I was noticing hangs on
	    cygwin, that went away when I turned off tls support.  Since I
	    didn't use to have such problems, I am being conservative and
	    only turning off TLS for the particular version of cygwin I'm
	    testing on (as returned by uname()).


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@128
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/thread_cache.cc

commit 3d30fbcc85021b267f7e3faf4c2280d70681920c
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Dec 23 00:44:30 2011 +0000

	    We use mmx instructions now in perftools, so specify -xmms for
	    gcc on i386, where it's not on by default (it is for
	    gcc/x86_64, in my tests).  This could potentially cause an
	    error for embedded systems, which can have i386 but no mms,
	    but the code wouldn't run properly on them anyway without
	    tweaks.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@127
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in

commit f622d261e9a4331724d222cc2a41b517607c07d7
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Dec 20 18:43:38 2011 +0000

	    * Fix ARM cycleclock to use volatile asm (dougkwan)
	    * BUGFIX: Define BASE_HAS_ATOMIC64 for ARMv7 (dougkwan)
	    * Fix fallback cycle-timer to work with Now (dougkwan)
	    * Fix pprof to exit properly if run with no args (dagitses)
	    * Suggest ASan as a way to diagnose buggy code (ppluzhnikov)
	    * Get rid of unused CACHELINE_SIZE (csilvers)



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@126
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/atomicops-internals-arm-v6plus.h
M	src/base/basictypes.h
M	src/base/cycleclock.h
M	src/debugallocation.cc
M	src/malloc_hook_mmap_freebsd.h
M	src/pprof
M	src/windows/port.h

commit 7da02003014644f73893df8530ee788dc0e626de
Author: chappedm@gmail.com
<chappedm@gmail.com@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Nov 30 02:54:35 2011 +0000

    Added additional SYS_mmap fixes for FreeBSD due to syscall differences
    between os versions (pulled from differences between FreeBSD6 and
    FreeBSD8 mmap implementations)

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@125
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/malloc_hook_mmap_freebsd.h

commit 8c8329390cd05a1bf1bf9613712521a9ee9fe260
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Nov 22 01:06:33 2011 +0000

	    * Eliminate some TSAN warnings (wilsonh)
	    * Better fix for freebsd on x86_64 (chapp...@gmail.com)
	    * Lightweight check for double-frees (blount)
	    * 64-bit atomic ops for ARMv7 (dougkwan)
	    * Remove dynamic annotations in some cases (dvyukov)
	    * Update linux_syscall_support.h for ARM, etc (evannier)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@124
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/atomicops-internals-arm-v6plus.h
M	src/base/dynamic_annotations.c
M	src/malloc_hook_mmap_freebsd.h
M	src/profile-handler.cc
M	src/thread_cache.h

commit ca23f57679e2bd4e0390d6891aa765b7e9daca22
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Nov 17 00:11:42 2011 +0000

    Fix bad #include paths.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@123
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/stacktrace.cc
M	src/stacktrace_config.h

commit e580d7888154fa7f95b3cef9e18f1ce69182212b
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Nov 16 21:20:45 2011 +0000

    Some linux_syscall_support.h improvements:

	 * Fix socketcall functions (mec)
	 * Add ARM related defs and syscall asembly code (sanek)
	 * Use __arm__ instead of particular ARM arch macro (dougkwan)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@122
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/linux_syscall_support.h

commit 6c3eaabd7306173b6b71b63797ebf050675046cf
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Nov 16 05:21:54 2011 +0000

	    * Check for mingw compilers that *do* define timespec
	    * Replace atexit() calls with global dtors; helps freebsd
	    (csilvers)
	    * Fix malloc_hook_mmap_linux for ARM (dougkwan)
	    * Disalbe heap-checker under AddressSanitizer (kcc)
	    * Fix bug in powerpc stacktracing (ppluzhnikov)
	    * Use exponential backoff waiting for spinlocks (m3b)
	    * Fix 64-bit nm on 32-bit binaries in pprof (csilvers)
	    * Implement stacktrace for ARM (dougkwan)
	    * Add ProfileHandlerDisallowForever (rsc)
	    * Shell escape when forking in pprof (csilvers)
	    * Fix freebsd to work on x86_64 (chapp...@gmail.com)
	    * No longer combine overloaded functions in pprof (csilvers)
	    * Fix address-normalizing bug in pprof (csilvers)
	    * More consistently call abort() instead of exit() on failure
	    (csilvers)
	    * Allow NoGlobalLeaks to be safely called more than once
	    (csilvers)
	    * Beef up the documentation a bit about using libunwind
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@121
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	INSTALL
M	Makefile.am
M	Makefile.in
M	src/base/googleinit.h
M	src/base/linux_syscall_support.h
M	src/base/logging.h
M	src/base/spinlock_internal.cc
M	src/base/spinlock_linux-inl.h
M	src/base/spinlock_posix-inl.h
M	src/base/spinlock_win32-inl.h
M	src/debugallocation.cc
M	src/google/heap-checker.h
M	src/heap-checker.cc
M	src/malloc_hook_mmap_freebsd.h
M	src/malloc_hook_mmap_linux.h
M	src/pprof
M	src/profile-handler.cc
M	src/profile-handler.h
M	src/stacktrace.cc
C059	src/stacktrace_powerpc-inl.h	src/stacktrace_arm-inl.h
M	src/stacktrace_config.h
M	src/stacktrace_powerpc-inl.h
M	src/stacktrace_x86-inl.h
M	src/tests/heap-checker_unittest.cc
M	src/tests/profile-handler_unittest.cc

commit a6076edd177d59e67207753b799ce047a3663cb0
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Oct 18 20:57:45 2011 +0000

	    * Get the deallocation stack trace outside the lock (sean)
	    * Make PageHeap dynamically allocated for leak checks (maxim)
	    * BUGFIX: Fix probing of nm -f behavior in pprof (dpeng)
	    * PORTING: Add "support" for MIPS cycletimer
	    * BUGFIX: Fix a race with the CentralFreeList lock (sanjay)
	    * Allow us to compile on OS X 10.6 and run on 10.5 (raltherr)
	    * Support /pprof/censusprofile url arguments (rajatjain)
	    * Die in configure when g++ is't installed (csilvers)
	    * Change IgnoreObject to return its argument (nlewycky)
	    * Update malloc-hook files to support more CPUs
	    * Move stack trace collecting out of the mutex (taylorc)
	    * BUGFIX: write our own strstr to avoid libc problems
	    (csilvers)
	    * use simple callgrind compression facility in pprof
	    * print an error message when we can't run pprof to symbolize
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@120
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	INSTALL
M	Makefile.am
M	Makefile.in
M	configure
M	configure.ac
M	packages/rpm.sh
M	src/base/basictypes.h
M	src/base/cycleclock.h
M	src/base/dynamic_annotations.h
M	src/base/spinlock_internal.cc
M	src/base/spinlock_linux-inl.h
M	src/central_freelist.cc
M	src/central_freelist.h
M	src/common.cc
M	src/common.h
M	src/debugallocation.cc
M	src/google/heap-checker.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/internal_logging.h
M	src/libc_override_osx.h
M	src/malloc_hook.cc
M	src/malloc_hook_mmap_linux.h
M	src/memfs_malloc.cc
M	src/page_heap.cc
M	src/page_heap.h
M	src/page_heap_allocator.h
M	src/pprof
M	src/profile-handler.cc
M	src/profiler.cc
M	src/span.cc
M	src/span.h
M	src/stack_trace_table.cc
M	src/stacktrace.cc
M	src/stacktrace_config.h
M	src/static_vars.cc
M	src/static_vars.h
M	src/symbolize.cc
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc
M	src/thread_cache.cc
M	src/thread_cache.h
M	src/windows/config.h

commit c2eedce2a718913ed6264ac8e96571c233761e3b
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Aug 26 21:08:59 2011 +0000

    Fri Aug 26 13:29:25 2011	Google Inc. <opensource@google.com>

	    * google-perftools: version 1.8.3 release
	    * Added back the 'pthreads unsafe early' #define, needed
	    for FreeBSD


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@117
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	NEWS
M	configure
M	configure.ac
M	src/config.h.in
M	src/pprof
M	src/windows/config.h

commit f633b40ba5d3785c7e31fd9b575c5cf5e7c174f3
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Aug 11 22:06:22 2011 +0000

    Thu Aug 11 15:01:47 2011	Google Inc. <opensource@google.com>

	    * google-perftools: version 1.8.2 release
	    * Fixed calculation of patchlevel, 'make check' should all
	    pass again


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@115
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	NEWS
M	configure
M	configure.ac
M	src/pprof
M	src/windows/config.h

commit ffcdf7bf5a7e97428f7521b3c9e6d854e3a424a9
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Aug 11 22:05:09 2011 +0000

    Fix #includes for ARM.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@114
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/atomicops-internals-arm-generic.h

commit d2faf4646dc79486babfbd63cf5f658b917dd6ab
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Jul 27 04:18:01 2011 +0000

    Tue Jul 26 20:57:51 2011	Google Inc. <opensource@google.com>

	    * google-perftools: version 1.8 release
	    * Added an #include to fix compile breakage on latest gcc's
	    * Removed an extra , in the configure.ac script


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@112
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	NEWS
M	configure
M	configure.ac
M	src/base/elf_mem_image.cc
M	src/config.h.in
M	src/pprof
M	src/tests/tcmalloc_unittest.cc
M	src/windows/config.h

commit 100c38c1a225446c1bbeeaac117902d0fbebfefe
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Jul 16 01:07:10 2011 +0000

    Fri Jul 15 16:10:51 2011	Google Inc. <opensource@google.com>

	    * google-perftools: version 1.8 release
	    * PORTING: (Disabled) support for patching mmap on freebsd
	    (chapp...)
	    * PORTING: Support volatile __malloc_hook for glibc 2.14
	    (csilvers)
	    * PORTING: Use _asm rdtsc and __rdtsc to get cycleclock in
	    windows (koda)
	    * PORTING: Fix fd vs. HANDLE compiler error on cygwin
	    (csilvers)
	    * PORTING: Do not test memalign or double-linking on OS X
	    (csilvers)
	    * PORTING: Actually enable TLS on windows (jontra)
	    * PORTING: Some work to compile under Native Client (krasin)
	    * PORTING: deal with pthread_once w/o -pthread on freebsd
	    (csilvers)
	    * Rearrange libc-overriding to make it easier to port
	    (csilvers)
	    * Display source locations in pprof disassembly (sanjay)
	    * BUGFIX: Actually initialize allocator name (mec)
	    * BUGFIX: Keep track of 'overhead' bytes in malloc reporting
	    (csilvers)
	    * Allow ignoring one object twice in the leak checker (glider)
	    * BUGFIX: top10 in pprof should print 10 lines, not 11 (rsc)
	    * Refactor vdso source files (tipp)
	    * Some documentation cleanups
	    * Document MAX_TOTAL_THREAD_CACHE_SIZE <= 1Gb (nsethi)
	    * Add MallocExtension::GetOwnership(ptr) (csilvers)
	    * BUGFIX: We were leaving out a needed $(top_srcdir) in
	    the Makefile
	    * PORTING: Support getting argv0 on OS X
	    * Add 'weblist' command to pprof: like 'list' but html
	    (sanjay)
	    * Improve source listing in pprof (sanjay)
	    * Cap cache sizes to reduce fragmentation (ruemmler)
	    * Improve performance by capping or increasing sizes
	    (ruemmler)
	    * Add M{,un}mapReplacmenet hooks into MallocHook (ribrdb)
	    * Refactored system allocator logic (gangren)
	    * Include cleanups (csilvers)
	    * Add TCMALLOC_SMALL_BUT_SLOW support (ruemmler)
	    * Clarify that tcmalloc stats are MiB (robinson)
	    * Remove support for non-tcmalloc debugallocation (blount)
	    * Add a new test: malloc_hook_test (csilvers)
	    * Change the configure script to be more crosstool-friendly
	    (mcgrathr)
	    * PORTING: leading-underscore changes to support win64
	    (csilvers)
	    * Improve debugallocation tc_malloc_size (csilvers)
	    * Extend atomicops.h and cyceclock to use ARM V6+ optimized
	    code (sanek)
	    * Change malloc-hook to use a list-like structure (llib)
	    * Add flag to use MAP_PRIVATE in memfs_malloc (gangren)
	    * Windows support for pprof: nul and /usr/bin/file (csilvers)
	    * TESTING: add test on strdup to tcmalloc_test (csilvers)
	    * Augment heap-checker to deal with no-inode maps (csilvers)
	    * Count .dll/.dylib as shared libs in heap-checker (csilvers)
	    * Disable sys_futex for arm; it's not always reliable (sanek)
	    * PORTING: change lots of windows/port.h macros to functions
	    * BUGFIX: Generate correct version# in tcmalloc.h on windows
	    (csilvers)
	    * PORTING: Some casting to make solaris happier about types
	    (csilvers)
	    * TESTING: Disable debugallocation_test in 'minimal' mode
	    (csilvers)
	    * Rewrite debugallocation to be more modular (csilvers)
	    * Don't try to run the heap-checker under valgrind
	    (ppluzhnikov)
	    * BUGFIX: Make focused stat %'s relative, not absolute
	    (sanjay)
	    * BUGFIX: Don't use '//' comments in a C file (csilvers)
	    * Quiet new-gcc compiler warnings via -Wno-unused-result,
	    etc (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@110
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	Makefile.am
M	Makefile.in
M	NEWS
M	README
M	configure
M	configure.ac
M	doc/heapprofile.html
M	doc/tcmalloc.html
M	google-perftools.sln
M	packages/deb/changelog
M	src/base/atomicops-internals-windows.h
M	src/base/atomicops.h
M	src/base/cycleclock.h
C067	src/base/vdso_support.cc	src/base/elf_mem_image.cc
A	src/base/elf_mem_image.h
M	src/base/low_level_alloc.cc
M	src/base/spinlock_internal.cc
M	src/base/vdso_support.cc
M	src/base/vdso_support.h
M	src/central_freelist.cc
M	src/central_freelist.h
M	src/common.cc
M	src/common.h
M	src/config.h.in
M	src/debugallocation.cc
M	src/google/heap-checker.h
M	src/google/malloc_extension.h
M	src/google/malloc_extension_c.h
M	src/google/malloc_hook.h
M	src/heap-checker.cc
A	src/libc_override.h
A	src/libc_override_gcc_and_weak.h
A	src/libc_override_glibc.h
A	src/libc_override_osx.h
A	src/libc_override_redefine.h
M	src/malloc_extension.cc
M	src/malloc_hook-inl.h
M	src/malloc_hook.cc
A	src/malloc_hook_mmap_freebsd.h
A	src/malloc_hook_mmap_linux.h
M	src/maybe_threads.cc
M	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/pprof
M	src/profile-handler.cc
M	src/profiler.cc
M	src/stack_trace_table.h
M	src/stacktrace.cc
M	src/stacktrace_config.h
C053	src/stack_trace_table.h src/stacktrace_nacl-inl.h
M	src/symbolize.cc
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/tests/debugallocation_test.cc
M	src/tests/malloc_extension_c_test.c
M	src/tests/malloc_extension_test.cc
M	src/tests/malloc_hook_test.cc
M	src/tests/profiler_unittest.cc
M	src/tests/system-alloc_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/thread_cache.cc
M	src/windows/config.h
M	src/windows/google/tcmalloc.h.in
M	src/windows/mingw.h
M	src/windows/port.cc
M	src/windows/port.h
M
vsprojects/current_allocated_bytes_test/current_allocated_bytes_test.vcproj
M	vsprojects/malloc_hook_test/malloc_hook_test.vcproj

commit 8c7d2289d24f7a49f1f6f60d4a6eaee06fa04c60
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu May 19 21:37:12 2011 +0000

	    * Fix typos in comment in profiler.h (nrhodes)
	    * #include fixes (jyrki)
	    * Add missing stddef.h for ptrdiff_t (mec)
	    * Add M{,un}mapReplacement hooks into MallocHook (ribrdb)
	    * Force big alloc in frag test (ruemmler)
	    * PERF: Increase the size class cache to 64K entries
	    (ruemmler)
	    * PERF: Increase the transfer cache by 16x (ruemmler)
	    * Use windows intrinsic to get the tsc (csilvers)
	    * Rename atomicops-internals-x86-msvc.h->windows.h (csilvers)
	    * Remove flaky DEATH test in malloc_hook_test (ppluzhnikov)
	    * Expose internal ReadStackTraces()/etc (lantran)
	    * Refactored system allocator logic (gangren)
	    * Include-what-you-use: cleanup tcmalloc #includes (csilvers)
	    * Don't set kAddressBits to 48 on 32-bit systems (csilvers)
	    * Add declaration for __rdtsc() for windows (koda)
	    * Don't revert to system alloc for expected errors (gangren)
	    * Add TCMALLOC_SMALL_BUT_SLOW support (ruemmler)
	    * Clarify that tcmalloc stats are MiB (robinson)
	    * Avoid setting cpuinfo_cycles_per_second to 0 (koda)
	    * Fix frag_unittest memory calculations (ruemmler)
	    * Remove support for non-tcmalloc debugallocation (blount)
	    * Add malloc_hook_test (llib)
	    * Change the objcopy -W test to be cross-friendly (mcgrathr)
	    * Export __tcmalloc in addition to _tcmalloc, for 86_64
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@109
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	INSTALL
M	Makefile.am
M	Makefile.in
M	README
M	README_windows.txt
M	configure
M	configure.ac
M	google-perftools.sln
R096	src/base/atomicops-internals-x86-msvc.h
src/base/atomicops-internals-windows.h
M	src/base/atomicops.h
M	src/base/cycleclock.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/base/vdso_support.h
M	src/central_freelist.cc
M	src/central_freelist.h
M	src/common.cc
M	src/common.h
M	src/config.h.in
M	src/debugallocation.cc
M	src/google/malloc_extension.h
M	src/google/malloc_hook.h
M	src/google/malloc_hook_c.h
M	src/google/profiler.h
M	src/google/tcmalloc.h.in
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/internal_logging.h
M	src/malloc_extension.cc
M	src/malloc_hook-inl.h
M	src/malloc_hook.cc
M	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/packed-cache-inl.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/page_heap_allocator.h
M	src/pagemap.h
M	src/sampler.cc
M	src/sampler.h
M	src/span.cc
M	src/stack_trace_table.cc
M	src/stack_trace_table.h
M	src/static_vars.cc
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/tests/frag_unittest.cc
M	src/tests/heap-checker_unittest.cc
A	src/tests/malloc_hook_test.cc
M	src/tests/memalign_unittest.cc
M	src/tests/page_heap_test.cc
M	src/tests/realloc_unittest.cc
M	src/tests/system-alloc_unittest.cc
M	src/tests/tcmalloc_large_unittest.cc
M	src/thread_cache.cc
M	src/thread_cache.h
M	src/windows/patch_functions.cc
M	src/windows/port.cc
A	vsprojects/malloc_hook_test/malloc_hook_test.vcproj

commit 1d30e525ae6ac38ae381bb3118f7f47998af2942
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Mar 21 21:41:55 2011 +0000

	    * Improve debugallocation tc_malloc_size (csilvers)
	    * Extend atomicops.h to use ARM V6+ optimized code (sanek)
	    * Fix failure in Ranges test (ppluzhnikov)
	    * Change malloc-hook to use a list-like structure (llib)
	    * Update tcmalloc_regtest to use new malloc hooks (llib)
	    * PARTIAL: Keep track of 'overhead' bytes in the page cache
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@108
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	google-perftools.sln
A	src/base/atomicops-internals-arm-generic.h
A	src/base/atomicops-internals-arm-v6plus.h
M	src/base/atomicops.h
M	src/central_freelist.cc
M	src/central_freelist.h
M	src/google/malloc_hook.h
M	src/google/malloc_hook_c.h
M	src/heap-checker-bcad.cc
M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/malloc_hook-inl.h
M	src/malloc_hook.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/tcmalloc.cc
A	src/tests/current_allocated_bytes_test.cc
M	src/tests/low_level_alloc_unittest.cc
M	src/tests/malloc_extension_c_test.c
M	src/tests/tcmalloc_unittest.cc
A
vsprojects/current_allocated_bytes_test/current_allocated_bytes_test.vcproj

commit 6fe07cd2c0527e18276cc79a57e2212a4b048746
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Mar 4 23:52:33 2011 +0000

	    * add a flag to use MAP_PRIVATE in memfs_malloc (gangren)
	    * pthread_self() is now safe to use early (ppluzhnikov)
	    * windows support for pprof: nul and /usr/bin/file (csilvers)
	    * fix tc_malloc_size for debugallocation (csilvers)
	    * add test on strdup to tcmalloc_test (csilvers)
	    * augment heap-checker to deal with no-inode maps (csilvers)
	    * Get rid of -Wno-unused-result: not all gcc's support it
	    (csilvers)
	    * /bin/true -> ':', which is faster and more portable
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@107
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	doc/tcmalloc.html
M	src/debugallocation.cc
M	src/heap-checker.cc
M	src/memfs_malloc.cc
M	src/pprof
M	src/tcmalloc.cc
M	src/tests/debugallocation_test.sh
M	src/tests/memalign_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/thread_cache.cc

commit 75584139e40c9d6c952d9c5339c52e5b58302fc8
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Mar 2 08:10:05 2011 +0000

	    * Enhance cycleclock on ARM v6 and above (sanek)
	    * Reduce object copying by using a reference (nherring)
	    * Modified lock annotations a bit (lcwu)
	    * Make debugallocation test a bit more forgiving (csilvers)
	    * Count .dll/.dylib as shared libs in heapchecker (csilvers)
	    * Disable sys_futex for arm (sanek)
	    * Don't use macros as much in windows/port.h (andrey.s...)
	    * Update #includes in case malloc.h is in weird places
	    (csilvers)
	    * Turn off some not-so-useful warnings in gcc 4 (csilvers)
	    * Do some casting to make solaris happier about types
	    (csilvers)
	    * Disable debugallocation_test in 'minimal' mode (csilvers)
	    * Rewrite debugallocation to be more modular (csilvers)
	    * We can't run the heap-checker under valgrind (ppluzhnikov)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@106
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	configure
M	configure.ac
C055	src/raw_printer.cc	src/base/arm_instruction_set_select.h
M	src/base/cycleclock.h
M	src/base/logging.h
M	src/base/low_level_alloc.cc
M	src/base/spinlock_linux-inl.h
M	src/base/stl_allocator.h
M	src/base/sysinfo.cc
M	src/config.h.in
M	src/debugallocation.cc
M	src/google/tcmalloc.h.in
M	src/heap-checker.cc
M	src/internal_logging.cc
M	src/raw_printer.cc
M	src/tcmalloc.cc
M	src/tests/debugallocation_test.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/memalign_unittest.cc
M	src/tests/sampler_test.cc
M	src/windows/config.h
R094	src/windows/google/tcmalloc.h	src/windows/google/tcmalloc.h.in
M	src/windows/port.cc
M	src/windows/port.h

commit c1abbfae802af5bf949c78e0bfdfd58d5c669a86
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Feb 19 00:11:09 2011 +0000

	    * avoid unused-var warnings with annotalysis (lcwu)
	    * make focused stats %'s relative, not absolute (sanjay)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@105
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/dynamic_annotations.h
M	src/pprof

commit dd3d9d969e9b889e96c2af497e436856fac1a2a7
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Feb 8 01:03:37 2011 +0000

	    * Fix tcmalloc_unittest on MSVC 10 in release mode (csilvers)
	    * Fix malloc_hook_c.h to compile with -ansi under gcc
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@104
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	NEWS
M	src/google/malloc_hook_c.h
M	src/tests/tcmalloc_unittest.cc

commit 7375b4f3cb3ab4471d0016017be5e18ba5451c5f
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Feb 5 00:19:37 2011 +0000

    Fri Feb 04 15:54:31 2011	Google Inc. <opensource@google.com>

	    * google-perftools: version 1.7 release
	    * Reduce page map key size under x86_64 by 4.4MB (rus)
	    * Remove a flaky malloc-extension test (fdabek)
	    * Improve the performance of PageHeap::New (ond..., csilvers)
	    * Improve sampling_test with no-inline additions/etc (fdabek)
	    * 16-byte align debug allocs (jyasskin)
	    * Change FillProcSelfMaps to detect out-of-buffer-space
	    (csilvers)
	    * Document the need for sampling to use GetHeapSample
	    (csilvers)
	    * Try to read TSC frequency from tsc_freq_khs (adurbin)
	    * Do better at figuring out if tests are running under gdb
	    (ppluzhnikov)
	    * Improve spinlock contention performance (ruemmler)
	    * Better internal-function list for pprof's /contention
	    (ruemmler)
	    * Speed up GoogleOnce (m3b)
	    * Limit number of incoming/outgoing edges in pprof (sanjay)
	    * Add pprof --evince to go along with --gv (csilvers)
	    * Document the various ways to get heap-profiling information
	    (csilvers)
	    * Separate out synchronization profiling routines (ruemmler)
	    * Improve malloc-stats output to be more understandable
	    (csilvers)
	    * Add support for census profiler in pporf (nabeelmian)
	    * Document how pprof's /symbol must support GET requests
	    (csilvers)
	    * Improve acx_pthread.m4 (ssuomi, liujisi)
	    * Speed up pprof's ExtractSymbols (csilvers)
	    * Ignore some known-leaky (java) libraries in the heap checker
	    (davidyu)
	    * Make kHideMask use all 64 bits in tests (ppluzhnikov)
	    * Clean up pprof input-file handling (csilvers)
	    * BUGFIX: Don't crash if __environ is NULL (csilvers)
	    * BUGFIX: Fix totally broken debugallocation tests (csilvers)
	    * BUGFIX: Fix up fake_VDSO handling for unittest (ppluzhnikov)
	    * BUGFIX: Suppress all large allocs when report threshold is 0
	    (lexie)
	    * BUGFIX: mmap2 on i386 takes an off_t, not off64_t (csilvers)
	    * PORTING: Add missing PERFTOOLS_DLL_DECL (csilvers)
	    * PORTING: Add stddef.h to make newer gcc's happy (csilvers)
	    * PORTING: Document some tricks for working under OS X
	    (csilvers)
	    * PORTING: Don't try to check valgrind for windows (csilvers)
	    * PORTING: Make array-size a var to compile under clang
	    (chandlerc)
	    * PORTING: No longer hook _aligned_malloc and _aligned_free
	    (csilvers)
	    * PORTING: Quiet some gcc warnings (csilvers)
	    * PORTING: Replace %PRIxPTR with %p to be more portable
	    (csilvers)
	    * PORTING: Support systems that capitalize /proc weirdly
	    (sanek)
	    * PORTING: Treat arm3 the same as arm5t in cycletimer
	    (csilvers)
	    * PORTING: Update windows logging to not allocate memory
	    (csilvers)
	    * PORTING: avoid double-patching newer windows DLLs
	    (roger.orr)
	    * PORTING: get dynamic_annotations.c to work on windows
	    (csilvers)
	    * Add pkg-config .pc files for the 5 libraries we produce
	    (csilvers)
	    * Added proper libtool versioning, so this lib will be 0.1.0
	    (csilvers)
	    * Moved from autoconf 2.64 to 2.65


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@102
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	Makefile.am
M	Makefile.in
M	NEWS
M	README
M	configure
M	configure.ac
M	m4/acx_pthread.m4
M	packages/deb/changelog
M	src/base/cycleclock.h
M	src/base/dynamic_annotations.c
M	src/base/logging.h
M	src/base/stl_allocator.h
M	src/base/vdso_support.cc
M	src/debugallocation.cc
M	src/heap-checker.cc
M	src/page_heap.cc
M	src/page_heap.h
M	src/pprof
M	src/symbolize.h
M	src/system-alloc.cc
M	src/tests/debugallocation_test.cc
M	src/tests/debugallocation_test.sh
M	src/tests/malloc_extension_test.cc
M	src/windows/port.h

commit 3d77cbf7d569a7c7f0ce39a83f6c98da1718f1c4
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Jan 19 21:37:15 2011 +0000

	    * Make kHideMask use all 64 bits (ppluzhnikov)
	    * Add new IsDebuggerAttached method (ppluzhnikov)
	    * Document some tricks for maybe getting perftools to work
	    on OS X
	    * Redo file-top pprof commands (csilvers)
	    * Clean up pprof input-file handling (csilvers)
	    * 16-byte align debug allocs (jyasskin)
	    * Ignore JVM memory leakage in the heap checker (davidyu,
	    kkurimoto)
	    * Better internal-function list for contentionz (ruemmler)
	    * mmap2 on i386 takes an off_t, not an off64_t (csilvers)
	    * Fix up fake-VDSO handling for unittest (ppluzhnikov)
	    * Don't try to check valgrind for windows (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@101
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	README
M	src/base/dynamic_annotations.c
M	src/base/linux_syscall_support.h
M	src/base/vdso_support.cc
M	src/base/vdso_support.h
M	src/debugallocation.cc
M	src/heap-checker.cc
M	src/malloc_hook.cc
M	src/pprof
M	src/tcmalloc.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/windows/config.h

commit a0a2ff3b493481ff52e4b4deec2fcc494756b64a
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Nov 24 00:33:20 2010 +0000

	    * PORTING: Add PERFTOOLS_DLL_DECL to malloc_hook_c.h
	    (csilvers)
	    * Add new .h files to Makefile (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@100
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	src/google/malloc_hook_c.h

commit 3014cf142e5a2409c88ab4559f3274434ed9a29b
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Nov 18 01:07:25 2010 +0000

	    * Suppress all large allocs when report threshold==0
	    * Clarified meaning of various malloc stats
	    * Change from ATTRIBUTED_DEPRECATED to comments
	    * Make array-size a var to compile under clang
	    * Reduce page map key size under x86_64 by 4.4MB
	    * Added full qualification to MemoryBarrier
	    * Support systems that capitalize /proc weirdly
	    * Avoid gcc warning: exporting type in unnamed ns
	    * Add some dynamic annotations for gcc attributes
	    * Add support for census profiler in pprof
	    * Speed up pprof's ExtractSymbols
	    * Speed up GoogleOnce
	    * Add pkg-config (.pc) files
	    * Detect when __environ exists but is NULL
	    * Improve spinlock contention performance
	    * Add GetFreeListSizes
	    * Improve sampling_test, eg by adding no-inline
	    * Relax malloc_extension test-check for big pages
	    * Add proper library version number information
	    * Update from autoconf 2.64 to 2.65
	    * Better document how to write a server that works with pprof
	    * Change FillProcSelfMaps to better handle out-of-space
	    * No longer hook _aligned_malloc/free in windows
	    * Handle function-forwarding in DLLs when patching (in
	    windows)
	    * Update .vcproj files that had wrong .cc files in them (!)
	    * get rid of unnecessary 'size < 0'
	    * fix comments a bit in sysinfo.cc
	    * another go at improving malloc-stats output
	    * fix comment typo in profiler.cc
	    * Add a few more thread annotations
	    * Try to read TSC frequency from 'tsc_freq_khz'
	    * Fix annotalysis/TSAN incompatibility
	    * Add pprof --evince to go along with --gv
	    * Document need for sampling to use GetHeapSample
	    * Fix flakiness in malloc_extension_test
	    * Separate out synchronization profiling routines


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@99
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	NEWS
M	README
M	aclocal.m4
M	configure
M	configure.ac
M	doc/pprof_remote_servers.html
M	ltmain.sh
A	m4/libtool.m4
A	m4/ltoptions.m4
A	m4/ltsugar.m4
A	m4/ltversion.m4
A	m4/lt~obsolete.m4
M	packages/deb/libgoogle-perftools-dev.dirs
M	packages/deb/libgoogle-perftools-dev.install
M	packages/rpm/rpm.spec
A	src/base/atomicops-internals-arm-gcc.h
M	src/base/basictypes.h
M	src/base/dynamic_annotations.h
M	src/base/logging.h
M	src/base/low_level_alloc.cc
M	src/base/spinlock.cc
M	src/base/spinlock.h
A	src/base/spinlock_internal.cc
C057	src/base/spinlock_win32-inl.h	src/base/spinlock_internal.h
M	src/base/spinlock_linux-inl.h
M	src/base/spinlock_posix-inl.h
M	src/base/spinlock_win32-inl.h
C067	src/base/spinlock_win32-inl.h
src/base/synchronization_profiling.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/base/thread_annotations.h
M	src/base/vdso_support.cc
M	src/common.h
M	src/config.h.in
M	src/debugallocation.cc
M	src/google/heap-checker.h
M	src/google/malloc_extension.h
M	src/heap-profile-table.cc
M	src/malloc_extension.cc
M	src/memory_region_map.cc
M	src/page_heap.cc
M	src/page_heap.h
M	src/pprof
M	src/profiler.cc
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/debugallocation_test.cc
M	src/tests/malloc_extension_test.cc
M	src/tests/sampling_test.cc
M	src/tests/sampling_test.sh
M	src/tests/system-alloc_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/windows/config.h
M	src/windows/patch_functions.cc
M	src/windows/port.cc
M	src/windows/port.h
M	vsprojects/addressmap_unittest/addressmap_unittest.vcproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
M	vsprojects/packed-cache_test/packed-cache_test.vcproj
M	vsprojects/tmu-static/tmu-static.vcproj

commit 682ff7da1205398376ee725b4ce3219c107b3f8a
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Aug 5 20:36:47 2010 +0000

    Thu Aug  5 12:48:03 PDT 2010

	    * google-perftools: version 1.6 release
	    * Add tc_malloc_usable_size for compatibility with glibc
	    (csilvers)
	    * Override malloc_usable_size with tc_malloc_usable_size
	    (csilvers)
	    * Default to no automatic heap sampling in tcmalloc (csilvers)
	    * Add -DTCMALLOC_LARGE_PAGES, a possibly faster tcmalloc (rus)
	    * Make some functions extern "C" to avoid false ODR warnings
	    (jyasskin)
	    * pprof: Add SVG-based output (rsc)
	    * pprof: Extend pprof --tools to allow per-tool configs
	    (csilvers)
	    * pprof: Improve support of 64-bit and big-endian profiles
	    (csilvers)
	    * pprof: Add interactive callgrind suport (weidenri...)
	    * pprof: Improve address->function mapping a bit (dpeng)
	    * Better detection of when we're running under valgrind
	    (csilvers)
	    * Better CPU-speed detection under valgrind (saito)
	    * Use, and recommend, -fno-builtin-malloc when compiling
	    (csilvers)
	    * Avoid false-sharing of memory between caches (bmaurer)
	    * BUGFIX: Fix heap sampling to use correct alloc size (bmauer)
	    * BUGFIX: Avoid gcc 4.0.x bug by making hook-clearing atomic
	    (csilvers)
	    * BUGFIX: Avoid gcc 4.5.x optimization bug (csilvers)
	    * BUGFIX: Work around deps-determining bug in libtool 1.5.26
	    (csilvers)
	    * BUGFIX: Fixed test to use HAVE_PTHREAD, not HAVE_PTHREADS
	    (csilvers)
	    * BUGFIX: Fix tls callback behavior on windows when using wpo
	    (wtc)
	    * BUGFIX: properly align allocation sizes on Windows (antonm)
	    * BUGFIX: Fix prototypes for tcmalloc/debugalloc wrt throw()
	    (csilvers)
	    * DOC: Updated heap-checker doc to match reality better
	    (fischman)
	    * DOC: Document ProfilerFlush, ProfilerStartWithOptions
	    (csilvers)
	    * DOC: Update docs for heap-profiler functions (csilvers)
	    * DOC: Clean up documentation around tcmalloc.slack_bytes
	    (fikes)
	    * DOC: Renamed README.windows to README_windows.txt (csilvers)
	    * DOC: Update the NEWS file to be non-empty (csilvers)
	    * PORTING: Fix windows addr2line and nm with proper rc code
	    (csilvers)
	    * PORTING: Add CycleClock and atomicops support for arm 5
	    (sanek)
	    * PORTING: Improve PC finding on cygwin and redhat 7
	    (csilvers)
	    * PORTING: speed up function-patching under windows (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@97
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	NEWS
M	README
M	configure
M	configure.ac
M	doc/heap_checker.html
M	m4/pc_from_ucontext.m4
M	packages/deb/changelog
M	src/base/atomicops.h
M	src/base/cycleclock.h
M	src/base/dynamic_annotations.c
M	src/base/dynamic_annotations.h
M	src/base/sysinfo.cc
M	src/base/thread_annotations.h
M	src/base/vdso_support.h
M	src/common.cc
M	src/common.h
M	src/google/malloc_extension.h
M	src/google/tcmalloc.h.in
M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/malloc_hook-inl.h
M	src/malloc_hook.cc
M	src/pprof
M	src/stacktrace_x86-inl.h
M	src/tcmalloc.cc
M	src/tests/sampler_test.cc
M	src/tests/tcmalloc_unittest.cc
M	src/windows/google/tcmalloc.h
M	src/windows/port.cc
M	vsprojects/addressmap_unittest/addressmap_unittest.vcproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
M	vsprojects/tmu-static/tmu-static.vcproj

commit 488eee994d571da216ef105d4144282c801f0eee
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Jun 23 16:42:31 2010 +0000

    Oops, I thought I had done this last time, but maybe not.  Submit the
    name change.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@96
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

R092	README.windows	README_windows.txt

commit cb7393cbe2d737009001fd9d30dad568bac7a3d8
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Jun 21 15:59:56 2010 +0000

	    * Default to not sampling in tcmalloc (csilvers)
	    * Add -DTCMALLOC_LARGE_PAGES: better perf for some workloads
	    (rus)
	    * Extend pprof --tools to allow per-tool configs (csilvers)
	    * Have STL_Allocator pass on # bytes to free (richardfang)
	    * Add a header guard to config.h (csilvers)
	    * DOC: Clean up documentation around tcmalloc.slack_bytes
	    (fikes)
	    * DOC: Document ProfilerFlush, ProfilerStartWithOptions
	    (csilvers)
	    * PORTING: Work around a gcc 4.5.0 optimization bug (csilvers)
	    * PORTING: Use -fno-builtin-malloc and friends when compiling
	    tcmalloc
	    * PORTING: Define _WIN32_WINNT high enough for mingw
	    (csilvers)
	    * PORTING: Work around libtool bug getting deps wrong in
	    some cases
	    * Update README.windows to emphasize $IncludeDir more
	    (csilvers)
	    * Rename README.windows to README_windows.txt (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@95
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	README
M	configure
M	configure.ac
M	doc/cpuprofile.html
M	doc/tcmalloc.html
M	src/base/dynamic_annotations.c
M	src/base/dynamic_annotations.h
M	src/base/stl_allocator.h
M	src/central_freelist.cc
M	src/common.h
M	src/config.h.in
M	src/google/malloc_extension.h
M	src/heap-checker.cc
M	src/internal_logging.h
M	src/linked_list.h
M	src/memory_region_map.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/pprof
M	src/sampler.cc
M	src/span.h
M	src/tcmalloc.cc
M	src/tests/frag_unittest.cc
M	src/tests/page_heap_test.cc
M	src/tests/testutil.cc
M	src/thread_cache.cc
M	src/thread_cache.h
M	src/windows/config.h
M	src/windows/mingw.h

commit d8c02761689ba909f474b85618f99ac6dfc9a168
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri May 7 21:53:24 2010 +0000

	    * Update docs for heap-profiler fns (csilvers)
	    * In pprof, accept URLs without ports but with http:// (rsc)
	    * Refactor sizeclass handling in tcmalloc (bmaurer)
	    * Always log failed calls to FindAllocDetails (mec)
	    * Clarify comments for ProfilerStart* (malcolmr)
	    * Add #include guards to stacktrace_win32-inl.h (glider)
	    * Add ANNOTATE_ENABLE_RACE_DETECTION(enable) (kcc)
	    * Make a contentful NEWS file (csilvers)
	    * Fix addr2line --help (which pprof relies on) for windows
	    (csilvers)
	    * Fixes a bug in tcmalloc's TLS callback on windows -static
	    (wtc)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@94
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	NEWS
M	doc/heapprofile.html
M	packages/deb/control
M	packages/rpm/rpm.spec
M	src/base/dynamic_annotations.c
M	src/base/dynamic_annotations.h
M	src/base/vdso_support.cc
M	src/central_freelist.cc
M	src/common.h
M	src/google/profiler.h
M	src/heap-checker.cc
M	src/internal_logging.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/pprof
M	src/span.h
M	src/stacktrace_win32-inl.h
M	src/tcmalloc.cc
M	src/tests/page_heap_test.cc
M	src/windows/addr2line-pdb.c
M	src/windows/nm-pdb.c
M	src/windows/port.cc

commit b0fe220d503eb23830e622939c2e14f084392d1e
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Apr 22 17:29:02 2010 +0000

	    * Fix pthread_once extern declarations (willchan)
	    * Add missing closing brace that resulted in compile failure
	    (willchan)
	    * Handle closed stdin/out/err properly when forking (glider)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@93
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/maybe_threads.cc
M	src/profile-handler.cc
M	src/symbolize.cc
M	src/tcmalloc.cc

commit 21c65ecb037d7d41dcd574c70cd7b7e9d5045462
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Apr 12 21:18:48 2010 +0000

	    * Speed up IsSymbolizedProfile by checking for NUL (csilvers)
	    * Fix heap sampling to use correct alloc size (bmaurer)
	    * Make pprof ignore tc_new{,array}_nothrow (csilvers)
	    * PORTING: Have IsHeapProfilerRunning return an int, for C
	    (csilvers)
	    * Avoid false-sharing of memory between caches (bmaurer)
	    * Fix some variable shadowing (rt)
	    * SVG-based ouptut in pprof; also, wget->curl (rsc)
	    * Allow arbitrary prefix before obvious handler (rsc)
	    * Advertise when using libunwind (ppluzhnikov)

    Also, the install file seems to have reverted back to the default at
    some previous point in time (autotools will do that occasionally).
    Change that back to have the perftools-specific text in there.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@92
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	INSTALL
M	src/base/basictypes.h
M	src/google/heap-profiler.h
M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/page_heap_allocator.h
M	src/pprof
M	src/stacktrace_config.h
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/thread_cache.h

commit 92beff88437b31f4a618640b88487e0f8dfb7017
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Mar 23 20:39:55 2010 +0000

	    * Add new (std::nothrow) to debugallocation (corrado)
	    * Add a flag to ingore unaligned-ptr leaks (archanakannan)
	    * PORTING: Add get-pc capabilities for a new OS (csilvers)
	    * Don't register malloc extension under valgrind (csilvers)
	    * Fix throw specs for our global operator new (chandlerc)
	    * PORTING: link to instructions on windows static overrides
	    (mbelshe)
	    * Fix prototype differences in debugalloc (chandlerc,
	    csilvers, wan)
	    * Change pprof to handle big-endian input files (csilvers)
	    * Properly align allocation sizes on Windows (antonm)
	    * Improve IsRunningOnValgrind, using valgrind.h (csilvers,
	    kcc)
	    * Improve the accuracy of system_alloc actual_size (csilvers)
	    * Add interactive callgrind support to pprof (weidenri...)
	    * Fix off-by-one problems when symbolizing in pprof (dpeng)
	    * Be more permissive in allowed library names, in pprof
	    (csilvers)
	    * PORTING: Fix pc_from_ucontext to handle cygwin and redhat7
	    (csilvers)
	    * Fix stacktrace to avoid inlining (ppluzhnikov)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@91
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	README.windows
M	configure
M	configure.ac
M	doc/heap_checker.html
M	m4/pc_from_ucontext.m4
A	src/base/dynamic_annotations.c
D	src/base/dynamic_annotations.cc
M	src/base/dynamic_annotations.h
M	src/base/low_level_alloc.cc
M	src/config.h.in
M	src/debugallocation.cc
M	src/google/stacktrace.h
M	src/google/tcmalloc.h.in
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/malloc_extension.cc
M	src/malloc_hook.cc
M	src/memory_region_map.cc
M	src/pprof
M	src/stacktrace.cc
M	src/stacktrace_generic-inl.h
M	src/stacktrace_libunwind-inl.h
M	src/stacktrace_powerpc-inl.h
D	src/stacktrace_with_context.cc
M	src/stacktrace_x86-inl.h
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/debugallocation_test.cc
M	src/tests/heap-checker-death_unittest.sh
M	src/tests/profiler_unittest.cc
M	src/tests/profiler_unittest.sh
M	src/tests/tcmalloc_unittest.cc
A	src/third_party/valgrind.h
M	src/windows/google/tcmalloc.h
M	src/windows/port.cc

commit 23dd124970bc11636feaa240394063ba5889ca54
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Feb 11 01:32:42 2010 +0000

	    * Speed up patching by not patching modules that are already
	    loaded


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@88
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/windows/config.h
M	src/windows/patch_functions.cc

commit 8f8a010cab7d3070069a31990cb0e269f03dceb0
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Jan 20 23:00:51 2010 +0000

    Oops, I submitted the wrong version of patch_functions.cc with the
    previous commit.  This is really the one that goes with release 1.5.
    .
    ?\027[D

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@86
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/windows/patch_functions.cc

commit fef86cfeba8915e34575f09499e18b184d7254a9
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Jan 20 22:47:29 2010 +0000

	    * google-perftools: version 1.5 release
	    * Add tc_set_new_mode (willchan)
	    * Make memalign functions + realloc respect tc_set_new_mode
	    (willchan)
	    * Add ReleaseToSystem(num_bytes) (kash)
	    * Handle zero-length symbols a bit better in pprof (csilvers)
	    * Prefer __environ to /proc/self/environ in cpu profiler
	    (csilvers)
	    * Add HEAP_CHECK_MAX_LEAKS flag to control #leaks to report
	    (glider)
	    * Add two new numeric pageheap properties to MallocExtension
	    (fikes)
	    * Print alloc size when mmap fails (hakon)
	    * Add ITIMER_REAL support to cpu profiler (csilvers,
	    nabeelmian)
	    * Speed up symbolizer in heap-checker reporting (glider)
	    * Speed up futexes with FUTEX_PRIVATE_FLAG (m3b)
	    * Speed up tcmalloc but doing better span coalescing (sanjay)
	    * Better support for different wget's and addr2maps in pprof
	    (csilvres)
	    * Implement a nothrow version of delete and delete[]
	    (csilvers)
	    * BUGFIX: fix a race on module_libcs[i] in windows patching
	    (csilvers)
	    * BUGFIX: Fix debugallocation to call cpp_alloc for new
	    (willchan)
	    * BUGFIX: A simple bugfix for --raw mode (mrabkin)
	    * BUGFIX: Fix C shims to actually be valid C (csilvers)
	    * BUGFIX: Fix recursively-unmapped-region accounting
	    (ppluzhnikov)
	    * BUGFIX: better distinguish real and fake vdso (ppluzhnikov)
	    * WINDOWS: replace debugmodule with more reliable psai
	    (andrey)
	    * PORTING: Add .bundle as another shared library extension
	    (csilvers)
	    * PORTING: Fixed a typo bug in the ocnfigure PRIxx m4 macro
	    (csilvers)
	    * PORTING: Augment sysinfo to work on 64-bit OS X (csilvers)
	    * PORTING: Use sys/ucontext.h to fix compiing on OS X 10.6
	    (csilvers)
	    * PORTING: Fix sysinfo libname reporting for solaris x86
	    (jeffrey)
	    * PORTING: Use libunwind for i386 when using --omitfp
	    (ppluzhnikov)

    NOTE: This release uses an older version of
    src/windows/patch_functions.cc
    because I decided the latest optimizations were not well enough tested
    for a release.  I'll aim to get them into next release.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@84
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	autogen.sh
M	configure
M	configure.ac
M	packages/deb/changelog
M	src/pprof
M	src/windows/patch_functions.cc

commit 63b8d63beb7d771713774f9a5d57381cbd29bf19
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Jan 14 16:26:05 2010 +0000

	    * PORTING: Revised patch_functions to avoid deadlock
	    (csilvers, andrey)
	    * PORTING: Revised patch_functions to speed up .dll loads
	    (csilvers)
	    * PORTING: Build and run sampling_test for windows (csilvers)
	    * Correctly init tc structs even when libc isn't patched
	    (csilvers)
	    * Make low-level allocs async-signal-safe (saito)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@83
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	README.windows
M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h
M	src/google/malloc_hook.h
M	src/malloc_hook.cc
M	src/pprof
M	src/stacktrace_x86-inl.h
M	src/tcmalloc.cc
M	src/tests/sampling_test.sh
M	src/thread_cache.cc
M	src/windows/patch_functions.cc
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M	vsprojects/tmu-static/tmu-static.vcproj

commit eeeacd5ec4fa36256091f45e5b3af81cee2a4d86
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Jan 6 00:34:23 2010 +0000

	    * PORTING: Fix a race condition in windows patching
	    * PORTING: Use Psapi instead of debugmodule to get windows
	    module info


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@82
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	README.windows
M	google-perftools.sln
M	src/page_heap.h
M	src/windows/patch_functions.cc
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M	vsprojects/tmu-static/tmu-static.vcproj

commit 6e7479331c751bdfe04d272dbb1bbbe877f0e86a
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Dec 15 01:41:30 2009 +0000

	    * Fix a memory leak with repeated Patch() calls on windows
	    (csilvers)
	    * Fix a bug when we re-Patch() a previously unpatched lib
	    (csilvers)
	    * Add .bundle as another .so extension in pprof (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@81
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/spinlock.h
M	src/heap-checker.cc
M	src/heap-profile-table.h
M	src/memfs_malloc.cc
M	src/memory_region_map.h
M	src/packed-cache-inl.h
M	src/pprof
M	src/profile-handler.cc
M	src/profiledata.h
M	src/windows/patch_functions.cc
M	src/windows/preamble_patcher.cc

commit 1d981b6997f73e6d92b647d042cfe8649d4728c1
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Dec 2 21:42:10 2009 +0000

	    * Make memalign && posix_memalign respect tc_set_new_mode
	    (willchan)
	    * Fix windows patch functions to respect tc_set_new_mode
	    (willchan)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@80
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/tcmalloc.cc
M	src/tests/tcmalloc_unittest.cc
M	src/windows/patch_functions.cc

commit a94d5f797412bac7b811bf8d69d9298fec54f5cc
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Dec 2 18:15:13 2009 +0000

	    * Prefer __environ to /proc/self/environ (csilvers)
	    * Add HEAP_CHECK_MAX_LEAKS envvar (glider)
	    * BUGFIX: debugallocation now calls cpp_alloc for new
	    (willchan)
	    * BUGFIX: tc_set_new_mode() respected for realloc and calloc
	    (willchan)
	    * BUGFIX: fix opt-mode maybe-crash on debugallocation_test
	    (csilvers)
	    * Print alloc size when mmap fails (hakon)
	    * Add ITIMER_REAL support (csilvers, nabeelmian)
	    * BUGFIX: correctly report double-frees (csilvers)
	    * Export tc_set_new_mode() from the .h file (willchan)
	    * Restructure Symbolize to make it more efficient (glider)
	    * PORTING: Augment sysinfo to work on 64-bit OS X (csilvers)
	    * Add two numeric pageheap properties to MallocExtension
	    (fikes)
	    * PORTING: Use libunwind for i386 when using --omitfp
	    (ppluzhnikov)
	    * Add ReleaseToSystem(num_bytes) (kash)
	    * Provide correct library filenames under solaris (jeffrey)
	    * BUGFIX: simple fix in pprof --raw mode (mrabkin)
	    * PORTING: Prefer sys/ucontext.h to fix OS 10.6 builds
	    (csilvers)
	    * Improve support for inlined functions in pprof (sanjay)
	    * Update wget code to not use keepalive (mrabkin, csilvers)
	    * PORTING: correctly handle x86_64 machines that use fp's
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@79
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	configure
M	configure.ac
M	doc/cpuprofile.html
M	doc/heap_checker.html
M	m4/compiler_characteristics.m4
M	src/base/logging.h
M	src/base/sysinfo.cc
M	src/config.h.in
M	src/debugallocation.cc
M	src/google/malloc_extension.h
M	src/google/malloc_extension_c.h
M	src/google/tcmalloc.h.in
M	src/heap-profile-table.cc
M	src/malloc_extension.cc
M	src/memfs_malloc.cc
M	src/pprof
M	src/profile-handler.cc
M	src/symbolize.cc
M	src/symbolize.h
M	src/tcmalloc.cc
M	src/tests/atomicops_unittest.cc
M	src/tests/debugallocation_test.cc
M	src/tests/malloc_extension_test.cc
M	src/tests/profile-handler_unittest.cc
M	src/tests/profiler_unittest.sh
M	src/tests/tcmalloc_unittest.cc
M	src/windows/config.h
M	src/windows/google/tcmalloc.h

commit 5b80f01df1137337131b4c50ce97faaff9973e90
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Nov 10 16:24:57 2009 +0000

	    * Replace usleep() and poll() with nanosleep() (glider)
	    * Document problems with _recalloc (csilvers)
	    * Detect when x86_64 doesn't turn off frame pointers
	    (csilvers)
	    * Fix sysinfo.cc/etc to work with 64-bit os x (csilvers)
	    * BUGFIX: Use __TEXT instead of __DATA to store tcmalloc fns
	    (csilvers)
	    * Added two numeric pageheap properties to tcmalloc (fikes)
	    * Support for mallocranges stats visualization (sanjay)
	    * Use libunwind for i386, not just x86_64 (ppluzhnikov)
	    * Add ReleaseToSystem(num_bytes) (kash)
	    * Provide corect library filenames under solaris (jeffrey)
	    * BUGFIX: a simple bug in pprof --raw mode (mrabkin)
	    * Prfer sys/ucontext.h to ucontext.h, to fix OS X 10.6
	    (csilvers)
	    * Improve supprot for inlined functions in pprof (sanjay)
	    * Document inaccuracies in profiling mmap calls (csilvers)
	    * Update wget code to not use keepalive (mrabkin, csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@78
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	README.windows
M	configure
M	configure.ac
M	doc/heapprofile.html
M	google-perftools.sln
M	m4/pc_from_ucontext.m4
M	src/base/basictypes.h
M	src/base/dynamic_annotations.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/debugallocation.cc
M	src/google/heap-checker.h
M	src/google/malloc_extension.h
M	src/google/malloc_extension_c.h
M	src/heap-checker.cc
M	src/malloc_extension.cc
M	src/page_heap.cc
M	src/page_heap.h
M	src/pagemap.h
M	src/pprof
M	src/stacktrace_config.h
M	src/symbolize.cc
M	src/symbolize.h
M	src/tcmalloc.cc
M	src/tests/malloc_extension_c_test.c
A	src/tests/page_heap_test.cc
M	src/tests/pagemap_unittest.cc
M	src/tests/profile-handler_unittest.cc
M	src/tests/tcmalloc_unittest.cc
A	vsprojects/page_heap_test/page_heap_test.vcproj

commit 25eed16e1b042a80c9a3e83bbf7ed227d04fb45a
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Oct 27 17:30:52 2009 +0000

	    * Fix Symbolize() to call pprof once, rather than once/symbol
	    (glider)
	    * Fix unsetting of hooks before forking, in debug mode (maxim)
	    * Add some documention for pmuprofile (aruns)
	    * Speed up futex with FUTEX_PRIVATE_FLAG (m3b)
	    * Fix os x 10.6: prefer sys/ucontext.h to ucontext.h
	    (csilvers)
	    * Fix C shims to be actually valid C: malloc_extension/etc
	    (csilvers)
	    * Fix a longtime memset bug (csilvers)
	    * Implement nothrow versions of delete (csilvers)
	    * Fix recursively-unmapped-region accounting (ppluzhnikov)
	    * Better distinguish between real and fake VDSO (ppluzhnikov)
	    * Modify span coalescing to improve performance (sanjay)
	    * WINDOWS: Remove unnecessary lock around VirtualAlloc
	    (mbelshe)
	    * Remove performance tests for ptmalloc2 (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@77
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	Makefile.am
M	Makefile.in
M	configure
M	configure.ac
M	doc/pprof_remote_servers.html
M	src/base/spinlock_linux-inl.h
M	src/base/vdso_support.cc
M	src/config.h.in
M	src/debugallocation.cc
M	src/getpc.h
M	src/google/malloc_extension_c.h
M	src/google/tcmalloc.h.in
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/malloc_extension.cc
M	src/memory_region_map.cc
M	src/page_heap.cc
M	src/page_heap.h
M	src/pprof
M	src/profiler.cc
M	src/sampler.cc
M	src/stacktrace_libunwind-inl.h
M	src/stacktrace_x86-inl.h
M	src/symbolize.cc
M	src/symbolize.h
M	src/tcmalloc.cc
M	src/tests/heap-checker-death_unittest.sh
M	src/tests/heap-checker_unittest.cc
A	src/tests/malloc_extension_c_test.c
D	src/tests/ptmalloc/COPYRIGHT
D	src/tests/ptmalloc/lran2.h
D	src/tests/ptmalloc/malloc-machine.h
D	src/tests/ptmalloc/t-test.h
D	src/tests/ptmalloc/t-test1.c
D	src/tests/ptmalloc/t-test2.c
D	src/tests/ptmalloc/thread-m.h
D	src/tests/ptmalloc/thread-st.h
M	src/tests/tcmalloc_unittest.cc
M	src/windows/config.h
M	src/windows/google/tcmalloc.h
M	src/windows/port.cc

commit 19dfa9e3733155e57406fbd082273eb53cb2750e
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Sep 11 18:42:32 2009 +0000

    Thu Sep 10 13:51:15 2009  Google Inc. <opensource@google.com>

	    * google-perftools: version 1.4 release
	    * Add debugallocation library, to catch memory leaks,
	    stomping, etc
	    * Add --raw mode to allow for delayed processing of pprof
	    files
	    * Use less memory when reading CPU profiles
	    * New environment variables to control kernel-allocs (sbrk,
	    memfs, etc)
	    * Add MarkThreadBusy(): performance improvement
	    * Remove static thread-cache-size code; all is dynamic now
	    * Add new HiddenPointer class to heap checker
	    * BUGFIX: pvalloc(0) allocates now (found by new debugalloc
	    library)
	    * BUGFIX: valloc test (not implementation) no longer
	    overruns memory
	    * BUGFIX: GetHeapProfile no longer deadlocks
	    * BUGFIX: Support unmapping memory regions before main
	    * BUGFIX: Fix some malloc-stats formatting
	    * BUGFIX: Don't crash as often when freeing libc-allocated
	    memory
	    * BUGFIX: Deal better with incorrect PPROF_PATH when
	    symbolizing
	    * BUGFIX: weaken new/delete/etc in addition to malloc/free/etc
	    * BUGFIX: Fix return value of GetAllocatedSize
	    * PORTING: Fix mmap-#define problem on some 64-bit systems
	    * PORTING: Call ranlib again (some OS X versions need it)
	    * PORTING: Fix a leak when building with LLVM
	    * PORTING: Remove some unneeded bash-ishs from testing scripts
	    * WINDOWS: Support library unloading as well as loading
	    * WINDOWS/BUGFIX: Set page to 'xrw' instead of 'rw' when
	    patching


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@76
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	Makefile.am
M	Makefile.in
M	aclocal.m4
M	configure
M	configure.ac
M	doc/tcmalloc.html
M	google-perftools.sln
M	m4/install_prefix.m4
A	m4/pc_from_ucontext.m4
M	packages/deb/changelog
M	src/base/atomicops-internals-macosx.h
M	src/base/atomicops-internals-x86.cc
M	src/base/atomicops-internals-x86.h
M	src/base/basictypes.h
M	src/base/dynamic_annotations.cc
M	src/base/dynamic_annotations.h
M	src/base/logging.h
M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h
M	src/base/simple_mutex.h
M	src/base/spinlock.cc
M	src/base/spinlock.h
A	src/base/spinlock_linux-inl.h
A	src/base/spinlock_posix-inl.h
A	src/base/spinlock_win32-inl.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/base/vdso_support.cc
M	src/base/vdso_support.h
M	src/common.cc
M	src/common.h
M	src/config.h.in
A	src/debugallocation.cc
M	src/getpc.h
M	src/google/heap-checker.h
M	src/google/malloc_extension.h
M	src/google/malloc_extension_c.h
M	src/google/tcmalloc.h.in
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profiler.cc
M	src/malloc_extension.cc
M	src/malloc_hook.cc
M	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/packed-cache-inl.h
M	src/page_heap.h
M	src/pagemap.h
M	src/pprof
M	src/profiler.cc
M	src/sampler.h
M	src/stacktrace_win32-inl.h
M	src/stacktrace_with_context.cc
M	src/stacktrace_x86-inl.h
A	src/symbolize.cc
C060	src/stacktrace_with_context.cc	src/symbolize.h
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/addressmap_unittest.cc
A	src/tests/debugallocation_test.cc
A	src/tests/debugallocation_test.sh
M	src/tests/heap-checker_unittest.cc
M	src/tests/heap-profiler_unittest.cc
M	src/tests/heap-profiler_unittest.sh
M	src/tests/low_level_alloc_unittest.cc
M	src/tests/malloc_extension_test.cc
M	src/tests/markidle_unittest.cc
M	src/tests/memalign_unittest.cc
M	src/tests/pagemap_unittest.cc
M	src/tests/profile-handler_unittest.cc
M	src/tests/profiledata_unittest.cc
M	src/tests/profiler_unittest.cc
M	src/tests/profiler_unittest.sh
M	src/tests/sampler_test.cc
M	src/tests/stacktrace_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/thread_cache.cc
M	src/thread_cache.h
M	src/windows/config.h
M	src/windows/google/tcmalloc.h
M	src/windows/patch_functions.cc
M	src/windows/port.h
M	src/windows/preamble_patcher.cc
M	vsprojects/addr2line-pdb/addr2line-pdb.vcproj
M	vsprojects/addressmap_unittest/addressmap_unittest.vcproj
M	vsprojects/frag_unittest/frag_unittest.vcproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
M	vsprojects/malloc_extension_test/malloc_extension_test.vcproj
M	vsprojects/markidle_unittest/markidle_unittest.vcproj
M	vsprojects/nm-pdb/nm-pdb.vcproj
M	vsprojects/packed-cache_test/packed-cache_test.vcproj
M	vsprojects/pagemap_unittest/pagemap_unittest.vcproj
M	vsprojects/realloc_unittest/realloc_unittest.vcproj
M	vsprojects/sampler_test/sampler_test.vcproj
M	vsprojects/stack_trace_table_test/stack_trace_table_test.vcproj
M
vsprojects/tcmalloc_minimal_large/tcmalloc_minimal_large_unittest.vcproj
M
vsprojects/tcmalloc_minimal_unittest/tcmalloc_minimal_unittest.vcproj
M	vsprojects/thread_dealloc_unittest/thread_dealloc_unittest.vcproj
M	vsprojects/tmu-static/tmu-static.vcproj

commit 2197cc670204c583bba3903b765c77620f349609
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Jun 10 02:04:26 2009 +0000

    Tue Jun  9 18:19:06 2009  Google Inc. <opensource@google.com>

	    * google-perftools: version 1.3 release
	    * Provide our own name for memory functions: tc_malloc, etc
	    (csilvers)
	    * Weaken memory-alloc functions so user can override them
	    (csilvers)
	    * Remove meaningless delete(nothrow) and delete[](nothrow)
	    (csilvers)
	    * BUILD: replace clever libtcmalloc/profiler.a with a new .a
	    (csilvers)
	    * PORTING: improve windows port  by using google spinlocks
	    (csilvers)
	    * PORTING: Fix RedHat 9 memory allocation in heapchecker
	    (csilvers)
	    * PORTING: Rename OS_WINDOWS macro to PLATFORM_WINDOWS
	    (mbelshe)
	    * PORTING/BUGFIX: Make sure we don't clobber GetLastError
	    (mbelshe)
	    * BUGFIX: get rid of useless data for callgrind (weidenrinde)
	    * BUGFIX: Modify windows patching to deadlock sometimes
	    (csilvers)
	    * BUGFIX: an improved fix for hook handling during fork
	    (csilvers)
	    * BUGFIX: revamp profiler_unittest.sh, which was very broken
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@74
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	Makefile.am
M	Makefile.in
M	README
M	aclocal.m4
M	configure
M	configure.ac
D	m4/stl_hash.m4
M	packages/deb/changelog
M	packages/rpm/rpm.spec
M	src/base/atomicops-internals-linuxppc.h
M	src/base/dynamic_annotations.cc
M	src/base/dynamic_annotations.h
M	src/base/spinlock.cc
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/base/vdso_support.cc
M	src/base/vdso_support.h
M	src/config.h.in
A	src/google/tcmalloc.h.in
M	src/heap-checker.cc
M	src/pprof
M	src/profile-handler.cc
M	src/tcmalloc.cc
M	src/tests/heap-checker-death_unittest.sh
M	src/tests/profiler_unittest.sh
M	src/tests/stacktrace_unittest.cc
M	src/windows/config.h
A	src/windows/google/tcmalloc.h
M	src/windows/override_functions.cc
M	src/windows/patch_functions.cc

commit 104bf697fbd2a0b90b5f01344ee01c8caa1745d0
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon May 18 22:50:20 2009 +0000

    Use the google spinlock code instead of the built-in windows code.
    The main benefit for perftools is that google spinlocks allow for
    link-time (static) initialization, which we had to simulate before,
    yielding bugs and worse performance.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@73
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/atomicops-internals-x86-msvc.h
M	src/base/spinlock.cc
M	src/base/spinlock.h
M	src/windows/config.h
M	src/windows/patch_functions.cc
M	src/windows/port.cc
M	src/windows/port.h
M	vsprojects/addressmap_unittest/addressmap_unittest.vcproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
M	vsprojects/packed-cache_test/packed-cache_test.vcproj
M	vsprojects/tmu-static/tmu-static.vcproj

commit ad03b009ef2046cee9dc38afe022b487de37db5c
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Apr 25 01:01:23 2009 +0000

    In the case of windows with HAS_EXCEPTIONS turned off we weren't able
    to use the std::set_new_handler correctly.	Rework the #ifdefs to
    allow use of the std_new_handler, but ignore the exceptions.

    Patch submitted by mbelshe.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@72
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/tcmalloc.cc

commit 1894763f57b00f72a720c4c126815c073d9ed0f3
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Apr 22 22:53:41 2009 +0000

    Make sure we don't clobber GetLastError() (for windows).


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@71
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/windows/port.h

commit a63235c4331445d718d151a2a659ec9687a0b8c8
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Apr 21 17:10:29 2009 +0000

    1) Change #include "config.h" to <config.h>.  This is what automake
    recommends, and makes it easier to override a config file.

    2) Rename OS_WINDOWS in sysinfo.cc, to not conflict with a macro
    defined in a windows SDK somewhere.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@70
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	src/base/atomicops.h
M	src/base/basictypes.h
M	src/base/commandlineflags.h
M	src/base/elfcore.h
M	src/base/logging.cc
M	src/base/logging.h
M	src/base/low_level_alloc.h
M	src/base/simple_mutex.h
M	src/base/spinlock.cc
M	src/base/spinlock.h
M	src/base/stl_allocator.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/base/vdso_support.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/internal_logging.h
M	src/malloc_extension.cc
M	src/malloc_hook.cc
M	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/page_heap.cc
M	src/page_heap.h
M	src/profiledata.cc
M	src/profiledata.h
M	src/raw_printer.cc
M	src/raw_printer.h
M	src/span.cc
M	src/span.h
M	src/stack_trace_table.cc
M	src/stack_trace_table.h
M	src/stacktrace.cc
M	src/stacktrace_with_context.cc
M	src/static_vars.h
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/tcmalloc.h
M	src/thread_cache.cc
M	src/thread_cache.h
M	src/windows/override_functions.cc
M	src/windows/patch_functions.cc
M	src/windows/port.cc

commit beb6a9a183c1ca25c99e4401b58266ce73b8c846
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Apr 18 00:02:25 2009 +0000

    Fri Apr 17 16:40:48 2009  Google Inc. <opensource@google.com>

	    * google-perftools: version 1.2 release
	    * Allow large_alloc_threshold=0 to turn it off entirely
	    (csilvers)
	    * Die more helpfully when out of memory for internal data
	    (csilvers)
	    * Refactor profile-data gathering, add a new unittest (cgd,
	    nabeelmian)
	    * BUGFIX: fix rounding errors with static thread-size caches
	    (addi)
	    * BUGFIX: disable hooks better when forking in leak-checker
	    (csilvers)
	    * BUGFIX: fix realloc of crt pointers on windows (csilvers)
	    * BUGFIX: do a better job of finding binaries in .sh tests
	    (csilvers)
	    * WINDOWS: allow overriding malloc/etc instead of patching
	    (mbelshe)
	    * PORTING: fix compilation error in a ppc-specific file
	    (csilvers)
	    * PORTING: deal with quirks in cygwin's /proc/self/maps
	    (csilvers)
	    * PORTING: use 'A' version of functions for ascii input
	    (mbelshe)
	    * PORTING: generate .so's on cygwin and mingw (ajenjo)
	    * PORTING: disable profiler methods on cygwin (jperkins)
	    * Updated autoconf version to 2.61 and libtool version
	    to 1.5.26


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@68
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	Makefile.am
M	Makefile.in
M	README.windows
M	aclocal.m4
M	config.guess
M	config.sub
M	configure
M	configure.ac
M	ltmain.sh
M	packages/deb/changelog
M	packages/rpm.sh
M	packages/rpm/rpm.spec
M	src/base/atomicops-internals-linuxppc.h
M	src/base/logging.cc
M	src/base/logging.h
M	src/base/simple_mutex.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/config.h.in
M	src/google/heap-checker.h
M	src/google/profiler.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/page_heap_allocator.h
M	src/pprof
A	src/profile-handler.cc
A	src/profile-handler.h
M	src/profiledata.cc
M	src/profiledata.h
M	src/profiler.cc
M	src/sampler.cc
M	src/stacktrace_win32-inl.h
M	src/stacktrace_x86-inl.h
M	src/tcmalloc.cc
M	src/tests/frag_unittest.cc
A	src/tests/profile-handler_unittest.cc
M	src/tests/profiledata_unittest.cc
M	src/tests/sampling_test.cc
M	src/tests/sampling_test.sh
M	src/tests/testutil.cc
M	src/thread_cache.cc
M	src/windows/addr2line-pdb.c
M	src/windows/config.h
M	src/windows/mingw.h
M	src/windows/nm-pdb.c
A	src/windows/override_functions.cc
M	src/windows/patch_functions.cc
M	src/windows/port.cc
M	src/windows/port.h

commit edd03a831f350bc72d76d4fad2b390d43faccb79
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Mar 11 20:50:03 2009 +0000

    Wed Mar 11 11:25:34 2009  Google Inc. <opensource@google.com>

	    * google-perftools: version 1.1 release
	    * Dynamically resize thread caches -- nice perf. improvement
	    (kash)
	    * Add VDSO support to give better stacktraces in linux
	    (ppluzhnikov)
	    * Improve heap-profiling sampling algorithm (ford)
	    * Rewrite leak-checking code: should be faster and more robust
	    (sanjay)
	    * Use ps2 instead of ps for dot: better page cropping for gv
	    (csilvers)
	    * Disable malloc-failure warning messages by default
	    (csilvers)
	    * Update config/Makefile to disable tests on a per-OS basis
	    (csilvers)
	    * PORTING: Get perftools compiling under MSVC 7.1 again
	    (csilvers)
	    * PORTING: Get perftools compiling under cygwin again
	    (csilvers)
	    * PORTING: automatically set library flags for solaris x86
	    (csilvers)
	    * Add TCMALLOC_SKIP_SBRK to mirror TCMALLOC_SKIP_MMAP
	    (csilvers)
	    * Add --enable flags to allow selective building (csilvers)
	    * Put addr2line-pdb and nm-pdb in proper output directory
	    (csilvers)
	    * Remove deprecated DisableChecksIn (sanjay)
	    * DOCUMENTATION: Document most MallocExtension routines
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@66
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	Makefile.am
M	Makefile.in
M	README
M	README.windows
M	aclocal.m4
M	configure
M	configure.ac
M	doc/pprof_remote_servers.html
M	doc/tcmalloc.html
M	google-perftools.sln
A	m4/acx_nanosleep.m4
M	packages/deb.sh
M	packages/deb/changelog
M	src/base/basictypes.h
M	src/base/cycleclock.h
M	src/base/dynamic_annotations.cc
M	src/base/dynamic_annotations.h
M	src/base/linux_syscall_support.h
M	src/base/simple_mutex.h
M	src/base/spinlock.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/base/thread_annotations.h
A	src/base/vdso_support.cc
A	src/base/vdso_support.h
M	src/central_freelist.cc
M	src/common.cc
M	src/common.h
M	src/config.h.in
M	src/google/heap-checker.h
M	src/google/malloc_extension.h
M	src/google/malloc_extension_c.h
M	src/google/stacktrace.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/internal_logging.h
M	src/malloc_extension.cc
M	src/malloc_hook.cc
M	src/memory_region_map.cc
M	src/page_heap.cc
M	src/pprof
M	src/profiler.cc
C061	src/static_vars.cc	src/raw_printer.cc
A	src/raw_printer.h
A	src/sampler.cc
A	src/sampler.h
M	src/span.cc
A	src/stack_trace_table.cc
C056	src/static_vars.cc	src/stack_trace_table.h
M	src/stacktrace.cc
C057	src/stacktrace.cc	src/stacktrace_config.h
M	src/stacktrace_libunwind-inl.h
M	src/stacktrace_win32-inl.h
C059	src/static_vars.cc	src/stacktrace_with_context.cc
M	src/stacktrace_x86-inl.h
M	src/stacktrace_x86_64-inl.h
M	src/static_vars.cc
M	src/static_vars.h
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/heap-checker-death_unittest.sh
M	src/tests/heap-checker_unittest.cc
M	src/tests/heap-profiler_unittest.sh
C060	src/tests/sampling_test.cc	src/tests/malloc_extension_test.cc
A	src/tests/pagemap_unittest.cc
A	src/tests/raw_printer_test.cc
A	src/tests/realloc_unittest.cc
A	src/tests/sampler_test.cc
M	src/tests/sampling_test.cc
M	src/tests/sampling_test.sh
A	src/tests/stack_trace_table_test.cc
M	src/tests/tcmalloc_unittest.cc
M	src/thread_cache.cc
M	src/thread_cache.h
M	src/windows/addr2line-pdb.c
M	src/windows/config.h
M	src/windows/patch_functions.cc
M	src/windows/port.h
M	vsprojects/addr2line-pdb/addr2line-pdb.vcproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
C061	vsprojects/nm-pdb/nm-pdb.vcproj
vsprojects/malloc_extension_test/malloc_extension_test.vcproj
M	vsprojects/nm-pdb/nm-pdb.vcproj
C064	vsprojects/nm-pdb/nm-pdb.vcproj
vsprojects/pagemap_unittest/pagemap_unittest.vcproj
C065	vsprojects/nm-pdb/nm-pdb.vcproj
vsprojects/realloc_unittest/realloc_unittest.vcproj
C063	vsprojects/nm-pdb/nm-pdb.vcproj
vsprojects/sampler_test/sampler_test.vcproj
C061	vsprojects/nm-pdb/nm-pdb.vcproj
vsprojects/stack_trace_table_test/stack_trace_table_test.vcproj
M	vsprojects/tmu-static/tmu-static.vcproj

commit c75de4d1e91c339fb5142a8a21be8b3ba5224ef7
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Jan 6 19:41:15 2009 +0000

    Tue Jan  6 13:58:56 2009  Google Inc. <opensource@google.com>
	    * google-perftools: version 1.0 release
	    * Exactly the same as 1.0rc2


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@64
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	configure
M	configure.ac
M	packages/deb/changelog
M	src/pprof

commit 49b02736109f9fe3383971e62bda2192ae86a36d
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Dec 15 01:20:31 2008 +0000

    Sun Dec 14 17:10:35 2008  Google Inc. <opensource@google.com>
	    * google-perftools: version 1.0rc2 release
	    * Fix compile error on 64-bit systems (casting ptr to int)
	    (csilvers)

    Thu Dec 11 16:01:32 2008  Google Inc. <opensource@google.com>


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@62
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	configure
M	configure.ac
M	src/heap-checker.cc

commit 6fa2a2574ce1c15ac12293e24691d69a41972e54
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Dec 13 01:35:42 2008 +0000

    Thu Dec 11 16:01:32 2008  Google Inc. <opensource@google.com>

	    * google-perftools: version 1.0rc1 release
	    * Replace API for selectively disabling heap-checker in code
	    (sanjay)
	    * Add a pre-mmap hook (daven, adlr)
	    * Add MallocExtension interface to set memory-releasing rate
	    (fikes)
	    * Augment pprof to allow any string ending in /pprof/profile
	    (csilvers)
	    * PORTING: Rewrite -- and fix --  malloc patching for windows
	    (dvitek)
	    * PORTING: Add nm-pdb and addr2line-pdb for use by pprof
	    (dvitek)
	    * PORTING: Improve cygwin and mingw support (jperkins,
	    csilvers)
	    * PORTING: Fix pprof for mac os x, other pprof improvements
	    (csilvers)
	    * PORTING: Fix some PPC bugs in our locking code
	    (anton.blanchard)
	    * A new unittest, smapling_test, to verify tcmalloc-profiles
	    (csilvers)
	    * Turn off TLS for gcc < 4.1.2, due to a TLS + -fPIC bug
	    (csilvers)
	    * Prefer __builtin_frame_address to assembly for stacktraces
	    (nlewycky)
	    * Separate tcmalloc.cc out into multiple files --
	    finally! (kash)
	    * Make our locking code work with -fPIC on 32-bit x86 (aruns)
	    * Fix an initialization-ordering bug for tcmalloc/profiling
	    (csilvers)
	    * Use "initial exec" model of TLS to speed up tcmalloc
	    (csilvers)
	    * Enforce 16-byte alignment for tcmalloc, for SSE (sanjay)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@60
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	Makefile.am
M	Makefile.in
M	README.windows
M	configure
M	configure.ac
M	doc/heap_checker.html
M	doc/pprof_remote_servers.html
M	google-perftools.sln
M	packages/deb.sh
M	packages/deb/changelog
M	src/base/atomicops-internals-linuxppc.h
M	src/base/atomicops-internals-macosx.h
M	src/base/atomicops-internals-x86.h
M	src/base/basictypes.h
M	src/base/linux_syscall_support.h
M	src/base/logging.cc
M	src/base/logging.h
M	src/base/simple_mutex.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
A	src/base/thread_annotations.h
M	src/base/thread_lister.c
A	src/central_freelist.cc
A	src/central_freelist.h
A	src/common.cc
A	src/common.h
M	src/getpc.h
M	src/google/heap-checker.h
M	src/google/heap-profiler.h
M	src/google/malloc_extension.h
M	src/google/malloc_hook.h
M	src/google/malloc_hook_c.h
M	src/google/profiler.h
M	src/google/stacktrace.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
A	src/linked_list.h
M	src/malloc_extension.cc
M	src/malloc_hook-inl.h
M	src/malloc_hook.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
A	src/page_heap.cc
A	src/page_heap.h
A	src/page_heap_allocator.h
M	src/pprof
M	src/profiler.cc
A	src/span.cc
A	src/span.h
M	src/stacktrace.cc
M	src/stacktrace_libunwind-inl.h
A	src/stacktrace_win32-inl.h
M	src/stacktrace_x86-inl.h
C059	src/base/logging.cc	src/static_vars.cc
A	src/static_vars.h
M	src/tcmalloc.cc
C071	src/base/logging.cc	src/tcmalloc_guard.h
M	src/tests/atomicops_unittest.cc
M	src/tests/frag_unittest.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/low_level_alloc_unittest.cc
C052	src/base/logging.cc	src/tests/sampling_test.cc
A	src/tests/sampling_test.sh
M	src/tests/stacktrace_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/testutil.cc
A	src/thread_cache.cc
A	src/thread_cache.h
A	src/windows/addr2line-pdb.c
A	src/windows/get_mangled_names.cc
M	src/windows/mingw.h
M	src/windows/mini_disassembler.cc
M	src/windows/mini_disassembler.h
M	src/windows/mini_disassembler_types.h
A	src/windows/nm-pdb.c
M	src/windows/patch_functions.cc
M	src/windows/port.cc
M	src/windows/port.h
M	src/windows/preamble_patcher.cc
M	src/windows/preamble_patcher.h
M	src/windows/preamble_patcher_with_stub.cc
D	src/windows/vc7and8.def
R059	vsprojects/memalign_unittest/memalign_unittest.vcproj
vsprojects/addr2line-pdb/addr2line-pdb.vcproj
M	vsprojects/frag_unittest/frag_unittest.vcproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
M	vsprojects/markidle_unittest/markidle_unittest.vcproj
C068	vsprojects/frag_unittest/frag_unittest.vcproj
vsprojects/nm-pdb/nm-pdb.vcproj
M
vsprojects/tcmalloc_minimal_large/tcmalloc_minimal_large_unittest.vcproj
M
vsprojects/tcmalloc_minimal_unittest/tcmalloc_minimal_unittest.vcproj
M	vsprojects/thread_dealloc_unittest/thread_dealloc_unittest.vcproj
R074
vsprojects/tcmalloc_minimal_unittest-static/tcmalloc_minimal_unittest-static.vcproj
vsprojects/tmu-static/tmu-static.vcproj

commit 16191f87ff8dc78295c0f617060460664fc444bd
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Sep 23 17:51:05 2008 +0000

    Tue Sep 23 08:56:31 2008  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.99.2 release
	    * COMPILE FIX: add #include needed for FreeBSD and OS X
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@58
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	configure
M	configure.ac
M	src/tests/heap-profiler_unittest.cc

commit 8b2dd25dc9d1523ab9a86bd39c4fb798c89db899
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Sep 20 17:15:23 2008 +0000

    Sat Sep 20 09:37:18 2008  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.99.1 release
	    * BUG FIX: look for nm, etc in /usr/bin, not /usr/crosstool
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@56
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	configure
M	configure.ac
M	packages/deb/changelog
M	src/pprof

commit 106aef86ce5697cf44bdbec90ab6833b9254d273
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Sep 19 20:06:40 2008 +0000

    Thu Sep 18 16:00:27 2008  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.99 release
	    * Add IsHeapProfileRunning (csilvers)
	    * Add C shims for some of the C++ header files (csilvers)
	    * Fix heap profile file clean-up logic (maxim)
	    * Rename linuxthreads.c to .cc for better compiler support
	    (csilvers)
	    * Add source info to disassembly in pprof (sanjay)
	    * Use open instead of fopen to avoid memory alloc (csilvers)
	    * Disable malloc extensions when running under valgrind (kcc)
	    * BUG FIX: Fix out-of-bound error by reordering a check
	    (larryz)
	    * Add Options struct to ProfileData (cgd)
	    * Correct PC-handling of --base in pprof (csilvers)
	    * Handle 1 function occurring twice in an image (sanjay)
	    * Improve stack-data cleaning (maxim)
	    * Use 'struct Foo' to make header C compatible (csilvers)
	    * Add 'total' line to pprof --text (csilvers)
	    * Pre-allocate buffer for heap-profiler to avoid OOM errors
	    (csilvers)
	    * Allow a few more env-settings to control tcmalloc (csilvers)
	    * Document some of the issues involving thread-local storage
	    (csilvers)
	    * BUG FIX: Define strtoll and friends for windows (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@54
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	Makefile.am
M	Makefile.in
M	README
M	README.windows
M	configure
M	configure.ac
M	doc/heapprofile.html
M	doc/tcmalloc.html
M	packages/deb/changelog
M	src/addressmap-inl.h
M	src/base/basictypes.h
M	src/base/commandlineflags.h
M	src/base/cycleclock.h
M	src/base/dynamic_annotations.cc
M	src/base/dynamic_annotations.h
R099	src/base/linuxthreads.c src/base/linuxthreads.cc
M	src/base/spinlock.h
M	src/base/stl_allocator.h
M	src/base/sysinfo.cc
M	src/google/heap-checker.h
M	src/google/heap-profiler.h
M	src/google/malloc_extension.h
A	src/google/malloc_extension_c.h
M	src/google/malloc_hook.h
A	src/google/malloc_hook_c.h
M	src/google/profiler.h
M	src/google/stacktrace.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/internal_logging.h
M	src/malloc_extension.cc
M	src/malloc_hook.cc
M	src/memory_region_map.cc
M	src/pprof
M	src/profiledata.cc
M	src/profiledata.h
M	src/profiler.cc
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/heap-checker-death_unittest.sh
M	src/tests/heap-checker_unittest.cc
M	src/tests/heap-profiler_unittest.cc
M	src/tests/markidle_unittest.cc
M	src/tests/profiledata_unittest.cc
M	src/windows/port.h

commit 100e657c5092bc274424286a728db5116a4bbc54
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Sat Jun 14 02:30:53 2008 +0000

    Mon Jun  9 16:47:03 2008  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.98 release
	    * Add ProfilerStartWithOptions() (cgd)
	    * Change tcmalloc_minimal to not do any stack-tracing at all
	    (csilvers)
	    * Prefer mmap to sbrk for 64-buit debug mode (sanjay)
	    * Fix accounting for some tcmalloc stats (sanjay)
	    * Use setrlimit() to keep unittests from killing the machine
	    (odo)
	    * Fix a bug when sbrk-ing near address 4G (csilvers)
	    * Make MallocHook thread-safe (jyasskin)
	    * Fix windows build for MemoryBarrier (jyasskin)
	    * Fix CPU-profiler docs to mention correct libs (csilvers)
	    * Fix for GetHeapProfile() when heap-profiling is off (maxim)
	    * Avoid realloc resizing ping-pongs using hysteresis
	    (csilvers)
	    * Add --callgrind output support to pprof (klimek)
	    * Fix profiler.h and heap-profiler.h to be C-compatible
	    (csilvers)
	    * Break malloc_hook.h into two parts to reduce dependencies
	    (csilvers)
	    * Better handle systems that don't implement mmap (csilvers)
	    * PORTING: disable system_alloc_unittest for msvc (csilvers)
	    * PORTING: Makefile tweaks to build better on cygwin
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@52
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	Makefile.am
M	Makefile.in
M	README.windows
M	configure
M	configure.ac
M	doc/cpuprofile.html
M	google-perftools.sln
M	m4/acx_pthread.m4
M	packages/deb/changelog
M	src/addressmap-inl.h
M	src/base/atomicops-internals-linuxppc.h
M	src/base/atomicops-internals-macosx.h
M	src/base/atomicops-internals-x86-msvc.h
M	src/base/atomicops-internals-x86.cc
M	src/base/atomicops-internals-x86.h
M	src/base/atomicops.h
M	src/base/commandlineflags.h
M	src/base/cycleclock.h
M	src/base/dynamic_annotations.cc
M	src/base/dynamic_annotations.h
M	src/base/linux_syscall_support.h
M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h
M	src/base/simple_mutex.h
M	src/base/spinlock.h
M	src/base/stl_allocator.h
M	src/base/sysinfo.h
M	src/config.h.in
M	src/getpc.h
M	src/google/heap-checker.h
M	src/google/heap-profiler.h
M	src/google/malloc_extension.h
M	src/google/malloc_hook.h
M	src/google/profiler.h
M	src/google/stacktrace.h
M	src/heap-checker.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/internal_logging.h
A	src/malloc_hook-inl.h
M	src/malloc_hook.cc
M	src/maybe_threads.cc
M	src/maybe_threads.h
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/packed-cache-inl.h
M	src/pagemap.h
M	src/pprof
M	src/profiledata.h
M	src/profiler.cc
M	src/stacktrace_generic-inl.h
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/tests/maybe_threads_unittest.sh
M	src/tests/memalign_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/testutil.cc
M	src/tests/testutil.h
M	src/windows/config.h
M	src/windows/mingw.h
M	src/windows/mini_disassembler.h
M	src/windows/mini_disassembler_types.h
M	src/windows/patch_functions.cc
M	src/windows/port.h
M	src/windows/preamble_patcher.h
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
M	vsprojects/memalign_unittest/memalign_unittest.vcproj
D	vsprojects/system_alloc_unittest/system_alloc_unittest.vcproj
M
vsprojects/tcmalloc_minimal_unittest-static/tcmalloc_minimal_unittest-static.vcproj

commit 7ec719093b1c9fda979ba0d07eed288e2a7c3c9b
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Apr 22 01:47:16 2008 +0000

    Mon Apr 21 15:20:52 2008  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.97 release
	    * Refactor GetHeapProfile to avoid using malloc (maxim)
	    * Fix heap-checker and heap-profiler hook interactions (maxim)
	    * Fix a data race in MemoryRegionMap::Lock (jyasskin)
	    * Improve thread-safety of leak checker (maxim)
	    * Fix mmap profile to no longer deadlock (maxim)
	    * Fix rpm to have devel package depend on non-devel (csilvers)
	    * PORTING: Fix clock-speed detection for Mac OS X (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@50
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	configure
M	configure.ac
M	doc/heapprofile.html
M	packages/deb/changelog
M	packages/rpm/rpm.spec
M	src/addressmap-inl.h
M	src/base/cycleclock.h
M	src/base/elfcore.h
M	src/base/low_level_alloc.cc
M	src/base/spinlock.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/google/heap-checker.h
M	src/google/heap-profiler.h
M	src/google/profiler.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/internal_logging.h
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/pprof
M	src/stacktrace_libunwind-inl.h
M	src/stacktrace_x86-inl.h
M	src/tcmalloc.cc
M	src/tests/heap-checker-death_unittest.sh
M	src/tests/heap-checker_unittest.cc
M	src/tests/heap-profiler_unittest.cc
M	src/tests/low_level_alloc_unittest.cc
M	src/tests/maybe_threads_unittest.sh
M	src/windows/port.cc

commit 97fdd4a4f97dd15e8803ed51ac153903c2cdffc2
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Mar 19 23:35:27 2008 +0000

    Tue Mar 18 14:30:44 2008  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.96 release
	    * major atomicops rewrite; fixed atomic ops code for linux/ppc
	    (vchen)
	    * nix the stacktrace library; now build structure is simpler
	    (csilvers)
	    * Speed up heap-checker, and reduce extraneous logging (maxim)
	    * Improve itimer code for NPTL case (cgd)
	    * Add source code annotations for use by valgrind, etc (kcc)
	    * PORTING: Fix high resolution timers for Mac OS X (adlr)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@48
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	Makefile.am
M	Makefile.in
M	TODO
M	configure
M	configure.ac
M	doc/cpuprofile.html
M	doc/heapprofile.html
M	packages/deb/changelog
M	packages/rpm/rpm.spec
M	src/addressmap-inl.h
M	src/base/atomicops-internals-linuxppc.h
M	src/base/atomicops-internals-macosx.h
M	src/base/atomicops-internals-x86-msvc.h
M	src/base/atomicops-internals-x86.cc
M	src/base/atomicops-internals-x86.h
M	src/base/atomicops.h
M	src/base/basictypes.h
M	src/base/cycleclock.h
A	src/base/dynamic_annotations.cc
A	src/base/dynamic_annotations.h
M	src/base/linux_syscall_support.h
M	src/base/low_level_alloc.cc
M	src/base/spinlock.cc
M	src/base/spinlock.h
M	src/base/sysinfo.cc
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/memfs_malloc.cc
M	src/pprof
M	src/profiler.cc
M	src/tests/atomicops_unittest.cc
M	src/tests/heap-checker-death_unittest.sh
M	src/tests/maybe_threads_unittest.sh
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
M
vsprojects/tcmalloc_minimal_unittest-static/tcmalloc_minimal_unittest-static.vcproj

commit a644b4f2d61b9610ec6eeb1f09ebce7054aa0762
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Tue Feb 19 22:19:22 2008 +0000

    Tue Feb 19 12:01:31 2008  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.95.1 release	(bugfix release)
	    * x86_64 compile-fix: nix pread64 and pwrite64 (csilvers)
	    * more heap-checker debug logging (maxim)
	    * minor improvement to x86_64 CycleClock (gpike)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@46
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	configure
M	configure.ac
M	src/base/cycleclock.h
M	src/base/linux_syscall_support.h
M	src/heap-checker.cc

commit 8a0a3101bc6a7d56ac04b278f28bdf3f95b00a3c
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Feb 13 00:55:09 2008 +0000

    Tue Feb 12 12:28:32 2008  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.95 release
	    * Better -- not perfect -- support for linux-ppc (csilvers)
	    * Fix race condition in libunwind stacktrace (aruns)
	    * Speed up x86 spinlock locking (m3b)
	    * Improve heap-checker performance (maxim)
	    * Heap checker traverses more ptrs inside heap-alloced objects
	    (maxim)
	    * Remove deprecated ProfilerThreadState function (cgd)
	    * Update libunwind documentation for statically linked
	    binaries (aruns)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@44
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	Makefile.am
M	Makefile.in
M	configure
M	configure.ac
M	doc/heap_checker.html
M	doc/tcmalloc.html
M	packages/deb/changelog
M	packages/deb/docs
M	packages/rpm/rpm.spec
M	src/addressmap-inl.h
A	src/base/atomicops-internals-linuxppc.h
M	src/base/atomicops-internals-x86-msvc.h
M	src/base/atomicops-internals-x86.h
M	src/base/atomicops.h
M	src/base/commandlineflags.h
A	src/base/cycleclock.h
M	src/base/elfcore.h
M	src/base/linux_syscall_support.h
M	src/base/linuxthreads.c
M	src/base/linuxthreads.h
M	src/base/logging.h
R090	src/base/mutex.h	src/base/simple_mutex.h
M	src/base/spinlock.cc
M	src/base/spinlock.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/google/heap-checker.h
M	src/google/profiler.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/malloc_extension.cc
M	src/malloc_hook.cc
M	src/maybe_threads.cc
M	src/packed-cache-inl.h
M	src/profiledata.h
M	src/profiler.cc
M	src/stacktrace.cc
M	src/stacktrace_libunwind-inl.h
M	src/stacktrace_powerpc-inl.h
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/addressmap_unittest.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/profiler_unittest.cc
M	src/tests/stacktrace_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/windows/preamble_patcher.h

commit b43ba444fcd74fa7c3260f6b2494dcbaa3fdb296
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Dec 5 00:08:28 2007 +0000

    Mon Dec  3 23:51:54 2007  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.94.1 release	(bugfix release)
	    * Fix missing #includes for x86_64 compile using libunwind
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@42
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	configure
M	configure.ac
M	src/stacktrace_libunwind-inl.h

commit 11b02f7aebd05cf39f6f93bdd48786909f99f34e
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Nov 29 23:39:24 2007 +0000

    Thu Nov 29 07:59:43 2007  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.94 release
	    * PORTING: MinGW/Msys support -- runs same code as MSVC does
	    (csilvers)
	    * PORTING: Add NumCPUs support for Mac OS X (csilvers)
	    * Work around a sscanf bug in glibc(?) (waldemar)
	    * Fix Windows MSVC bug triggered by thread deletion (csilvers)
	    * Fix bug that triggers in MSVC /O2: missing volatile (gpike)
	    * March-of-time support: quiet warnings/errors for gcc 4.2,
	    OS X 10.5
	    * Modify pprof so it works without nm: useful for windows
	    (csilvers)
	    * pprof: Support filtering for CPU profiles (cgd)
	    * Bugfix: have realloc report to hooks in all situations
	    (maxim)
	    * Speed improvement: replace slow memcpy with std::copy
	    (soren)
	    * Speed: better iterator efficiency in RecordRegionRemoval
	    (soren)
	    * Speed: minor speed improvements via better bitfield
	    alignment (gpike)
	    * Documentation: add documentation of binary profile output
	    (cgd)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@40
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	Makefile.am
M	Makefile.in
M	configure
M	configure.ac
A	doc/cpuprofile-fileformat.html
M	doc/cpuprofile.html
M	packages/deb/changelog
M	src/base/linux_syscall_support.h
M	src/base/spinlock.cc
M	src/base/sysinfo.cc
M	src/config.h.in
M	src/getpc.h
M	src/google/heap-checker.h
M	src/google/profiler.h
M	src/google/stacktrace.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profiler.cc
M	src/malloc_hook.cc
M	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/packed-cache-inl.h
M	src/pprof
A	src/profiledata.cc
A	src/profiledata.h
M	src/profiler.cc
M	src/stacktrace_generic-inl.h
M	src/stacktrace_libunwind-inl.h
M	src/stacktrace_powerpc-inl.h
M	src/stacktrace_x86-inl.h
M	src/stacktrace_x86_64-inl.h
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/tests/addressmap_unittest.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/low_level_alloc_unittest.cc
M	src/tests/maybe_threads_unittest.sh
A	src/tests/profiledata_unittest.cc
M	src/tests/system-alloc_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/testutil.cc
M	src/windows/config.h
A	src/windows/mingw.h
M	src/windows/mini_disassembler.h
M	src/windows/patch_functions.cc
M	src/windows/port.cc
M	src/windows/port.h
M	src/windows/preamble_patcher.h
M	src/windows/preamble_patcher_with_stub.cc
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj

commit 49b74b9508797f8aafe6b86e62e7efc4ec200e48
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Fri Aug 17 20:56:15 2007 +0000

	    * google-perftools: version 0.93 release
	    * PORTING: everything compiles on Solaris, OS X, FreeBSD
	    (see INSTALL)
	    * PORTING: cpu-profiler works on most platforms (much
	    better GetPC())
	    * PORTING: heap-profiler works on most platforms
	    * PORTING: improved windows support, including release builds
	    * No longer build or run ptmalloc tests by default
	    * Add support for using memfs filesystem to allocate memory
	    in linux
	    * WINDOWS: give debug library and release library different
	    names

    Tue Jul 17 22:26:27 2007  Google Inc. <opensource@google.com>


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@38
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	Makefile.am
M	Makefile.in
M	README
M	README.windows
M	autogen.sh
M	configure
M	configure.ac
M	google-perftools.sln
M	m4/program_invocation_name.m4
M	packages/deb/changelog
M	src/addressmap-inl.h
M	src/base/basictypes.h
M	src/base/logging.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/base/thread_lister.c
M	src/config.h.in
M	src/config_for_unittests.h
A	src/getpc.h
M	src/google/heap-checker.h
M	src/google/malloc_hook.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profile-table.h
M	src/heap-profiler.cc
M	src/malloc_extension.cc
M	src/malloc_hook.cc
A	src/memfs_malloc.cc
M	src/memory_region_map.cc
M	src/memory_region_map.h
M	src/pprof
M	src/profiler.cc
M	src/stacktrace_powerpc-inl.h
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/tests/addressmap_unittest.cc
A	src/tests/getpc_test.cc
M	src/tests/heap-checker-death_unittest.sh
M	src/tests/heap-checker_unittest.cc
M	src/tests/heap-profiler_unittest.sh
M	src/tests/low_level_alloc_unittest.cc
M	src/tests/maybe_threads_unittest.sh
M	src/tests/memalign_unittest.cc
M	src/tests/system-alloc_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/windows/TODO
M	src/windows/config.h
A	src/windows/ia32_modrm_map.cc
A	src/windows/ia32_opcode_map.cc
A	src/windows/mini_disassembler.cc
A	src/windows/mini_disassembler.h
A	src/windows/mini_disassembler_types.h
A	src/windows/patch_functions.cc
M	src/windows/port.cc
M	src/windows/port.h
A	src/windows/preamble_patcher.cc
A	src/windows/preamble_patcher.h
A	src/windows/preamble_patcher_with_stub.cc
M	src/windows/vc7and8.def
M	vsprojects/addressmap_unittest/addressmap_unittest.vcproj
M	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
M
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
C054	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
vsprojects/tcmalloc_minimal_unittest-static/tcmalloc_minimal_unittest-static.vcproj

commit c437e1fcdd1e6ff3f032928d460cbfc115e2324f
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Wed Jul 18 18:30:50 2007 +0000

    Tue Jul 17 22:26:27 2007  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.92 release
	    * PERFORMANCE: use a packed cache to speed up tcmalloc
	    * PORTING: preliminary windows support! (see README.windows)
	    * PORTING: better support for solaris, OS X, FreeBSD
	    (see INSTALL)
	    * Envvar support for running the heap-checker under gdb
	    * Add weak declarations to maybe_threads to fix no-pthreads
	    compile bugs
	    * Some 64bit fixes, especially with pprof
	    * Better heap-checker support for some low-level allocations
	    * Fix bug where heap-profiles would sometimes get truncated
	    * New documentation about how to handle common heap leak
	    situations
	    * Use computed includes for hash_map/set: easier config
	    * Added all used .m4 templates to the distribution


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@36
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	Makefile.am
M	Makefile.in
M	README
A	README.windows
M	aclocal.m4
A	autogen.sh
M	compile
M	config.guess
M	config.sub
M	configure
M	configure.ac
M	depcomp
M	doc/cpuprofile.html
M	doc/heap_checker.html
M	doc/heapprofile.html
A	google-perftools.sln
M	install-sh
A	m4/ac_have_attribute.m4
A	m4/acx_pthread.m4
A	m4/compiler_characteristics.m4
A	m4/install_prefix.m4
A	m4/namespaces.m4
A	m4/program_invocation_name.m4
A	m4/stl_hash.m4
A	m4/stl_namespace.m4
M	missing
M	mkinstalldirs
M	packages/deb/changelog
M	packages/rpm/rpm.spec
M	src/base/atomicops-internals-x86-msvc.h
M	src/base/atomicops-internals-x86.h
M	src/base/atomicops.h
M	src/base/basictypes.h
M	src/base/commandlineflags.h
M	src/base/logging.h
M	src/base/low_level_alloc.cc
M	src/base/low_level_alloc.h
D	src/base/mutex.cc
M	src/base/mutex.h
M	src/base/spinlock.cc
M	src/base/spinlock.h
M	src/base/stl_allocator.h
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/config.h.in
C068	src/tests/testutil.h	src/config_for_unittests.h
M	src/google/heap-checker.h
M	src/google/heap-profiler.h
M	src/google/malloc_extension.h
M	src/google/malloc_hook.h
M	src/google/profiler.h
M	src/google/stacktrace.h
M	src/heap-checker.cc
M	src/heap-profile-table.cc
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/internal_logging.h
M	src/malloc_extension.cc
M	src/malloc_hook.cc
M	src/maybe_threads.cc
M	src/maybe_threads.h
M	src/memory_region_map.cc
M	src/memory_region_map.h
A	src/packed-cache-inl.h
M	src/pprof
M	src/profiler.cc
M	src/solaris/libstdc++.la
M	src/stacktrace.cc
A	src/stacktrace_powerpc-inl.h
M	src/stacktrace_x86-inl.h
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tcmalloc.cc
C053	src/tests/testutil.cc	src/tcmalloc.h
M	src/tests/frag_unittest.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/heap-profiler_unittest.cc
M	src/tests/heap-profiler_unittest.sh
M	src/tests/low_level_alloc_unittest.cc
M	src/tests/markidle_unittest.cc
A	src/tests/maybe_threads_unittest.sh
M	src/tests/memalign_unittest.cc
C065	src/tests/testutil.h	src/tests/packed-cache_test.cc
M	src/tests/profiler_unittest.cc
M	src/tests/stacktrace_unittest.cc
C051	src/tests/thread_dealloc_unittest.cc
src/tests/system-alloc_unittest.cc
M	src/tests/tcmalloc_unittest.cc
M	src/tests/testutil.cc
M	src/tests/testutil.h
M	src/tests/thread_dealloc_unittest.cc
A	src/windows/TODO
C060	src/config.h.in src/windows/config.h
A	src/windows/port.cc
A	src/windows/port.h
A	src/windows/vc7and8.def
A	vsprojects/addressmap_unittest/addressmap_unittest.vcproj
A	vsprojects/frag_unittest/frag_unittest.vcproj
A	vsprojects/libtcmalloc_minimal/libtcmalloc_minimal.vcproj
A
vsprojects/low_level_alloc_unittest/low_level_alloc_unittest.vcproj
A	vsprojects/markidle_unittest/markidle_unittest.vcproj
A	vsprojects/memalign_unittest/memalign_unittest.vcproj
A	vsprojects/packed-cache_test/packed-cache_test.vcproj
A	vsprojects/system_alloc_unittest/system_alloc_unittest.vcproj
A
vsprojects/tcmalloc_minimal_large/tcmalloc_minimal_large_unittest.vcproj
A
vsprojects/tcmalloc_minimal_unittest/tcmalloc_minimal_unittest.vcproj
A	vsprojects/thread_dealloc_unittest/thread_dealloc_unittest.vcproj

commit 6878379d5bab87c787cdd3487b5620a9c8adf376
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Apr 19 00:53:22 2007 +0000

    Wed Apr 18 16:43:55 2007  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.91 release
	    * Brown-paper-bag bugfix: compilation error on some x86-64
	    machines


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@30
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	README
M	config.guess
M	config.sub
M	configure
M	configure.ac
M	src/base/sysinfo.cc
M	src/base/sysinfo.h
M	src/stacktrace_libunwind-inl.h
M	src/tests/ptmalloc/malloc-machine.h

commit 74ad5d57ec08abace386befc6c3c695d85f44d1a
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Mon Apr 16 20:49:32 2007 +0000

    Fri Apr 13 14:50:51 2007  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.90 release
	    * (As the version-number jump hints, this is a major new
	    release:
	      almost every piece of functionality was rewritten.
	      I can't do
	      justice to all the changes, but will concentrate on
	      highlights.)
	    *** USER-VISIBLE CHANGES:
	    * Ability to "release" unused memory added to tcmalloc
	    * Exposed more tweaking knobs via environment variables
	    (see docs)
	    * pprof tries harder to map addresses to functions
	    * tcmalloc_minimal compiles and runs on FreeBSD 6.0 and
	    Solaris 10
	    *** INTERNAL CHANGES:
	    * Much better 64-bit support
	    * Better multiple-processor support (e.g. multicore contention
	    tweaks)
	    * Support for recent kernel ABI changes (e.g. new arg
	    to mremap)
	    * Addition of spinlocks to tcmalloc to reduce contention cost
	    * Speed up tcmalloc by using __thread on systems that
	    support TLS
	    * Total redesign of heap-checker to improve liveness checking
	    * More portable stack-frame analysis -- no more hard-coded
	    constants!
	    * Disentangled heap-profiler code and heap-checker code
	    * Several new unittests to test, e.g., thread-contention costs
	    * Lots of small (but important!) bug fixes: e.g., fixing
	    GetPC on amd64
	    *** KNOWN PROBLEMS:
	    * CPU-profiling may crash on x86_64 (64-bit) systems.
	    See the README
	    * Profiling/heap-checking may deadlock on x86_64 systems.
	    See README


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@28
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	INSTALL
M	Makefile.am
M	Makefile.in
M	README
M	TODO
M	aclocal.m4
M	config.guess
M	config.sub
M	configure
M	configure.ac
R050	doc/cpu_profiler.html	doc/cpuprofile.html
A	doc/designstyle.css
M	doc/heap_checker.html
D	doc/heap_profiler.html
A	doc/heapprofile.html
M	doc/index.html
M	doc/tcmalloc.html
M	ltmain.sh
M	packages/deb/changelog
A	packages/deb/docs
M	packages/rpm/rpm.spec
M	src/addressmap-inl.h
A	src/base/atomicops-internals-macosx.h
A	src/base/atomicops-internals-x86-msvc.h
A	src/base/atomicops-internals-x86.cc
A	src/base/atomicops-internals-x86.h
A	src/base/atomicops.h
M	src/base/basictypes.h
M	src/base/commandlineflags.h
M	src/base/elfcore.h
M	src/base/googleinit.h
M	src/base/linux_syscall_support.h
M	src/base/linuxthreads.c
M	src/base/linuxthreads.h
C074	src/base/googleinit.h	src/base/logging.cc
M	src/base/logging.h
A	src/base/low_level_alloc.cc
A	src/base/low_level_alloc.h
A	src/base/mutex.cc
A	src/base/mutex.h
A	src/base/spinlock.cc
A	src/base/spinlock.h
A	src/base/stl_allocator.h
A	src/base/sysinfo.cc
A	src/base/sysinfo.h
M	src/base/thread_lister.c
M	src/base/thread_lister.h
M	src/config.h.in
M	src/google/heap-checker.h
M	src/google/heap-profiler.h
M	src/google/malloc_extension.h
M	src/google/malloc_hook.h
M	src/google/profiler.h
M	src/google/stacktrace.h
M	src/heap-checker-bcad.cc
M	src/heap-checker.cc
A	src/heap-profile-table.cc
A	src/heap-profile-table.h
D	src/heap-profiler-inl.h
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/internal_logging.h
D	src/internal_spinlock.h
M	src/malloc_extension.cc
M	src/malloc_hook.cc
M	src/maybe_threads.cc
A	src/memory_region_map.cc
A	src/memory_region_map.h
M	src/pprof
M	src/profiler.cc
A	src/solaris/libstdc++.la
M	src/stacktrace.cc
M	src/stacktrace_generic-inl.h
M	src/stacktrace_libunwind-inl.h
M	src/stacktrace_x86-inl.h
M	src/stacktrace_x86_64-inl.h
M	src/system-alloc.cc
M	src/system-alloc.h
M	src/tcmalloc.cc
M	src/tests/addressmap_unittest.cc
A	src/tests/atomicops_unittest.cc
A	src/tests/frag_unittest.cc
M	src/tests/heap-checker-death_unittest.sh
M	src/tests/heap-checker_unittest.cc
M	src/tests/heap-checker_unittest.sh
M	src/tests/heap-profiler_unittest.cc
M	src/tests/heap-profiler_unittest.sh
A	src/tests/low_level_alloc_unittest.cc
A	src/tests/markidle_unittest.cc
A	src/tests/memalign_unittest.cc
M	src/tests/profiler_unittest.sh
M	src/tests/ptmalloc/malloc-machine.h
M	src/tests/stacktrace_unittest.cc
M	src/tests/tcmalloc_large_unittest.cc
M	src/tests/tcmalloc_unittest.cc
C055	src/stacktrace.cc	src/tests/testutil.cc
C074	src/base/googleinit.h	src/tests/testutil.h
C055	src/stacktrace.cc	src/tests/thread_dealloc_unittest.cc

commit ddbf2f027fb4ca8781fd50820ceb870570f414bc
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Mar 22 05:03:28 2007 +0000

    Now that we've uploaded the full source, including the doc/ directory,
    we can get rid of docs/

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@27
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

D	docs/html/cpu_profiler.html
D	docs/html/heap_checker.html
D	docs/html/heap_profiler.html
D	docs/html/tcmalloc.html
D	docs/images/heap-example1.png
D	docs/images/overview.gif
D	docs/images/pageheap.gif
D	docs/images/pprof-test.gif
D	docs/images/pprof-vsnprintf.gif
D	docs/images/spanmap.gif
D	docs/images/tcmalloc-opspercpusec.png
D	docs/images/tcmalloc-opspercpusec_002.png
D	docs/images/tcmalloc-opspercpusec_003.png
D	docs/images/tcmalloc-opspercpusec_004.png
D	docs/images/tcmalloc-opspercpusec_005.png
D	docs/images/tcmalloc-opspercpusec_006.png
D	docs/images/tcmalloc-opspercpusec_007.png
D	docs/images/tcmalloc-opspercpusec_008.png
D	docs/images/tcmalloc-opspercpusec_009.png
D	docs/images/tcmalloc-opspersec.png
D	docs/images/tcmalloc-opspersec_002.png
D	docs/images/tcmalloc-opspersec_003.png
D	docs/images/tcmalloc-opspersec_004.png
D	docs/images/tcmalloc-opspersec_005.png
D	docs/images/tcmalloc-opspersec_006.png
D	docs/images/tcmalloc-opspersec_007.png
D	docs/images/tcmalloc-opspersec_008.png
D	docs/images/tcmalloc-opspersec_009.png
D	docs/images/threadheap.gif

commit 7ede7d6a9fe772b0bfa05acb2a2a6867405b474a
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Mar 22 05:01:39 2007 +0000

    set mime-type for png and gifs

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@26
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

commit 8e188310f7d8732d81b7b04f193f89964b7af6c5
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Mar 22 04:55:49 2007 +0000

    Wed Jun 14 15:11:14 2006  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.8 release
	    * Experimental support for remote profiling added to pprof
	    (many)
	    * Fixed race condition in ProfileData::FlushTable (etune)
	    * Better support for weird /proc maps (maxim, mec)
	    * Fix heap-checker interaction with gdb (markus)
	    * Better 64-bit support in pprof (aruns)
	    * Reduce scavenging cost in tcmalloc by capping NumMoveSize
	    (sanjay)
	    * Cast syscall(SYS_mmap); works on more 64-bit systems now
	    (menage)
	    * Document the text output of pprof! (csilvers)
	    * Better compiler support for no-THREADS and for old compilers
	    (csilvers)
	    * Make libunwind the default stack unwinder for x86-64 (aruns)
	    * Somehow the COPYING file got erased.  Regenerate it
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@23
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	COPYING
M	ChangeLog
M	Makefile.am
M	aclocal.m4
M	configure
M	configure.ac
M	doc/cpu_profiler.html
A	doc/pprof_remote_servers.html
M	src/base/linux_syscall_support.h
M	src/base/linuxthreads.c
M	src/base/thread_lister.c
M	src/google/heap-checker.h
M	src/heap-checker.cc
M	src/malloc_extension.cc
M	src/malloc_hook.cc
M	src/pprof
M	src/profiler.cc
M	src/stacktrace.cc
M	src/stacktrace_libunwind-inl.h
M	src/tcmalloc.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/tcmalloc_unittest.cc

commit c3b96b3ac552160abde541bba8ac7b4f8338efa0
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Mar 22 04:48:00 2007 +0000

    Thu Apr 13 20:59:09 2006  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.7 release
	    * Major rewrite of thread introspection for new kernels
	    (markus)
	    * Major rewrite of heap-checker to use new thread tools
	    (maxim)
	    * Add proper support for following data in thread registers
	    (maxim)
	    * Syscall support for older kernels, including _syscall6
	    (markus)
	    * Support PIC mode (markus, mbland, iant)
	    * Better support for running in non-threaded contexts
	    (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@21
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	configure
M	configure.ac
M	src/base/elfcore.h
M	src/base/linux_syscall_support.h
M	src/base/linuxthreads.c
M	src/base/thread_lister.h
M	src/google/heap-checker.h
M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/malloc_hook.cc
M	src/pprof
M	src/profiler.cc
M	src/tests/heap-checker-death_unittest.sh
M	src/tests/heap-checker_unittest.cc
M	src/tests/tcmalloc_unittest.cc

commit 60a3a2ce77ed2713b2eedd20952d9cfc56ff7ccf
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Mar 22 04:46:29 2007 +0000

    Fri Jan 27 14:04:27 2006  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.6 release
	    * More sophisticated stacktrace usage, possibly using
	    libunwind (aruns)
	    * Update pprof to handle 64-bit profiles (dehnert)
	    * Fix GetStackTrace to correctly return top stackframe
	    (sanjay)
	    * Add ANSI compliance for new and new[], including new_handler
	    (jkearney)
	    * More accuracy by reading ELF files directly rather than
	    objdump (mec)
	    * Add readline support for pprof (addi)
	    * Add #includes for PPC (csilvers)
	    * New PC-detection routine for ibook powerpc (asbestoshead)
	    * Vastly improved tcmalloc unittest (csilvers)
	    * Move documentation from /usr/doc to /usr/share/doc


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@19
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	Makefile.am
M	configure
M	configure.ac
M	packages/rpm/rpm.spec
M	src/base/thread_lister.c
M	src/config.h.in
M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/malloc_extension.cc
M	src/pprof
M	src/profiler.cc
M	src/stacktrace.cc
C065	src/tests/tcmalloc_unittest.cc	src/stacktrace_generic-inl.h
C064	src/tests/tcmalloc_unittest.cc	src/stacktrace_libunwind-inl.h
C068	src/stacktrace.cc	src/stacktrace_x86-inl.h
A	src/stacktrace_x86_64-inl.h
M	src/tcmalloc.cc
M	src/tests/stacktrace_unittest.cc
M	src/tests/tcmalloc_unittest.cc

commit 298274f8d4f474d2b16a35c8babc58817088c59e
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Mar 22 04:45:23 2007 +0000

    Mon Nov 14 17:28:59 2005  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.5 release
	    * Add va_start/va_end calls around vsnprintf() (csilvers)
	    * Write our own __syscall_return(), since it's not defined
	      consistently on all 64-bit linux distros (markus)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@17
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	configure
M	configure.ac
M	src/base/linux_syscall_support.h
M	src/base/logging.h
M	src/config.h.in

commit ee5805f1296f8546c16f90d5427efa347a5f7338
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Mar 22 04:44:18 2007 +0000

    Wed Oct 26 15:19:16 2005  Google Inc. <opensource@google.com>

	    * Decrease fragmentation in tcmalloc (lefevere)
	    * Support for ARM in some of the thread-specific code (markus)
	    * Turn off heap-checker for statically-linked binaries, which
	      cause error leak reports now (etune)
	    * Many pprof improvements, including a command-line interface
	    (jeff)
	    * CPU profiling now automatically affects all threads in
	    linux 2.6.
	      (Kernel bugs break CPU profiling and threads in linux 2.4
	      a bit.)
	      ProfilerEnable() and ProfilerDisable() are deprecated.
	      (sanjay)
	    * tcmalloc now correctly intercepts memalign (m3b, maxim)
	    * Syntax fix: added missing va_end()s.  Helps non-gcc
	    compiling (etune)
	    * Fixed a few coredumper bugs: race condition after
	    PTRACE_DETACH,
	      ignore non-aligned stackframe pointers (markus, menage)
	    * 64-bit cleanup, especially for spinlock code (etune)
	    and mmap (sanjay)
	    * Better support for finding threads in linux (markus)
	    * tcmalloc now tracks those stack traces that allocate memory
	    (sanjay)
	    * Work around a weird setspecific problem (sanjay)
	    * Fix tcmalloc overflow problems when an alloc is close to
	    2G/4G (sanjay)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@15
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	Makefile.am
M	aclocal.m4
M	configure
M	configure.ac
M	doc/cpu_profiler.html
D	src/base/elfcore.c
M	src/base/elfcore.h
A	src/base/linux_syscall_support.h
M	src/base/linuxthreads.c
M	src/base/linuxthreads.h
M	src/base/thread_lister.c
M	src/base/thread_lister.h
M	src/google/heap-checker.h
M	src/google/malloc_extension.h
M	src/google/profiler.h
M	src/heap-checker.cc
M	src/heap-profiler.cc
M	src/internal_logging.cc
M	src/internal_spinlock.h
M	src/malloc_extension.cc
M	src/malloc_hook.cc
M	src/pagemap.h
M	src/pprof
M	src/profiler.cc
M	src/stacktrace.cc
M	src/system-alloc.cc
M	src/tcmalloc.cc
A	src/tests/tcmalloc_large_unittest.cc
M	src/tests/tcmalloc_unittest.cc

commit bc455d7b63949fab94ed9518d277866e95f08768
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Mar 22 04:42:30 2007 +0000

    Fri Jun 24 18:02:26 2005  Google Inc. <opensource@google.com>

	    * Add missing errno include for one of the unittests
	    (csilvers)
	    * Reduce tcmalloc startup memory from 5M to 256K (sanjay)
	    * Add support for mallopt() and mallinfo (sanjay)
	    * Improve stacktrace's performance on some 64-bit systems
	    (etune)
	    * Improve the stacktrace unittest (etune)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@13
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	configure
M	configure.ac
M	src/pagemap.h
M	src/stacktrace.cc
M	src/tcmalloc.cc
M	src/tests/heap-checker_unittest.cc
M	src/tests/stacktrace_unittest.cc

commit 91fad389784766782263133c5510976a8f76d89e
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Mar 22 03:28:56 2007 +0000

    Tue May 31 08:14:38 2005  Google Inc. <opensource@google.com>

	    * google-perftools: version 0.2 release
	    * Use mmap2() instead of mmap(), to map more memory (menage)
	    * Do correct pthread-local checking in heap-checker! (maxim)
	    * Avoid overflow on 64-bit machines in pprof (sanjay)
	    * Add a few more GetPC() functions, including for AMD
	    (csilvers)
	    * Better method for overriding pthread functions (menage)
	    * (Hacky) fix to avoid overwriting profile files after fork()
	    (csilvers)
	    * Crashing bugfix involving dumping heaps on small-stack
	    threads (tudor)
	    * Allow library versions with letters at the end (csilvers)
	    * Config fixes for systems that don't define PATH_MAX
	    (csilvers)
	    * Confix fixes so we no longer need config.h after install
	    (csilvers)
	    * Fix to pprof to correctly read very big cpu profiles
	    (csilvers)
	    * Fix to pprof to deal with new commandline flags in
	    modern gv's
	    * Better error reporting when we can't access /proc/maps
	    (etune)
	    * Get rid of the libc-preallocate code (which could crash
	    on some
	      systems); no longer needed with local-threads fix (csilvers)


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@11
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

M	ChangeLog
M	Makefile.am
M	README
M	TODO
M	configure
M	configure.ac
M	doc/cpu_profiler.html
A	doc/heap_checker.html
M	doc/heap_profiler.html
A	doc/index.html
A	doc/t-test1.times.txt
A	doc/tcmalloc-opspercpusec.vs.threads.1024.bytes.png
A	doc/tcmalloc-opspercpusec.vs.threads.128.bytes.png
A	doc/tcmalloc-opspercpusec.vs.threads.131072.bytes.png
A	doc/tcmalloc-opspercpusec.vs.threads.16384.bytes.png
A	doc/tcmalloc-opspercpusec.vs.threads.2048.bytes.png
A	doc/tcmalloc-opspercpusec.vs.threads.256.bytes.png
A	doc/tcmalloc-opspercpusec.vs.threads.32768.bytes.png
A	doc/tcmalloc-opspercpusec.vs.threads.4096.bytes.png
A	doc/tcmalloc-opspercpusec.vs.threads.512.bytes.png
A	doc/tcmalloc-opspercpusec.vs.threads.64.bytes.png
A	doc/tcmalloc-opspercpusec.vs.threads.65536.bytes.png
A	doc/tcmalloc-opspercpusec.vs.threads.8192.bytes.png
A	doc/tcmalloc-opspersec.vs.size.1.threads.png
A	doc/tcmalloc-opspersec.vs.size.12.threads.png
A	doc/tcmalloc-opspersec.vs.size.16.threads.png
A	doc/tcmalloc-opspersec.vs.size.2.threads.png
A	doc/tcmalloc-opspersec.vs.size.20.threads.png
A	doc/tcmalloc-opspersec.vs.size.3.threads.png
A	doc/tcmalloc-opspersec.vs.size.4.threads.png
A	doc/tcmalloc-opspersec.vs.size.5.threads.png
A	doc/tcmalloc-opspersec.vs.size.8.threads.png
M	doc/tcmalloc.html
M	packages/deb/changelog
M	packages/deb/control
M	packages/deb/copyright
D	packages/deb/files
M	packages/deb/libgoogle-perftools-dev.install
M	packages/deb/libgoogle-perftools0.install
M	packages/rpm.sh
M	packages/rpm/rpm.spec
M	src/addressmap-inl.h
R099	src/google/perftools/basictypes.h	src/base/basictypes.h
M	src/base/commandlineflags.h
A	src/base/elfcore.c
A	src/base/elfcore.h
A	src/base/linuxthreads.c
A	src/base/linuxthreads.h
A	src/base/thread_lister.c
A	src/base/thread_lister.h
M	src/google/heap-checker.h
M	src/google/heap-profiler.h
R088	src/google/malloc_interface.h	src/google/malloc_extension.h
M	src/google/malloc_hook.h
D	src/google/perftools/config.h.in
M	src/google/stacktrace.h
M	src/heap-checker-bcad.cc
M	src/heap-checker.cc
M	src/heap-profiler-inl.h
M	src/heap-profiler.cc
M	src/internal_logging.h
M	src/internal_spinlock.h
R068	src/malloc_interface.cc src/malloc_extension.cc
M	src/malloc_hook.cc
A	src/maybe_threads.cc
C070	src/tests/tcmalloc_unittest.cc	src/maybe_threads.h
M	src/pagemap.h
M	src/pprof
M	src/profiler.cc
M	src/stacktrace.cc
M	src/system-alloc.cc
M	src/tcmalloc.cc
M	src/tests/addressmap_unittest.cc
M	src/tests/heap-checker-death_unittest.sh
M	src/tests/heap-checker_unittest.cc
C051	src/tests/heap-checker-death_unittest.sh
src/tests/heap-checker_unittest.sh
A	src/tests/heap-profiler_unittest.cc
A	src/tests/heap-profiler_unittest.sh
M	src/tests/profiler_unittest.cc
M	src/tests/profiler_unittest.sh
M	src/tests/stacktrace_unittest.cc
M	src/tests/tcmalloc_unittest.cc

commit 51b4875f8ade3e0930eed2dc2a842ec607a94a2c
Author: csilvers <csilvers@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Mar 22 03:00:33 2007 +0000

    Tue Feb 8 09:57:17 2005  El Goog <opensource@google.com>

	    * google-perftools: initial release:
	      The google-perftools package contains some utilities
	      to improve
	      and analyze the performance of C++ programs.  This includes
	      an
	      optimized thread-caching malloc() and cpu and heap profiling
	      utilities.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@9
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

A	AUTHORS
A	COPYING
A	ChangeLog
A	INSTALL
A	Makefile.am
A	Makefile.in
A	NEWS
A	README
A	TODO
A	aclocal.m4
A	compile
A	config.guess
A	config.sub
A	configure
A	configure.ac
A	depcomp
A	doc/cpu_profiler.html
A	doc/heap-example1.png
A	doc/heap_profiler.html
A	doc/overview.dot
A	doc/overview.gif
A	doc/pageheap.dot
A	doc/pageheap.gif
A	doc/pprof-test-big.gif
A	doc/pprof-test.gif
A	doc/pprof-vsnprintf-big.gif
A	doc/pprof-vsnprintf.gif
A	doc/pprof.1
A	doc/pprof.see_also
A	doc/spanmap.dot
A	doc/spanmap.gif
A	doc/tcmalloc.html
A	doc/threadheap.dot
A	doc/threadheap.gif
A	install-sh
A	ltmain.sh
A	missing
A	mkinstalldirs
A	packages/deb.sh
A	packages/deb/README
A	packages/deb/changelog
A	packages/deb/compat
A	packages/deb/control
A	packages/deb/copyright
A	packages/deb/files
A	packages/deb/libgoogle-perftools-dev.dirs
A	packages/deb/libgoogle-perftools-dev.install
A	packages/deb/libgoogle-perftools0.dirs
A	packages/deb/libgoogle-perftools0.install
A	packages/deb/libgoogle-perftools0.manpages
A	packages/deb/rules
A	packages/rpm.sh
A	packages/rpm/rpm.spec
A	src/addressmap-inl.h
A	src/base/commandlineflags.h
A	src/base/googleinit.h
A	src/base/logging.h
A	src/config.h.in
A	src/google/heap-checker.h
A	src/google/heap-profiler.h
A	src/google/malloc_hook.h
A	src/google/malloc_interface.h
A	src/google/perftools/basictypes.h
A	src/google/perftools/config.h.in
A	src/google/profiler.h
A	src/google/stacktrace.h
A	src/heap-checker-bcad.cc
A	src/heap-checker.cc
A	src/heap-profiler-inl.h
A	src/heap-profiler.cc
A	src/internal_logging.cc
A	src/internal_logging.h
A	src/internal_spinlock.h
A	src/malloc_hook.cc
A	src/malloc_interface.cc
A	src/pagemap.h
A	src/pprof
A	src/profiler.cc
A	src/stacktrace.cc
A	src/system-alloc.cc
A	src/system-alloc.h
A	src/tcmalloc.cc
A	src/tests/addressmap_unittest.cc
A	src/tests/heap-checker-death_unittest.sh
A	src/tests/heap-checker_unittest.cc
A	src/tests/profiler_unittest.cc
A	src/tests/profiler_unittest.sh
A	src/tests/ptmalloc/COPYRIGHT
A	src/tests/ptmalloc/lran2.h
A	src/tests/ptmalloc/malloc-machine.h
A	src/tests/ptmalloc/t-test.h
A	src/tests/ptmalloc/t-test1.c
A	src/tests/ptmalloc/t-test2.c
A	src/tests/ptmalloc/thread-m.h
A	src/tests/ptmalloc/thread-st.h
A	src/tests/stacktrace_unittest.cc
A	src/tests/tcmalloc_unittest.cc

commit e3a8513447d1141f083d4aaced0b240a6e161f47
Author: trowbridge.jon
<trowbridge.jon@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Dec 28 22:53:59 2006 +0000

    Set page mime-type to text/html.


    git-svn-id: http://gperftools.googlecode.com/svn/trunk@5
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

commit 66737d1c2519e4a1622f61139bfe2f683ea3696c
Author: trowbridge.jon
<trowbridge.jon@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Dec 28 22:39:33 2006 +0000

    Import of HTML documentation from SourceForge.



    git-svn-id: http://gperftools.googlecode.com/svn/trunk@3
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50

A	docs/html/cpu_profiler.html
A	docs/html/heap_checker.html
A	docs/html/heap_profiler.html
A	docs/html/tcmalloc.html
A	docs/images/heap-example1.png
A	docs/images/overview.gif
A	docs/images/pageheap.gif
A	docs/images/pprof-test.gif
A	docs/images/pprof-vsnprintf.gif
A	docs/images/spanmap.gif
A	docs/images/tcmalloc-opspercpusec.png
A	docs/images/tcmalloc-opspercpusec_002.png
A	docs/images/tcmalloc-opspercpusec_003.png
A	docs/images/tcmalloc-opspercpusec_004.png
A	docs/images/tcmalloc-opspercpusec_005.png
A	docs/images/tcmalloc-opspercpusec_006.png
A	docs/images/tcmalloc-opspercpusec_007.png
A	docs/images/tcmalloc-opspercpusec_008.png
A	docs/images/tcmalloc-opspercpusec_009.png
A	docs/images/tcmalloc-opspersec.png
A	docs/images/tcmalloc-opspersec_002.png
A	docs/images/tcmalloc-opspersec_003.png
A	docs/images/tcmalloc-opspersec_004.png
A	docs/images/tcmalloc-opspersec_005.png
A	docs/images/tcmalloc-opspersec_006.png
A	docs/images/tcmalloc-opspersec_007.png
A	docs/images/tcmalloc-opspersec_008.png
A	docs/images/tcmalloc-opspersec_009.png
A	docs/images/threadheap.gif

commit 55d679a05f0518ea73a4bca6e8b71b54fcecf68f
Author: (no author) <(no author)@6b5cf1ce-ec42-a296-1ba9-69fdba395a50>
Date:	Thu Jul 27 00:57:14 2006 +0000

    Initial directory structure.

    git-svn-id: http://gperftools.googlecode.com/svn/trunk@1
    6b5cf1ce-ec42-a296-1ba9-69fdba395a50
