lib.rs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #![no_std]
  2. #![feature(lang_items)]
  3. #![feature(linkage)]
  4. #![feature(panic_implementation)]
  5. //extern crate compiler_builtins;
  6. extern crate platform;
  7. pub extern crate ctype;
  8. pub extern crate errno;
  9. pub extern crate fcntl;
  10. pub extern crate fenv;
  11. pub extern crate float;
  12. pub extern crate grp;
  13. pub extern crate locale;
  14. pub extern crate netinet;
  15. pub extern crate semaphore;
  16. pub extern crate setjmp;
  17. pub extern crate signal;
  18. pub extern crate stdio;
  19. pub extern crate stdlib;
  20. pub extern crate string;
  21. pub extern crate sys_mman;
  22. pub extern crate sys_resource;
  23. pub extern crate sys_socket;
  24. pub extern crate sys_stat;
  25. pub extern crate sys_time;
  26. pub extern crate sys_utsname;
  27. pub extern crate sys_wait;
  28. pub extern crate time;
  29. pub extern crate unistd;
  30. pub extern crate wctype;
  31. #[cfg(not(test))]
  32. #[panic_implementation]
  33. #[linkage = "weak"]
  34. #[no_mangle]
  35. pub extern "C" fn rust_begin_unwind(pi: &::core::panic::PanicInfo) -> ! {
  36. use core::fmt::Write;
  37. let mut w = platform::FileWriter(2);
  38. let _ = w.write_fmt(format_args!("RELIBC PANIC: {}\n", pi));
  39. platform::exit(1);
  40. }
  41. #[cfg(not(test))]
  42. #[lang = "eh_personality"]
  43. #[no_mangle]
  44. #[linkage = "weak"]
  45. pub extern "C" fn rust_eh_personality() {}
  46. #[cfg(not(test))]
  47. #[lang = "oom"]
  48. #[linkage = "weak"]
  49. #[no_mangle]
  50. pub extern fn rust_oom(layout: ::core::alloc::Layout) -> ! {
  51. use core::fmt::Write;
  52. let mut w = platform::FileWriter(2);
  53. let _ = w.write_fmt(format_args!("RELIBC OOM: {} bytes aligned to {} bytes\n", layout.size(), layout.align()));
  54. platform::exit(1);
  55. }
  56. #[cfg(not(test))]
  57. #[allow(non_snake_case)]
  58. #[linkage = "weak"]
  59. #[no_mangle]
  60. pub extern "C" fn _Unwind_Resume() -> ! {
  61. use core::fmt::Write;
  62. let mut w = platform::FileWriter(2);
  63. let _ = w.write_str("_Unwind_Resume\n");
  64. platform::exit(1);
  65. }