diff options
| author | bors <bors@rust-lang.org> | 2019-09-11 22:40:11 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-09-11 22:40:11 +0000 |
| commit | c9edc02e8320a9e5799d185910ece7d491f524e6 (patch) | |
| tree | 4cb20ee78de9610bbe14212784e5c453b2b7b9ed /src/test/ui/iterators/iter-sum-overflow-overflow-checks.rs | |
| parent | f0b58fcf03391a91f74224fe38a696d5a5b789d9 (diff) | |
| parent | 21e062da2fa1a476380d64f5479e5049067648cb (diff) | |
| download | rust-c9edc02e8320a9e5799d185910ece7d491f524e6.tar.gz rust-c9edc02e8320a9e5799d185910ece7d491f524e6.zip | |
Auto merge of #64334 - jyao1:i686-master, r=joshtriplett
Add i686-unknown-uefi target This adds a new rustc target-configuration called 'i686-unknown_uefi'. This is similar to existing x86_64-unknown_uefi target. The i686-unknown-uefi target can be used to build Intel Architecture 32bit UEFI application. The ABI defined in UEFI environment (aka IA32) is similar to cdecl. We choose i686-unknown-uefi-gnu instead of i686-unknown-uefi to avoid the intrinsics generated by LLVM. The detail of root-cause and solution analysis is added as comment in the code. For x86_64-unknown-uefi, we cannot use -gnu, because the ABI between MSVC and GNU is totally different, and UEFI chooses ABI similar to MSVC. For i686-unknown-uefi, the UEFI chooses cdecl ABI, which is same as MSVC and GNU. According to LLVM code, the only differences between MSVC and GNU are fmodf(f32), longjmp() and TLS, which have no impact to UEFI. As such, using i686-unknown-uefi-gnu is the simplest way to pass the build. Adding the undefined symbols, such as _aulldiv() to rust compiler-builtins is out of scope. But it may be considered later. The scope of this patch is limited to support target-configuration. No standard library support is added in this patch. Such work can be done in future enhancement. Cc: Josh Triplett <josh.triplett@intel.com> Reviewed-by: Josh Triplett <josh.triplett@intel.com>
Diffstat (limited to 'src/test/ui/iterators/iter-sum-overflow-overflow-checks.rs')
0 files changed, 0 insertions, 0 deletions
