summaryrefslogtreecommitdiffstats
path: root/vendor/r-efi/README.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 18:31:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 18:31:44 +0000
commitc23a457e72abe608715ac76f076f47dc42af07a5 (patch)
tree2772049aaf84b5c9d0ed12ec8d86812f7a7904b6 /vendor/r-efi/README.md
parentReleasing progress-linux version 1.73.0+dfsg1-1~progress7.99u1. (diff)
downloadrustc-c23a457e72abe608715ac76f076f47dc42af07a5.tar.xz
rustc-c23a457e72abe608715ac76f076f47dc42af07a5.zip
Merging upstream version 1.74.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/r-efi/README.md')
-rw-r--r--vendor/r-efi/README.md99
1 files changed, 99 insertions, 0 deletions
diff --git a/vendor/r-efi/README.md b/vendor/r-efi/README.md
new file mode 100644
index 000000000..b5b8f8757
--- /dev/null
+++ b/vendor/r-efi/README.md
@@ -0,0 +1,99 @@
+r-efi
+=====
+
+UEFI Reference Specification Protocol Constants and Definitions
+
+The r-efi project provides the protocol constants and definitions of the
+UEFI Reference Specification as native rust code. The scope of this project is
+limited to those protocol definitions. The protocols are not actually
+implemented. As such, this project serves as base for any UEFI application that
+needs to interact with UEFI, or implement (parts of) the UEFI specification.
+
+### Project
+
+ * **Website**: <https://github.com/r-efi/r-efi/wiki>
+ * **Bug Tracker**: <https://github.com/r-efi/r-efi/issues>
+
+### Requirements
+
+The requirements for this project are:
+
+ * `rustc >= 1.68.0`
+
+### Build
+
+To build this project, run:
+
+```sh
+cargo build
+```
+
+Available configuration options are:
+
+ * **native**: This feature-selector enables compilation of modules and
+ examples that require native UEFI targets. Those will not
+ compile on foreign targets and thus are guarded by this flag.
+
+##### Build via: official toolchains
+
+Starting with rust-version 1.68, rustup distributes pre-compiled toolchains for
+many UEFI targets. You can enumerate and install them via `rustup`. This
+example shows how to enumerate all available targets for your stable toolchain
+and then install the UEFI target for the `x86_64` architecture:
+
+```sh
+rustup target list --toolchain=stable
+rustup target add --toolchain=stable x86_64-unknown-uefi
+```
+
+This project can then be compiled directly for the selected target:
+
+```sh
+cargo +stable build \
+ --examples \
+ --features native \
+ --lib \
+ --target x86_64-unknown-uefi
+```
+
+##### Build via: cargo/rustc nightly with -Zbuild-std
+
+If no pre-compiled toolchains are available for your selected target, you can
+compile the project and the required parts of the standard library via the
+experimental `-Zbuild-std` feature of rustc. This requires a nightly compiler:
+
+```sh
+cargo +nightly build \
+ -Zbuild-std=core,compiler_builtins,alloc \
+ -Zbuild-std-features=compiler-builtins-mem \
+ --examples \
+ --features native \
+ --lib \
+ --target x86_64-unknown-uefi
+```
+
+##### Build via: foreign target
+
+The project can be built for non-UEFI targets via the standard rust toolchains.
+This allows non-UEFI targets to interact with UEFI systems or otherwise host
+UEFI operations. Furthermore, this allows running the foreign test-suite of
+this project as long as the target supports the full standard library:
+
+```sh
+cargo +stable build --all-targets
+cargo +stable test --all-targets
+```
+
+Note that the `native` feature must not be enabled for foreign targets as it
+will not compile on non-UEFI systems.
+
+### Repository:
+
+ - **web**: <https://github.com/r-efi/r-efi>
+ - **https**: `https://github.com/r-efi/r-efi.git`
+ - **ssh**: `git@github.com:r-efi/r-efi.git`
+
+### License:
+
+ - **MIT** OR **Apache-2.0** OR **LGPL-2.1-or-later**
+ - See AUTHORS file for details.