blob: 06447af0b40660b00525bea0eea90b131a9ef6a2 [file] [log] [blame]
Ben Murdoch097c5b22016-05-18 11:27:45 +01001# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/config/sanitizers/sanitizers.gni")
6
7if (is_android || current_cpu == "mipsel" || is_mac || is_ios || is_asan ||
8 is_lsan || is_tsan || is_msan || is_win || is_syzyasan) {
9 _default_allocator = "none"
10} else {
11 _default_allocator = "tcmalloc"
12}
13
14if ((is_linux || is_android) && !is_asan && !is_lsan && !is_tsan && !is_msan) {
15 _default_use_experimental_allocator_shim = true
16} else {
17 _default_use_experimental_allocator_shim = false
18}
19
20declare_args() {
21 # Memory allocator to use. Set to "none" to use default allocator.
22 use_allocator = _default_allocator
23
24 # TODO(primiano): this should just become the default without having a flag,
25 # but we need to get there first. http://crbug.com/550886 .
26 # Causes all the allocations to be routed via allocator_shim.cc.
27 use_experimental_allocator_shim = _default_use_experimental_allocator_shim
28}
29
30assert(use_allocator == "none" || use_allocator == "tcmalloc")
31
32assert(!is_win || use_allocator == "none", "Tcmalloc doesn't work on Windows.")
33assert(
34 !use_experimental_allocator_shim || is_linux || is_android,
35 "use_experimental_allocator_shim supported only on Linux and Android targets")