Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(137)

Side by Side Diff: build/config/compiler/BUILD.gn

Issue 2392403002: Enable GN ASAN builds for Linux (Closed)
Patch Set: Fix mac compile Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | runtime/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2013 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/android/config.gni") 5 import("//build/config/android/config.gni")
6 if (current_cpu == "arm") { 6 if (current_cpu == "arm") {
7 import("//build/config/arm.gni") 7 import("//build/config/arm.gni")
8 } 8 }
9 if (current_cpu == "mipsel" || current_cpu == "mips64el") { 9 if (current_cpu == "mipsel" || current_cpu == "mips64el") {
10 import("//build/config/mips.gni") 10 import("//build/config/mips.gni")
11 } 11 }
12 if (is_posix) { 12 if (is_posix) {
13 import("//build/config/gcc/gcc_version.gni") 13 import("//build/config/gcc/gcc_version.gni")
14 } 14 }
15 if (is_win) { 15 if (is_win) {
16 import("//build/config/win/visual_studio_version.gni") 16 import("//build/config/win/visual_studio_version.gni")
17 } 17 }
18 18
19 import("//build/toolchain/ccache.gni") 19 import("//build/toolchain/ccache.gni")
20 import("//build/config/sanitizers/sanitizers.gni")
21 20
22 # default_include_dirs --------------------------------------------------------- 21 # default_include_dirs ---------------------------------------------------------
23 # 22 #
24 # This is a separate config so that third_party code (which would not use the 23 # This is a separate config so that third_party code (which would not use the
25 # source root and might have conflicting versions of some headers) can remove 24 # source root and might have conflicting versions of some headers) can remove
26 # this and specify their own include paths. 25 # this and specify their own include paths.
27 config("default_include_dirs") { 26 config("default_include_dirs") {
28 include_dirs = [ 27 include_dirs = [
29 "//", 28 "//",
30 root_gen_dir, 29 root_gen_dir,
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 } 84 }
86 85
87 # Common options for AddressSanitizer, LeakSanitizer, ThreadSanitizer and 86 # Common options for AddressSanitizer, LeakSanitizer, ThreadSanitizer and
88 # MemorySanitizer 87 # MemorySanitizer
89 if (using_sanitizer) { 88 if (using_sanitizer) {
90 cflags += [ 89 cflags += [
91 "-gline-tables-only", 90 "-gline-tables-only",
92 ] 91 ]
93 } 92 }
94 if (is_asan) { 93 if (is_asan) {
95 asan_blacklist_path = 94 cflags += [ "-fsanitize=address" ]
96 rebase_path("//tools/memory/asan/blacklist.txt", root_build_dir) 95 ldflags += [ "-fsanitize=address" ]
97 cflags += [
98 "-fsanitize=address",
99 "-fsanitize-blacklist=$asan_blacklist_path",
100 ]
101 if (is_mac) {
102 cflags += [ "-mllvm -asan-globals=0" ] # http://crbug.com/352073
103 # TODO(GYP): deal with mac_bundles.
104 }
105 } 96 }
106 if (is_lsan) { 97 if (is_lsan) {
107 cflags += [ "-fsanitize=leak" ] 98 cflags += [ "-fsanitize=leak" ]
99 ldflags += [ "-fsanitize=leak" ]
108 } 100 }
109 if (is_tsan) { 101 if (is_tsan) {
110 tsan_blacklist_path = 102 cflags += [ "-fsanitize=thread" ]
111 rebase_path("//tools/memory/tsan_v2/ignores.txt", root_build_dir) 103 ldflags += [ "-fsanitize=thread" ]
112 cflags += [
113 "-fsanitize=thread",
114 "-fsanitize-blacklist=$tsan_blacklist_path",
115 ]
116 } 104 }
117 if (is_msan) { 105 if (is_msan) {
118 msan_blacklist_path = 106 cflags += [ "-fsanitize=memory" ]
119 rebase_path("//tools/msan/blacklist.txt", root_build_dir) 107 ldflags += [ "-fsanitize=memory" ]
120 cflags += [
121 "-fsanitize=memory",
122 "-fsanitize-memory-track-origins=$msan_track_origins",
123 "-fsanitize-blacklist=$msan_blacklist_path",
124 ]
125 }
126
127 if (use_custom_libcxx) {
128 cflags_cc += [ "-nostdinc++" ]
129 include_dirs = [
130 "//buildtools/third_party/libc++/trunk/include",
131 "//buildtools/third_party/libc++abi/trunk/include",
132 ]
133 } 108 }
134 } 109 }
135 110
136 if (is_clang && is_debug) { 111 if (is_clang && is_debug) {
137 # Allow comparing the address of references and 'this' against 0 112 # Allow comparing the address of references and 'this' against 0
138 # in debug builds. Technically, these can never be null in 113 # in debug builds. Technically, these can never be null in
139 # well-defined C/C++ and Clang can optimize such checks away in 114 # well-defined C/C++ and Clang can optimize such checks away in
140 # release builds, but they may be used in asserts in debug builds. 115 # release builds, but they may be used in asserts in debug builds.
141 extra_flags = [ 116 extra_flags = [
142 "-Wno-undefined-bool-conversion", 117 "-Wno-undefined-bool-conversion",
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 cflags = [ "/Zi" ] # Produce PDB file, no edit and continue. 766 cflags = [ "/Zi" ] # Produce PDB file, no edit and continue.
792 } 767 }
793 ldflags = [ "/DEBUG" ] 768 ldflags = [ "/DEBUG" ]
794 } else { 769 } else {
795 cflags = [ 770 cflags = [
796 "-g3", 771 "-g3",
797 "-ggdb3", 772 "-ggdb3",
798 ] 773 ]
799 } 774 }
800 } 775 }
OLDNEW
« no previous file with comments | « no previous file | runtime/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698