| |
| == googletest |
| |
| googletest is vendored at release-1.8.0-3576-ga05c0915. It was copied |
| verbatim via git archive and added here. |
| |
| == libbacktrace |
| |
| libbacktrace was vendored from github.com/ianlancetaylor/libbacktrace |
| at commit 793921876c981ce49759114d7bb89bb89b2d3a2d. We dont use its |
| autotools build infrastructure and integrate it ourselves with mostly |
| hardcoded config.h and our own Makefile.am bits. Those integration |
| bits are in libbacktrace-integration in this subdirectory. Main |
| motivation for such approach is that: |
| |
| *) we only need symbolization subset |
| |
| *) we want to avoid polluting global namespace of symbols. We arrange |
| for all backtrace symbols to be prefixed tcmalloc_. See |
| libbacktrace-integration/config.h. |
| |
| When updating libbacktrace check that all symbols are renamed by |
| something like this: |
| |
| $ make libbacktrace.la |
| $ objdump -t .libs/libbacktrace.a | grep ' g ' |
| |
| Another notable thing is, we don't bother with mmap support for |
| reading files metadata and debug info. We actually go to extra length |
| to replace their alloc.c functions with our own. Our replacement |
| improves performance some, but most notably it allows us to discard |
| all the state allocated by libbacktrace. This enables us to not worry |
| about any synchronization concerns or libbacktrace's lack of ability |
| to "see" freshly dlopened modules if we did recommended path of doing |
| thread-ful singleton backtrace state. |