File tree Expand file tree Collapse file tree 5 files changed +43
-3
lines changed Expand file tree Collapse file tree 5 files changed +43
-3
lines changed Original file line number Diff line number Diff line change @@ -327,6 +327,23 @@ than building it.
327327            . entry ( * target) 
328328            . or_insert_with ( || Target :: from_triple ( & target. triple ) ) ; 
329329
330+         // compiler-rt c fallbacks for wasm cannot be built with gcc 
331+         if  target. contains ( "wasm" ) 
332+             && ( build. config . optimized_compiler_builtins ( * target) 
333+                 || build. config . rust_std_features . contains ( "compiler-builtins-c" ) ) 
334+         { 
335+             let  cc_tool = build. cc_tool ( * target) ; 
336+             if  !cc_tool. is_like_clang ( )  && !cc_tool. path ( ) . ends_with ( "emcc" )  { 
337+                 // emcc works as well 
338+                 panic ! ( 
339+                     "Clang is required to build C code for Wasm targets, got `{}` instead\n \  
340+                      this is because compiler-builtins is configured to build C source. Either \ 
341+                      ensure Clang is used, or adjust this configuration.", 
342+                     cc_tool. path( ) . display( ) 
343+                 ) ; 
344+             } 
345+         } 
346+ 
330347        if  ( target. contains ( "-none-" )  || target. contains ( "nvptx" ) ) 
331348            && build. no_std ( * target)  == Some ( false ) 
332349        { 
Original file line number Diff line number Diff line change @@ -55,6 +55,12 @@ RUN ./install-riscv64-none-elf.sh
5555COPY  host-x86_64/dist-various-1/install-riscv32-none-elf.sh /build
5656RUN  ./install-riscv32-none-elf.sh
5757
58+ COPY  host-x86_64/dist-various-1/install-emscripten.sh /build
59+ RUN  ./install-emscripten.sh
60+ 
61+ #  Add Emscripten to PATH
62+ ENV  PATH="/build/emsdk:/build/emsdk/upstream/emscripten:/build/emsdk/node/current/bin:${PATH}" 
63+ 
5864#  Suppress some warnings in the openwrt toolchains we downloaded
5965ENV  STAGING_DIR=/tmp
6066
Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bash
2+ set  -ex
3+ 
4+ apt-get update
5+ apt-get install -y --no-install-recommends \
6+   nodejs \
7+   default-jre
8+ 
9+ git clone https://github.com/emscripten-core/emsdk.git
10+ cd  emsdk
11+ ./emsdk install latest
12+ ./emsdk activate latest
Original file line number Diff line number Diff line change 5959    CXX_i686_unknown_uefi=clang++-11 \
6060    CC_x86_64_unknown_uefi=clang-11 \
6161    CXX_x86_64_unknown_uefi=clang++-11 \
62+     CC_wasm32_unknown_unknown=clang-11 \
63+     CXX_wasm32_unknown_unknown=clang++-11 \
64+     CC_wasm32v1_none=clang-11 \
65+     CXX_wasm32v1_none=clang++-11 \
6266    CC=gcc-9 \
6367    CXX=g++-9
6468
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ ARG DEBIAN_FRONTEND=noninteractive
44RUN  apt-get update && apt-get install -y --no-install-recommends \
55  clang-11 \
66  llvm-11 \
7+   gcc-multilib \
78  g++ \
89  make \
910  ninja-build \
@@ -59,8 +60,8 @@ RUN curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v19.0
5960  tar -xJ
6061ENV  PATH "$PATH:/wasmtime-v19.0.0-x86_64-linux" 
6162
62- ENV  WASM_TARGETS =wasm32-wasip1
63- ENV  WASM_SCRIPT  python3 /checkout/x.py --stage 2 test --host=''  --target $WASM_TARGETS  \
63+ ENV  WASM_WASIP_TARGET =wasm32-wasip1  
64+ ENV  WASM_WASIP_SCRIPT  python3 /checkout/x.py --stage 2 test --host=''  --target $WASM_WASIP_TARGET  \
6465  tests/run-make \
6566  tests/ui \
6667  tests/mir-opt \
@@ -91,4 +92,4 @@ ENV UEFI_SCRIPT python3 /checkout/x.py --stage 2 build --host='' --target $UEFI_
9192  python3 /checkout/x.py --stage 2 test tests/run-make/uefi-qemu/rmake.rs --target i686-unknown-uefi && \
9293  python3 /checkout/x.py --stage 2 test tests/run-make/uefi-qemu/rmake.rs --target x86_64-unknown-uefi
9394
94- ENV  SCRIPT $WASM_SCRIPT  && $NVPTX_SCRIPT && $MUSL_SCRIPT && $UEFI_SCRIPT
95+ ENV  SCRIPT $WASM_WASIP_SCRIPT  && $NVPTX_SCRIPT && $MUSL_SCRIPT && $UEFI_SCRIPT
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments