Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import("//build/config/chrome_build.gni") | 5 import("//build/config/chrome_build.gni") |
| 6 import("//build/config/chromecast_build.gni") | 6 import("//build/config/chromecast_build.gni") |
| 7 import("//build/config/clang/clang.gni") | 7 import("//build/config/clang/clang.gni") |
| 8 import("//build/config/sanitizers/sanitizers.gni") | 8 import("//build/config/sanitizers/sanitizers.gni") |
| 9 import("//build/toolchain/toolchain.gni") | 9 import("//build/toolchain/toolchain.gni") |
| 10 | 10 |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 199 "-isystem" + rebase_path("$prefix/libc++/$include", root_build_dir), | 199 "-isystem" + rebase_path("$prefix/libc++/$include", root_build_dir), |
| 200 "-isystem" + rebase_path("$prefix/libc++abi/$include", root_build_dir), | 200 "-isystem" + rebase_path("$prefix/libc++abi/$include", root_build_dir), |
| 201 ] | 201 ] |
| 202 } | 202 } |
| 203 } | 203 } |
| 204 | 204 |
| 205 config("asan_flags") { | 205 config("asan_flags") { |
| 206 cflags = [] | 206 cflags = [] |
| 207 if (is_asan) { | 207 if (is_asan) { |
| 208 cflags += [ "-fsanitize=address" ] | 208 cflags += [ "-fsanitize=address" ] |
| 209 if (!asan_globals) { | |
| 210 cflags += [ | |
| 211 "-mllvm", | |
| 212 "-asan-globals=0", | |
| 213 ] | |
| 214 } | |
| 209 if (is_win) { | 215 if (is_win) { |
| 210 cflags += [ "-fsanitize-blacklist=" + | 216 cflags += [ "-fsanitize-blacklist=" + |
| 211 rebase_path("//tools/memory/asan/blacklist_win.txt", | 217 rebase_path("//tools/memory/asan/blacklist_win.txt", |
| 212 root_build_dir) ] | 218 root_build_dir) ] |
| 213 } else { | 219 } else { |
| 214 # TODO(rnk): Remove this as discussed in http://crbug.com/427202. | 220 # TODO(rnk): Remove this as discussed in http://crbug.com/427202. |
| 215 cflags += | 221 cflags += |
| 216 [ "-fsanitize-blacklist=" + | 222 [ "-fsanitize-blacklist=" + |
| 217 rebase_path("//tools/memory/asan/blacklist.txt", root_build_dir) ] | 223 rebase_path("//tools/memory/asan/blacklist.txt", root_build_dir) ] |
| 218 } | 224 } |
| 219 if (is_android) { | 225 |
| 220 # Android build relies on -Wl,--gc-sections removing unreachable code. | 226 # TODO(GYP): deal with mac_bundles. |
|
brettw
2016/07/11 22:32:55
This comment about mac makes no sense to me now an
aizatsky
2016/07/12 20:39:30
done.
| |
| 221 # ASan instrumentation for globals inhibits this and results in a | 227 if (is_win) { |
| 222 # library with unresolvable relocations. | |
| 223 # TODO(eugenis): find a way to reenable this. | |
| 224 cflags += [ | |
| 225 "-mllvm", | |
| 226 "-asan-globals=0", | |
| 227 ] | |
| 228 } else if (is_mac) { | |
| 229 # http://crbug.com/352073 | |
| 230 cflags += [ | |
| 231 "-mllvm", | |
| 232 "-asan-globals=0", | |
| 233 ] | |
| 234 # TODO(GYP): deal with mac_bundles. | |
| 235 } else if (is_win) { | |
| 236 assert(current_cpu == "x86", "WinASan is 32-bit only currently") | 228 assert(current_cpu == "x86", "WinASan is 32-bit only currently") |
| 237 if (is_component_build) { | 229 if (is_component_build) { |
| 238 libs = [ | 230 libs = [ |
| 239 "clang_rt.asan_dynamic-i386.lib", | 231 "clang_rt.asan_dynamic-i386.lib", |
| 240 "clang_rt.asan_dynamic_runtime_thunk-i386.lib", | 232 "clang_rt.asan_dynamic_runtime_thunk-i386.lib", |
| 241 ] | 233 ] |
| 242 } else { | 234 } else { |
| 243 # TODO(rnk): DLLs in the non-component build should link against | 235 # TODO(rnk): DLLs in the non-component build should link against |
| 244 # clang_rt.asan_dll_thunk-i386.lib instead. | 236 # clang_rt.asan_dll_thunk-i386.lib instead. |
| 245 libs = [ "clang_rt.asan-i386.lib" ] | 237 libs = [ "clang_rt.asan-i386.lib" ] |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 433 # This allows to selectively disable ubsan_vptr, when needed. In particular, | 425 # This allows to selectively disable ubsan_vptr, when needed. In particular, |
| 434 # if some third_party code is required to be compiled without rtti, which | 426 # if some third_party code is required to be compiled without rtti, which |
| 435 # is a requirement for ubsan_vptr. | 427 # is a requirement for ubsan_vptr. |
| 436 config("default_sanitizer_flags_but_ubsan_vptr") { | 428 config("default_sanitizer_flags_but_ubsan_vptr") { |
| 437 configs = all_sanitizer_configs - [ ":ubsan_vptr_flags" ] | 429 configs = all_sanitizer_configs - [ ":ubsan_vptr_flags" ] |
| 438 } | 430 } |
| 439 | 431 |
| 440 config("default_sanitizer_flags_but_coverage") { | 432 config("default_sanitizer_flags_but_coverage") { |
| 441 configs = all_sanitizer_configs - [ ":coverage_flags" ] | 433 configs = all_sanitizer_configs - [ ":coverage_flags" ] |
| 442 } | 434 } |
| OLD | NEW |