From 15f980f60947eb63c9186db80ec5264efdad53fa Mon Sep 17 00:00:00 2001 From: bjorn3 Date: Sat, 11 May 2019 11:52:56 +0200 Subject: [PATCH] Patch some more things away --- .gitignore | 2 +- README.md | 9 +++++++-- src/librustc/session/filesearch.rs | 5 +++++ src/librustc/session/mod.rs | 4 +--- src/librustc_interface/util.rs | 6 +++--- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 67e0dd8e795bb..8a15a0db592d4 100644 --- a/.gitignore +++ b/.gitignore @@ -63,4 +63,4 @@ version.texi /src/target/ no_llvm_build - +/error_metadata diff --git a/README.md b/README.md index 0202d77fcb29f..0450c8610b664 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,15 @@ Attempt to build rustc for wasm. $ rustup override set nightly $ rustup toolchain add wasm32-unknown-wasi $ cd src/rustc -$ CFG_COMPILER_HOST_TRIPLE="wasm32-unknown-wasi" RUSTC_ERROR_METADATA_DST="./error_metadata" RUSTFLAGS="-Zforce-unstable-if-unmarked" cargo +nightly build --target wasm32-unknown-wasi -$ wasmtime ../../target/wasm32-unknown-wasi/debug/rustc_binary.wasm +$ CFG_COMPILER_HOST_TRIPLE="wasm32-unknown-wasi" RUSTC_ERROR_METADATA_DST="./error_metadata" RUSTFLAGS="-Zforce-unstable-if-unmarked" cargo +nightly build --target wasm32-unknown-wasi --release + +$ wasmtime ../../target/wasm32-unknown-wasi/release/rustc_binary.wasm +# or +$ wasmer run ../../target/wasm32-unknown-wasi/release/rustc_binary.wasm --backend singlepass -- example.rs $(rustc --print sysroot) ``` +> Compilation in debug mode is currently broken. See https://github.com/rust-lang/rust/issues/60540. + # The Rust Programming Language diff --git a/src/librustc/session/filesearch.rs b/src/librustc/session/filesearch.rs index cf09d45ca38fc..8889e0ccc9e1a 100644 --- a/src/librustc/session/filesearch.rs +++ b/src/librustc/session/filesearch.rs @@ -129,6 +129,11 @@ pub fn get_or_default_sysroot() -> PathBuf { }) } + #[cfg(target_os = "wasi")] + { + panic!("get_or_default_sysroot"); + } + match env::current_exe() { Ok(exe) => { match canonicalize(Some(exe)) { diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs index e4e3e95989675..bdebb865ce715 100644 --- a/src/librustc/session/mod.rs +++ b/src/librustc/session/mod.rs @@ -1182,9 +1182,7 @@ fn build_session_( let print_fuel = AtomicU64::new(0); let working_dir = env::current_dir().unwrap_or_else(|e| - p_s.span_diagnostic - .fatal(&format!("Current directory is invalid: {}", e)) - .raise() + PathBuf::from(".") ); let working_dir = file_path_mapping.map_prefix(working_dir); diff --git a/src/librustc_interface/util.rs b/src/librustc_interface/util.rs index 9a37487934507..8dbac920779ef 100644 --- a/src/librustc_interface/util.rs +++ b/src/librustc_interface/util.rs @@ -171,13 +171,13 @@ pub fn spawn_thread_pool R + Send, R: Send>( stderr: &Option>>>, f: F, ) -> R { - let mut cfg = thread::Builder::new().name("rustc".to_string()); + /*let mut cfg = thread::Builder::new().name("rustc".to_string()); if let Some(size) = get_stack_size() { cfg = cfg.stack_size(size); } - scoped_thread(cfg, || { + scoped_thread(cfg, || {*/ syntax::with_globals( || { ty::tls::GCX_PTR.set(&Lock::new(0), || { if let Some(stderr) = stderr { @@ -186,7 +186,7 @@ pub fn spawn_thread_pool R + Send, R: Send>( ty::tls::with_thread_locals(|| f()) }) }) - }) + //}) } #[cfg(parallel_compiler)]