From 47a830465f78a8767946fbb5a2ddd07fe8250b30 Mon Sep 17 00:00:00 2001 From: Mark Mentovai Date: Tue, 1 Nov 2016 15:59:40 -0400 Subject: [PATCH 1/4] Port the minidump library to Android and ARM BUG=crashpad:30 Change-Id: I74212722b73f498c263f65d7599a8aca601c7ba0 Reviewed-on: https://chromium-review.googlesource.com/406387 Reviewed-by: Robert Sesek --- minidump/minidump_misc_info_writer.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/minidump/minidump_misc_info_writer.cc b/minidump/minidump_misc_info_writer.cc index 1d25b115..3f7dc00c 100644 --- a/minidump/minidump_misc_info_writer.cc +++ b/minidump/minidump_misc_info_writer.cc @@ -31,6 +31,8 @@ #if defined(OS_MACOSX) #include +#elif defined(OS_ANDROID) +#include #endif namespace crashpad { @@ -99,6 +101,8 @@ std::string MinidumpMiscInfoDebugBuildString() { // they will be truncated and a message will be logged. #if defined(OS_MACOSX) const char kOS[] = "mac"; +#elif defined(OS_ANDROID) + const char kOS[] = "android"; #elif defined(OS_LINUX) const char kOS[] = "linux"; #elif defined(OS_WIN) @@ -111,6 +115,10 @@ std::string MinidumpMiscInfoDebugBuildString() { const char kCPU[] = "i386"; #elif defined(ARCH_CPU_X86_64) const char kCPU[] = "amd64"; +#elif defined(ARCH_CPU_ARM) + const char kCPU[] = "arm"; +#elif defined(ARCH_CPU_ARM64) + const char kCPU[] = "arm64"; #else #error define kCPU for this CPU #endif @@ -126,6 +134,8 @@ std::string MinidumpMiscInfoDebugBuildString() { ",%d,%d", AvailabilityVersionToMacOSXMinorVersion(MAC_OS_X_VERSION_MIN_REQUIRED), AvailabilityVersionToMacOSXMinorVersion(MAC_OS_X_VERSION_MAX_ALLOWED)); +#elif defined(OS_ANDROID) + debug_build_string += base::StringPrintf(",%d", __ANDROID_API__); #endif return debug_build_string; From 88e3b6b0227192b0a8d0a5c106e689701f52f2be Mon Sep 17 00:00:00 2001 From: Mark Mentovai Date: Tue, 1 Nov 2016 16:47:10 -0400 Subject: [PATCH 2/4] Omit platform-specific assembler source from builds as needed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The default filename rules do not match .S or .asm, so the platform-specific assembler implementations of CaptureContext() were not being affirmatively excluded from other platforms’ builds. This previously worked without causing problems because the Mac build environment didn’t know what to do with .asm files, and the Windows build environment didn’t know what to do with .S files. Now that another platform that may understand .S files is being added, the rules for when to build these files must be tailored a bit more tightly. BUG=crashpad:30 Change-Id: Ib62e619c007320d45279c104b3e229d92698aa72 Reviewed-on: https://chromium-review.googlesource.com/406348 Reviewed-by: Robert Sesek --- client/client.gyp | 5 +++++ util/util.gyp | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/client/client.gyp b/client/client.gyp index 9892fb6c..45ae382a 100644 --- a/client/client.gyp +++ b/client/client.gyp @@ -61,6 +61,11 @@ ], }, }], + ['OS!="mac"', { + 'sources!': [ + 'capture_context_mac.S', + ], + }], ], 'direct_dependent_settings': { 'include_dirs': [ diff --git a/util/util.gyp b/util/util.gyp index 9321ab8d..8269bd42 100644 --- a/util/util.gyp +++ b/util/util.gyp @@ -284,6 +284,10 @@ }, }], ], + }, { # else: OS!="win" + 'sources!': [ + 'win/capture_context.asm', + ], }], ], }, From 96b9857aceb4f57ea8a8db476b23a79ea9f91dfc Mon Sep 17 00:00:00 2001 From: Mark Mentovai Date: Tue, 1 Nov 2016 16:35:06 -0400 Subject: [PATCH 3/4] Fix the crashpad_minidump library for 32-bit ARM. ARCH_CPU_ARMEL, not ARCH_CPU_ARM. This is probably going to bite again. BUG=crashpad:30 Change-Id: Ifa6069638c72db13b7f6498471f9ca3ad7c45b90 Reviewed-on: https://chromium-review.googlesource.com/406407 Reviewed-by: Robert Sesek --- minidump/minidump_misc_info_writer.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minidump/minidump_misc_info_writer.cc b/minidump/minidump_misc_info_writer.cc index 3f7dc00c..e880aa7f 100644 --- a/minidump/minidump_misc_info_writer.cc +++ b/minidump/minidump_misc_info_writer.cc @@ -115,7 +115,7 @@ std::string MinidumpMiscInfoDebugBuildString() { const char kCPU[] = "i386"; #elif defined(ARCH_CPU_X86_64) const char kCPU[] = "amd64"; -#elif defined(ARCH_CPU_ARM) +#elif defined(ARCH_CPU_ARMEL) const char kCPU[] = "arm"; #elif defined(ARCH_CPU_ARM64) const char kCPU[] = "arm64"; From c55e49c13d5c0ab72481c2f7534bc2308414542e Mon Sep 17 00:00:00 2001 From: Mark Mentovai Date: Tue, 1 Nov 2016 23:55:16 -0400 Subject: [PATCH 4/4] doc: Remove errant parenthesis Also add a link to codereview.settings. Change-Id: Id6676e16fa3e10e34805c47b2d41e82e524af09a Reviewed-on: https://chromium-review.googlesource.com/406707 Reviewed-by: Robert Sesek --- doc/developing.ad | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/developing.ad b/doc/developing.ad index 858c4008..a8aafcf1 100644 --- a/doc/developing.ad +++ b/doc/developing.ad @@ -250,7 +250,8 @@ review is conducted on https://chromium-review.googlesource.com/[Chromium’s Gerrit] system, and all code reviews must be sent to an appropriate reviewer, with a Cc sent to https://groups.google.com/a/chromium.org/group/crashpad-dev[crashpad-dev]. The -`codereview.settings` file specifies this environment to `git-cl`. +https://chromium.googlesource.com/crashpad/crashpad/+/master/codereview.settings[`codereview.settings`] +file specifies this environment to `git-cl`. `git-cl` is part of the https://dev.chromium.org/developers/how-tos/depottools[depot_tools]. There’s no @@ -285,7 +286,7 @@ feedback. === Landing Changes -After code review is complete and “Code-Review: +1”) has been received from all +After code review is complete and “Code-Review: +1” has been received from all reviewers, project members can commit the patch themselves: [subs="verbatim,quotes"]