dart-sdk/third_party/tcmalloc
Zachary Anderson 1a8174b08d Exclude Observatory assets from PRODUCT build dart, dart_precompiled_runtime
This CL also removes some compiler flags that increase space somewhat
that help the profiler find symbols, which isn't included in a PRODUCT
build.

Before:
zra@zach:~/dart/sdk$ ls -la out/ProductX64/exe.stripped/
-rwxr-x--- 1 zra eng  9693064 Jun 29 14:52 dart
-rwxr-x--- 1 zra eng  7391080 Jun 29 14:52 dart_precompiled_runtime

R=askesc@google.com, rmacnak@google.com

After:
-rwxr-x--- 1 zra eng  6809424 Jun 29 15:11 dart
-rwxr-x--- 1 zra eng  3299120 Jun 29 15:11 dart_precompiled_runtime
Review-Url: https://codereview.chromium.org/2964133002 .
2017-06-30 08:09:37 -07:00
..
include
.gitignore
BUILD.gn Exclude Observatory assets from PRODUCT build dart, dart_precompiled_runtime 2017-06-30 08:09:37 -07:00
configure_command
COPYING Clean up the licensing situation of the third_party/tcmalloc directory (#27879) 2016-11-24 09:37:21 +01:00
README.dart Remove MIPS support 2017-06-22 08:49:22 -07:00
tcmalloc.gypi
tcmalloc_sources.gypi Add tcmalloc to GN build 2016-09-23 15:24:54 -07:00

Dart uses tcmalloc in the standalone VM on Linux.

To roll tcmalloc forward:
. Clone the gperftools git repo at the revision you want in a directory off
  to the side.

. Run a configure command similar to the one in the configure_command file in
  this directory. It is up to you to determine if different flags are required
  for the newer gperftools.

. From that repo, copy src/config.h and src/gperftools/tcmalloc.h, and any other
  generated header files to the include/ directory in this directory.

. Also copy the COPYING file and any other relevant licensing information.

. Make sure that include/config.h defines HAVE_UCONTEXT_H on Linux,

. Update tcmalloc_sources.gypi, and tcmalloc.gyp if necessary. This may require
  inspecting gperftools/Makefile.am to see any additional source files and
  preprocessor defines (-D flags).

. Update the DEPS file with the new git hash.

. Build and run tests for Debug, Release, and Product builds for ia32, x64,
  and arm for Linux and any other OSs that are supported.