diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a297b7b19c..20e006caa7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,6 @@ jobs: cargo clippy -Zbuild-std=std,panic_abort --target=x86_64-unknown-hermit --all-targets cargo clippy -Zbuild-std=std,panic_abort --target=aarch64-unknown-hermit --all-targets cargo clippy -Zbuild-std=std,panic_abort --target=riscv64gc-unknown-hermit --all-targets - cargo clippy -Zbuild-std=std,panic_abort --target=x86_64-unknown-hermit --package hermit --features common-os format: name: Format diff --git a/Cargo.lock b/Cargo.lock index d56974297c..22eab44548 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1134,13 +1134,7 @@ version = "0.12.0" dependencies = [ "cc", "flate2", - "generic_once_cell", - "hermit-abi 0.4.0", "home", - "libm", - "spinning_top", - "take-static", - "talc", "tar", "ureq", ] @@ -1165,6 +1159,18 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +[[package]] +name = "hermit-masos" +version = "0.0.0" +dependencies = [ + "generic_once_cell", + "hermit-abi 0.4.0", + "libm", + "spinning_top", + "take-static", + "talc", +] + [[package]] name = "hermit-wasm" version = "0.1.1" diff --git a/Cargo.toml b/Cargo.toml index 3415c18383..fe75073e32 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,6 +30,7 @@ members = [ "examples/vsock", "hermit", "hermit-abi", + "hermit-masos", ] [patch.crates-io] diff --git a/hermit-masos/Cargo.toml b/hermit-masos/Cargo.toml new file mode 100644 index 0000000000..5bca632fc1 --- /dev/null +++ b/hermit-masos/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "hermit-masos" +edition = "2021" + +[dependencies] +hermit-abi = "0.4" +generic_once_cell = "0.1" +libm = "0.2" +spinning_top = "0.3" +take-static = "0.1" +talc = { version = "4.4", default-features = false, features = ["lock_api"] } diff --git a/hermit/src/syscall/allocator.rs b/hermit-masos/src/allocator.rs similarity index 100% rename from hermit/src/syscall/allocator.rs rename to hermit-masos/src/allocator.rs diff --git a/hermit/src/syscall/mod.rs b/hermit-masos/src/lib.rs similarity index 99% rename from hermit/src/syscall/mod.rs rename to hermit-masos/src/lib.rs index 4d15fb6281..cd13497d8e 100644 --- a/hermit/src/syscall/mod.rs +++ b/hermit-masos/src/lib.rs @@ -1,3 +1,5 @@ +#![feature(thread_local)] + mod math; #[cfg(target_arch = "x86_64")] #[macro_use] @@ -487,6 +489,7 @@ pub extern "C" fn sys_getaddrinfo( -22 } +#[expect(clippy::missing_safety_doc)] #[no_mangle] pub unsafe extern "C" fn _start(_argc: i32, _argv: *const *const c_char) -> ! { extern "C" { diff --git a/hermit/src/syscall/math.rs b/hermit-masos/src/math.rs similarity index 100% rename from hermit/src/syscall/math.rs rename to hermit-masos/src/math.rs diff --git a/hermit/src/syscall/x86_64.rs b/hermit-masos/src/x86_64.rs similarity index 89% rename from hermit/src/syscall/x86_64.rs rename to hermit-masos/src/x86_64.rs index e3df76a2a5..1752d62f01 100644 --- a/hermit/src/syscall/x86_64.rs +++ b/hermit-masos/src/x86_64.rs @@ -4,23 +4,23 @@ use core::arch::asm; #[macro_export] macro_rules! syscall { ($arg0:expr) => { - $crate::syscall::x86_64::syscall0($arg0 as u64) + $crate::x86_64::syscall0($arg0 as u64) }; ($arg0:expr, $arg1:expr) => { - $crate::syscall::x86_64::syscall1($arg0 as u64, $arg1 as u64) + $crate::x86_64::syscall1($arg0 as u64, $arg1 as u64) }; ($arg0:expr, $arg1:expr, $arg2:expr) => { - $crate::syscall::x86_64::syscall2($arg0 as u64, $arg1 as u64, $arg2 as u64) + $crate::x86_64::syscall2($arg0 as u64, $arg1 as u64, $arg2 as u64) }; ($arg0:expr, $arg1:expr, $arg2:expr, $arg3:expr) => { - $crate::syscall::x86_64::syscall3($arg0 as u64, $arg1 as u64, $arg2 as u64, $arg3 as u64) + $crate::x86_64::syscall3($arg0 as u64, $arg1 as u64, $arg2 as u64, $arg3 as u64) }; ($arg0:expr, $arg1:expr, $arg2:expr, $arg3:expr, $arg4:expr) => { - $crate::syscall::x86_64::syscall4( + $crate::x86_64::syscall4( $arg0 as u64, $arg1 as u64, $arg2 as u64, @@ -30,7 +30,7 @@ macro_rules! syscall { }; ($arg0:expr, $arg1:expr, $arg2:expr, $arg3:expr, $arg4:expr, $arg5:expr) => { - $crate::syscall::x86_64::syscall5( + $crate::x86_64::syscall5( $arg0 as u64, $arg1 as u64, $arg2 as u64, @@ -41,7 +41,7 @@ macro_rules! syscall { }; ($arg0:expr, $arg1:expr, $arg2:expr, $arg3:expr, $arg4:expr, $arg5:expr, $arg6:expr) => { - $crate::syscall::x86_64::syscall6( + $crate::x86_64::syscall6( $arg0 as u64, $arg1 as u64, $arg2 as u64, diff --git a/hermit/Cargo.toml b/hermit/Cargo.toml index 7289516ed5..47083efad5 100644 --- a/hermit/Cargo.toml +++ b/hermit/Cargo.toml @@ -13,14 +13,6 @@ keywords = ["unikernel", "libos"] categories = ["os"] links = "hermit" -[dependencies] -hermit-abi = { version = "0.4", optional = true } -generic_once_cell = { version = "0.1", optional = true } -libm = { version = "0.2", optional = true } -spinning_top = { version = "0.3", optional = true } -take-static = { version = "0.1", optional = true } -talc = { version = "4.4", default-features = false, features = ["lock_api"], optional = true } - [features] default = [ "acpi", @@ -71,7 +63,6 @@ udp = [] vga = [] virtio-net = [] vsock = [] -common-os = ["hermit-abi", "generic_once_cell", "libm", "spinning_top", "take-static", "talc"] [build-dependencies] cc = "1" diff --git a/hermit/build.rs b/hermit/build.rs index fea22e4d53..b73ebbfa79 100644 --- a/hermit/build.rs +++ b/hermit/build.rs @@ -11,8 +11,7 @@ fn main() { let runs_clippy = env::var_os("CARGO_CFG_FEATURE").is_some_and(|feature| feature == "cargo-clippy"); let is_docs_rs = env::var_os("DOCS_RS").is_some(); - let is_common_os = has_feature("common-os"); - if !targets_hermit || runs_clippy || is_docs_rs || is_common_os { + if !targets_hermit || runs_clippy || is_docs_rs { return; } diff --git a/hermit/src/lib.rs b/hermit/src/lib.rs index 3fe4423680..7913c79d6b 100644 --- a/hermit/src/lib.rs +++ b/hermit/src/lib.rs @@ -1,8 +1 @@ #![doc = include_str!("../README.md")] -#![cfg_attr( - all(target_os = "hermit", feature = "common-os"), - feature(thread_local) -)] - -#[cfg(all(target_os = "hermit", feature = "common-os"))] -mod syscall;