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

Unified Diff: build/config/compiler/compiler.gni

Issue 2829433003: Enable frame pointers explicitly under ARM32. (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/config/compiler/BUILD.gn ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/config/compiler/compiler.gni
diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
index e8051ec423489bcdf55f449b14b62db9e139b758..143ab78e0bc3fd2288519f3d6cb1005d9c12155e 100644
--- a/build/config/compiler/compiler.gni
+++ b/build/config/compiler/compiler.gni
@@ -76,20 +76,25 @@ if (is_mac || is_ios) {
} else {
enabled_frame_pointers = true
}
+} else if (current_cpu == "arm64") {
+ # Ensure that stacks from arm64 crash dumps are usable (crbug.com/391706).
+ enabled_frame_pointers = true;
+} else if (current_cpu == "arm") {
+ # TODO(711784): Building without frame pointers can lead to code which
+ # triggers some ARM A12/A17 errata.
diandersAtChromium 2017/04/19 17:35:25 Do we think this really happens on Android version
Wez 2017/04/19 18:14:58 That's a good question; I don't see any reason why
+ 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"
+ enabled_frame_pointers = using_sanitizer || enable_profiling || is_debug;
}
# Unwinding with frame pointers requires that they are enabled by default for
# most translation units, that they are emitted correctly, and that the
# compiler or platform provides a way to access them.
-if (current_cpu == "arm" && arm_use_thumb) {
- # ARM Thumb builds do not emit frame pointers correctly.
+if (current_cpu == "arm") {
+ # We cannot currently unwind ARM32 frame pointers correctly.
erikchen 2017/04/19 02:43:57 Technically, we can never unwind all stacks on any
DmitrySkiba 2017/04/19 15:06:09 Yes, this will break Android heap profiler. We can
Wez 2017/04/19 18:14:58 Oh, interesting: gmx@ stated that we can't unwind
can_unwind_with_frame_pointers = false
} else if (is_win) {
# Windows 32-bit does provide frame pointers, but the compiler does not
« no previous file with comments | « build/config/compiler/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698