OLD | NEW |
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import("//build/config/allocator.gni") | 5 import("//build/config/allocator.gni") |
6 import("//build/config/compiler/compiler.gni") | 6 import("//build/config/compiler/compiler.gni") |
7 | 7 |
8 declare_args() { | 8 declare_args() { |
9 # Provide a way to force disable debugallocation in Debug builds, | 9 # Provide a way to force disable debugallocation in Debug builds, |
10 # e.g. for profiling (it's more rare to profile Debug builds, | 10 # e.g. for profiling (it's more rare to profile Debug builds, |
(...skipping 30 matching lines...) Expand all Loading... |
41 } | 41 } |
42 | 42 |
43 config("tcmalloc_flags") { | 43 config("tcmalloc_flags") { |
44 if (enable_debugallocation) { | 44 if (enable_debugallocation) { |
45 defines = [ | 45 defines = [ |
46 # Use debugallocation for Debug builds to catch problems early | 46 # Use debugallocation for Debug builds to catch problems early |
47 # and cleanly, http://crbug.com/30715 . | 47 # and cleanly, http://crbug.com/30715 . |
48 "TCMALLOC_FOR_DEBUGALLOCATION", | 48 "TCMALLOC_FOR_DEBUGALLOCATION", |
49 ] | 49 ] |
50 } | 50 } |
| 51 if (is_clang) { |
| 52 cflags = [ |
| 53 # tcmalloc initializes some fields in the wrong order. |
| 54 "-Wno-reorder", |
| 55 |
| 56 # tcmalloc contains some unused local template specializations. |
| 57 "-Wno-unused-function", |
| 58 |
| 59 # tcmalloc uses COMPILE_ASSERT without static_assert but with |
| 60 # typedefs. |
| 61 "-Wno-unused-local-typedefs", |
| 62 |
| 63 # for magic2_ in debugallocation.cc (only built in Debug builds) |
| 64 # typedefs. |
| 65 "-Wno-unused-private-field", |
| 66 ] |
| 67 } |
51 } | 68 } |
52 | 69 |
53 # This config and libc modification are only used on Windows. | 70 # This config and libc modification are only used on Windows. |
54 if (is_win) { | 71 if (is_win) { |
55 import("//build/config/win/visual_studio_version.gni") | 72 import("//build/config/win/visual_studio_version.gni") |
56 | 73 |
57 config("nocmt") { | 74 config("nocmt") { |
58 ldflags = [ | 75 ldflags = [ |
59 "/NODEFAULTLIB:libcmt", | 76 "/NODEFAULTLIB:libcmt", |
60 "/NODEFAULTLIB:libcmtd", | 77 "/NODEFAULTLIB:libcmtd", |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 # Make sure the allocation library is optimized as much as possible when | 284 # Make sure the allocation library is optimized as much as possible when |
268 # we"re in release mode. | 285 # we"re in release mode. |
269 if (!is_debug) { | 286 if (!is_debug) { |
270 configs -= [ "//build/config/compiler:default_optimization" ] | 287 configs -= [ "//build/config/compiler:default_optimization" ] |
271 configs += [ "//build/config/compiler:optimize_max" ] | 288 configs += [ "//build/config/compiler:optimize_max" ] |
272 } | 289 } |
273 | 290 |
274 deps += [ "//base/third_party/dynamic_annotations" ] | 291 deps += [ "//base/third_party/dynamic_annotations" ] |
275 } | 292 } |
276 } # !is_android | 293 } # !is_android |
OLD | NEW |