about summary refs log tree commit diff
path: root/src/libunwind/build.rs
AgeCommit message (Collapse)AuthorLines
2020-07-27mv std libs to library/mark-159/+0
2020-06-24Update libunwind build process for x86_64-fortanix-unknown-sgx targetAdrian Cruceru-0/+36
2020-06-12Rollup merge of #73187 - mati865:bootstrap-cleanup, r=Mark-SimulacrumDylan DPC-6/+0
Remove missed `cfg(bootstrap)`
2020-06-10Remove missed `cfg(bootstrap)`Mateusz Mikuła-6/+0
2020-05-29Make libunwind build hermeticPetr Hosek-0/+2
We want to avoid exporting any symbols from Rust's version of libunwind, and to do so we need to disable visibility annotations to make sure that the -fvisibility=hidden has effect, and also hide global new/delete. This matches the CMake build of libunwind.
2020-05-05Use -fvisibility=hidden for libunwindPetr Hosek-0/+1
We don't want to export any symbols from Rust's version of libunwind as these may collide with other copies of libunwind e.g. when linking Rust staticlib together C/C++ libraries that have their own version.
2020-04-14Add illumos triplePatrick Mooney-0/+2
Co-Authored-By: Jason King <jason.brian.king@gmail.com> Co-Authored-By: Joshua M. Clulow <jmc@oxide.computer>
2020-03-05Link to libgcc dynamically on windows-gnu when using dylib cratesAmanieu d'Antras-2/+7
2019-12-22Format the worldMark Rousskov-3/+3
2019-10-30Fix libunwind build: Define __LITTLE_ENDIAN__ for LE targetsVojtech Kral-0/+6
If __LITTLE_ENDIAN__ is missing, libunwind assumes big endian and reads unwinding instructions wrong on ARM EHABI. Fix #65765
2019-08-16Rollup merge of #63595 - semarie:openbsd-sparc64, r=alexcrichtonMazdak Farrokhzad-1/+5
add sparc64-unknown-openbsd target on OpenBSD, some architectures relies on libc++ (from LLVM) and some others on libestdc++ (particular version of libstdc++ from GCC). sparc64-unknown-openbsd needs libestdc++ and libgcc (as x86_64 some years ago). Reintroduce the support of them for openbsd, only for sparc64 arch. Some others architectures on OpenBSD could use them too.
2019-08-15add sparc64-unknown-openbsd targetSébastien Marie-1/+5
on OpenBSD, some architectures relies on libc++ (from LLVM) and some others on libestdc++ (particular version of libstdc++ from GCC). sparc64-unknown-openbsd needs libestdc++ and libgcc (as x86_64 some years ago). Reintroduce the support of them for openbsd, only for sparc64 arch. Some others architectures on OpenBSD could use them too.
2019-08-15Use libunwind from llvm-project submodule for musl targetsMarco A L Barbosa-4/+12
2019-08-14Handle cfg(bootstrap) throughoutMark Rousskov-5/+3
2019-08-06redox: convert to target_family unixJeremy Soller-1/+1
2019-07-25libunwind: Use libunwind when targeting UWPHugo Beauzée-Luyssen-1/+3
libgcc's support is using forbidden functions
2019-07-07Re-add bootstrap attribute to libunwind for llvm-libunwind featurePetr Hosek-3/+5
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/+3
2019-07-02Use link attributes on extern "C" blocks with llvm-libuwindPetr Hosek-3/+5
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-05-20Set -funwind-tables and -fno-exceptions unconditionally for LLVM's libunwindPetr Hosek-5/+2
These are required otherwise libunwind will end up with undefined references to __gxx_personality_v0 which is provided by C++ ABI library and that's undesirable.
2019-05-13Remove bitrig support from rustMarcel Hellwig-2/+0
2019-04-03Support using LLVM's libunwind as the unwinder implementationPetr Hosek-1/+66
This avoids the dependency on host libraries such as libgcc_s which may be undesirable in some deployment environments where these aren't available.
2018-12-25Remove licensesMark Rousskov-10/+0
2018-01-22Do not assume dynamic linking for musl/mips[el] targetsMarco A L Barbosa-1/+1
All musl targets except mips[el] assume static linking by default. This can be confusing https://users.rust-lang.org/t/static-cross-compiled-binaries-arent-really-static/6084 When the musl/mips[el] targets was [added](https://github.com/rust-lang/rust/pull/31298), dynamic linking was chosen because of binary size concerns, and probably also because libunwind [didn't](https://users.rust-lang.org/t/static-cross-compiled-binaries-arent-really-static/6084/8) supported mips. Now that we have `crt-static` target-feature (the user can choose dynamic link for musl targets), and libunwind [6.0](https://github.com/llvm-mirror/libunwind/commits/release_60) add support to mips, we do not need to assume dynamic linking.
2017-12-26Link against -lunwind on CloudABI.Ed Schouten-0/+2
CloudABI makes use of LLVM's libunwind to do stack unwinding. It is installed under the name libunwind.a.
2017-11-26make OpenBSD to use libc++ instead of (e)stdc++Sébastien Marie-1/+1
2017-08-22Update libunwind dependencies for muslSamuel Holland-1/+1
Use libgcc_s when linking dynamically. Convert the static libunwind to static-nobundle, as libunwind.a is copied from musl_root and available in the library search path.
2017-08-03Make backtraces work on Redox, copying Unix implementationIan Douglas Scott-0/+2
2017-04-22Haiku: fix initial platform supportJessica Hamilton-0/+2
2017-03-30libgcc_eh may depend on libpthread.Vadim Chugunov-1/+2
Make sure we link to the static libpthread, so that compiled Rust binaries do not depend on winpthread1.dll.
2017-03-04Add/remove `rerun-if-changed` when necessaryVadim Petrochenkov-0/+1
2017-02-11Add Solaris as recognized ostypeShawn Walker-Salas-0/+2
Add cputype recognition for Solaris Fixes #39729
2017-02-06std: Remove cfg(cargobuild) annotationsAlex Crichton-2/+0
These are all now no longer needed that we've only got rustbuild in tree.
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-25Report which required build-time environment variable is not setJake Goulding-1/+1
2016-07-30arm-musl: statically link to libunwindJorge Aparicio-1/+1
2016-05-09rustc: Implement custom panic runtimesAlex Crichton-0/+39
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).