4182cbe1a3
The sources assignment filter is considered a misfeature of gn and is planned for removal (see discussion at [1]). Convert dart BUILD.gn rules to manually filter the files that are build using explicit `if` expressions. Remove obsolete call to set_sources_assignment_filter() to filter '*_test.*' files as no such files are present in the variables used to build the `sources` value. [1]: https://groups.google.com/a/chromium.org/g/gn-dev/c/oQcYStl_WkI/m/roukYTxSDAAJ Bug: gn:125 Change-Id: I591fbb746cf694f7d2a5a330f81652380acf5c11 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/166629 Reviewed-by: Ryan Macnak <rmacnak@google.com>
139 lines
3.5 KiB
Plaintext
139 lines
3.5 KiB
Plaintext
# Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
|
|
# for details. All rights reserved. Use of this source code is governed by a
|
|
# BSD-style license that can be found in the LICENSE file.
|
|
|
|
import("tcmalloc_sources.gni")
|
|
|
|
config("internal_config") {
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
cflags = [
|
|
"-Wall",
|
|
"-Wextra",
|
|
"-Wno-format",
|
|
"-Wno-missing-field-initializers",
|
|
"-Wno-sign-compare",
|
|
"-Wno-type-limits",
|
|
"-Wno-unused-result",
|
|
"-Wno-unused-parameter",
|
|
"-Wno-unused-function",
|
|
"-Wno-vla",
|
|
"-g3",
|
|
"-ggdb3",
|
|
"-fstack-protector",
|
|
"-Wa,--noexecstack",
|
|
"-fno-omit-frame-pointer",
|
|
"-fno-builtin-malloc",
|
|
"-fno-builtin-free",
|
|
"-fno-builtin-realloc",
|
|
"-fno-builtin-calloc",
|
|
"-fno-builtin-cfree",
|
|
"-fno-builtin-memalign",
|
|
"-fno-builtin-posix_memalign",
|
|
"-fno-builtin-valloc",
|
|
"-fno-builtin-pvalloc",
|
|
"-fsized-deallocation",
|
|
"-faligned-new",
|
|
]
|
|
if (is_clang) {
|
|
cflags += [
|
|
"-Wno-unused-const-variable",
|
|
"-Wno-implicit-int-float-conversion",
|
|
]
|
|
}
|
|
if (current_cpu == "arm" && !is_clang) {
|
|
cflags += [ "-Wno-psabi" ]
|
|
}
|
|
}
|
|
|
|
config("link_config") {
|
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
|
ldflags = [
|
|
# Don't let linker rip this symbol out, otherwise the heap&cpu
|
|
# profilers will not initialize properly on startup.
|
|
"-Wl,-uIsHeapProfilerRunning,-uProfilerStart",
|
|
]
|
|
}
|
|
|
|
source_set("dynamic_annotations") {
|
|
configs -= [
|
|
"//build/config/compiler:chromium_code",
|
|
"//build/config/compiler:clang_stackrealign",
|
|
]
|
|
configs += [ ":internal_config" ]
|
|
|
|
include_dirs = [
|
|
"include",
|
|
"gperftools/src/base",
|
|
"gperftools/src",
|
|
]
|
|
|
|
sources = [
|
|
"gperftools/src/base/dynamic_annotations.c",
|
|
"gperftools/src/base/dynamic_annotations.h",
|
|
]
|
|
}
|
|
|
|
source_set("tcmalloc") {
|
|
configs -= [
|
|
"//build/config/compiler:chromium_code",
|
|
"//build/config/compiler:clang_stackrealign",
|
|
"//build/config/compiler:compiler_arm_thumb",
|
|
]
|
|
configs += [ ":internal_config" ]
|
|
|
|
public_configs = [ ":link_config" ]
|
|
|
|
deps = [ ":dynamic_annotations" ]
|
|
|
|
include_dirs = [
|
|
"include",
|
|
"gperftools/src/base",
|
|
"gperftools/src",
|
|
]
|
|
|
|
# Disable the heap checker in tcmalloc.
|
|
defines = [
|
|
"ENABLE_EMERGENCY_MALLOC",
|
|
"NO_HEAP_CHECK",
|
|
|
|
# Disable debug even in a Dart Debug build. It is too slow.
|
|
"NDEBUG",
|
|
]
|
|
|
|
if (is_product) {
|
|
# Disable stack sampling for heap profiling in Product builds.
|
|
defines += [ "NO_TCMALLOC_SAMPLES" ]
|
|
|
|
# To override the C library functions, we can't hide symbols.
|
|
configs -= [ "//build/config/gcc:symbol_visibility_hidden" ]
|
|
}
|
|
|
|
cflags = [
|
|
"-Wnon-virtual-dtor",
|
|
"-Woverloaded-virtual",
|
|
"-fno-rtti",
|
|
"-fpermissive",
|
|
]
|
|
|
|
if (!is_clang) {
|
|
cflags += [ "-Wno-format" ]
|
|
}
|
|
|
|
sources = tcmalloc_sources - [
|
|
# No debug allocator.
|
|
"gperftools/src/debugallocation.cc",
|
|
|
|
# Not needed when using emergency malloc.
|
|
"gperftools/src/fake_stacktrace_scope.cc",
|
|
|
|
# Not using the cpuprofiler
|
|
"gperftools/src/base/thread_lister.c",
|
|
"gperftools/src/base/thread_lister.h",
|
|
"gperftools/src/profile-handler.cc",
|
|
"gperftools/src/profile-handler.h",
|
|
"gperftools/src/profiledata.cc",
|
|
"gperftools/src/profiledata.h",
|
|
"gperftools/src/profiler.cc",
|
|
]
|
|
}
|