Index: base/allocator/allocator.gyp |
diff --git a/base/allocator/allocator.gyp b/base/allocator/allocator.gyp |
index f66929809317e6bbfa71432d48d64bbfd8c34537..821289f530dd90f5bfd62a962862ed83bc8c0b06 100644 |
--- a/base/allocator/allocator.gyp |
+++ b/base/allocator/allocator.gyp |
@@ -203,6 +203,7 @@ |
'allocator_shim.cc', |
'allocator_shim.h', |
+ 'debugallocation_shim.cc', |
'generic_allocators.cc', |
'win_allocator.cc', |
], |
@@ -212,6 +213,10 @@ |
'generic_allocators.cc', |
'win_allocator.cc', |
+ # Included by debugallocation_shim.cc. |
+ '<(tcmalloc_dir)/src/debugallocation.cc', |
+ '<(tcmalloc_dir)/src/tcmalloc.cc', |
+ |
# We simply don't use these, but list them above so that IDE |
# users can view the full available source for reference, etc. |
'<(tcmalloc_dir)/src/addressmap-inl.h', |
@@ -300,6 +305,21 @@ |
'RuntimeLibrary': '0', |
}, |
}, |
+ 'variables': { |
+ # Provide a way to force disable debugallocation in Debug builds, |
+ # e.g. for profiling (it's more rare to profile Debug builds, |
+ # but people sometimes need to do that). |
+ 'disable_debugallocation%': 1, |
+ }, |
+ 'conditions': [ |
+ ['disable_debugallocation==0', { |
+ 'defines': [ |
+ # Use debugallocation for Debug builds to catch problems early |
+ # and cleanly, http://crbug.com/30715 . |
+ 'TCMALLOC_FOR_DEBUGALLOCATION', |
+ ], |
+ }], |
+ ], |
}, |
}, |
'conditions': [ |
@@ -346,7 +366,7 @@ |
'<(tcmalloc_dir)/src/system-alloc.h', |
# included by allocator_shim.cc |
- '<(tcmalloc_dir)/src/tcmalloc.cc', |
+ 'debugallocation_shim.cc', |
# heap-profiler/checker/cpuprofiler |
'<(tcmalloc_dir)/src/base/thread_lister.c', |
@@ -365,9 +385,6 @@ |
'<(tcmalloc_dir)/src/profile-handler.cc', |
'<(tcmalloc_dir)/src/profile-handler.h', |
'<(tcmalloc_dir)/src/profiler.cc', |
- |
- # debugallocation |
- '<(tcmalloc_dir)/src/debugallocation.cc', |
], |
}], |
['OS=="linux" or OS=="freebsd" or OS=="solaris"', { |
@@ -414,20 +431,6 @@ |
'-fvtable-verify=preinit', |
], |
}], |
- [ 'linux_use_debugallocation==1', { |
- 'sources!': [ |
- # debugallocation.cc #includes tcmalloc.cc, |
- # so only one of them should be used. |
- '<(tcmalloc_dir)/src/tcmalloc.cc', |
- ], |
- 'defines': [ |
- 'TCMALLOC_FOR_DEBUGALLOCATION', |
- ], |
- }, { # linux_use_debugallocation != 1 |
- 'sources!': [ |
- '<(tcmalloc_dir)/src/debugallocation.cc', |
- ], |
- }], |
[ 'linux_keep_shadow_stacks==1', { |
'sources': [ |
'<(tcmalloc_dir)/src/linux_shadow_stacks.cc', |