579 lines
21 KiB
Diff
579 lines
21 KiB
Diff
|
diff -up firefox-86.0/Cargo.lock.1686888-dump-syms firefox-86.0/Cargo.lock
|
||
|
--- firefox-86.0/Cargo.lock.1686888-dump-syms 2021-02-22 15:47:04.000000000 +0100
|
||
|
+++ firefox-86.0/Cargo.lock 2021-02-24 10:01:09.217178617 +0100
|
||
|
@@ -1241,6 +1241,13 @@ dependencies = [
|
||
|
]
|
||
|
|
||
|
[[package]]
|
||
|
+name = "dump_syms_rust_demangle"
|
||
|
+version = "0.1.0"
|
||
|
+dependencies = [
|
||
|
+ "rustc-demangle",
|
||
|
+]
|
||
|
+
|
||
|
+[[package]]
|
||
|
name = "dwrote"
|
||
|
version = "0.11.0"
|
||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||
|
diff -up firefox-86.0/Cargo.toml.1686888-dump-syms firefox-86.0/Cargo.toml
|
||
|
--- firefox-86.0/Cargo.toml.1686888-dump-syms 2021-02-22 15:47:04.000000000 +0100
|
||
|
+++ firefox-86.0/Cargo.toml 2021-02-24 10:01:09.217178617 +0100
|
||
|
@@ -13,6 +13,7 @@ members = [
|
||
|
"netwerk/test/http3server",
|
||
|
"security/manager/ssl/osclientcerts",
|
||
|
"testing/geckodriver",
|
||
|
+ "toolkit/crashreporter/rust",
|
||
|
"toolkit/crashreporter/rust_minidump_writer_linux",
|
||
|
"toolkit/library/gtest/rust",
|
||
|
"toolkit/library/rust/",
|
||
|
diff -up firefox-86.0/python/mozbuild/mozbuild/action/dumpsymbols.py.1686888-dump-syms firefox-86.0/python/mozbuild/mozbuild/action/dumpsymbols.py
|
||
|
--- firefox-86.0/python/mozbuild/mozbuild/action/dumpsymbols.py.1686888-dump-syms 2021-02-22 14:43:46.000000000 +0100
|
||
|
+++ firefox-86.0/python/mozbuild/mozbuild/action/dumpsymbols.py 2021-02-24 10:01:09.218178640 +0100
|
||
|
@@ -29,7 +29,29 @@ def dump_symbols(target, tracking_file,
|
||
|
# Build default args for symbolstore.py based on platform.
|
||
|
sym_store_args = []
|
||
|
|
||
|
- dump_syms_bin = buildconfig.substs["DUMP_SYMS"]
|
||
|
+ # Find the `dump_syms` binary to use.
|
||
|
+ dump_syms_bin = None
|
||
|
+ dump_syms_binaries = []
|
||
|
+
|
||
|
+ default_bin = buildconfig.substs.get("DUMP_SYMS")
|
||
|
+ if default_bin:
|
||
|
+ dump_syms_binaries.append(default_bin)
|
||
|
+
|
||
|
+ # Fallback to the in-tree breakpad version.
|
||
|
+ dump_syms_binaries.append(
|
||
|
+ os.path.join(
|
||
|
+ buildconfig.topobjdir,
|
||
|
+ "dist",
|
||
|
+ "host",
|
||
|
+ "bin",
|
||
|
+ "dump_syms" + buildconfig.substs["BIN_SUFFIX"],
|
||
|
+ )
|
||
|
+ )
|
||
|
+
|
||
|
+ for dump_syms_bin in dump_syms_binaries:
|
||
|
+ if os.path.exists(dump_syms_bin):
|
||
|
+ break
|
||
|
+
|
||
|
os_arch = buildconfig.substs["OS_ARCH"]
|
||
|
if os_arch == "WINNT":
|
||
|
sym_store_args.extend(["-c", "--vcs-info"])
|
||
|
diff -up firefox-86.0/taskcluster/ci/toolchain/minidump_stackwalk.yml.1686888-dump-syms firefox-86.0/taskcluster/ci/toolchain/minidump_stackwalk.yml
|
||
|
--- firefox-86.0/taskcluster/ci/toolchain/minidump_stackwalk.yml.1686888-dump-syms 2021-02-22 15:47:05.000000000 +0100
|
||
|
+++ firefox-86.0/taskcluster/ci/toolchain/minidump_stackwalk.yml 2021-02-24 10:01:09.218178640 +0100
|
||
|
@@ -17,7 +17,9 @@ job-defaults:
|
||
|
- 'config/external/zlib'
|
||
|
- 'moz.configure'
|
||
|
- 'toolkit/crashreporter'
|
||
|
+ - 'toolkit/crashreporter/google-breakpad/src/common'
|
||
|
- 'toolkit/crashreporter/google-breakpad/src/processor'
|
||
|
+ - 'toolkit/crashreporter/rust'
|
||
|
- 'tools/crashreporter/'
|
||
|
toolchain-artifact: public/build/minidump_stackwalk.tar.xz
|
||
|
run-on-projects:
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/dwarf/moz.build.1686888-dump-syms firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/dwarf/moz.build
|
||
|
--- firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/dwarf/moz.build.1686888-dump-syms 2021-02-24 10:01:09.218178640 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/dwarf/moz.build 2021-02-24 10:01:09.218178640 +0100
|
||
|
@@ -0,0 +1,35 @@
|
||
|
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||
|
+# vim: set filetype=python:
|
||
|
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
+
|
||
|
+HostLibrary('host_breakpad_dwarf_s')
|
||
|
+HOST_SOURCES += [
|
||
|
+ 'bytereader.cc',
|
||
|
+ 'dwarf2diehandler.cc',
|
||
|
+ 'dwarf2reader.cc',
|
||
|
+ 'elf_reader.cc',
|
||
|
+ 'functioninfo.cc',
|
||
|
+]
|
||
|
+HOST_CXXFLAGS += [
|
||
|
+ '-O2',
|
||
|
+ '-g',
|
||
|
+]
|
||
|
+
|
||
|
+# need static lib
|
||
|
+FORCE_STATIC_LIB = True
|
||
|
+
|
||
|
+# This code is only compiled for build-time tools,
|
||
|
+# so enabling RTTI should be fine.
|
||
|
+HOST_CXXFLAGS += [
|
||
|
+ '-frtti',
|
||
|
+ '-funsigned-char',
|
||
|
+]
|
||
|
+
|
||
|
+if CONFIG['OS_ARCH'] == 'Darwin':
|
||
|
+ HOST_CXXFLAGS += [
|
||
|
+ '-stdlib=libc++',
|
||
|
+ ]
|
||
|
+
|
||
|
+include('/toolkit/crashreporter/crashreporter.mozbuild')
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/linux/moz.build.1686888-dump-syms firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/linux/moz.build
|
||
|
--- firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/linux/moz.build.1686888-dump-syms 2021-02-22 14:43:54.000000000 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/linux/moz.build 2021-02-24 10:01:09.218178640 +0100
|
||
|
@@ -21,6 +21,24 @@ if CONFIG['OS_TARGET'] != 'Android':
|
||
|
'http_upload.cc',
|
||
|
]
|
||
|
|
||
|
+if CONFIG['HOST_OS_ARCH'] == 'Linux':
|
||
|
+ HostLibrary('host_breakpad_linux_common_s')
|
||
|
+
|
||
|
+ HOST_SOURCES += [
|
||
|
+ 'crc32.cc',
|
||
|
+ 'dump_symbols.cc',
|
||
|
+ 'elf_symbols_to_module.cc',
|
||
|
+ 'elfutils.cc',
|
||
|
+ 'file_id.cc',
|
||
|
+ 'linux_libc_support.cc',
|
||
|
+ 'memory_mapped_file.cc',
|
||
|
+ ]
|
||
|
+
|
||
|
+ HOST_CXXFLAGS += [
|
||
|
+ '-O2',
|
||
|
+ '-g',
|
||
|
+ ]
|
||
|
+
|
||
|
if CONFIG['OS_TARGET'] == 'Android':
|
||
|
DEFINES['ANDROID_NDK_MAJOR_VERSION'] = CONFIG['ANDROID_NDK_MAJOR_VERSION']
|
||
|
DEFINES['ANDROID_NDK_MINOR_VERSION'] = CONFIG['ANDROID_NDK_MINOR_VERSION']
|
||
|
@@ -36,6 +54,8 @@ if not CONFIG['HAVE_GETCONTEXT']:
|
||
|
|
||
|
Library('breakpad_linux_common_s')
|
||
|
|
||
|
+HOST_DEFINES['NO_STABS_SUPPORT'] = True
|
||
|
+
|
||
|
include('/toolkit/crashreporter/crashreporter.mozbuild')
|
||
|
|
||
|
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/mac/moz.build.1686888-dump-syms firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/mac/moz.build
|
||
|
--- firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/mac/moz.build.1686888-dump-syms 2021-02-22 14:43:54.000000000 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/mac/moz.build 2021-02-24 10:01:09.218178640 +0100
|
||
|
@@ -13,6 +13,26 @@ UNIFIED_SOURCES += [
|
||
|
'macho_walker.cc',
|
||
|
]
|
||
|
|
||
|
+if CONFIG['HOST_OS_ARCH'] != 'Darwin':
|
||
|
+ HOST_CXXFLAGS += [
|
||
|
+ '-I%s/toolkit/crashreporter/google-breakpad/src/third_party/mac_headers/' % TOPSRCDIR,
|
||
|
+ ]
|
||
|
+
|
||
|
+# This is a little weird, but we're building a host and a target lib here.
|
||
|
+# The host lib is used for dump_syms, and the target lib for the
|
||
|
+# crash reporter client. Therefore, we don't need all the srcs in both.
|
||
|
+if CONFIG['MOZ_CRASHREPORTER']:
|
||
|
+ HOST_SOURCES += UNIFIED_SOURCES
|
||
|
+ HOST_SOURCES += [
|
||
|
+ 'dump_syms.cc',
|
||
|
+ ]
|
||
|
+ HOST_CXXFLAGS += [
|
||
|
+ '-O2',
|
||
|
+ '-g',
|
||
|
+ '-stdlib=libc++',
|
||
|
+ ]
|
||
|
+ HostLibrary('host_breakpad_mac_common_s')
|
||
|
+
|
||
|
SOURCES += [
|
||
|
'bootstrap_compat.cc',
|
||
|
'HTTPMultipartUpload.m',
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/moz.build.1686888-dump-syms firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/moz.build
|
||
|
--- firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/moz.build.1686888-dump-syms 2021-02-22 14:43:54.000000000 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/moz.build 2021-02-24 10:01:09.218178640 +0100
|
||
|
@@ -14,6 +14,51 @@ if CONFIG['OS_ARCH'] == 'Darwin':
|
||
|
'md5.cc',
|
||
|
]
|
||
|
|
||
|
+if CONFIG['OS_ARCH'] == 'Linux':
|
||
|
+ HOST_DEFINES['HAVE_A_OUT_H'] = True
|
||
|
+elif CONFIG['OS_ARCH'] == 'Darwin':
|
||
|
+ HOST_DEFINES['HAVE_MACH_O_NLIST_H'] = True
|
||
|
+ HOST_SOURCES += [
|
||
|
+ 'stabs_reader.cc',
|
||
|
+ 'stabs_to_module.cc',
|
||
|
+ ]
|
||
|
+ if CONFIG['HOST_OS_ARCH'] != 'Darwin':
|
||
|
+ HOST_CXXFLAGS += [
|
||
|
+ '-I%s/toolkit/crashreporter/google-breakpad/src/third_party/mac_headers/' % TOPSRCDIR,
|
||
|
+ ]
|
||
|
+
|
||
|
+if CONFIG['HOST_OS_ARCH'] != 'WINNT':
|
||
|
+ if CONFIG['OS_ARCH'] in ('Darwin', 'Linux'):
|
||
|
+ DIRS += ['dwarf']
|
||
|
+
|
||
|
+ HOST_SOURCES += [
|
||
|
+ 'arm_ex_reader.cc',
|
||
|
+ 'arm_ex_to_module.cc',
|
||
|
+ 'convert_UTF.cc',
|
||
|
+ 'dwarf_cfi_to_module.cc',
|
||
|
+ 'dwarf_cu_to_module.cc',
|
||
|
+ 'dwarf_line_to_module.cc',
|
||
|
+ 'dwarf_range_list_handler.cc',
|
||
|
+ 'language.cc',
|
||
|
+ 'md5.cc',
|
||
|
+ 'module.cc',
|
||
|
+ 'path_helper.cc',
|
||
|
+ 'string_conversion.cc',
|
||
|
+ ]
|
||
|
+ if CONFIG['OS_ARCH'] == 'Darwin':
|
||
|
+ HOST_CXXFLAGS += [
|
||
|
+ '-stdlib=libc++',
|
||
|
+ ]
|
||
|
+ HOST_CXXFLAGS += [
|
||
|
+ '-O2',
|
||
|
+ '-g',
|
||
|
+ ]
|
||
|
+ HOST_DEFINES['HAVE_RUST_DEMANGLE'] = True
|
||
|
+ LOCAL_INCLUDES += [
|
||
|
+ '/toolkit/crashreporter/rust',
|
||
|
+ ]
|
||
|
+ HostLibrary('host_breakpad_common_s')
|
||
|
+
|
||
|
Library('breakpad_common_s')
|
||
|
|
||
|
include('/toolkit/crashreporter/crashreporter.mozbuild')
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/solaris/moz.build.1686888-dump-syms firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/solaris/moz.build
|
||
|
--- firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/solaris/moz.build.1686888-dump-syms 2021-02-24 10:01:09.218178640 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/google-breakpad/src/common/solaris/moz.build 2021-02-24 10:01:09.218178640 +0100
|
||
|
@@ -0,0 +1,34 @@
|
||
|
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||
|
+# vim: set filetype=python:
|
||
|
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
+
|
||
|
+UNIFIED_SOURCES += [
|
||
|
+ 'dump_symbols.cc',
|
||
|
+ 'file_id.cc',
|
||
|
+ 'guid_creator.cc',
|
||
|
+]
|
||
|
+
|
||
|
+HostLibrary('host_breakpad_solaris_common_s')
|
||
|
+
|
||
|
+Library('breakpad_solaris_common_s')
|
||
|
+
|
||
|
+# not compiling http_upload.cc currently
|
||
|
+# since it depends on libcurl
|
||
|
+HOST_SOURCES += [
|
||
|
+ 'dump_symbols.cc',
|
||
|
+ 'file_id.cc',
|
||
|
+ 'guid_creator.cc',
|
||
|
+]
|
||
|
+HOST_CXXFLAGS += [
|
||
|
+ '-O2',
|
||
|
+ '-g',
|
||
|
+]
|
||
|
+
|
||
|
+FINAL_LIBRARY = 'xul'
|
||
|
+
|
||
|
+LOCAL_INCLUDES += [
|
||
|
+ '../..',
|
||
|
+]
|
||
|
+
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/moz.build.1686888-dump-syms firefox-86.0/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/moz.build
|
||
|
--- firefox-86.0/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/moz.build.1686888-dump-syms 2021-02-24 10:01:09.218178640 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/moz.build 2021-02-24 10:01:09.218178640 +0100
|
||
|
@@ -0,0 +1,45 @@
|
||
|
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||
|
+# vim: set filetype=python:
|
||
|
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
+
|
||
|
+HostProgram('dump_syms')
|
||
|
+
|
||
|
+HOST_SOURCES += [
|
||
|
+ 'dump_syms.cc',
|
||
|
+]
|
||
|
+
|
||
|
+HOST_CXXFLAGS += [
|
||
|
+ '-O2',
|
||
|
+ '-g',
|
||
|
+]
|
||
|
+
|
||
|
+# host_breakpad_linux_common_s needs to come first
|
||
|
+HOST_USE_LIBS += [
|
||
|
+ 'host_breakpad_linux_common_s',
|
||
|
+]
|
||
|
+HOST_USE_LIBS += [
|
||
|
+ 'host_breakpad_common_s',
|
||
|
+ 'host_breakpad_dwarf_s',
|
||
|
+]
|
||
|
+# Order matters here, but HOST_USE_LIBS must be sorted.
|
||
|
+HOST_USE_LIBS += [
|
||
|
+ 'dump_syms_rust_demangle',
|
||
|
+]
|
||
|
+# Ideally, this should be derived from the output of rustc
|
||
|
+# --print=native-static-libs or something like that.
|
||
|
+HOST_OS_LIBS += [
|
||
|
+ 'dl',
|
||
|
+ 'pthread',
|
||
|
+]
|
||
|
+if CONFIG['HOST_OS_ARCH'] == 'Linux':
|
||
|
+ HOST_OS_LIBS += [
|
||
|
+ 'rt',
|
||
|
+ ]
|
||
|
+
|
||
|
+LOCAL_INCLUDES += [
|
||
|
+ '../../../common/linux',
|
||
|
+]
|
||
|
+
|
||
|
+include('/toolkit/crashreporter/crashreporter.mozbuild')
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/google-breakpad/src/tools/mac/dump_syms/moz.build.1686888-dump-syms firefox-86.0/toolkit/crashreporter/google-breakpad/src/tools/mac/dump_syms/moz.build
|
||
|
--- firefox-86.0/toolkit/crashreporter/google-breakpad/src/tools/mac/dump_syms/moz.build.1686888-dump-syms 2021-02-24 10:01:09.218178640 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/google-breakpad/src/tools/mac/dump_syms/moz.build 2021-02-24 10:01:09.218178640 +0100
|
||
|
@@ -0,0 +1,52 @@
|
||
|
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||
|
+# vim: set filetype=python:
|
||
|
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
+
|
||
|
+HostProgram('dump_syms')
|
||
|
+
|
||
|
+HOST_SOURCES += [
|
||
|
+ 'dump_syms_tool.cc',
|
||
|
+]
|
||
|
+
|
||
|
+HOST_CXXFLAGS += [
|
||
|
+ '-O2',
|
||
|
+ '-g',
|
||
|
+ '-pthread',
|
||
|
+ '-stdlib=libc++',
|
||
|
+]
|
||
|
+
|
||
|
+# Order matters here, but HOST_USE_LIBS must be sorted.
|
||
|
+HOST_USE_LIBS += [
|
||
|
+ 'host_breakpad_mac_common_s',
|
||
|
+]
|
||
|
+HOST_USE_LIBS += [
|
||
|
+ 'host_breakpad_common_s',
|
||
|
+ 'host_breakpad_dwarf_s',
|
||
|
+]
|
||
|
+# Order matters here, but HOST_USE_LIBS must be sorted.
|
||
|
+HOST_USE_LIBS += [
|
||
|
+ 'dump_syms_rust_demangle',
|
||
|
+]
|
||
|
+# Ideally, this should be derived from the output of rustc
|
||
|
+# --print=native-static-libs or something like that.
|
||
|
+HOST_OS_LIBS += [
|
||
|
+ 'dl',
|
||
|
+ 'pthread',
|
||
|
+]
|
||
|
+if CONFIG['HOST_OS_ARCH'] == 'Linux':
|
||
|
+ HOST_OS_LIBS += [
|
||
|
+ 'rt',
|
||
|
+ ]
|
||
|
+
|
||
|
+LOCAL_INCLUDES += [
|
||
|
+ '../../../common/mac',
|
||
|
+]
|
||
|
+
|
||
|
+if CONFIG['HOST_OS_ARCH'] != 'Darwin':
|
||
|
+ HOST_CXXFLAGS += [
|
||
|
+ '-I%s/toolkit/crashreporter/google-breakpad/src/third_party/mac_headers/' % TOPSRCDIR,
|
||
|
+ ]
|
||
|
+
|
||
|
+include('/toolkit/crashreporter/crashreporter.mozbuild')
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/google-breakpad/src/tools/solaris/dump_syms/moz.build.1686888-dump-syms firefox-86.0/toolkit/crashreporter/google-breakpad/src/tools/solaris/dump_syms/moz.build
|
||
|
--- firefox-86.0/toolkit/crashreporter/google-breakpad/src/tools/solaris/dump_syms/moz.build.1686888-dump-syms 2021-02-24 10:01:09.218178640 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/google-breakpad/src/tools/solaris/dump_syms/moz.build 2021-02-24 10:01:09.218178640 +0100
|
||
|
@@ -0,0 +1,27 @@
|
||
|
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||
|
+# vim: set filetype=python:
|
||
|
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
+
|
||
|
+HostProgram('dump_syms')
|
||
|
+
|
||
|
+HOST_SOURCES += [
|
||
|
+ 'dump_syms.cc',
|
||
|
+]
|
||
|
+
|
||
|
+HOST_CXXFLAGS += [
|
||
|
+ '-O2',
|
||
|
+ '-g',
|
||
|
+]
|
||
|
+
|
||
|
+HOST_USE_LIBS += [
|
||
|
+ 'host_breakpad_common_s',
|
||
|
+ 'host_breakpad_solaris_common_s',
|
||
|
+]
|
||
|
+
|
||
|
+LOCAL_INCLUDES += [
|
||
|
+ '../../../common/solaris',
|
||
|
+]
|
||
|
+
|
||
|
+include('/toolkit/crashreporter/crashreporter.mozbuild')
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/moz.build.1686888-dump-syms firefox-86.0/toolkit/crashreporter/moz.build
|
||
|
--- firefox-86.0/toolkit/crashreporter/moz.build.1686888-dump-syms 2021-02-22 14:43:54.000000000 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/moz.build 2021-02-24 10:02:32.742171784 +0100
|
||
|
@@ -43,6 +43,11 @@ if CONFIG["MOZ_CRASHREPORTER"]:
|
||
|
"google-breakpad/src/common/mac",
|
||
|
"google-breakpad/src/processor",
|
||
|
]
|
||
|
+ if not CONFIG["DUMP_SYMS"]:
|
||
|
+ DIRS += [
|
||
|
+ "google-breakpad/src/tools/mac/dump_syms",
|
||
|
+ "rust",
|
||
|
+ ]
|
||
|
|
||
|
elif CONFIG["OS_ARCH"] == "Linux":
|
||
|
DIRS += [
|
||
|
@@ -56,6 +61,12 @@ if CONFIG["MOZ_CRASHREPORTER"]:
|
||
|
if CONFIG["MOZ_OXIDIZED_BREAKPAD"]:
|
||
|
DIRS += ["rust_minidump_writer_linux"]
|
||
|
|
||
|
+ if not CONFIG["DUMP_SYMS"] and CONFIG["HOST_OS_ARCH"] == "Linux":
|
||
|
+ DIRS += [
|
||
|
+ "google-breakpad/src/tools/linux/dump_syms",
|
||
|
+ "rust",
|
||
|
+ ]
|
||
|
+
|
||
|
DIRS += [
|
||
|
"client",
|
||
|
"minidump-analyzer",
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/rust/Cargo.toml.1686888-dump-syms firefox-86.0/toolkit/crashreporter/rust/Cargo.toml
|
||
|
--- firefox-86.0/toolkit/crashreporter/rust/Cargo.toml.1686888-dump-syms 2021-02-24 10:01:09.219178664 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/rust/Cargo.toml 2021-02-24 10:01:09.219178664 +0100
|
||
|
@@ -0,0 +1,16 @@
|
||
|
+[package]
|
||
|
+name = "dump_syms_rust_demangle"
|
||
|
+version = "0.1.0"
|
||
|
+
|
||
|
+[dependencies]
|
||
|
+rustc-demangle = "0.1"
|
||
|
+
|
||
|
+[lib]
|
||
|
+path = "lib.rs"
|
||
|
+crate-type = ["staticlib"]
|
||
|
+test = false
|
||
|
+doctest = false
|
||
|
+bench = false
|
||
|
+doc = false
|
||
|
+plugin = false
|
||
|
+harness = false
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/rust/lib.rs.1686888-dump-syms firefox-86.0/toolkit/crashreporter/rust/lib.rs
|
||
|
--- firefox-86.0/toolkit/crashreporter/rust/lib.rs.1686888-dump-syms 2021-02-24 10:01:09.219178664 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/rust/lib.rs 2021-02-24 10:01:09.219178664 +0100
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||
|
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||
|
+
|
||
|
+extern crate rustc_demangle;
|
||
|
+
|
||
|
+use rustc_demangle::demangle;
|
||
|
+use std::ffi::{CStr, CString};
|
||
|
+use std::ptr;
|
||
|
+
|
||
|
+/// Demangle `name` as a Rust symbol.
|
||
|
+///
|
||
|
+/// The resulting pointer should be freed with `free_demangled_name`.
|
||
|
+#[no_mangle]
|
||
|
+pub extern "C" fn rust_demangle(name: *const std::os::raw::c_char) -> *mut std::os::raw::c_char {
|
||
|
+ let demangled = format!(
|
||
|
+ "{:#}",
|
||
|
+ demangle(&unsafe { CStr::from_ptr(name) }.to_string_lossy())
|
||
|
+ );
|
||
|
+ CString::new(demangled)
|
||
|
+ .map(|s| s.into_raw())
|
||
|
+ .unwrap_or(ptr::null_mut())
|
||
|
+}
|
||
|
+
|
||
|
+/// Free a string that was returned from `rust_demangle`.
|
||
|
+#[no_mangle]
|
||
|
+pub extern "C" fn free_rust_demangled_name(demangled: *mut std::os::raw::c_char) {
|
||
|
+ if demangled != ptr::null_mut() {
|
||
|
+ // Just take ownership here.
|
||
|
+ unsafe { CString::from_raw(demangled) };
|
||
|
+ }
|
||
|
+}
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/rust/moz.build.1686888-dump-syms firefox-86.0/toolkit/crashreporter/rust/moz.build
|
||
|
--- firefox-86.0/toolkit/crashreporter/rust/moz.build.1686888-dump-syms 2021-02-24 10:01:09.219178664 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/rust/moz.build 2021-02-24 10:01:09.219178664 +0100
|
||
|
@@ -0,0 +1 @@
|
||
|
+HostRustLibrary("dump_syms_rust_demangle")
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/rust/rust_demangle.h.1686888-dump-syms firefox-86.0/toolkit/crashreporter/rust/rust_demangle.h
|
||
|
--- firefox-86.0/toolkit/crashreporter/rust/rust_demangle.h.1686888-dump-syms 2021-02-24 10:01:09.219178664 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/rust/rust_demangle.h 2021-02-24 10:01:09.219178664 +0100
|
||
|
@@ -0,0 +1,21 @@
|
||
|
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||
|
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||
|
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||
|
+
|
||
|
+#ifndef __RUST_DEMANGLE_H__
|
||
|
+#define __RUST_DEMANGLE_H__
|
||
|
+
|
||
|
+#ifdef __cplusplus
|
||
|
+extern "C" {
|
||
|
+#endif
|
||
|
+
|
||
|
+extern char* rust_demangle(const char*);
|
||
|
+extern void free_rust_demangled_name(char*);
|
||
|
+
|
||
|
+#ifdef __cplusplus
|
||
|
+}
|
||
|
+#endif
|
||
|
+
|
||
|
+#endif /* __RUST_DEMANGLE_H__ */
|
||
|
diff -up firefox-86.0/toolkit/crashreporter/tools/unit-symbolstore.py.1686888-dump-syms firefox-86.0/toolkit/crashreporter/tools/unit-symbolstore.py
|
||
|
--- firefox-86.0/toolkit/crashreporter/tools/unit-symbolstore.py.1686888-dump-syms 2021-02-22 14:43:54.000000000 +0100
|
||
|
+++ firefox-86.0/toolkit/crashreporter/tools/unit-symbolstore.py 2021-02-24 10:01:09.219178664 +0100
|
||
|
@@ -539,9 +539,12 @@ class TestFunctional(HelperMixin, unitte
|
||
|
self.script_path = os.path.join(
|
||
|
self.topsrcdir, "toolkit", "crashreporter", "tools", "symbolstore.py"
|
||
|
)
|
||
|
- self.dump_syms = buildconfig.substs.get("DUMP_SYMS")
|
||
|
- if not self.dump_syms:
|
||
|
- self.skip_test = True
|
||
|
+ if "DUMP_SYMS" in buildconfig.substs:
|
||
|
+ self.dump_syms = buildconfig.substs["DUMP_SYMS"]
|
||
|
+ else:
|
||
|
+ self.dump_syms = os.path.join(
|
||
|
+ buildconfig.topobjdir, "dist", "host", "bin", "dump_syms"
|
||
|
+ )
|
||
|
|
||
|
if target_platform() == "WINNT":
|
||
|
self.target_bin = os.path.join(
|
||
|
diff -up firefox-86.0/tools/crashreporter/app.mozbuild.1686888-dump-syms firefox-86.0/tools/crashreporter/app.mozbuild
|
||
|
--- firefox-86.0/tools/crashreporter/app.mozbuild.1686888-dump-syms 2021-02-22 14:43:54.000000000 +0100
|
||
|
+++ firefox-86.0/tools/crashreporter/app.mozbuild 2021-02-24 10:01:09.219178664 +0100
|
||
|
@@ -4,6 +4,20 @@
|
||
|
|
||
|
DIRS += [
|
||
|
'/config/external/zlib',
|
||
|
+ '/toolkit/crashreporter/google-breakpad/src/common',
|
||
|
'/toolkit/crashreporter/google-breakpad/src/processor',
|
||
|
+ '/toolkit/crashreporter/rust',
|
||
|
'/tools/crashreporter/minidump_stackwalk',
|
||
|
]
|
||
|
+
|
||
|
+if CONFIG['OS_ARCH'] == 'Linux':
|
||
|
+ DIRS += [
|
||
|
+ '/toolkit/crashreporter/google-breakpad/src/common/linux',
|
||
|
+ '/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms',
|
||
|
+ ]
|
||
|
+
|
||
|
+if CONFIG['OS_ARCH'] == 'Darwin':
|
||
|
+ DIRS += [
|
||
|
+ '/toolkit/crashreporter/google-breakpad/src/common/mac',
|
||
|
+ '/toolkit/crashreporter/google-breakpad/src/tools/mac/dump_syms',
|
||
|
+ ]
|
||
|
diff -up firefox-86.0/tools/lint/clippy.yml.1686888-dump-syms firefox-86.0/tools/lint/clippy.yml
|
||
|
--- firefox-86.0/tools/lint/clippy.yml.1686888-dump-syms 2021-02-22 15:47:05.000000000 +0100
|
||
|
+++ firefox-86.0/tools/lint/clippy.yml 2021-02-24 10:01:09.219178664 +0100
|
||
|
@@ -63,6 +63,7 @@ clippy:
|
||
|
# not_unsafe_ptr_arg_deref
|
||
|
- modules/libpref/parser/
|
||
|
- tools/profiler/rust-helper/
|
||
|
+ - toolkit/crashreporter/rust/
|
||
|
- toolkit/library/rust/shared/
|
||
|
- toolkit/library/gtest/rust/
|
||
|
# not_unsafe_ptr_arg_deref
|