| // Bare UEFI Compilation |
| // |
| // This is a copy of a cross-compile test from the upstream rust repository. It |
| // is used to verify cross-compilation of UEFI targets works. It is included |
| // verbatim here to make sure we can run tests against it and get notifications |
| // when it breaks. |
| |
| // ----------------------------------------------------------------------------- |
| // COPY FROM `rust-lang/rust/src/test/codegen/uefi-cross-compile.rs` |
| // ----------------------------------------------------------------------------- |
| |
| // Checks whether UEFI targets cross-compile successfully. |
| // |
| // This test contains a simple UEFI program that simply exits with return code |
| // 0. It can be easily run from the UEFI shell (but any other UEFI environment |
| // works as well). This program is not run as part of the test. The test merely |
| // verifies the cross-compilation does not fail and an entry-point is emitted. |
| // |
| // The imported definitions from the UEFI specification are intentionally left |
| // incomplete. Only the bits that are actually used by this test are defined. |
| |
| // min-llvm-version 9.0 |
| |
| // compile-flags: --target x86_64-unknown-uefi |
| |
| #![feature(lang_items, no_core)] |
| #![no_core] |
| #![no_main] |
| |
| #[lang = "sized"] |
| pub trait Sized {} |
| #[lang = "freeze"] |
| pub trait Freeze {} |
| #[lang = "copy"] |
| pub trait Copy {} |
| |
| // CHECK: define win64cc i64 @efi_main{{.*}} |
| #[export_name = "efi_main"] |
| pub extern "efiapi" fn main(_h: *mut usize, _st: *mut usize) -> usize { |
| return 0; |
| } |