about summary refs log tree commit diff
path: root/src/libunwind/libunwind.rs
AgeCommit message (Collapse)AuthorLines
2020-07-27mv std libs to library/mark-279/+0
2020-01-06Auto merge of #66899 - msizanoen1:riscv-std, r=alexcrichtonbors-0/+3
Standard library support for riscv64gc-unknown-linux-gnu Add std support for RISC-V 64-bit GNU/Linux and update libc for RISC-V support. r? @alexcrichton
2020-01-01Update the barrier cache during ARM EHABI unwindingAmanieu d'Antras-0/+2
2020-01-01Add support for RISC-V 64-bit GNU/Linuxmsizanoen1-0/+3
2019-12-22Format the worldMark Rousskov-7/+8
2019-11-03Allow foreign exceptions to unwind through Rust codeAmanieu d'Antras-0/+27
2019-08-14Handle cfg(bootstrap) throughoutMark Rousskov-5/+5
2019-07-22add support for hexagon-unknown-linux-muslBrian Cain-0/+3
2019-07-07Re-add bootstrap attribute to libunwind for llvm-libunwind featurePetr Hosek-5/+10
This was removed in 8a7dded, but since #62286 hasn't yet made it into beta, this is breaking the build with llvm-libunwind feature enabled. Furthemore, restrict the link attribute to Fuchsia and Linux, matching the logic in build.rs since llvm-libunwind feature isn't yet supported on other systems.
2019-07-04Switch master to 1.38Mark Rousskov-5/+5
2019-07-02Use link attributes on extern "C" blocks with llvm-libuwindPetr Hosek-0/+10
When llvm-libunwind feature is enabled, we need to use link attribute on extern "C" blocks to make sure that symbols provided by LLVM's libunwind that's built as part of Rust's libunwind crate are re-exported. This addresses issue #62088.
2019-06-10std: Remove internal definitions of `cfg_if!` macroAlex Crichton-6/+3
This is duplicated in a few locations throughout the sysroot to work around issues with not exporting a macro in libstd but still wanting it available to sysroot crates to define blocks. Nowadays though we can simply depend on the `cfg-if` crate on crates.io, allowing us to use it from there!
2019-02-04libunwind => 2018Taiki Endo-5/+5
2018-12-25Remove licensesMark Rousskov-10/+0
2018-08-29Replace usages of 'bad_style' with 'nonstandard_style'.Corey Farwell-1/+1
`bad_style` is being deprecated in favor of `nonstandard_style`: - https://github.com/rust-lang/rust/issues/41646
2018-05-18NetBSD on EABI ARM does not use ARM EHABIJonathan A. Kollasch-1/+1
2018-04-05Bump the bootstrap compiler to 1.26.0 betaAlex Crichton-6/+3
Holy cow that's a lot of `cfg(stage0)` removed and a lot of new stable language features!
2018-02-20make `#[unwind]` attribute specify expectations more clearlyNiko Matsakis-3/+6
You can now choose between the following: - `#[unwind(allowed)]` - `#[unwind(aborts)]` Per rust-lang/rust#48251, the default is `#[unwind(allowed)]`, though I think we should change this eventually.
2018-01-19Match libunwind's EABI selection with libpanic_unwindFenrir-2/+1
2017-02-15Improve backtrace formating while panicking.Yamakaky-1/+1
- `RUST_BACKTRACE=full` prints all the informations (old behaviour) - `RUST_BACKTRACE=(0|no)` disables the backtrace. - `RUST_BACKTRACE=<everything else>` (including `1`) shows a simplified backtrace, without the function addresses and with cleaned filenames and symbols. Also removes some unneded frames at the beginning and the end. Fixes #37783. PR is #38165.
2017-02-06std: Remove cfg(cargobuild) annotationsAlex Crichton-31/+0
These are all now no longer needed that we've only got rustbuild in tree.
2016-12-29libunwind: unwinder_private_data_size for sparc64Jonathan A. Kollasch-0/+3
2016-10-22Add Fuchsia supportRaph Levien-0/+2
Adds support for the x86_64-unknown-fuchsia target, which covers the Fuchsia operating system.
2016-09-30Rewrite emscripten unwinding to use libcxxBrian Anderson-1/+1
2016-09-30Preliminary wasm32 supportBrian Anderson-1/+1
2016-09-25Add support for the Haiku operating system on x86 and x86_64 machinesNiels Sascha Reedijk-0/+1
* Hand rebased from Niels original work on 1.9.0
2016-09-09Add s390x supportUlrich Weigand-0/+3
This adds support for building the Rust compiler and standard library for s390x-linux, allowing a full cross-bootstrap sequence to complete. This includes: - Makefile/configure changes to allow native s390x builds - Full Rust compiler support for the s390x C ABI (only the non-vector ABI is supported at this point) - Port of the standard library to s390x - Update the liblibc submodule to a version including s390x support - Testsuite fixes to allow clean "make check" on s390x Caveats: - Resets base cpu to "z10" to bring support in sync with the default behaviour of other compilers on the platforms. (Usually, upstream supports all older processors; a distribution build may then chose to require a more recent base version.) (Also, using zEC12 causes failures in the valgrind tests since valgrind doesn't fully support this CPU yet.) - z13 vector ABI is not yet supported. To ensure compatible code generation, the -vector feature is passed to LLVM. Note that this means that even when compiling for z13, no vector instructions will be used. In the future, support for the vector ABI should be added (this will require common code support for different ABIs that need different data_layout strings on the same platform). - Two test cases are (temporarily) ignored on s390x to allow passing the test suite. The underlying issues still need to be fixed: * debuginfo/simd.rs fails because of incorrect debug information. This seems to be a LLVM bug (also seen with C code). * run-pass/union/union-basic.rs simply seems to be incorrect for all big-endian platforms. Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
2016-08-27fix cross compilation of stdJorge Aparicio-0/+3
2016-08-10[emscripten] Disable code paths that don't work on emscriptenJan-Erik Rediger-1/+0
2016-07-24Implement ARM personality routine in Rust.Vadim Chugunov-139/+153
Remove the `eh_personality_catch` lang item. Use a simplified version of `cfg_if!` in libunwind.
2016-07-22Implement rust_eh_personality in Rust, remove rust_eh_personality_catch.Vadim Chugunov-0/+8
Well, not quite: ARM EHABI platforms still use the old scheme -- for now.
2016-05-29run rustfmt on libunwindSrinivas Reddy Thatiparthy-27/+20
2016-05-09rustc: Implement custom panic runtimesAlex Crichton-0/+247
This commit is an implementation of [RFC 1513] which allows applications to alter the behavior of panics at compile time. A new compiler flag, `-C panic`, is added and accepts the values `unwind` or `panic`, with the default being `unwind`. This model affects how code is generated for the local crate, skipping generation of landing pads with `-C panic=abort`. [RFC 1513]: https://github.com/rust-lang/rfcs/blob/master/text/1513-less-unwinding.md Panic implementations are then provided by crates tagged with `#![panic_runtime]` and lazily required by crates with `#![needs_panic_runtime]`. The panic strategy (`-C panic` value) of the panic runtime must match the final product, and if the panic strategy is not `abort` then the entire DAG must have the same panic strategy. With the `-C panic=abort` strategy, users can expect a stable method to disable generation of landing pads, improving optimization in niche scenarios, decreasing compile time, and decreasing output binary size. With the `-C panic=unwind` strategy users can expect the existing ability to isolate failure in Rust code from the outside world. Organizationally, this commit dismantles the `sys_common::unwind` module in favor of some bits moving part of it to `libpanic_unwind` and the rest into the `panicking` module in libstd. The custom panic runtime support is pretty similar to the custom allocator support with the only major difference being how the panic runtime is injected (takes the `-C panic` flag into account).