about summary refs log tree commit diff
path: root/library/unwind/src/libunwind.rs
AgeCommit message (Collapse)AuthorLines
2023-11-16unwind: add support for using `unwinding` crateSean Cross-5/+8
The `unwinding` crate supports processing unwinding data, and is written entirely in Rust. This allows it to be ported to new platforms more easily than using the llvm-based `libunwind`. While `libunwind` is very well supported on major targets, it is difficult to use on other targets. SGX is an example of this where Rust carries custom patches in order to enable backtrace support. This adds an alternative for supported architectures. Rather than providing a custom target, `unwinding` allows for a solution that is completely written in Rust. This adds `xous` as the first consumer, and forthcoming patches will modify libstd to take advantage of this. Signed-off-by: Sean Cross <sean@xobs.io>
2023-10-10Use pointers instead of `usize` addresses for landing padsniluxv-7/+7
This bring unwind and personality code more in line with strict-provenance
2023-08-14add a csky-unknown-linux-gnuabiv2 targetDirreke-0/+3
2023-07-18support for mips32r6 as a target_arch valuechenx97-1/+1
2023-07-18support for mips64r6 as a target_arch valuechenx97-1/+1
2023-06-21wip: Support Apple tvOS in libstdThom Chiovoloni-1/+1
2023-04-04library/unwind: Add definitions for loongarch64zhaixiaojuan-0/+3
2023-03-03Match unmatched backticks in library/est31-1/+1
2022-12-30Replace libstd, libcore, liballoc in line comments.jonathanCogan-1/+1
2022-11-22Rollup merge of #104464 - mati865:reduce-eh-overallocation-amd64, r=thomccDylan DPC-1/+4
Reduce exceptions overallocation on non Windows x86_64 Addressing https://github.com/rust-lang/rust/pull/103894#discussion_r1020950196
2022-11-15Reduce exceptions overallocation on non Windows x86_64Mateusz Mikuła-1/+4
Addressing https://github.com/rust-lang/rust/pull/103894#discussion_r1020950196
2022-11-15Fix building of `aarch64-pc-windows-gnullvm`Mateusz Mikuła-1/+1
That change had been lost during rebase
2022-11-12Bump unwinder private data size for AArch64 WindowsMateusz Mikuła-1/+4
This fixes unwinding on `aarch64-*-windows-gnu*`.
2022-11-01Change the way libunwind is linked for `*-windows-gnullvm` targetsMateusz Mikuła-1/+4
2022-07-20Library changes for Apple WatchOSVladimir Michael Eatwell-3/+3
2022-05-14Use re-export instead of inline wrapper in libunwindGary Guo-4/+1
This ensures that there are no calls to `C-unwind` function in libunwind.
2022-03-07Rollup merge of #93350 - gburgessiv:master, r=Mark-SimulacrumMatthias Krüger-0/+4
libunwind: readd link attrs to _Unwind_Backtrace It seems the removal of these in 1c07096a45a15de64216f12ec726333870e372b1 was unintended; readding them fixes the build. fixes rust-lang/rust#93349 r? `@alexcrichton`
2022-02-12library/unwind: Define unwinder_private_data_size for m68kJohn Paul Adrian Glaubitz-0/+3
2022-01-26libunwind: readd link attrs to _Unwind_BacktraceGeorge Burgess IV-0/+4
It seems the removal of these in 1c07096a45a15de64216f12ec726333870e372b1 was unintended; readding them fixes the build. fixes rust-lang/rust#93349
2021-08-28build llvm libunwind.a in rustbuild12101111-13/+22
2021-08-03rustc: Fill out remaining parts of C-unwind ABIAlex Crichton-6/+7
This commit intends to fill out some of the remaining pieces of the C-unwind ABI. This has a number of other changes with it though to move this design space forward a bit. Notably contained within here is: * On `panic=unwind`, the `extern "C"` ABI is now considered as "may unwind". This fixes a longstanding soundness issue where if you `panic!()` in an `extern "C"` function defined in Rust that's actually UB because the LLVM representation for the function has the `nounwind` attribute, but then you unwind. * Whether or not a function unwinds now mainly considers the ABI of the function instead of first checking the panic strategy. This fixes a miscompile of `extern "C-unwind"` with `panic=abort` because that ABI can still unwind. * The aborting stub for non-unwinding ABIs with `panic=unwind` has been reimplemented. Previously this was done as a small tweak during MIR generation, but this has been moved to a separate and dedicated MIR pass. This new pass will, for appropriate functions and function calls, insert a `cleanup` landing pad for any function call that may unwind within a function that is itself not allowed to unwind. Note that this subtly changes some behavior from before where previously on an unwind which was caught-to-abort it would run active destructors in the function, and now it simply immediately aborts the process. * The `#[unwind]` attribute has been removed and all users in tests and such are now using `C-unwind` and `#![feature(c_unwind)]`. I think this is largely the last piece of the RFC to implement. Unfortunately I believe this is still not stabilizable as-is because activating the feature gate changes the behavior of the existing `extern "C"` ABI in a way that has no replacement. My thinking for how to enable this is that we add support for the `C-unwind` ABI on stable Rust first, and then after it hits stable we change the behavior of the `C` ABI. That way anyone straddling stable/beta/nightly can switch to `C-unwind` safely.
2021-01-27Support AArch64 ILP32 in libunwind bindingsAmanieu d'Antras-1/+4
2020-10-09Remove useless `all` in cfgMateusz Mikuła-1/+1
2020-09-28library/{panic_,}unwind: Add definitions for sparc-unknow-linux-gnuJohn Paul Adrian Glaubitz-1/+1
2020-09-17library/unwind: Add missing )Alistair Francis-1/+1
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2020-09-16library/unwind: Consolidate RV32 and RV64Alistair Francis-4/+1
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2020-09-16library/unwind: Add support for RISC-V 32-bitAlistair Francis-0/+3
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2020-07-27mv std libs to library/mark-0/+279