about summary refs log tree commit diff
path: root/src/libstd/build.rs
AgeCommit message (Collapse)AuthorLines
2017-02-17Follow rename of mx_handle_wait Magenta syscallsRaph Levien-0/+4
The mx_handle_wait_* syscalls in Magenta were renamed to mx_object_wait. The syscall is used in the Magenta/Fuchsia implementation of std::process, to wait on child processes. In addition, this patch enables the use of the system provided libbacktrace library on Fuchsia targets. Symbolization is not yet working, but at least it allows printing hex addresses in a backtrace and makes building succeed when the backtrace feature is not disabled.
2017-02-06std: Remove cfg(cargobuild) annotationsAlex Crichton-1/+0
These are all now no longer needed that we've only got rustbuild in tree.
2017-02-02Build libbacktrace/jemalloc only when their timestamps are older than sourcesVadim Petrochenkov-7/+12
2017-02-02Fix build in cross-compilation scenariosVadim Petrochenkov-1/+1
2017-02-02rustbuild: Build jemalloc and libbacktrace only once (take 2)Vadim Petrochenkov-16/+10
2017-01-26std: Compile libbacktrace with -fvisibility=hiddenAlex Crichton-2/+3
We don't want these symbols exported from the standard library, this is just an internal implementation detail of the standard library currently. Closes #34984
2016-12-23Auto merge of #38401 - redox-os:redox_cross, r=brsonbors-1/+1
Redox Cross Compilation I will admit - there are things here that I wish I did not have to do. This completes the ability to create a cross compiler from the rust repository for `x86_64-unknown-redox`. I will document this PR with inline comments explaining some things. [View this gist to see how a cross compiler is built](https://gist.github.com/jackpot51/6680ad973986e84d69c79854249f2b7e) Prior discussion of a smaller change is here: https://github.com/rust-lang/rust/pull/38366
2016-12-22Remove start functions, use newlib instead of openlibm + rallocJeremy Soller-2/+0
2016-12-21Update liblibc, go back to lazy linking openlibmJeremy Soller-1/+1
2016-12-20Static link openlibmJeremy Soller-1/+1
2016-12-20Link openlibm only in libstdJeremy Soller-0/+2
2016-12-17let BSD to use gmake for GNU-makeSébastien Marie-1/+1
the diff extends build_helper to provide an function to return the expected name of GNU-make on the host: "make" or "gmake". Fixes #38429
2016-12-15WIP: Cross-compilation for Redox targetJeremy Soller-1/+1
2016-11-22Fuchsia support for std::process via liblaunchpad.Theodore DeRego-0/+2
2016-10-28Auto merge of #37385 - raphlinus:fuchsia_random, r=alexcrichtonbors-0/+2
Add support for kernel randomness for Fuchsia Wire up cprng syscall as provider for rand::os::OsRng on Fuchsia.
2016-10-24Add support for kernel randomness for FuchsiaRaph Levien-0/+2
Wire up cprng syscall as provider for rand::os::OsRng on Fuchsia.
2016-10-22Add Fuchsia supportRaph Levien-1/+1
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-3/+3
2016-08-30for mips-musl pass -ldl and co to the linkerJorge Aparicio-1/+1
2016-08-30rustbuild: fix building std for musl targetsJorge Aparicio-1/+1
closes #36143
2016-07-26rustbuild: make backtraces (RUST_BACKTRACE) optionalJorge Aparicio-1/+2
but keep them enabled by default to maintain the status quo. When disabled shaves ~56KB off every x86_64-unknown-linux-gnu binary. To disable backtraces you have to use a config.toml (see src/bootstrap/config.toml.example for details) when building rustc/std: $ python bootstrap.py --config=config.toml
2016-06-16Fix issue where rustbuild expected msvc to have arPeter Atashian-1/+2
Signed-off-by: Peter Atashian <retep998@gmail.com>
2016-05-10rustbuild: Tighten dependencies of build scriptsAlex Crichton-3/+13
Ensure that `rerun-if-changed` is printed for all build scripts to ensure that they've all got the right list of dependencies.
2016-05-09rustc: Implement custom panic runtimesAlex Crichton-20/+1
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).
2016-03-21std: Link to gcc_s on NetBSDAlex Crichton-1/+3
Currently the nightlies we're producing fail when linking some C code into a Rust application with the error message: libgcc_s.so.1: error adding symbols: DSO missing from command line By linking `gcc_s` instead of `gcc` this error goes away. I haven't tested this on NetBSD itself, but should help get the Linux cross-compile image moreso up and working!
2016-03-08cover more linux targets in libstd cargobuildarcnmx-5/+5
2016-03-06rustbuild: fix cross compilation of libstd to i686-unknown-linux-muslJorge Aparicio-1/+1
- make sure we copy the third party objects (crt*.o) to the target stage directory. - apply the x86_64-musl logic also to the i686-musl target.
2016-03-03[rustbuild] fix cross compilation of std for mips(el)-linux-muslJorge Aparicio-1/+1
These targets don't link statically to libunwind or libc
2016-03-02Fix compiling libstd with emscripten target.ashleysommer-1/+1
Was getting error: ``` running: "sh" "/home/flubba86/rust/src/libstd/../libbacktrace/configure" "--with-pic" "--disable-multilib" "--disable-shared" "--disable-host-shared" "--host=asmjs-unknown-emscripten" "--build=x86_64-unknown-linux-gnu" ... Invalid configuration `asmjs-unknown-emscripten': system `emscripten' not recognized ``` Undo change to libbacktrace configure script. Modify libstd build.rs to not build libbacktrace in the case of targeting emscripten.
2016-02-11bootstrap: Add directives to not double-link libsAlex Crichton-0/+2
Have all Cargo-built crates pass `--cfg cargobuild` and then add appropriate `#[cfg]` definitions to all crates to avoid linking anything if this is passed. This should help allow libstd to compile with both the makefiles and with Cargo.
2016-02-11bootstrap: Add build scripts for cratesAlex Crichton-0/+110
This commits adds build scripts to the necessary Rust crates for all the native dependencies. This is currently a duplication of the support found in mk/rt.mk and is my best effort at representing the logic twice, but there may be some unfortunate-and-inevitable divergence. As a summary: * alloc_jemalloc - build script to compile jemallocal * flate - build script to compile miniz.c * rustc_llvm - build script to run llvm-config and learn about how to link it. Note that this crucially (and will not ever) compile LLVM as that would take far too long. * rustdoc - build script to compile hoedown * std - script to determine lots of libraries/linkages as well as compile libbacktrace