// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. // Smallest "hello world" with a libc runtime // pretty-expanded FIXME #23616 #![feature(intrinsics, lang_items, start, no_std, libc)] #![no_std] extern crate libc; extern { fn puts(s: *const u8); } extern "rust-intrinsic" { fn transmute(t: T) -> U; } #[lang = "stack_exhausted"] extern fn stack_exhausted() {} #[lang = "eh_personality"] extern fn eh_personality() {} #[lang = "panic_fmt"] fn panic_fmt() -> ! { loop {} } #[start] #[no_stack_check] fn main(_: isize, _: *const *const u8) -> isize { unsafe { let (ptr, _): (*const u8, usize) = transmute("Hello!\0"); puts(ptr); } return 0; } #[cfg(target_os = "android")] #[link(name="gcc")] extern { }