Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc/rustc: describe the uefi target platforms #99760

Merged
merged 1 commit into from
Jul 29, 2022

Conversation

dvdhrm
Copy link
Contributor

@dvdhrm dvdhrm commented Jul 26, 2022

Add a platform-support entry to the rustc-docs for the different *-unknown-uefi targets. This describes in detail how this platform works, a few basic examples, and how to compile for the platform.

Red Hat is sponsoring my work on this platform, so I am putting myself down as target maintainer. Co-maintainers are more than welcome to join me in the effort. Communication is going on off-list to coordinate the different efforts.

Note that the ultimate goal is to move the UEFI targets to Tier-2 so bootloaders can be more easily supported in commercial products. This documentation is the first step towards that goal, but should be a viable documentation even for the current Tier-3 status of the targets.

I also want to point out that there is an ongoing GSoC-effort to port the rust standard library to UEFI (by Ayush Singh). While this work is not necessarily required to get to Tier-2, we definitely should coordinate the efforts and update the documentation as soon as any such ports are merged.

Note that the targets are already used by multiple commercial and non commercial production systems, including, but not limited to:

  • Tianocore-EDK2 (Official UEFI SDK by Intel) comes with rust support
    in its staging repository (not part of any release, yet).
    (https://github.com/tianocore/edk2-staging/tree)
  • Intel's research program "Project Mu" uses the rust UEFI targets to
    show possible future replacements for Tianocore-EDK2.
  • The Rust OS "Redox" uses the UEFI targets for its bootloader.
    (https://www.redox-os.org/)
  • The hugely popular in-depth documentation of OS development in Rust
    by Philipp Oppermann uses the UEFI targets.
    (https://os.phil-opp.com/)

@rust-highfive
Copy link
Collaborator

r? @ehuss

(rust-highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 26, 2022
@Ayush1325
Copy link
Contributor

This is great work. I will open the std PR as soon as I fix all the tests other than the unimplemented parts in the std. I have also found some numeric tests that cause CPU exceptions in UEFI, which might need to be fixed/documented (#99750).

@rust-log-analyzer

This comment has been minimized.

@joshtriplett
Copy link
Member

This LGTM! Great work, thank you for maintaining this.

@dvdhrm
Copy link
Contributor Author

dvdhrm commented Jul 26, 2022

(I forgot to annotate the examples as no-doc-tests, hence the CI failures. Will fix later.)

@dvdhrm
Copy link
Contributor Author

dvdhrm commented Jul 27, 2022

The doctest are now marked as ignore (we cannot force abort as panic-strategy for doctests, and unwinding requires a nightly compiler for eh_personality, so I am unaware of a way to make doctests compile on stable without std).

@nicholasbishop also volunteered to co-maintain this target, so I amended the maintainer-list. Thanks Nicholas!

@rust-log-analyzer

This comment has been minimized.

Add a `platform-support` entry to the rustc-docs for the different
`*-unknown-uefi` targets. This describes in detail how this platform
works, a few basic examples, and how to compile for the platform.

Red Hat is sponsoring my work on this platform, so I am putting myself
down as target maintainer. Co-maintainers are more than welcome to join
me in the effort. Communication is going on off-list to coordinate the
different efforts.

Note that the ultimate goal is to move the UEFI targets to Tier-2 so
bootloaders can be more easily supported in commercial products. This
documentation is the first step towards that goal, but should be a
viable documentation even for the current Tier-3 status of the targets.

I also want to point out that there is an ongoing GSoC-effort to port
the rust standard library to UEFI (by Ayush Singh). While this work is
not necessarily required to get to Tier-2, we definitely should
coordinate the efforts and update the documentation as soon as any such
ports are merged.

Note that the targets are already used by multiple commercial and non
commercial production systems, including, but not limited to:

 * Tianocore-EDK2 (Official UEFI SDK by Intel) comes with rust support
   in its staging repository (not part of any release, yet).
   (https://github.com/tianocore/edk2-staging/tree)
 * Intel's research program "Project Mu" uses the rust UEFI targets to
   show possible future replacements for Tianocore-EDK2.
 * The Rust OS "Redox" uses the UEFI targets for its bootloader.
   (https://www.redox-os.org/)
 * The hugely popular in-depth documentation of OS development in Rust
   by Philipp Oppermann uses the UEFI targets.
   (https://os.phil-opp.com/)

Signed-off-by: David Rheinsberg <david.rheinsberg@gmail.com>
@ehuss
Copy link
Contributor

ehuss commented Jul 27, 2022

Thanks, this looks fantastic!

@bors r+ rollup

@bors
Copy link
Contributor

bors commented Jul 27, 2022

📌 Commit e849f9b has been approved by ehuss

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 27, 2022
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Jul 27, 2022
doc/rustc: describe the uefi target platforms

Add a `platform-support` entry to the rustc-docs for the different `*-unknown-uefi` targets. This describes in detail how this platform works, a few basic examples, and how to compile for the platform.

Red Hat is sponsoring my work on this platform, so I am putting myself down as target maintainer. Co-maintainers are more than welcome to join me in the effort. Communication is going on off-list to coordinate the different efforts.

Note that the ultimate goal is to move the UEFI targets to Tier-2 so bootloaders can be more easily supported in commercial products. This documentation is the first step towards that goal, but should be a viable documentation even for the current Tier-3 status of the targets.

I also want to point out that there is an ongoing GSoC-effort to port the rust standard library to UEFI (by Ayush Singh). While this work is not necessarily required to get to Tier-2, we definitely should coordinate the efforts and update the documentation as soon as any such ports are merged.

Note that the targets are already used by multiple commercial and non commercial production systems, including, but not limited to:

 * Tianocore-EDK2 (Official UEFI SDK by Intel) comes with rust support
   in its staging repository (not part of any release, yet).
   (https://github.com/tianocore/edk2-staging/tree)
 * Intel's research program "Project Mu" uses the rust UEFI targets to
   show possible future replacements for Tianocore-EDK2.
 * The Rust OS "Redox" uses the UEFI targets for its bootloader.
   (https://www.redox-os.org/)
 * The hugely popular in-depth documentation of OS development in Rust
   by Philipp Oppermann uses the UEFI targets.
   (https://os.phil-opp.com/)
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Jul 27, 2022
doc/rustc: describe the uefi target platforms

Add a `platform-support` entry to the rustc-docs for the different `*-unknown-uefi` targets. This describes in detail how this platform works, a few basic examples, and how to compile for the platform.

Red Hat is sponsoring my work on this platform, so I am putting myself down as target maintainer. Co-maintainers are more than welcome to join me in the effort. Communication is going on off-list to coordinate the different efforts.

Note that the ultimate goal is to move the UEFI targets to Tier-2 so bootloaders can be more easily supported in commercial products. This documentation is the first step towards that goal, but should be a viable documentation even for the current Tier-3 status of the targets.

I also want to point out that there is an ongoing GSoC-effort to port the rust standard library to UEFI (by Ayush Singh). While this work is not necessarily required to get to Tier-2, we definitely should coordinate the efforts and update the documentation as soon as any such ports are merged.

Note that the targets are already used by multiple commercial and non commercial production systems, including, but not limited to:

 * Tianocore-EDK2 (Official UEFI SDK by Intel) comes with rust support
   in its staging repository (not part of any release, yet).
   (https://github.com/tianocore/edk2-staging/tree)
 * Intel's research program "Project Mu" uses the rust UEFI targets to
   show possible future replacements for Tianocore-EDK2.
 * The Rust OS "Redox" uses the UEFI targets for its bootloader.
   (https://www.redox-os.org/)
 * The hugely popular in-depth documentation of OS development in Rust
   by Philipp Oppermann uses the UEFI targets.
   (https://os.phil-opp.com/)
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Jul 28, 2022
doc/rustc: describe the uefi target platforms

Add a `platform-support` entry to the rustc-docs for the different `*-unknown-uefi` targets. This describes in detail how this platform works, a few basic examples, and how to compile for the platform.

Red Hat is sponsoring my work on this platform, so I am putting myself down as target maintainer. Co-maintainers are more than welcome to join me in the effort. Communication is going on off-list to coordinate the different efforts.

Note that the ultimate goal is to move the UEFI targets to Tier-2 so bootloaders can be more easily supported in commercial products. This documentation is the first step towards that goal, but should be a viable documentation even for the current Tier-3 status of the targets.

I also want to point out that there is an ongoing GSoC-effort to port the rust standard library to UEFI (by Ayush Singh). While this work is not necessarily required to get to Tier-2, we definitely should coordinate the efforts and update the documentation as soon as any such ports are merged.

Note that the targets are already used by multiple commercial and non commercial production systems, including, but not limited to:

 * Tianocore-EDK2 (Official UEFI SDK by Intel) comes with rust support
   in its staging repository (not part of any release, yet).
   (https://github.com/tianocore/edk2-staging/tree)
 * Intel's research program "Project Mu" uses the rust UEFI targets to
   show possible future replacements for Tianocore-EDK2.
 * The Rust OS "Redox" uses the UEFI targets for its bootloader.
   (https://www.redox-os.org/)
 * The hugely popular in-depth documentation of OS development in Rust
   by Philipp Oppermann uses the UEFI targets.
   (https://os.phil-opp.com/)
bors added a commit to rust-lang-ci/rust that referenced this pull request Jul 29, 2022
Rollup of 8 pull requests

Successful merges:

 - rust-lang#99686 (add suggestion when there is a impl of external trait on pointer with wrong coherence rules)
 - rust-lang#99760 (doc/rustc: describe the uefi target platforms)
 - rust-lang#99766 (Htmldocck: Substitute the doc channel when blessing)
 - rust-lang#99781 (Use String::from_utf8_lossy in CStr demo)
 - rust-lang#99803 (Update mentions to `rustc_metadata::rmeta::Lazy`)
 - rust-lang#99845 (Remove `$` prefix for bash scripts in doc)
 - rust-lang#99850 (rustdoc: Remove more Clean trait implementations)
 - rust-lang#99872 (Clone the `src/llvm-project` submodule if profiling is enabled)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit b7beec9 into rust-lang:master Jul 29, 2022
@rustbot rustbot added this to the 1.64.0 milestone Jul 29, 2022
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Sep 9, 2022
Link UEFI target documentation from target list

rust-lang#99760 added UEFI target documentation, but forgot to link it from the main target list.
@workingjubilee workingjubilee added the O-UEFI UEFI label Feb 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
O-UEFI UEFI S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants