rust/library
bors 84a554cda9 Auto merge of #117072 - betrusted-io:unwinding-crate-support, r=cuviper
Use `unwinding` crate for unwinding on Xous platform

This patch adds support for using [unwinding](https://github.com/nbdd0121/unwinding) on platforms where libunwinding isn't viable. An example of such a platform is `riscv32imac-unknown-xous-elf`.

### Background

The Rust project maintains a fork of llvm at [llvm-project](https://github.com/rust-lang/llvm-project/) where it applies patches on top of the llvm project. This mostly seems to be to get unwinding support for the SGX project, and there may be other patches that I'm unaware of.

There is a lot of machinery in the build system to support compiling `libunwind` on other platforms, and I needed to add additional patches to llvm in order to add support for Xous.

Rather than continuing down this path, it seemed much easier to use a Rust-based library. The `unwinding` crate by `@nbdd0121` fits this description perfectly.

### Future work

This could potentially replace the custom patches for `libunwind` on other platforms such as SGX, and could enable unwinding support on many more exotic platforms.

### Anti-goals

This is not designed to replace `libunwind` on tier-one platforms or those where unwinding support already exists. There is already a well-established approach for unwinding there. Instead, this aims to enable unwinding on new platforms where C++ code may be difficult to compile.
2023-12-06 02:23:01 +00:00
..
alloc Auto merge of #118273 - AngelicosPhosphoros:dedup_2_loops_version_77772_2, r=the8472 2023-12-05 21:40:02 +00:00
backtrace@6145fe6bac Update backtrace submodule 2023-11-21 16:33:42 +01:00
core Auto merge of #118362 - RalfJung:panic_nounwind, r=thomcc 2023-12-05 12:05:22 +00:00
panic_abort Rebase to master 2023-09-22 17:23:33 +05:30
panic_unwind panic_unwind: support unwinding on xous 2023-11-16 15:23:09 +08:00
portable-simd portable-simd: add missing feature gate 2023-12-04 08:16:03 +01:00
proc_macro Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
profiler_builtins Bump cfg(bootstrap) 2023-08-23 20:05:14 -04:00
rtstartup
rustc-std-workspace-alloc Replace libstd, libcore, liballoc in line comments. 2022-12-30 14:00:42 +01:00
rustc-std-workspace-core
rustc-std-workspace-std
std Auto merge of #117072 - betrusted-io:unwinding-crate-support, r=cuviper 2023-12-06 02:23:01 +00:00
stdarch@f4528dd6e8 Bump stdarch submodule 2023-10-12 11:11:29 +02:00
sysroot Expose compiler-builtins-weak-intrinsics feature for -Zbuild-std 2023-06-23 11:15:34 +01:00
test Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
unwind unwind: add support for using unwinding crate 2023-11-16 15:23:09 +08:00