Bug 1686918 - Disable the new Linux minidump writer on all architectures but x86 & x86-64 r=glandium

Differential Revision: https://phabricator.services.mozilla.com/D101870
This commit is contained in:
Gabriele Svelto 2021-01-19 09:08:55 +00:00
Родитель 31392e854e
Коммит 00fe7e97ef
9 изменённых файлов: 34 добавлений и 17 удалений

Просмотреть файл

@ -51,7 +51,7 @@
#include "common/linux/eintr_wrapper.h"
#include "common/linux/safe_readlink.h"
#if !defined(__ANDROID__)
#if defined(MOZ_OXIDIZED_BREAKPAD)
#include "mozilla/toolkit/crashreporter/rust_minidump_writer_linux_ffi_generated.h"
#endif
@ -270,16 +270,16 @@ CrashGenerationServer::ClientEvent(short revents)
if (!MakeMinidumpFilename(minidump_filename))
return true;
#if defined(__ANDROID__)
if (!google_breakpad::WriteMinidump(minidump_filename.c_str(),
crashing_pid, crash_context,
kCrashContextSize)) {
#if defined(MOZ_OXIDIZED_BREAKPAD)
if (!write_minidump_linux_with_context(minidump_filename.c_str(),
crashing_pid, crash_context)) {
close(signal_fd);
return true;
}
#else
if (!write_minidump_linux_with_context(minidump_filename.c_str(),
crashing_pid, crash_context)) {
if (!google_breakpad::WriteMinidump(minidump_filename.c_str(),
crashing_pid, crash_context,
kCrashContextSize)) {
close(signal_fd);
return true;
}

Просмотреть файл

@ -97,7 +97,7 @@
#include "common/linux/eintr_wrapper.h"
#include "third_party/lss/linux_syscall_support.h"
#include "prenv.h"
#if !defined(__ANDROID__)
#if defined(MOZ_OXIDIZED_BREAKPAD)
#include "mozilla/toolkit/crashreporter/rust_minidump_writer_linux_ffi_generated.h"
#endif
@ -852,14 +852,14 @@ bool ExceptionHandler::WriteMinidumpForChild(pid_t child,
// This function is not run in a compromised context.
MinidumpDescriptor descriptor(dump_path);
descriptor.UpdatePath();
#if defined(__ANDROID__)
#if defined(MOZ_OXIDIZED_BREAKPAD)
if (!write_minidump_linux(descriptor.path(), child, child_blamed_thread))
return false;
#else
if (!google_breakpad::WriteMinidump(descriptor.path(),
child,
child_blamed_thread))
return false;
#else
if (!write_minidump_linux(descriptor.path(), child, child_blamed_thread))
return false;
#endif
// nullptr here for phc::AddrInfo* is ok because this is not a crash.

Просмотреть файл

@ -53,7 +53,7 @@ if CONFIG["MOZ_CRASHREPORTER"]:
"google-breakpad/src/processor",
]
if CONFIG["OS_TARGET"] != "Android":
if CONFIG["MOZ_OXIDIZED_BREAKPAD"]:
DIRS += ["rust_minidump_writer_linux"]
DIRS += [

Просмотреть файл

@ -36,6 +36,7 @@ glean_with_gecko = ["gkrust-shared/glean_with_gecko", "fog-gtest"]
rust_fxa_client = ["gkrust-shared/rust_fxa_client"]
with_dbus = ["gkrust-shared/with_dbus"]
thread_sanitizer = ["gkrust-shared/thread_sanitizer"]
oxidized_breakpad = ["gkrust-shared/oxidized_breakpad"]
[dependencies]
bench-collections-gtest = { path = "../../../../xpcom/rust/gtest/bench-collections" }

Просмотреть файл

@ -37,6 +37,7 @@ glean_with_gecko = ["gkrust-shared/glean_with_gecko"]
rust_fxa_client = ["gkrust-shared/rust_fxa_client"]
with_dbus = ["gkrust-shared/with_dbus"]
thread_sanitizer = ["gkrust-shared/thread_sanitizer"]
oxidized_breakpad = ["gkrust-shared/oxidized_breakpad"]
[dependencies]
gkrust-shared = { path = "shared" }

Просмотреть файл

@ -88,3 +88,6 @@ if CONFIG['MOZ_USING_WASM_SANDBOXING']:
if CONFIG['MOZ_ENABLE_DBUS']:
gkrust_features += ['with_dbus']
if CONFIG['MOZ_OXIDIZED_BREAKPAD']:
gkrust_features += ['oxidized_breakpad']

Просмотреть файл

@ -55,6 +55,7 @@ unic-langid = { version = "0.9", features = ["likelysubtags"] }
unic-langid-ffi = { path = "../../../../intl/locale/rust/unic-langid-ffi" }
fluent-langneg = { version = "0.13", features = ["cldr"] }
fluent-langneg-ffi = { path = "../../../../intl/locale/rust/fluent-langneg-ffi" }
rust_minidump_writer_linux = { path = "../../../crashreporter/rust_minidump_writer_linux", optional = true }
# Note: `modern_sqlite` means rusqlite's bindings file be for a sqlite with
# version less than or equal to what we link to. This isn't a problem because we
@ -74,9 +75,6 @@ qcms = { path = "../../../../gfx/qcms", features = ["c_bindings"] }
viaduct = { git = "https://github.com/mozilla/application-services", rev = "8a576fbe79199fa8664f64285524017f74ebcc5f"}
webext_storage_bridge = { path = "../../../components/extensions/storage/webext_storage_bridge" }
[target.'cfg(target_os = "linux")'.dependencies]
rust_minidump_writer_linux = { path = "../../../../toolkit/crashreporter/rust_minidump_writer_linux" }
[build-dependencies]
rustc_version = "0.2"
@ -110,6 +108,7 @@ remote_agent = ["remote"]
glean = ["fog_control"]
glean_with_gecko = ["fog_control/with_gecko"]
rust_fxa_client = ["firefox-accounts-bridge"]
oxidized_breakpad = ["rust_minidump_writer_linux"]
with_dbus = ["audio_thread_priority/with_dbus"]
thread_sanitizer = ["xpcom/thread_sanitizer"]

Просмотреть файл

@ -88,7 +88,7 @@ extern crate remote;
extern crate gecko_logger;
#[cfg(target_os = "linux")]
#[cfg(feature = "oxidized_breakpad")]
extern crate rust_minidump_writer_linux;
extern crate log;

Просмотреть файл

@ -2492,3 +2492,16 @@ option(
)
set_define("MOZ_USE_NATIVE_POPUP_WINDOWS", True, when="MOZ_USE_NATIVE_POPUP_WINDOWS")
# Crash reporter options
# ==============================================================
@depends(target)
def oxidized_breakpad(target):
if target.kernel == "Linux" and target.os != "Android":
return target.cpu in ("x86", "x86_64")
return False
set_config("MOZ_OXIDIZED_BREAKPAD", True, when=oxidized_breakpad)
set_define("MOZ_OXIDIZED_BREAKPAD", True, when=oxidized_breakpad)