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

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

Issue 2367723004: Add tcmalloc to GN build (Closed)
Patch Set: Address comments 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/bin/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")
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 } 107 }
108 } 108 }
109 } else { 109 } else {
110 # Common GCC compiler flags setup. 110 # Common GCC compiler flags setup.
111 # -------------------------------- 111 # --------------------------------
112 common_flags = [ 112 common_flags = [
113 # Not exporting C++ inline functions can generally be applied anywhere 113 # Not exporting C++ inline functions can generally be applied anywhere
114 # so we do so here. Normal function visibility is controlled by 114 # so we do so here. Normal function visibility is controlled by
115 # //build/config/gcc:symbol_visibility_hidden. 115 # //build/config/gcc:symbol_visibility_hidden.
116 "-fvisibility-inlines-hidden", 116 "-fvisibility-inlines-hidden",
117
118 # We need the frame pointer for CPU and heap profiling.
119 "-fno-omit-frame-pointer",
117 ] 120 ]
118 cflags_cc += common_flags 121 cflags_cc += common_flags
119 cflags_objcc += common_flags 122 cflags_objcc += common_flags
120 123
121 # Linker warnings. 124 # Linker warnings.
122 if ((current_cpu != "arm") && !is_mac) { 125 if ((current_cpu != "arm") && !is_mac) {
123 # TODO(jochen): Enable this on chromeos on arm. http://crbug.com/356580 126 # TODO(jochen): Enable this on chromeos on arm. http://crbug.com/356580
124 ldflags += [ "-Wl,--fatal-warnings" ] 127 ldflags += [ "-Wl,--fatal-warnings" ]
125 } 128 }
126 129
127 # Common options for AddressSanitizer, LeakSanitizer, ThreadSanitizer and 130 # Common options for AddressSanitizer, LeakSanitizer, ThreadSanitizer and
128 # MemorySanitizer 131 # MemorySanitizer
129 if (using_sanitizer) { 132 if (using_sanitizer) {
130 cflags += [ 133 cflags += [
131 "-fno-omit-frame-pointer",
132 "-gline-tables-only", 134 "-gline-tables-only",
133 ] 135 ]
134 } 136 }
135 if (is_asan) { 137 if (is_asan) {
136 asan_blacklist_path = 138 asan_blacklist_path =
137 rebase_path("//tools/memory/asan/blacklist.txt", root_build_dir) 139 rebase_path("//tools/memory/asan/blacklist.txt", root_build_dir)
138 cflags += [ 140 cflags += [
139 "-fsanitize=address", 141 "-fsanitize=address",
140 "-fsanitize-blacklist=$asan_blacklist_path", 142 "-fsanitize-blacklist=$asan_blacklist_path",
141 ] 143 ]
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 defines += 197 defines +=
196 [ "CR_CLANG_REVISION=" + exec_script("//tools/clang/scripts/update.py", 198 [ "CR_CLANG_REVISION=" + exec_script("//tools/clang/scripts/update.py",
197 [ "--print-revision" ], 199 [ "--print-revision" ],
198 "trim string") ] 200 "trim string") ]
199 } 201 }
200 202
201 # Mac-specific compiler flags setup. 203 # Mac-specific compiler flags setup.
202 # ---------------------------------- 204 # ----------------------------------
203 if (is_mac) { 205 if (is_mac) {
204 # These flags are shared between the C compiler and linker. 206 # These flags are shared between the C compiler and linker.
205 common_mac_flags = [] 207 common_mac_flags = [ "-fno-exceptions" ]
206 208
207 # CPU architecture. 209 # CPU architecture.
208 if (current_cpu == "x64") { 210 if (current_cpu == "x64") {
209 common_mac_flags += [ 211 common_mac_flags += [
210 "-arch", 212 "-arch",
211 "x86_64", 213 "x86_64",
212 ] 214 ]
213 } else if (current_cpu == "x86") { 215 } else if (current_cpu == "x86") {
214 common_mac_flags += [ 216 common_mac_flags += [
215 "-arch", 217 "-arch",
(...skipping 20 matching lines...) Expand all
236 cflags_c += [ "-std=c99" ] 238 cflags_c += [ "-std=c99" ]
237 239
238 ldflags += common_mac_flags 240 ldflags += common_mac_flags
239 } else if (is_posix) { 241 } else if (is_posix) {
240 # CPU architecture. We may or may not be doing a cross compile now, so for 242 # CPU architecture. We may or may not be doing a cross compile now, so for
241 # simplicity we always explicitly set the architecture. 243 # simplicity we always explicitly set the architecture.
242 if (current_cpu == "x64") { 244 if (current_cpu == "x64") {
243 cflags += [ 245 cflags += [
244 "-m64", 246 "-m64",
245 "-march=x86-64", 247 "-march=x86-64",
248 "-msse2",
246 ] 249 ]
247 ldflags += [ "-m64" ] 250 ldflags += [ "-m64" ]
248 } else if (current_cpu == "x86") { 251 } else if (current_cpu == "x86") {
249 cflags += [ "-m32" ] 252 cflags += [
253 "-m32",
254 "-msse2",
255 "-mfpmath=sse",
256 ]
250 ldflags += [ "-m32" ] 257 ldflags += [ "-m32" ]
251 if (is_clang) { 258 if (is_clang) {
252 cflags += [ 259 cflags += [
253 # Else building libyuv gives clang's register allocator issues, 260 # Else building libyuv gives clang's register allocator issues,
254 # see llvm.org/PR15798 / crbug.com/233709 261 # see llvm.org/PR15798 / crbug.com/233709
255 "-momit-leaf-frame-pointer", 262 "-mno-omit-leaf-frame-pointer",
256 263
257 # Align the stack on 16-byte boundaries, http://crbug.com/418554. 264 # Align the stack on 16-byte boundaries, http://crbug.com/418554.
258 "-mstack-alignment=16", 265 "-mstack-alignment=16",
259 "-mstackrealign", 266 "-mstackrealign",
260 ] 267 ]
261 } 268 }
262 } else if (current_cpu == "arm") { 269 } else if (current_cpu == "arm") {
263 270
264 cflags += [ 271 cflags += [
265 "-march=$arm_arch", 272 "-march=$arm_arch",
(...skipping 17 matching lines...) Expand all
283 # compiler (r5-r7). This can be verified using 290 # compiler (r5-r7). This can be verified using
284 # webkit_unit_tests' WTF.Checked_int8_t test. 291 # webkit_unit_tests' WTF.Checked_int8_t test.
285 "-fno-tree-sra", 292 "-fno-tree-sra",
286 293
287 # The following option is disabled to improve binary 294 # The following option is disabled to improve binary
288 # size and performance in gcc 4.9. 295 # size and performance in gcc 4.9.
289 "-fno-caller-saves", 296 "-fno-caller-saves",
290 ] 297 ]
291 } 298 }
292 } else if (current_cpu == "mipsel") { 299 } else if (current_cpu == "mipsel") {
300 # We have to explicitly request exceptions to get good heap profiles from
301 # tcmalloc.
302 if (is_debug || is_release) {
303 cflags += [
304 "-fexceptions",
305 "-funwind-tables"
306 ]
307 }
308
293 if (mips_arch_variant == "r6") { 309 if (mips_arch_variant == "r6") {
294 cflags += [ 310 cflags += [
295 "-mips32r6", 311 "-mips32r6",
296 "-Wa,-mips32r6", 312 "-Wa,-mips32r6",
297 ] 313 ]
298 if (is_android) { 314 if (is_android) {
299 ldflags += [ 315 ldflags += [
300 "-mips32r6", 316 "-mips32r6",
301 "-Wl,-melf32ltsmip", 317 "-Wl,-melf32ltsmip",
302 ] 318 ]
(...skipping 29 matching lines...) Expand all
332 ldflags += [ "-mips64r6" ] 348 ldflags += [ "-mips64r6" ]
333 } else if (mips_arch_variant == "r2") { 349 } else if (mips_arch_variant == "r2") {
334 cflags += [ 350 cflags += [
335 "-mips64r2", 351 "-mips64r2",
336 "-Wa,-mips64r2", 352 "-Wa,-mips64r2",
337 ] 353 ]
338 ldflags += [ "-mips64r2" ] 354 ldflags += [ "-mips64r2" ]
339 } 355 }
340 } 356 }
341 357
342 cflags += [ "-funwind-tables" ] 358 if (current_cpu != "mipsel") {
359 cflags += [ "-fno-exceptions" ]
360 }
343 } 361 }
344 362
345 # Linux/Android common flags setup. 363 # Linux/Android common flags setup.
346 # --------------------------------- 364 # ---------------------------------
347 if (is_linux || is_android) { 365 if (is_linux || is_android) {
348 cflags += [ 366 cflags += [
349 "-fPIC", 367 "-fPIC",
350 ] 368 ]
351 369
352 ldflags += [ 370 ldflags += [
(...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 } else if (is_android) { 908 } else if (is_android) {
891 # On Android we kind of optimize some things that don't affect debugging 909 # On Android we kind of optimize some things that don't affect debugging
892 # much even when optimization is disabled to get the binary size down. 910 # much even when optimization is disabled to get the binary size down.
893 cflags = [ 911 cflags = [
894 "-Os", 912 "-Os",
895 "-fdata-sections", 913 "-fdata-sections",
896 "-ffunction-sections", 914 "-ffunction-sections",
897 ] 915 ]
898 ldflags = common_optimize_on_ldflags 916 ldflags = common_optimize_on_ldflags
899 } else { 917 } else {
900 cflags = [ "-O1" ] 918 cflags = [
919 "-O1",
920 "-fdata-sections",
921 "-ffunction-sections",
922 ]
901 } 923 }
902 } 924 }
903 925
904 # Symbols ---------------------------------------------------------------------- 926 # Symbols ----------------------------------------------------------------------
905 927
906 config("symbols") { 928 config("symbols") {
907 if (is_win) { 929 if (is_win) {
908 import("//build/toolchain/goma.gni") 930 import("//build/toolchain/goma.gni")
909 if (use_goma) { 931 if (use_goma) {
910 cflags = [ "/Z7" ] # No PDB file 932 cflags = [ "/Z7" ] # No PDB file
911 } else { 933 } else {
912 cflags = [ "/Zi" ] # Produce PDB file, no edit and continue. 934 cflags = [ "/Zi" ] # Produce PDB file, no edit and continue.
913 } 935 }
914 ldflags = [ "/DEBUG" ] 936 ldflags = [ "/DEBUG" ]
915 } else { 937 } else {
916 cflags = [ 938 cflags = [
917 "-g3", 939 "-g3",
918 "-ggdb3", 940 "-ggdb3",
919 ] 941 ]
920 } 942 }
921 } 943 }
OLDNEW
« no previous file with comments | « no previous file | runtime/bin/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698