diff --git a/.gitmodules b/.gitmodules index bf9bdd9a5b4b..6274efaec6c0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -43,7 +43,7 @@ url = https://github.com/rust-lang/rust-by-example.git [submodule "src/llvm-emscripten"] path = src/llvm-emscripten - url = https://github.com/rust-lang/llvm.git + url = https://github.com/kripken/emscripten-fastcomp [submodule "src/stdsimd"] path = src/stdsimd url = https://github.com/rust-lang-nursery/stdsimd.git diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs index 885ad07e0873..cef0849937bf 100644 --- a/src/bootstrap/compile.rs +++ b/src/bootstrap/compile.rs @@ -736,7 +736,7 @@ pub fn build_codegen_backend(builder: &Builder, // Pass down configuration from the LLVM build into the build of // librustc_llvm and librustc_codegen_llvm. - if builder.is_rust_llvm(target) { + if builder.is_rust_llvm(target) && backend != "emscripten" { cargo.env("LLVM_RUSTLLVM", "1"); } cargo.env("LLVM_CONFIG", &llvm_config); diff --git a/src/ci/docker/asmjs/Dockerfile b/src/ci/docker/asmjs/Dockerfile index cb85cf3d9e9f..9eaffbf83eb4 100644 --- a/src/ci/docker/asmjs/Dockerfile +++ b/src/ci/docker/asmjs/Dockerfile @@ -20,11 +20,11 @@ COPY scripts/sccache.sh /scripts/ RUN sh /scripts/sccache.sh ENV PATH=$PATH:/emsdk-portable -ENV PATH=$PATH:/emsdk-portable/clang/e1.37.13_64bit/ -ENV PATH=$PATH:/emsdk-portable/emscripten/1.37.13/ -ENV PATH=$PATH:/emsdk-portable/node/4.1.1_64bit/bin/ -ENV EMSCRIPTEN=/emsdk-portable/emscripten/1.37.13/ -ENV BINARYEN_ROOT=/emsdk-portable/clang/e1.37.13_64bit/binaryen/ +ENV PATH=$PATH:/emsdk-portable/clang/e1.38.15_64bit/ +ENV PATH=$PATH:/emsdk-portable/emscripten/1.38.15/ +ENV PATH=$PATH:/emsdk-portable/node/8.9.1_64bit/bin/ +ENV EMSCRIPTEN=/emsdk-portable/emscripten/1.38.15/ +ENV BINARYEN_ROOT=/emsdk-portable/clang/e1.38.15_64bit/binaryen/ ENV EM_CONFIG=/emsdk-portable/.emscripten ENV TARGETS=asmjs-unknown-emscripten diff --git a/src/ci/docker/scripts/emscripten.sh b/src/ci/docker/scripts/emscripten.sh index d32ed6b461d8..dc4b2af792cf 100644 --- a/src/ci/docker/scripts/emscripten.sh +++ b/src/ci/docker/scripts/emscripten.sh @@ -33,8 +33,8 @@ curl -fL https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portab cd /emsdk-portable ./emsdk update -hide_output ./emsdk install sdk-1.37.13-64bit -./emsdk activate sdk-1.37.13-64bit +hide_output ./emsdk install sdk-1.38.15-64bit +./emsdk activate sdk-1.38.15-64bit # Compile and cache libc source ./emsdk_env.sh diff --git a/src/llvm-emscripten b/src/llvm-emscripten index 271744475331..272d3ff91b38 160000 --- a/src/llvm-emscripten +++ b/src/llvm-emscripten @@ -1 +1 @@ -Subproject commit 2717444753318e461e0c3b30dacd03ffbac96903 +Subproject commit 272d3ff91b38eac051bdbaf6cf84db5c901ce2f8 diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp index 06f75d981e3d..902e62ab4a1d 100644 --- a/src/rustllvm/PassWrapper.cpp +++ b/src/rustllvm/PassWrapper.cpp @@ -444,7 +444,7 @@ extern "C" void LLVMRustConfigurePassManagerBuilder( LLVMPassManagerBuilderRef PMBR, LLVMRustCodeGenOptLevel OptLevel, bool MergeFunctions, bool SLPVectorize, bool LoopVectorize, bool PrepareForThinLTO, const char* PGOGenPath, const char* PGOUsePath) { -#if LLVM_RUSTLLVM +#if LLVM_VERSION_GE(7, 0) unwrap(PMBR)->MergeFunctions = MergeFunctions; #endif unwrap(PMBR)->SLPVectorize = SLPVectorize;