Skip to content
Snippets Groups Projects
lib.rs 2.09 KiB
Newer Older
Jeremy Soller's avatar
Jeremy Soller committed
#![no_std]
Jeremy Soller's avatar
Jeremy Soller committed
#![feature(lang_items)]
#![feature(linkage)]
#![feature(panic_implementation)]
Jeremy Soller's avatar
Jeremy Soller committed

//extern crate compiler_builtins;
extern crate platform;

Paul Sajna's avatar
Paul Sajna committed
pub extern crate arpainet;
pub extern crate ctype;
jD91mZM2's avatar
jD91mZM2 committed
pub extern crate dirent;
pub extern crate errno;
pub extern crate fcntl;
pub extern crate fenv;
pub extern crate float;
jD91mZM2's avatar
jD91mZM2 committed
pub extern crate fnmatch;
pub extern crate grp;
jD91mZM2's avatar
jD91mZM2 committed
pub extern crate locale;
pub extern crate netinet;
jD91mZM2's avatar
jD91mZM2 committed
pub extern crate pwd;
pub extern crate semaphore;
pub extern crate setjmp;
pub extern crate signal;
pub extern crate stdio;
pub extern crate stdlib;
pub extern crate string;
pub extern crate strings;
jD91mZM2's avatar
jD91mZM2 committed
pub extern crate sys_ioctl;
pub extern crate sys_mman;
pub extern crate sys_resource;
jD91mZM2's avatar
jD91mZM2 committed
pub extern crate sys_select;
pub extern crate sys_socket;
pub extern crate sys_stat;
pub extern crate sys_time;
pub extern crate sys_times;
jD91mZM2's avatar
jD91mZM2 committed
pub extern crate sys_un;
jD91mZM2's avatar
jD91mZM2 committed
pub extern crate sys_utsname;
pub extern crate sys_wait;
jD91mZM2's avatar
jD91mZM2 committed
pub extern crate termios;
pub extern crate time;
pub extern crate unistd;
pub extern crate utime;
Stephan Vedder's avatar
Stephan Vedder committed
pub extern crate wchar;
pub extern crate wctype;
jD91mZM2's avatar
jD91mZM2 committed
#[cfg(not(test))]
#[linkage = "weak"]
#[no_mangle]
pub extern "C" fn rust_begin_unwind(pi: &::core::panic::PanicInfo) -> ! {
    use core::fmt::Write;
    let mut w = platform::FileWriter(2);
    let _ = w.write_fmt(format_args!("RELIBC PANIC: {}\n", pi));

    platform::exit(1);
#[cfg(not(test))]
#[lang = "eh_personality"]
#[no_mangle]
#[linkage = "weak"]
pub extern "C" fn rust_eh_personality() {}

jD91mZM2's avatar
jD91mZM2 committed
#[cfg(not(test))]
#[linkage = "weak"]
#[no_mangle]
jD91mZM2's avatar
jD91mZM2 committed
pub extern "C" fn rust_oom(layout: ::core::alloc::Layout) -> ! {
    use core::fmt::Write;
    let mut w = platform::FileWriter(2);
jD91mZM2's avatar
jD91mZM2 committed
    let _ = w.write_fmt(format_args!(
        "RELIBC OOM: {} bytes aligned to {} bytes\n",
        layout.size(),
        layout.align()
    ));

    platform::exit(1);
}

#[cfg(not(test))]
#[allow(non_snake_case)]
#[linkage = "weak"]
#[no_mangle]
pub extern "C" fn _Unwind_Resume() -> ! {
    use core::fmt::Write;

    let mut w = platform::FileWriter(2);
    let _ = w.write_str("_Unwind_Resume\n");

    platform::exit(1);
}