| Index: build/config/compiler/compiler.gni
|
| diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
|
| index 403dd4fd320e37951467fadc5c3a116e92405bf5..2cb9637059831e9809dc97540d0b49da5b1df17e 100644
|
| --- a/build/config/compiler/compiler.gni
|
| +++ b/build/config/compiler/compiler.gni
|
| @@ -3,6 +3,7 @@
|
| # found in the LICENSE file.
|
|
|
| import("//build/config/android/config.gni")
|
| +import("//build/config/arm.gni")
|
| import("//build/config/chrome_build.gni")
|
| import("//build/config/chromecast_build.gni")
|
| import("//build/config/compiler/pgo/pgo.gni")
|
| @@ -65,6 +66,34 @@ declare_args() {
|
| use_pic = true
|
| }
|
|
|
| +# Whether to emit frame pointers by default.
|
| +if (is_mac || is_ios) {
|
| + enabled_frame_pointers = true
|
| +} else if (is_win) {
|
| + # 64-bit Windows ABI doesn't support frame pointers.
|
| + if (target_cpu == "x64") {
|
| + enabled_frame_pointers = false
|
| + } else {
|
| + enabled_frame_pointers = true
|
| + }
|
| +} else {
|
| + # Explicitly ask for frame pointers, otherwise:
|
| + # * Stacks may be missing for sanitizer and profiling builds.
|
| + # * Debug tcmalloc can crash (crbug.com/636489).
|
| + # * Stacks may be missing for arm64 crash dumps (crbug.com/391706).
|
| + enabled_frame_pointers =
|
| + using_sanitizer || enable_profiling || is_debug || current_cpu == "arm64"
|
| +}
|
| +
|
| +# Unwinding with frame pointers requires that frame pointers are enabled by
|
| +# default for most translation units, and that the architecture isn't thumb, as
|
| +# frame pointers are not correctly emitted for thumb.
|
| +if (enabled_frame_pointers && !(current_cpu == "arm" && arm_use_thumb)) {
|
| + can_unwind_with_frame_pointers = true
|
| +} else {
|
| + can_unwind_with_frame_pointers = false
|
| +}
|
| +
|
| declare_args() {
|
| # Whether or not the official builds should be built with full WPO. Enabled by
|
| # default for the PGO and the x64 builds.
|
|
|