From 173037840e77fe59c14391e2bc7941871bc89dde Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Wed, 10 Feb 2016 10:28:51 +0100 Subject: [PATCH 1/2] Fix half of emscripten's failing tests --- src/compiletest/runtest.rs | 12 +++++++----- src/libstd/sys/unix/fd.rs | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/compiletest/runtest.rs b/src/compiletest/runtest.rs index ada6ea200d1..5eef6b7f24c 100644 --- a/src/compiletest/runtest.rs +++ b/src/compiletest/runtest.rs @@ -1229,11 +1229,13 @@ fn compose_and_run_compiler(config: &Config, props: &TestProps, // for the test suite (otherwise including libstd statically in all // executables takes up quite a bit of space). // - // For targets like MUSL, however, there is no support for dynamic - // libraries so we just go back to building a normal library. Note, - // however, that if the library is built with `force_host` then it's - // ok to be a dylib as the host should always support dylibs. - if config.target.contains("musl") && !aux_props.force_host { + // For targets like MUSL or Emscripten, however, there is no support for + // dynamic libraries so we just go back to building a normal library. Note, + // however, that for MUSL if the library is built with `force_host` then + // it's ok to be a dylib as the host should always support dylibs. + if (config.target.contains("musl") && !aux_props.force_host) || + config.target.contains("emscripten") + { vec!("--crate-type=lib".to_owned()) } else { vec!("--crate-type=dylib".to_owned()) diff --git a/src/libstd/sys/unix/fd.rs b/src/libstd/sys/unix/fd.rs index 0eadee54e26..299c6ec2731 100644 --- a/src/libstd/sys/unix/fd.rs +++ b/src/libstd/sys/unix/fd.rs @@ -51,14 +51,14 @@ impl FileDesc { Ok(ret as usize) } - #[cfg(not(any(target_env = "newlib", target_os = "solaris")))] + #[cfg(not(any(target_env = "newlib", target_os = "solaris", target_os = "emscripten")))] pub fn set_cloexec(&self) { unsafe { let ret = libc::ioctl(self.fd, libc::FIOCLEX); debug_assert_eq!(ret, 0); } } - #[cfg(any(target_env = "newlib", target_os = "solaris"))] + #[cfg(any(target_env = "newlib", target_os = "solaris", target_os = "emscripten"))] pub fn set_cloexec(&self) { unsafe { let previous = libc::fcntl(self.fd, libc::F_GETFD); From 657f1cf0e0c4302827f24084dd1822385944f5ef Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Wed, 10 Feb 2016 10:37:02 +0100 Subject: [PATCH 2/2] Fix x86stdcall test with emscripten --- src/test/run-pass/x86stdcall.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/run-pass/x86stdcall.rs b/src/test/run-pass/x86stdcall.rs index c8c96b299fa..106bf8ce7df 100644 --- a/src/test/run-pass/x86stdcall.rs +++ b/src/test/run-pass/x86stdcall.rs @@ -38,5 +38,6 @@ pub fn main() { target_os = "netbsd", target_os = "openbsd", target_os = "android", - target_os = "solaris"))] + target_os = "solaris", + target_os = "emscripten"))] pub fn main() { }