Switch to redox-rt.

This commit is contained in:
Jacob Lorentzon
2024-07-15 15:43:34 +00:00
committed by Jeremy Soller
parent 40adaa51e2
commit c695af7674
4 changed files with 37 additions and 28 deletions
Generated
+30 -23
View File
@@ -10,9 +10,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
[[package]]
name = "bitflags"
version = "2.5.0"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]]
name = "bootstrap"
@@ -20,12 +20,17 @@ version = "0.0.0"
dependencies = [
"hashbrown",
"linked_list_allocator",
"redox-exec",
"redox-initfs",
"redox-rt",
"redox-scheme",
"redox_syscall",
]
[[package]]
name = "generic-rt"
version = "0.1.0"
source = "git+https://gitlab.redox-os.org/redox-os/relibc.git?rev=e97f26c7#e97f26c7632b1033ca062199db5633f3236821ed"
[[package]]
name = "goblin"
version = "0.7.1"
@@ -81,9 +86,9 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.21"
version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
[[package]]
name = "plain"
@@ -93,9 +98,9 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
[[package]]
name = "proc-macro2"
version = "1.0.85"
version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
dependencies = [
"unicode-ident",
]
@@ -109,16 +114,6 @@ dependencies = [
"proc-macro2",
]
[[package]]
name = "redox-exec"
version = "0.1.0"
source = "git+https://gitlab.redox-os.org/redox-os/relibc.git#ac08f016cd3b37fae8434f2da6168542d3171ec6"
dependencies = [
"goblin",
"plain",
"redox_syscall",
]
[[package]]
name = "redox-initfs"
version = "0.1.0"
@@ -127,10 +122,22 @@ dependencies = [
"plain",
]
[[package]]
name = "redox-rt"
version = "0.1.0"
source = "git+https://gitlab.redox-os.org/redox-os/relibc.git?rev=e97f26c7#e97f26c7632b1033ca062199db5633f3236821ed"
dependencies = [
"bitflags",
"generic-rt",
"goblin",
"plain",
"redox_syscall",
]
[[package]]
name = "redox-scheme"
version = "0.2.0"
source = "git+https://gitlab.redox-os.org/redox-os/redox-scheme.git#62aed6c712cca31bb18078adacd27b400f5ccf93"
version = "0.2.1"
source = "git+https://gitlab.redox-os.org/redox-os/redox-scheme.git#79d9d54f572f53386981fb9b6ef054fd9e45110c"
dependencies = [
"libredox",
"redox_syscall",
@@ -138,9 +145,9 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.5.2"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd"
checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
dependencies = [
"bitflags",
]
@@ -182,9 +189,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.66"
version = "2.0.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462"
dependencies = [
"proc-macro2",
"quote",
+2 -2
View File
@@ -13,9 +13,9 @@ crate-type = ["staticlib"]
hashbrown = { version = "0.14", default-features = false, features = ["inline-more"] }
linked_list_allocator = "0.10"
redox-initfs = { git = "https://gitlab.redox-os.org/redox-os/redox-initfs.git", default-features = false }
redox-exec = { git = "https://gitlab.redox-os.org/redox-os/relibc.git" }
redox_syscall = "0.5.2"
redox_syscall = "0.5.3"
redox-scheme = { git = "https://gitlab.redox-os.org/redox-os/redox-scheme.git" }
redox-rt = { git = "https://gitlab.redox-os.org/redox-os/relibc.git", rev = "e97f26c7" }
[profile.release]
panic = "abort"
+3 -3
View File
@@ -4,7 +4,7 @@ use alloc::vec::Vec;
use syscall::{Error, EINTR};
use syscall::flag::{O_CLOEXEC, O_RDONLY};
use redox_exec::*;
use redox_rt::proc::*;
pub fn main() -> ! {
let envs = {
@@ -41,7 +41,7 @@ pub fn main() -> ! {
spawn_initfs(core::ptr::addr_of!(__initfs_header), initfs_length.get() as usize);
}
const CWD: &[u8] = b"/scheme/initfs";
let extrainfo = redox_exec::ExtraInfo {
let extrainfo = ExtraInfo {
cwd: Some(CWD),
sigprocmask: 0,
sigignmask: 0,
@@ -68,7 +68,7 @@ unsafe fn spawn_initfs(initfs_start: *const u8, initfs_length: usize) {
// The write pipe will not inherit O_CLOEXEC, but is closed by the daemon later.
let write = syscall::dup(read, b"write").expect("failed to open sync write pipe");
match redox_exec::fork_impl() {
match fork_impl() {
Err(err) => {
panic!("Failed to fork in order to start initfs daemon: {}", err);
}
+2
View File
@@ -42,6 +42,8 @@ pub unsafe extern "C" fn start() -> ! {
let _ = syscall::mprotect(data_start, data_end - data_start, MapFlags::PROT_READ | MapFlags::PROT_WRITE | MapFlags::MAP_PRIVATE).expect("mprotect failed for .data/.bss");
let _ = syscall::mprotect(data_end, crate::arch::STACK_START - data_end, MapFlags::PROT_READ | MapFlags::MAP_PRIVATE).expect("mprotect failed for rest of memory");
redox_rt::initialize_freestanding();
// FIXME make the initfs read-only
crate::exec::main();