diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-06-30 21:55:00 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-07-02 10:44:40 -0700 |
| commit | 83ee47b054deb5939be20d7d6ce03ad33d005424 (patch) | |
| tree | d58439b31dd3ac21d5148f959ce5919b3b6afb80 /src/libstd | |
| parent | 18c39e126a833f66f58fe6cbf7b97ca4262f1c90 (diff) | |
| download | rust-83ee47b054deb5939be20d7d6ce03ad33d005424.tar.gz rust-83ee47b054deb5939be20d7d6ce03ad33d005424.zip | |
windows: Don't link rust_builtin
This library has no shims which are actually needed on Windows now, so translate that last easy one into Rust and then don't link it at all on Windows.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/rt/util.rs | 15 | ||||
| -rw-r--r-- | src/libstd/rtdeps.rs | 4 |
2 files changed, 13 insertions, 6 deletions
diff --git a/src/libstd/rt/util.rs b/src/libstd/rt/util.rs index 04f36d99c8e..031fda089c8 100644 --- a/src/libstd/rt/util.rs +++ b/src/libstd/rt/util.rs @@ -13,7 +13,6 @@ use io::prelude::*; use env; use fmt; use intrinsics; -use libc::uintptr_t; use sync::atomic::{self, Ordering}; use sys::stdio::Stderr; @@ -22,10 +21,18 @@ use sys::stdio::Stderr; /// can't run correctly un-altered. Valgrind is there to help /// you notice weirdness in normal, un-doctored code paths! pub fn running_on_valgrind() -> bool { - extern { - fn rust_running_on_valgrind() -> uintptr_t; + return on_valgrind(); + #[cfg(windows)] + fn on_valgrind() -> bool { false } + + #[cfg(unix)] + fn on_valgrind() -> bool { + use libc::uintptr_t; + extern { + fn rust_running_on_valgrind() -> uintptr_t; + } + unsafe { rust_running_on_valgrind() != 0 } } - unsafe { rust_running_on_valgrind() != 0 } } /// Valgrind has a fixed-sized array (size around 2000) of segment descriptors diff --git a/src/libstd/rtdeps.rs b/src/libstd/rtdeps.rs index be674c83e22..b7839423e52 100644 --- a/src/libstd/rtdeps.rs +++ b/src/libstd/rtdeps.rs @@ -12,8 +12,8 @@ //! the standard library This varies per-platform, but these libraries are //! necessary for running libstd. -// All platforms need to link to rustrt -#[cfg(not(test))] +// A few small shims in C that haven't been translated to Rust yet +#[cfg(all(not(test), not(windows)))] #[link(name = "rust_builtin", kind = "static")] extern {} |
