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

Add x86_64-unknown-uefi target #56769

Merged
merged 1 commit into from
Dec 15, 2018
Merged

Add x86_64-unknown-uefi target #56769

merged 1 commit into from
Dec 15, 2018

Commits on Dec 13, 2018

  1. Add x86_64-unknown-uefi target

    This adds a new rustc target-configuration called 'x86_64-unknown_uefi'.
    Furthermore, it adds a UEFI base-configuration to be used with other
    targets supported by UEFI (e.g., i386, armv7hl, aarch64, itanium, ...).
    
    UEFI systems provide a very basic operating-system environment, meant
    to unify how systems are booted. It is tailored for simplicity and fast
    setup, as it is only meant to bootstrap other systems. For instance, it
    copies most of the ABI from Microsoft Windows, rather than inventing
    anything on its own. Furthermore, any complex CPU features are
    disabled. Only one CPU is allowed to be up, no interrupts other than
    the timer-interrupt are allowed, no process-separation is performed,
    page-tables are identity-mapped, ...
    
    Nevertheless, UEFI has an application model. Its main purpose is to
    allow operating-system vendors to write small UEFI applications that
    load their kernel and terminate the UEFI system. However, many other
    UEFI applications have emerged in the past, including network-boot,
    debug-consoles, and more.
    
    This UEFI target allows to compile rust code natively as UEFI
    applications. No standard library support is added, but libcore can be
    used out-of-the-box if a panic-handler is provided. Furthermore,
    liballoc works as well, if a `GlobalAlloc` handler is provided. Both
    have been tested with this target-configuration.
    
    Note that full libstd support is unlikely to happen. While UEFI does
    have standardized interfaces for networking and alike, none of these
    are mandatory and they are unlikely to be shipped in common consumer
    firmwares. Furthermore, several features like process-separation are
    not available (or only in very limited fashion). Those parts of libstd
    would have to be masked.
    David Herrmann committed Dec 13, 2018
    Configuration menu
    Copy the full SHA
    88cf2a2 View commit details
    Browse the repository at this point in the history