| # Copyright 2013 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/allocator.gni") |
| import("//base/allocator/partition_allocator/partition_alloc.gni") |
| import("//build/buildflag_header.gni") |
| import("//build/config/compiler/compiler.gni") |
| import("//build/config/dcheck_always_on.gni") |
| |
| buildflag_header("buildflags") { |
| header = "buildflags.h" |
| |
| assert(use_allocator_shim || !use_partition_alloc_as_malloc, |
| "PartitionAlloc-Everywhere requires the allocator shim") |
| |
| flags = [ |
| "USE_ALLOCATOR_SHIM=$use_allocator_shim", |
| |
| "USE_PARTITION_ALLOC_AS_GWP_ASAN_STORE=$enable_backup_ref_ptr_support", |
| |
| "USE_ALLOCATION_EVENT_DISPATCHER=$use_allocation_event_dispatcher", |
| ] |
| } |
| |
| if (is_apple) { |
| source_set("early_zone_registration_mac") { |
| sources = [ |
| "early_zone_registration_mac.cc", |
| "early_zone_registration_mac.h", |
| ] |
| |
| deps = [ |
| ":buildflags", |
| "//base/allocator/partition_allocator:buildflags", |
| ] |
| } |
| } |
| |
| # Used to shim malloc symbols on Android. see //base/allocator/README.md. |
| config("wrap_malloc_symbols") { |
| ldflags = [ |
| "-Wl,-wrap,calloc", |
| "-Wl,-wrap,free", |
| "-Wl,-wrap,malloc", |
| "-Wl,-wrap,memalign", |
| "-Wl,-wrap,posix_memalign", |
| "-Wl,-wrap,pvalloc", |
| "-Wl,-wrap,realloc", |
| "-Wl,-wrap,valloc", |
| |
| # Not allocating memory, but part of the API |
| "-Wl,-wrap,malloc_usable_size", |
| |
| # <stdlib.h> functions |
| "-Wl,-wrap,realpath", |
| |
| # <string.h> functions |
| "-Wl,-wrap,strdup", |
| "-Wl,-wrap,strndup", |
| |
| # <unistd.h> functions |
| "-Wl,-wrap,getcwd", |
| |
| # <stdio.h> functions |
| "-Wl,-wrap,asprintf", |
| "-Wl,-wrap,vasprintf", |
| ] |
| } |
| |
| config("mac_no_default_new_delete_symbols") { |
| if (!is_component_build) { |
| # This is already set when we compile libc++, see |
| # buildtools/third_party/libc++/BUILD.gn. But it needs to be set here as well, |
| # since the shim defines the symbols, to prevent them being exported. |
| cflags = [ "-fvisibility-global-new-delete-hidden" ] |
| } |
| } |