diff --git a/src/crt0/src/lib.rs b/src/crt0/src/lib.rs index c54e90b17f3e0ddcc4ab024144295e3eb8775f1a..d3f1642a9f49219c613a3af3af6173eb1a415248 100644 --- a/src/crt0/src/lib.rs +++ b/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" : : : diff --git a/src/header/mod.rs b/src/header/mod.rs index 6f65ca7526396b4bed5683b742852210bb11266a..4fdee7512608eaddc3ca15f9a35d34c5f283f412 100644 --- a/src/header/mod.rs +++ b/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; diff --git a/src/header/setjmp/Cargo.toml b/src/header/setjmp/Cargo.toml deleted file mode 100644 index 2826a4e54173cc544307218c6aee71c936c0e2a8..0000000000000000000000000000000000000000 --- a/src/header/setjmp/Cargo.toml +++ /dev/null @@ -1,4 +0,0 @@ -[package] -name = "setjmp" -version = "0.1.0" -authors = ["Jeremy Soller <jackpot51@gmail.com>"] diff --git a/src/header/setjmp/src/impl/README.md b/src/header/setjmp/impl/README.md similarity index 100% rename from src/header/setjmp/src/impl/README.md rename to src/header/setjmp/impl/README.md diff --git a/src/header/setjmp/src/impl/aarch64/longjmp.s b/src/header/setjmp/impl/aarch64/longjmp.s similarity index 100% rename from src/header/setjmp/src/impl/aarch64/longjmp.s rename to src/header/setjmp/impl/aarch64/longjmp.s diff --git a/src/header/setjmp/src/impl/aarch64/setjmp.s b/src/header/setjmp/impl/aarch64/setjmp.s similarity index 100% rename from src/header/setjmp/src/impl/aarch64/setjmp.s rename to src/header/setjmp/impl/aarch64/setjmp.s diff --git a/src/header/setjmp/src/impl/arm/longjmp.s b/src/header/setjmp/impl/arm/longjmp.s similarity index 100% rename from src/header/setjmp/src/impl/arm/longjmp.s rename to src/header/setjmp/impl/arm/longjmp.s diff --git a/src/header/setjmp/src/impl/arm/setjmp.s b/src/header/setjmp/impl/arm/setjmp.s similarity index 100% rename from src/header/setjmp/src/impl/arm/setjmp.s rename to src/header/setjmp/impl/arm/setjmp.s diff --git a/src/header/setjmp/src/impl/i386/longjmp.s b/src/header/setjmp/impl/i386/longjmp.s similarity index 100% rename from src/header/setjmp/src/impl/i386/longjmp.s rename to src/header/setjmp/impl/i386/longjmp.s diff --git a/src/header/setjmp/src/impl/i386/setjmp.s b/src/header/setjmp/impl/i386/setjmp.s similarity index 100% rename from src/header/setjmp/src/impl/i386/setjmp.s rename to src/header/setjmp/impl/i386/setjmp.s diff --git a/src/header/setjmp/src/impl/m68k/longjmp.s b/src/header/setjmp/impl/m68k/longjmp.s similarity index 100% rename from src/header/setjmp/src/impl/m68k/longjmp.s rename to src/header/setjmp/impl/m68k/longjmp.s diff --git a/src/header/setjmp/src/impl/m68k/setjmp.s b/src/header/setjmp/impl/m68k/setjmp.s similarity index 100% rename from src/header/setjmp/src/impl/m68k/setjmp.s rename to src/header/setjmp/impl/m68k/setjmp.s diff --git a/src/header/setjmp/src/impl/microblaze/longjmp.s b/src/header/setjmp/impl/microblaze/longjmp.s similarity index 100% rename from src/header/setjmp/src/impl/microblaze/longjmp.s rename to src/header/setjmp/impl/microblaze/longjmp.s diff --git a/src/header/setjmp/src/impl/microblaze/setjmp.s b/src/header/setjmp/impl/microblaze/setjmp.s similarity index 100% rename from src/header/setjmp/src/impl/microblaze/setjmp.s rename to src/header/setjmp/impl/microblaze/setjmp.s diff --git a/src/header/setjmp/src/impl/mips/longjmp.S b/src/header/setjmp/impl/mips/longjmp.S similarity index 100% rename from src/header/setjmp/src/impl/mips/longjmp.S rename to src/header/setjmp/impl/mips/longjmp.S diff --git a/src/header/setjmp/src/impl/mips/setjmp.S b/src/header/setjmp/impl/mips/setjmp.S similarity index 100% rename from src/header/setjmp/src/impl/mips/setjmp.S rename to src/header/setjmp/impl/mips/setjmp.S diff --git a/src/header/setjmp/src/impl/mips64/longjmp.S b/src/header/setjmp/impl/mips64/longjmp.S similarity index 100% rename from src/header/setjmp/src/impl/mips64/longjmp.S rename to src/header/setjmp/impl/mips64/longjmp.S diff --git a/src/header/setjmp/src/impl/mips64/setjmp.S b/src/header/setjmp/impl/mips64/setjmp.S similarity index 100% rename from src/header/setjmp/src/impl/mips64/setjmp.S rename to src/header/setjmp/impl/mips64/setjmp.S diff --git a/src/header/setjmp/src/impl/mipsn32/longjmp.S b/src/header/setjmp/impl/mipsn32/longjmp.S similarity index 100% rename from src/header/setjmp/src/impl/mipsn32/longjmp.S rename to src/header/setjmp/impl/mipsn32/longjmp.S diff --git a/src/header/setjmp/src/impl/mipsn32/setjmp.S b/src/header/setjmp/impl/mipsn32/setjmp.S similarity index 100% rename from src/header/setjmp/src/impl/mipsn32/setjmp.S rename to src/header/setjmp/impl/mipsn32/setjmp.S diff --git a/src/header/setjmp/src/impl/or1k/longjmp.s b/src/header/setjmp/impl/or1k/longjmp.s similarity index 100% rename from src/header/setjmp/src/impl/or1k/longjmp.s rename to src/header/setjmp/impl/or1k/longjmp.s diff --git a/src/header/setjmp/src/impl/or1k/setjmp.s b/src/header/setjmp/impl/or1k/setjmp.s similarity index 100% rename from src/header/setjmp/src/impl/or1k/setjmp.s rename to src/header/setjmp/impl/or1k/setjmp.s diff --git a/src/header/setjmp/src/impl/powerpc/longjmp.S b/src/header/setjmp/impl/powerpc/longjmp.S similarity index 100% rename from src/header/setjmp/src/impl/powerpc/longjmp.S rename to src/header/setjmp/impl/powerpc/longjmp.S diff --git a/src/header/setjmp/src/impl/powerpc/setjmp.S b/src/header/setjmp/impl/powerpc/setjmp.S similarity index 100% rename from src/header/setjmp/src/impl/powerpc/setjmp.S rename to src/header/setjmp/impl/powerpc/setjmp.S diff --git a/src/header/setjmp/src/impl/powerpc64/longjmp.s b/src/header/setjmp/impl/powerpc64/longjmp.s similarity index 100% rename from src/header/setjmp/src/impl/powerpc64/longjmp.s rename to src/header/setjmp/impl/powerpc64/longjmp.s diff --git a/src/header/setjmp/src/impl/powerpc64/setjmp.s b/src/header/setjmp/impl/powerpc64/setjmp.s similarity index 100% rename from src/header/setjmp/src/impl/powerpc64/setjmp.s rename to src/header/setjmp/impl/powerpc64/setjmp.s diff --git a/src/header/setjmp/src/impl/s390x/longjmp.s b/src/header/setjmp/impl/s390x/longjmp.s similarity index 100% rename from src/header/setjmp/src/impl/s390x/longjmp.s rename to src/header/setjmp/impl/s390x/longjmp.s diff --git a/src/header/setjmp/src/impl/s390x/setjmp.s b/src/header/setjmp/impl/s390x/setjmp.s similarity index 100% rename from src/header/setjmp/src/impl/s390x/setjmp.s rename to src/header/setjmp/impl/s390x/setjmp.s diff --git a/src/header/setjmp/src/impl/sh/longjmp.S b/src/header/setjmp/impl/sh/longjmp.S similarity index 100% rename from src/header/setjmp/src/impl/sh/longjmp.S rename to src/header/setjmp/impl/sh/longjmp.S diff --git a/src/header/setjmp/src/impl/sh/setjmp.S b/src/header/setjmp/impl/sh/setjmp.S similarity index 100% rename from src/header/setjmp/src/impl/sh/setjmp.S rename to src/header/setjmp/impl/sh/setjmp.S diff --git a/src/header/setjmp/src/impl/x32/longjmp.s b/src/header/setjmp/impl/x32/longjmp.s similarity index 100% rename from src/header/setjmp/src/impl/x32/longjmp.s rename to src/header/setjmp/impl/x32/longjmp.s diff --git a/src/header/setjmp/src/impl/x32/setjmp.s b/src/header/setjmp/impl/x32/setjmp.s similarity index 100% rename from src/header/setjmp/src/impl/x32/setjmp.s rename to src/header/setjmp/impl/x32/setjmp.s diff --git a/src/header/setjmp/src/impl/x86_64/longjmp.s b/src/header/setjmp/impl/x86_64/longjmp.s similarity index 100% rename from src/header/setjmp/src/impl/x86_64/longjmp.s rename to src/header/setjmp/impl/x86_64/longjmp.s diff --git a/src/header/setjmp/src/impl/x86_64/setjmp.s b/src/header/setjmp/impl/x86_64/setjmp.s similarity index 100% rename from src/header/setjmp/src/impl/x86_64/setjmp.s rename to src/header/setjmp/impl/x86_64/setjmp.s diff --git a/src/header/setjmp/src/lib.rs b/src/header/setjmp/mod.rs similarity index 100% rename from src/header/setjmp/src/lib.rs rename to src/header/setjmp/mod.rs diff --git a/src/lib.rs b/src/lib.rs index 28f7d58d0dc6887aa2ebf3078d33a7451841f08d..b624efe17e7c4f794810c8b6a2500be9e7b739e2 100644 --- a/src/lib.rs +++ b/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}; diff --git a/src/start.rs b/src/start.rs index 235e8783c28925c8145d4b9e415eb8f992067486..e628c4f0df2fada28ffb959eda763ee323e59ddd 100644 --- a/src/start.rs +++ b/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; }