[sanitizers] asan_globals GN option

Detect overflow/underflow for global objects.
Enabled by default with asan, except for Android & Mac.

Review-Url: https://codereview.chromium.org/2130893002
Cr-Original-Commit-Position: refs/heads/master@{#404918}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: da5892e6e7d244252840ac929e63e446aef2397b
This commit is contained in:
aizatsky 2016-07-12 19:38:35 -07:00 коммит произвёл Commit bot
Родитель 8a5e89bdde
Коммит ceb6a884de
2 изменённых файлов: 18 добавлений и 18 удалений

Просмотреть файл

@ -206,6 +206,12 @@ config("asan_flags") {
cflags = []
if (is_asan) {
cflags += [ "-fsanitize=address" ]
if (!asan_globals) {
cflags += [
"-mllvm",
"-asan-globals=0",
]
}
if (is_win) {
cflags += [ "-fsanitize-blacklist=" +
rebase_path("//tools/memory/asan/blacklist_win.txt",
@ -216,23 +222,8 @@ config("asan_flags") {
[ "-fsanitize-blacklist=" +
rebase_path("//tools/memory/asan/blacklist.txt", root_build_dir) ]
}
if (is_android) {
# Android build relies on -Wl,--gc-sections removing unreachable code.
# ASan instrumentation for globals inhibits this and results in a
# library with unresolvable relocations.
# TODO(eugenis): find a way to reenable this.
cflags += [
"-mllvm",
"-asan-globals=0",
]
} else if (is_mac) {
# http://crbug.com/352073
cflags += [
"-mllvm",
"-asan-globals=0",
]
# TODO(GYP): deal with mac_bundles.
} else if (is_win) {
if (is_win) {
assert(current_cpu == "x86", "WinASan is 32-bit only currently")
if (is_component_build) {
libs = [

Просмотреть файл

@ -78,7 +78,6 @@ declare_args() {
# trace-pc
# Default value when unset and use_sanitizer_coverage=true:
# edge,indirect-calls,8bit-counters
sanitizer_coverage_flags = ""
}
@ -96,6 +95,16 @@ declare_args() {
# Enable -fsanitize-coverage.
use_sanitizer_coverage =
use_libfuzzer || use_afl || sanitizer_coverage_flags != ""
# Detect overflow/underflow for global objects.
#
# Android build relies on -Wl,--gc-sections removing unreachable code.
# ASan instrumentation for globals inhibits this and results in a
# library with unresolvable relocations.
# TODO(eugenis): find a way to reenable this.
#
# Mac: http://crbug.com/352073
asan_globals = !is_android && !is_mac
}
if (use_afl && sanitizer_coverage_flags == "") {