lib.rs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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 arpainet;
  8. pub extern crate ctype;
  9. pub extern crate dirent;
  10. pub extern crate errno;
  11. pub extern crate fcntl;
  12. pub extern crate fenv;
  13. pub extern crate float;
  14. pub extern crate fnmatch;
  15. pub extern crate grp;
  16. pub extern crate locale;
  17. pub extern crate netinet;
  18. pub extern crate pwd;
  19. pub extern crate semaphore;
  20. pub extern crate setjmp;
  21. pub extern crate signal;
  22. pub extern crate stdio;
  23. pub extern crate stdlib;
  24. pub extern crate string;
  25. pub extern crate strings;
  26. pub extern crate sys_ioctl;
  27. pub extern crate sys_mman;
  28. pub extern crate sys_resource;
  29. pub extern crate sys_select;
  30. pub extern crate sys_socket;
  31. pub extern crate sys_stat;
  32. pub extern crate sys_time;
  33. pub extern crate sys_times;
  34. pub extern crate sys_un;
  35. pub extern crate sys_utsname;
  36. pub extern crate sys_wait;
  37. pub extern crate termios;
  38. pub extern crate time;
  39. pub extern crate unistd;
  40. pub extern crate utime;
  41. pub extern crate wchar;
  42. pub extern crate wctype;
  43. use platform::{Pal, Sys};
  44. #[cfg(not(test))]
  45. #[panic_implementation]
  46. #[linkage = "weak"]
  47. #[no_mangle]
  48. pub extern "C" fn rust_begin_unwind(pi: &::core::panic::PanicInfo) -> ! {
  49. use core::fmt::Write;
  50. let mut w = platform::FileWriter(2);
  51. let _ = w.write_fmt(format_args!("RELIBC PANIC: {}\n", pi));
  52. Sys::exit(1);
  53. }
  54. #[cfg(not(test))]
  55. #[lang = "eh_personality"]
  56. #[no_mangle]
  57. #[linkage = "weak"]
  58. pub extern "C" fn rust_eh_personality() {}
  59. #[cfg(not(test))]
  60. #[lang = "oom"]
  61. #[linkage = "weak"]
  62. #[no_mangle]
  63. pub extern "C" fn rust_oom(layout: ::core::alloc::Layout) -> ! {
  64. use core::fmt::Write;
  65. let mut w = platform::FileWriter(2);
  66. let _ = w.write_fmt(format_args!(
  67. "RELIBC OOM: {} bytes aligned to {} bytes\n",
  68. layout.size(),
  69. layout.align()
  70. ));
  71. Sys::exit(1);
  72. }
  73. #[cfg(not(test))]
  74. #[allow(non_snake_case)]
  75. #[linkage = "weak"]
  76. #[no_mangle]
  77. pub extern "C" fn _Unwind_Resume() -> ! {
  78. use core::fmt::Write;
  79. let mut w = platform::FileWriter(2);
  80. let _ = w.write_str("_Unwind_Resume\n");
  81. Sys::exit(1);
  82. }