Provide memory intrinsics via compiler builtins

Use unstable feature to remove rlibc crate dependency.
This commit is contained in:
Berkus Decker 2020-11-08 03:38:10 +02:00
parent bfba78118f
commit dc2a73f6c6
5 changed files with 3 additions and 11 deletions

View File

@ -1,5 +1,7 @@
[unstable]
build-std = ["core", "compiler_builtins", "alloc"]
build-std-features = ["compiler-builtins-mem"]
[build]
# https://internals.rust-lang.org/t/evaluating-pipelined-rustc-compilation/10199/12
pipelining = true

7
Cargo.lock generated
View File

@ -72,12 +72,6 @@ dependencies = [
"tock-registers",
]
[[package]]
name = "rlibc"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc874b127765f014d792f16763a81245ab80500e2ad921ed4ee9e82481ee08fe"
[[package]]
name = "snafu"
version = "0.6.9"
@ -145,7 +139,6 @@ dependencies = [
"qemu-exit",
"r0",
"register",
"rlibc",
"snafu",
"usize_conversions",
"ux",

View File

@ -30,7 +30,7 @@ Vesper has been influenced by the kernels in L4 family, notably seL4. Fawn and N
## Build instructions
Use at least rustc nightly 2020-07-15 with cargo nightly of the same or later date. It adds support for `cargo build --build-std` feature.
Use at least rustc nightly 2020-09-30 with cargo nightly of the same or later date. It adds support for `cargo build --build-std` feature (since 2020-07-15) and support for compiler_builtins memory operations ([since 2020-09-30](https://github.com/rust-lang/rust/pull/77284)).
* Install tools: `cargo install just cargo-make`.
* Install qemu (at least version 4.1.1): `brew install qemu`.

View File

@ -25,7 +25,6 @@ qemu = ["qemu-exit"]
[dependencies]
r0 = "1.0"
rlibc = "1.0"
qemu-exit = { version = "1.0", optional = true }
cortex-a = "4.0"
ux = { version = "0.1.3", default-features = false }

View File

@ -25,8 +25,6 @@
#[cfg(not(target_arch = "aarch64"))]
use architecture_not_supported_sorry;
extern crate rlibc; // To enable linking memory intrinsics.
/// Architecture-specific code.
#[macro_use]
pub mod arch;