mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 06:11:37 +00:00
1ad733c5c4
The new version of breakpad imported in bug 1309172 doesn't demangle rust symbols at all, contrary to before, where it tried to C++ demangle them, which worked for many, although far from all. It however has rust-demangle support as long as it's linked against a copy of the rust-demangle-capi crate from https://github.com/luser/rust-demangle-capi/ This imports the code from the rust-demangle-capi crate but because of some build system complications it's not taken as-is: - it uses rusty-cheddar, which is deprecated, to generate a C header. - rusty-cheddar depends on syntex_syntax, which now fails to build. - rust-demangle-capi has crate-type staticlib, which can't be used as a dependency in a Cargo.toml. For that reason, we can't create a fake crate that depends on it to have it vendored. Overall, it's only a few lines of rust, and the C header can be written manually, so this is what we do here. The created crate is named in a way specific to dump_syms. The build system doesn't know how to figure out what system libraries are required to link rust static libraries, although the rust compiler has /some/ support to get the information, so we handle that manually. --HG-- extra : rebase_source : 9f5a9bfe2148d3040e11c7121a88e85a7f2d5c53 |
||
---|---|---|
.. | ||
breakpad-client | ||
breakpad-patches | ||
breakpad-windows-libxul | ||
breakpad-windows-standalone | ||
client | ||
content | ||
docs | ||
google-breakpad | ||
injector | ||
minidump-analyzer | ||
rust | ||
test | ||
tools | ||
crashreporter.mozbuild | ||
CrashReports.jsm | ||
CrashSubmit.jsm | ||
InjectCrashReporter.cpp | ||
InjectCrashReporter.h | ||
jar.mn | ||
KeyValueParser.jsm | ||
LoadLibraryRemote.cpp | ||
LoadLibraryRemote.h | ||
mac_utils.h | ||
mac_utils.mm | ||
moz.build | ||
nsDummyExceptionHandler.cpp | ||
nsExceptionHandler.cpp | ||
nsExceptionHandler.h | ||
nsExceptionHandlerUtils.cpp | ||
nsExceptionHandlerUtils.h | ||
ThreadAnnotation.cpp | ||
ThreadAnnotation.h | ||
update-breakpad.sh | ||
update-jsoncpp.sh |