| # Copyright 2021 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//base/allocator/partition_allocator/partition_alloc.gni") |
| |
| # Only support x86_64 Linux as the system calls used are Linux-specific. No |
| # point in building this if PartitionAlloc is not the allocator used. |
| _tcache_tool_supported = ((target_cpu == "x64" && is_linux) || is_mac) && |
| use_partition_alloc_as_malloc |
| |
| if (_tcache_tool_supported) { |
| source_set("pa_tool_utils") { |
| sources = [ |
| "inspect_utils.cc", |
| "inspect_utils.h", |
| ] |
| |
| if (is_linux) { |
| sources += [ "inspect_utils_linux.cc" ] |
| } else if (is_mac) { |
| sources += [ "inspect_utils_mac.cc" ] |
| } |
| |
| deps = [ "//base" ] |
| } |
| executable("pa_tcache_inspect") { |
| sources = [ "pa_tcache_inspect.cc" ] |
| deps = [ |
| ":pa_tool_utils", |
| "//base", |
| ] |
| |
| if (target_os == "mac") { |
| inputs = [ "sectaskaccess_info.plist" ] |
| ldflags = [ |
| "-sectcreate", |
| "__TEXT", |
| "__info_plist", |
| rebase_path(inputs[0], root_build_dir), |
| ] |
| } |
| } |
| executable("pa_buckets_inspect") { |
| sources = [ "pa_buckets_inspect.cc" ] |
| deps = [ |
| ":pa_tool_utils", |
| "//base", |
| ] |
| } |
| executable("pa_dump_heap") { |
| sources = [ "pa_dump_heap.cc" ] |
| deps = [ |
| ":pa_tool_utils", |
| "//base", |
| "//third_party/snappy", |
| ] |
| |
| if (target_os == "mac") { |
| inputs = [ "sectaskaccess_info.plist" ] |
| ldflags = [ |
| "-sectcreate", |
| "__TEXT", |
| "__info_plist", |
| rebase_path(inputs[0], root_build_dir), |
| ] |
| } |
| } |
| } |
| |
| group("all") { |
| if (_tcache_tool_supported) { |
| deps = [ |
| ":pa_buckets_inspect", |
| ":pa_tcache_inspect", |
| ] |
| } |
| } |