| OLD | NEW |
| 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 import("//build/config/chrome_build.gni") | 6 import("//build/config/chrome_build.gni") |
| 7 import("//build/config/compiler/compiler.gni") | 7 import("//build/config/compiler/compiler.gni") |
| 8 import("//build/config/nacl/config.gni") | 8 import("//build/config/nacl/config.gni") |
| 9 import("//build/toolchain/cc_wrapper.gni") | 9 import("//build/toolchain/cc_wrapper.gni") |
| 10 import("//build/toolchain/toolchain.gni") | 10 import("//build/toolchain/toolchain.gni") |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 # This is here so that all files get recompiled after a clang roll and | 234 # This is here so that all files get recompiled after a clang roll and |
| 235 # when turning clang on or off. (defines are passed via the command line, | 235 # when turning clang on or off. (defines are passed via the command line, |
| 236 # and build system rebuild things when their commandline changes). Nothing | 236 # and build system rebuild things when their commandline changes). Nothing |
| 237 # should ever read this define. | 237 # should ever read this define. |
| 238 defines += [ "CR_CLANG_REVISION=$clang_revision" ] | 238 defines += [ "CR_CLANG_REVISION=$clang_revision" ] |
| 239 } | 239 } |
| 240 | 240 |
| 241 # Non-Mac Posix compiler flags setup. | 241 # Non-Mac Posix compiler flags setup. |
| 242 # ----------------------------------- | 242 # ----------------------------------- |
| 243 if (is_posix && !(is_mac || is_ios)) { | 243 if (is_posix && !(is_mac || is_ios)) { |
| 244 if (enable_profiling && !is_debug) { | 244 if (enable_profiling) { |
| 245 cflags += [ | 245 # Explicitly ask for frame pointers. Otherwise they are omitted when |
| 246 "-fno-omit-frame-pointer", | 246 # any optimization level is used (and Android debug builds use -Os). |
| 247 "-g", | 247 cflags += [ "-fno-omit-frame-pointer" ] |
| 248 ] | 248 if (!is_debug) { |
| 249 cflags += [ "-g" ] |
| 249 | 250 |
| 250 if (enable_full_stack_frames_for_profiling) { | 251 if (enable_full_stack_frames_for_profiling) { |
| 251 cflags += [ | 252 cflags += [ |
| 252 "-fno-inline", | 253 "-fno-inline", |
| 253 "-fno-optimize-sibling-calls", | 254 "-fno-optimize-sibling-calls", |
| 254 ] | 255 ] |
| 256 } |
| 255 } | 257 } |
| 256 } | 258 } |
| 257 | 259 |
| 258 defines += [ "_FILE_OFFSET_BITS=64" ] | 260 defines += [ "_FILE_OFFSET_BITS=64" ] |
| 259 | 261 |
| 260 if (!is_android) { | 262 if (!is_android) { |
| 261 defines += [ | 263 defines += [ |
| 262 "_LARGEFILE_SOURCE", | 264 "_LARGEFILE_SOURCE", |
| 263 "_LARGEFILE64_SOURCE", | 265 "_LARGEFILE64_SOURCE", |
| 264 ] | 266 ] |
| (...skipping 937 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1202 # can be removed at link time with --gc-sections. | 1204 # can be removed at link time with --gc-sections. |
| 1203 "-fdata-sections", | 1205 "-fdata-sections", |
| 1204 "-ffunction-sections", | 1206 "-ffunction-sections", |
| 1205 ] | 1207 ] |
| 1206 common_optimize_on_ldflags = [] | 1208 common_optimize_on_ldflags = [] |
| 1207 | 1209 |
| 1208 if (is_android) { | 1210 if (is_android) { |
| 1209 # We don't omit frame pointers on arm64 since they are required | 1211 # We don't omit frame pointers on arm64 since they are required |
| 1210 # to correctly unwind stackframes which contain system library | 1212 # to correctly unwind stackframes which contain system library |
| 1211 # function frames (crbug.com/391706). | 1213 # function frames (crbug.com/391706). |
| 1212 if (!using_sanitizer && target_cpu != "arm64") { | 1214 if (!using_sanitizer && !enable_profiling && target_cpu != "arm64") { |
| 1213 common_optimize_on_cflags += [ "-fomit-frame-pointer" ] | 1215 common_optimize_on_cflags += [ "-fomit-frame-pointer" ] |
| 1214 } | 1216 } |
| 1215 | 1217 |
| 1216 # TODO(jdduke) Re-enable on mips after resolving linking | 1218 # TODO(jdduke) Re-enable on mips after resolving linking |
| 1217 # issues with libc++ (crbug.com/456380). | 1219 # issues with libc++ (crbug.com/456380). |
| 1218 if (current_cpu != "mipsel" && current_cpu != "mips64el") { | 1220 if (current_cpu != "mipsel" && current_cpu != "mips64el") { |
| 1219 common_optimize_on_ldflags += [ | 1221 common_optimize_on_ldflags += [ |
| 1220 # Warn in case of text relocations. | 1222 # Warn in case of text relocations. |
| 1221 "-Wl,--warn-shared-textrel", | 1223 "-Wl,--warn-shared-textrel", |
| 1222 ] | 1224 ] |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1292 # much even when optimization is disabled to get the binary size down. | 1294 # much even when optimization is disabled to get the binary size down. |
| 1293 cflags = [ | 1295 cflags = [ |
| 1294 "-Os", | 1296 "-Os", |
| 1295 "-fdata-sections", | 1297 "-fdata-sections", |
| 1296 "-ffunction-sections", | 1298 "-ffunction-sections", |
| 1297 ] | 1299 ] |
| 1298 | 1300 |
| 1299 # We don't omit frame pointers on arm64 since they are required | 1301 # We don't omit frame pointers on arm64 since they are required |
| 1300 # to correctly unwind stackframes which contain system library | 1302 # to correctly unwind stackframes which contain system library |
| 1301 # function frames (crbug.com/391706). | 1303 # function frames (crbug.com/391706). |
| 1302 if (!using_sanitizer && target_cpu != "arm64") { | 1304 if (!using_sanitizer && !enable_profiling && target_cpu != "arm64") { |
| 1303 cflags += [ "-fomit-frame-pointer" ] | 1305 cflags += [ "-fomit-frame-pointer" ] |
| 1304 } | 1306 } |
| 1305 | 1307 |
| 1306 # Don't use gc-sections since it can cause links to succeed when they | 1308 # Don't use gc-sections since it can cause links to succeed when they |
| 1307 # actually shouldn't. http://crbug.com/159847 | 1309 # actually shouldn't. http://crbug.com/159847 |
| 1308 ldflags = common_optimize_on_ldflags - [ "-Wl,--gc-sections" ] | 1310 ldflags = common_optimize_on_ldflags - [ "-Wl,--gc-sections" ] |
| 1309 } else { | 1311 } else { |
| 1310 cflags = [ "-O0" ] | 1312 cflags = [ "-O0" ] |
| 1311 ldflags = [] | 1313 ldflags = [] |
| 1312 } | 1314 } |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1453 | 1455 |
| 1454 if (is_ios || is_mac) { | 1456 if (is_ios || is_mac) { |
| 1455 # On Mac and iOS, this enables support for ARC (automatic ref-counting). | 1457 # On Mac and iOS, this enables support for ARC (automatic ref-counting). |
| 1456 # See http://clang.llvm.org/docs/AutomaticReferenceCounting.html. | 1458 # See http://clang.llvm.org/docs/AutomaticReferenceCounting.html. |
| 1457 config("enable_arc") { | 1459 config("enable_arc") { |
| 1458 common_flags = [ "-fobjc-arc" ] | 1460 common_flags = [ "-fobjc-arc" ] |
| 1459 cflags_objc = common_flags | 1461 cflags_objc = common_flags |
| 1460 cflags_objcc = common_flags | 1462 cflags_objcc = common_flags |
| 1461 } | 1463 } |
| 1462 } | 1464 } |
| OLD | NEW |