浏览代码

Fix remaining issues, move setjmp into relibc crate, move start logic into relibc

Jeremy Soller 6 年之前
父节点
当前提交
ed00ddfb54
共有 37 个文件被更改,包括 8 次插入7 次删除
  1. 2 2
      src/crt0/src/lib.rs
  2. 1 0
      src/header/mod.rs
  3. 0 4
      src/header/setjmp/Cargo.toml
  4. 0 0
      src/header/setjmp/impl/README.md
  5. 0 0
      src/header/setjmp/impl/aarch64/longjmp.s
  6. 0 0
      src/header/setjmp/impl/aarch64/setjmp.s
  7. 0 0
      src/header/setjmp/impl/arm/longjmp.s
  8. 0 0
      src/header/setjmp/impl/arm/setjmp.s
  9. 0 0
      src/header/setjmp/impl/i386/longjmp.s
  10. 0 0
      src/header/setjmp/impl/i386/setjmp.s
  11. 0 0
      src/header/setjmp/impl/m68k/longjmp.s
  12. 0 0
      src/header/setjmp/impl/m68k/setjmp.s
  13. 0 0
      src/header/setjmp/impl/microblaze/longjmp.s
  14. 0 0
      src/header/setjmp/impl/microblaze/setjmp.s
  15. 0 0
      src/header/setjmp/impl/mips/longjmp.S
  16. 0 0
      src/header/setjmp/impl/mips/setjmp.S
  17. 0 0
      src/header/setjmp/impl/mips64/longjmp.S
  18. 0 0
      src/header/setjmp/impl/mips64/setjmp.S
  19. 0 0
      src/header/setjmp/impl/mipsn32/longjmp.S
  20. 0 0
      src/header/setjmp/impl/mipsn32/setjmp.S
  21. 0 0
      src/header/setjmp/impl/or1k/longjmp.s
  22. 0 0
      src/header/setjmp/impl/or1k/setjmp.s
  23. 0 0
      src/header/setjmp/impl/powerpc/longjmp.S
  24. 0 0
      src/header/setjmp/impl/powerpc/setjmp.S
  25. 0 0
      src/header/setjmp/impl/powerpc64/longjmp.s
  26. 0 0
      src/header/setjmp/impl/powerpc64/setjmp.s
  27. 0 0
      src/header/setjmp/impl/s390x/longjmp.s
  28. 0 0
      src/header/setjmp/impl/s390x/setjmp.s
  29. 0 0
      src/header/setjmp/impl/sh/longjmp.S
  30. 0 0
      src/header/setjmp/impl/sh/setjmp.S
  31. 0 0
      src/header/setjmp/impl/x32/longjmp.s
  32. 0 0
      src/header/setjmp/impl/x32/setjmp.s
  33. 0 0
      src/header/setjmp/impl/x86_64/longjmp.s
  34. 0 0
      src/header/setjmp/impl/x86_64/setjmp.s
  35. 0 0
      src/header/setjmp/mod.rs
  36. 1 0
      src/lib.rs
  37. 4 1
      src/start.rs

+ 2 - 2
src/crt0/src/lib.rs

@@ -13,7 +13,7 @@ pub unsafe extern "C" fn _start() {
     #[cfg(target_arch = "x86_64")]
     asm!("mov rdi, rsp
         and rsp, 0xFFFFFFFFFFFFFFF0
-        call _start_rust"
+        call relibc_start"
         :
         :
         :
@@ -21,7 +21,7 @@ pub unsafe extern "C" fn _start() {
     );
     #[cfg(target_arch = "aarch64")]
     asm!("mov x0, sp
-        bl _start_rust"
+        bl relibc_start"
         :
         :
         :

+ 1 - 0
src/header/mod.rs

@@ -12,6 +12,7 @@ pub mod locale;
 pub mod netinet_in;
 pub mod pwd;
 pub mod semaphore;
+pub mod setjmp;
 pub mod sgtty;
 pub mod signal;
 pub mod stdio;

+ 0 - 4
src/header/setjmp/Cargo.toml

@@ -1,4 +0,0 @@
-[package]
-name = "setjmp"
-version = "0.1.0"
-authors = ["Jeremy Soller <jackpot51@gmail.com>"]

+ 0 - 0
src/header/setjmp/src/impl/README.md → src/header/setjmp/impl/README.md


+ 0 - 0
src/header/setjmp/src/impl/aarch64/longjmp.s → src/header/setjmp/impl/aarch64/longjmp.s


+ 0 - 0
src/header/setjmp/src/impl/aarch64/setjmp.s → src/header/setjmp/impl/aarch64/setjmp.s


+ 0 - 0
src/header/setjmp/src/impl/arm/longjmp.s → src/header/setjmp/impl/arm/longjmp.s


+ 0 - 0
src/header/setjmp/src/impl/arm/setjmp.s → src/header/setjmp/impl/arm/setjmp.s


+ 0 - 0
src/header/setjmp/src/impl/i386/longjmp.s → src/header/setjmp/impl/i386/longjmp.s


+ 0 - 0
src/header/setjmp/src/impl/i386/setjmp.s → src/header/setjmp/impl/i386/setjmp.s


+ 0 - 0
src/header/setjmp/src/impl/m68k/longjmp.s → src/header/setjmp/impl/m68k/longjmp.s


+ 0 - 0
src/header/setjmp/src/impl/m68k/setjmp.s → src/header/setjmp/impl/m68k/setjmp.s


+ 0 - 0
src/header/setjmp/src/impl/microblaze/longjmp.s → src/header/setjmp/impl/microblaze/longjmp.s


+ 0 - 0
src/header/setjmp/src/impl/microblaze/setjmp.s → src/header/setjmp/impl/microblaze/setjmp.s


+ 0 - 0
src/header/setjmp/src/impl/mips/longjmp.S → src/header/setjmp/impl/mips/longjmp.S


+ 0 - 0
src/header/setjmp/src/impl/mips/setjmp.S → src/header/setjmp/impl/mips/setjmp.S


+ 0 - 0
src/header/setjmp/src/impl/mips64/longjmp.S → src/header/setjmp/impl/mips64/longjmp.S


+ 0 - 0
src/header/setjmp/src/impl/mips64/setjmp.S → src/header/setjmp/impl/mips64/setjmp.S


+ 0 - 0
src/header/setjmp/src/impl/mipsn32/longjmp.S → src/header/setjmp/impl/mipsn32/longjmp.S


+ 0 - 0
src/header/setjmp/src/impl/mipsn32/setjmp.S → src/header/setjmp/impl/mipsn32/setjmp.S


+ 0 - 0
src/header/setjmp/src/impl/or1k/longjmp.s → src/header/setjmp/impl/or1k/longjmp.s


+ 0 - 0
src/header/setjmp/src/impl/or1k/setjmp.s → src/header/setjmp/impl/or1k/setjmp.s


+ 0 - 0
src/header/setjmp/src/impl/powerpc/longjmp.S → src/header/setjmp/impl/powerpc/longjmp.S


+ 0 - 0
src/header/setjmp/src/impl/powerpc/setjmp.S → src/header/setjmp/impl/powerpc/setjmp.S


+ 0 - 0
src/header/setjmp/src/impl/powerpc64/longjmp.s → src/header/setjmp/impl/powerpc64/longjmp.s


+ 0 - 0
src/header/setjmp/src/impl/powerpc64/setjmp.s → src/header/setjmp/impl/powerpc64/setjmp.s


+ 0 - 0
src/header/setjmp/src/impl/s390x/longjmp.s → src/header/setjmp/impl/s390x/longjmp.s


+ 0 - 0
src/header/setjmp/src/impl/s390x/setjmp.s → src/header/setjmp/impl/s390x/setjmp.s


+ 0 - 0
src/header/setjmp/src/impl/sh/longjmp.S → src/header/setjmp/impl/sh/longjmp.S


+ 0 - 0
src/header/setjmp/src/impl/sh/setjmp.S → src/header/setjmp/impl/sh/setjmp.S


+ 0 - 0
src/header/setjmp/src/impl/x32/longjmp.s → src/header/setjmp/impl/x32/longjmp.s


+ 0 - 0
src/header/setjmp/src/impl/x32/setjmp.s → src/header/setjmp/impl/x32/setjmp.s


+ 0 - 0
src/header/setjmp/src/impl/x86_64/longjmp.s → src/header/setjmp/impl/x86_64/longjmp.s


+ 0 - 0
src/header/setjmp/src/impl/x86_64/setjmp.s → src/header/setjmp/impl/x86_64/setjmp.s


+ 0 - 0
src/header/setjmp/src/lib.rs → src/header/setjmp/mod.rs


+ 1 - 0
src/lib.rs

@@ -34,6 +34,7 @@ extern crate spin;
 mod macros;
 pub mod header;
 pub mod platform;
+pub mod start;
 
 use platform::{Allocator, Pal, Sys};
 

+ 4 - 1
src/start.rs

@@ -1,6 +1,9 @@
 use alloc::Vec;
 use core::ptr;
 
+use header::stdio;
+use platform;
+use platform::{Pal, Sys};
 use platform::types::*;
 
 #[repr(C)]
@@ -25,7 +28,7 @@ impl Stack {
 
 #[inline(never)]
 #[no_mangle]
-pub unsafe extern "C" fn _start_rust(sp: &'static Stack) -> ! {
+pub unsafe extern "C" fn relibc_start(sp: &'static Stack) -> ! {
     extern "C" {
         fn main(argc: isize, argv: *const *const c_char, envp: *const *const c_char) -> c_int;
     }