# 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", # functions "-Wl,-wrap,realpath", # functions "-Wl,-wrap,strdup", "-Wl,-wrap,strndup", # functions "-Wl,-wrap,getcwd", # 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" ] } }