[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:
Родитель
8a5e89bdde
Коммит
ceb6a884de
|
@ -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 == "") {
|
||||
|
|
Загрузка…
Ссылка в новой задаче