mirror of
https://github.com/dart-lang/sdk
synced 2024-10-03 00:45:16 +00:00
Enable GN ASAN builds for Linux
R=johnmccutchan@google.com Review URL: https://codereview.chromium.org/2392403002 .
This commit is contained in:
parent
3e5c77702f
commit
4ab6c33d9a
|
@ -17,7 +17,6 @@ if (is_win) {
|
|||
}
|
||||
|
||||
import("//build/toolchain/ccache.gni")
|
||||
import("//build/config/sanitizers/sanitizers.gni")
|
||||
|
||||
# default_include_dirs ---------------------------------------------------------
|
||||
#
|
||||
|
@ -92,44 +91,20 @@ config("compiler") {
|
|||
]
|
||||
}
|
||||
if (is_asan) {
|
||||
asan_blacklist_path =
|
||||
rebase_path("//tools/memory/asan/blacklist.txt", root_build_dir)
|
||||
cflags += [
|
||||
"-fsanitize=address",
|
||||
"-fsanitize-blacklist=$asan_blacklist_path",
|
||||
]
|
||||
if (is_mac) {
|
||||
cflags += [ "-mllvm -asan-globals=0" ] # http://crbug.com/352073
|
||||
# TODO(GYP): deal with mac_bundles.
|
||||
}
|
||||
cflags += [ "-fsanitize=address" ]
|
||||
ldflags += [ "-fsanitize=address" ]
|
||||
}
|
||||
if (is_lsan) {
|
||||
cflags += [ "-fsanitize=leak" ]
|
||||
ldflags += [ "-fsanitize=leak" ]
|
||||
}
|
||||
if (is_tsan) {
|
||||
tsan_blacklist_path =
|
||||
rebase_path("//tools/memory/tsan_v2/ignores.txt", root_build_dir)
|
||||
cflags += [
|
||||
"-fsanitize=thread",
|
||||
"-fsanitize-blacklist=$tsan_blacklist_path",
|
||||
]
|
||||
cflags += [ "-fsanitize=thread" ]
|
||||
ldflags += [ "-fsanitize=thread" ]
|
||||
}
|
||||
if (is_msan) {
|
||||
msan_blacklist_path =
|
||||
rebase_path("//tools/msan/blacklist.txt", root_build_dir)
|
||||
cflags += [
|
||||
"-fsanitize=memory",
|
||||
"-fsanitize-memory-track-origins=$msan_track_origins",
|
||||
"-fsanitize-blacklist=$msan_blacklist_path",
|
||||
]
|
||||
}
|
||||
|
||||
if (use_custom_libcxx) {
|
||||
cflags_cc += [ "-nostdinc++" ]
|
||||
include_dirs = [
|
||||
"//buildtools/third_party/libc++/trunk/include",
|
||||
"//buildtools/third_party/libc++abi/trunk/include",
|
||||
]
|
||||
cflags += [ "-fsanitize=memory" ]
|
||||
ldflags += [ "-fsanitize=memory" ]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -181,7 +181,6 @@ config("dart_config") {
|
|||
|
||||
if (defined(is_asan) && is_asan) {
|
||||
ldflags = [
|
||||
"-Wl,-u_sanitizer_options_link_helper",
|
||||
"-fsanitize=address",
|
||||
]
|
||||
}
|
||||
|
|
10
tools/gn.py
10
tools/gn.py
|
@ -87,7 +87,9 @@ def to_gn_args(args, mode, arch, target_os):
|
|||
|
||||
gn_args['dart_zlib_path'] = "//runtime/bin/zlib"
|
||||
|
||||
gn_args['dart_use_tcmalloc'] = gn_args['target_os'] == 'linux'
|
||||
# Use tcmalloc only when targeting Linux and when not using ASAN.
|
||||
gn_args['dart_use_tcmalloc'] = (gn_args['target_os'] == 'linux'
|
||||
and not args.asan)
|
||||
|
||||
gn_args['is_debug'] = mode == 'debug'
|
||||
gn_args['is_release'] = mode == 'release'
|
||||
|
@ -106,6 +108,8 @@ def to_gn_args(args, mode, arch, target_os):
|
|||
and not gn_args['target_cpu'].startswith('mips'))
|
||||
gn_args['is_clang'] = args.clang and has_clang
|
||||
|
||||
gn_args['is_asan'] = args.asan and gn_args['is_clang']
|
||||
|
||||
if args.target_sysroot:
|
||||
gn_args['target_sysroot'] = args.target_sysroot
|
||||
|
||||
|
@ -198,6 +202,10 @@ def parse_args(args):
|
|||
metavar='[all,ia32,x64,simarm,arm,simarmv6,armv6,simarmv5te,armv5te,'
|
||||
'simmips,mips,simarm64,arm64,simdbc,armsimdbc]',
|
||||
default='x64')
|
||||
parser.add_argument('--asan',
|
||||
help='Build with ASAN',
|
||||
default=False,
|
||||
action='store_true')
|
||||
parser.add_argument('--goma',
|
||||
help='Use goma',
|
||||
default=True,
|
||||
|
|
Loading…
Reference in a new issue