From e878721d70349e2055f0ef854085de92e9498fde Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Mon, 19 May 2014 23:19:56 -0700 Subject: libcore: Remove all uses of `~str` from `libcore`. [breaking-change] --- src/liballoc/util.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/liballoc/util.rs') diff --git a/src/liballoc/util.rs b/src/liballoc/util.rs index 7e35af79eab..64d62035890 100644 --- a/src/liballoc/util.rs +++ b/src/liballoc/util.rs @@ -28,3 +28,20 @@ fn align_to(size: uint, align: uint) -> uint { assert!(align != 0); (size + align - 1) & !(align - 1) } + +// FIXME(#14344): When linking liballoc with libstd, this library will be linked +// as an rlib (it only exists as an rlib). It turns out that an +// optimized standard library doesn't actually use *any* symbols +// from this library. Everything is inlined and optimized away. +// This means that linkers will actually omit the object for this +// file, even though it may be needed in the future. +// +// To get around this for now, we define a dummy symbol which +// will never get inlined so the stdlib can call it. The stdlib's +// reference to this symbol will cause this library's object file +// to get linked in to libstd successfully (the linker won't +// optimize it out). +#[deprecated] +#[doc(hidden)] +pub fn make_stdlib_link_work() {} + -- cgit 1.4.1-3-g733a5