diff --git a/src/test/run-pass/smallest-hello-world.rs b/src/test/run-pass/smallest-hello-world.rs index cd9afa0311b39..0ec1ec79a60c6 100644 --- a/src/test/run-pass/smallest-hello-world.rs +++ b/src/test/run-pass/smallest-hello-world.rs @@ -8,30 +8,21 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// ignore-test - FIXME(#8538) some kind of problem linking induced by extern "C" fns - // Smallest hello world with no runtime #![no_std] -// This is an unfortunate thing to have to do on linux :( -#[cfg(target_os = "linux")] -#[doc(hidden)] -pub mod linkhack { - #[link_args="-lrustrt -lrt"] - extern {} -} +extern crate libc; -extern { - fn puts(s: *u8); -} +extern { fn puts(s: *u8); } +extern "rust-intrinsic" { fn transmute(t: T) -> U; } -extern "rust-intrinsic" { - fn transmute(t: T) -> U; -} +#[no_mangle] +pub extern fn rust_stack_exhausted() {} #[start] -pub fn main(_: int, _: **u8, _: *u8) -> int { +#[no_split_stack] +fn main(_: int, _: **u8) -> int { unsafe { let (ptr, _): (*u8, uint) = transmute("Hello!"); puts(ptr);