Always use Rust based intrinsics on Windows
The check inside compiler-rt file int_types.h to #define CRT_HAS_128BIT looks like: #if (defined(__LP64__) || defined(__wasm__)) && \ !(defined(__mips__) && defined(__clang__)) #define CRT_HAS_128BIT #endif Windows uses LLP64 instead of LP64, so it doesn't ship with the C based intrinsics. Also, add libcompiler_builtins to the list of crates that may have platform specific checks (like the ones we just added).
This commit is contained in:
parent
c79aba71d5
commit
317810d4c4
@ -17,14 +17,16 @@
|
||||
#![crate_name = "compiler_builtins"]
|
||||
#![crate_type = "rlib"]
|
||||
#![feature(staged_api)]
|
||||
#![cfg_attr(any(target_pointer_width="32", target_pointer_width="16"),
|
||||
#![cfg_attr(any(target_pointer_width="32", target_pointer_width="16", target_os="windows",
|
||||
target_arch="mips64"),
|
||||
feature(core_intrinsics, core_float))]
|
||||
#![feature(associated_consts)]
|
||||
#![cfg_attr(not(stage0), feature(i128_type))]
|
||||
|
||||
#![allow(non_camel_case_types, unused_variables)]
|
||||
|
||||
#[cfg(any(target_pointer_width="32", target_pointer_width="16"))]
|
||||
#[cfg(any(target_pointer_width="32", target_pointer_width="16", target_os="windows",
|
||||
target_arch="mips64"))]
|
||||
pub mod reimpls {
|
||||
|
||||
#![allow(unused_comparisons)]
|
||||
|
@ -26,6 +26,7 @@
|
||||
//! exceptions:
|
||||
//!
|
||||
//! - core may not have platform-specific code
|
||||
//! - libcompiler_builtins may have platform-specific code
|
||||
//! - liballoc_system may have platform-specific code
|
||||
//! - liballoc_jemalloc may have platform-specific code
|
||||
//! - libpanic_abort may have platform-specific code
|
||||
@ -53,6 +54,7 @@ const EXCEPTION_PATHS: &'static [&'static str] = &[
|
||||
// std crates
|
||||
"src/liballoc_jemalloc",
|
||||
"src/liballoc_system",
|
||||
"src/libcompiler_builtins",
|
||||
"src/liblibc",
|
||||
"src/libpanic_abort",
|
||||
"src/libpanic_unwind",
|
||||
|
Loading…
x
Reference in New Issue
Block a user