diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b1ed891..68fecc2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## uefi - [Unreleased] +As of this release, the UEFI crates work on the stable channel. This requires +Rust 1.68 or higher. + ### Added - Added the `ComponentName1` and `ComponentName2` protocols. The `ComponentName` diff --git a/book/src/tutorial/building.md b/book/src/tutorial/building.md index dcc76d30..565b0567 100644 --- a/book/src/tutorial/building.md +++ b/book/src/tutorial/building.md @@ -1,24 +1,18 @@ # Building -## Nightly toolchain +## Toolchain -Rust's nightly toolchain is currently required because uefi-rs uses some -unstable features. - -The easiest way to set this up is using a [rustup toolchain file]. In -the root of your repository, add `rust-toolchain.toml`: +In order to compile for UEFI, an appropriate target must be installed. The +easiest way to set this up is using a [rustup toolchain file]. In the root of +your repository, add `rust-toolchain.toml`: ```toml [toolchain] -channel = "nightly" -targets = ["x86_64-unknown-uefi"] +targets = ["aarch64-unknown-uefi", "i686-unknown-uefi", "x86_64-unknown-uefi"] ``` -Here we have specified the `x86_64-unknown-uefi` target; there are also -`i686-unknown-uefi` and `aarch64-unknown-uefi` targets available. - -Note that nightly releases can sometimes break, so you might opt to pin -to a specific release. For example, `channel = "nightly-2022-11-10"`. +Here we have specified all three of the currently-supported UEFI targets; you +can remove some if you don't need them. ## Build the application diff --git a/template/README.md b/template/README.md index 7c2406b6..dc22bb17 100644 --- a/template/README.md +++ b/template/README.md @@ -8,7 +8,7 @@ UEFI application developed using `uefi-rs`. ## File structure -- [`rust-toolchain.toml`](rust-toolchain.toml) sets the nightly channel. +- [`rust-toolchain.toml`](rust-toolchain.toml) adds the UEFI targets. - [`Cargo.toml`](./Cargo.toml) shows the necessary dependencies. - [`src/main.rs`](./src/main.rs) has a minimal entry point that initializes the `uefi-services` crate and exits successfully. diff --git a/uefi/README.md b/uefi/README.md index 644d7fe2..fe902349 100644 --- a/uefi/README.md +++ b/uefi/README.md @@ -49,10 +49,10 @@ For additional information, refer to the [UEFI specification][spec]. ## MSRV -The uefi-rs crates currently require some [unstable features]. -The nightly MSRV is currently 2022-11-22. +The minimum supported Rust version is currently 1.68, which is the first Rust +release that fully supports all necessary features on the stable channel. -[unstable features]: https://github.com/rust-osdev/uefi-rs/issues/452 +In the future, our policy will be to support at least the past two stable releases. ## License diff --git a/uefi/src/lib.rs b/uefi/src/lib.rs index 8bd25f35..a61d0c8d 100644 --- a/uefi/src/lib.rs +++ b/uefi/src/lib.rs @@ -54,11 +54,7 @@ //! - `panic-on-logger-errors` (enabled by default): Panic if a text //! output error occurs in the logger. //! - `unstable`: Enable functionality that depends on [unstable -//! features] in the nightly compiler. Note that currently the `uefi` -//! crate _always_ requires unstable features even if the `unstable` -//! feature is not enabled, but once a couple more required features -//! are stabilized we intend to make the `uefi` crate work on the -//! stable channel by default. +//! features] in the nightly compiler. //! As example, in conjunction with the `alloc`-feature, this gate allows //! the `allocator_api` on certain functions. //!