Don't compile assembly on x86_64 Windows

They've all got the wrong ABI...
This commit is contained in:
Alex Crichton 2017-06-23 21:09:24 -07:00
parent 94bc9953a1
commit b42d267065
2 changed files with 15 additions and 11 deletions

View File

@ -4142,16 +4142,20 @@ mod c {
sources.extend(&["gcc_personality_v0.c"]); sources.extend(&["gcc_personality_v0.c"]);
} }
if target_arch == "x86_64" { // None of these seem to be used on x86_64 windows, and they've all
sources.extend( // got the wrong ABI anyway, so we want to avoid them.
&[ if target_os != "windows" {
"x86_64/floatdisf.c", if target_arch == "x86_64" {
"x86_64/floatdixf.c", sources.extend(
"x86_64/floatundidf.S", &[
"x86_64/floatundisf.S", "x86_64/floatdisf.c",
"x86_64/floatundixf.S", "x86_64/floatdixf.c",
], "x86_64/floatundidf.S",
); "x86_64/floatundisf.S",
"x86_64/floatundixf.S",
],
);
}
} }
if target_arch == "x86" { if target_arch == "x86" {

View File

@ -113,7 +113,7 @@ intrinsics! {
} }
#[use_c_shim_if(all(any(target_arch = "x86", target_arch = "x86_64"), #[use_c_shim_if(all(any(target_arch = "x86", target_arch = "x86_64"),
not(target_env = "msvc")))] not(windows)))]
#[arm_aeabi_alias = __aeabi_ul2d] #[arm_aeabi_alias = __aeabi_ul2d]
pub extern "C" fn __floatundidf(i: u64) -> f64 { pub extern "C" fn __floatundidf(i: u64) -> f64 {
int_to_float!(i, u64, f64) int_to_float!(i, u64, f64)