commit | f30b14ff155162ee6d8f1d1fdb9502be93129874 | [log] [tgz] |
---|---|---|
author | kjellander <kjellander@chromium.org> | Mon Dec 19 12:07:43 2016 |
committer | Commit bot <commit-bot@chromium.org> | Mon Dec 19 12:10:56 2016 |
tree | aae644c0eeae640a3a295093f652cf817ccce00d | |
parent | 4e8813862084fbe60077ed71b492bf1a6afeffcf [diff] |
Make sanitizer suppressions and blacklists fully configurable. This will make it possible to fully utilize the sanitizers in other projects that may need to maintain their own suppressions and blacklists. This change also removes the requirement on having {asan,lsan,tsan}_suppressions_file defined in //build_overrides/build.gni, simplifying the build configs. BUG=webrtc:5006 TESTED=CQ dry run + additional sanitizer trybots: mac_chromium_asan_rel_ng linux_chromium_ubsan_rel_ng linux_chromium_msan_rel_ng linux_chromium_tsan_rel_ng linux_chromium_asan_rel_ng Review-Url: https://codereview.chromium.org/2580313002 Cr-Original-Commit-Position: refs/heads/master@{#439452} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 83d8599fdab6538bc3e9cf6e8c9458214a7a8671
This directory is used to allow different products to customize settings for repos that are DEPS'ed in or shared.
For example: V8 could be built on its own (in a “standalone” configuration), and it could be built as part of Chromium. V8 might define a top-level target, //v8:d8 (a simple executable), that should only be built in the standalone configuration. To figure out whether or not it should be in a standalone configuration, v8 can create a file, build_overrides/v8.gni, that contains a variable, build_standalone_d8 = true
. and import it (as import(“//build_overrides/v8.gni”) from its top-level BUILD.gn file.
Chromium, on the other hand, might not need to build d8, and so it would create its own build_overrides/v8.gni file, and in it set build_standalone_d8 = false
.
The two files should define the same set of variables, but the values can vary as appropriate to the needs of the two different builds.
The build.gni file provides a way for projects to override defaults for variables used in //build itself (which we want to be shareable between projects).
TODO(crbug.com/588513): Ideally //build_overrides and, in particular, //build_overrides/build.gni should go away completely in favor of some mechanism that can re-use other required files like //.gn, so that we don't have to keep requiring projects to create a bunch of different files to use GN.