This commit contains the final changes requires for porting all C code to Rust and from emscripten to llvm: - tools/wasm-patch-indirect-function-table.js: A script that rewrites the wasm generated by llvm to remove the table limit - tools/rust-lld-wrapper: A wrapper around rust-lld that removes arguments forced by rustc that break compilation for us - src/rust/cpu2/Makefile: A monstrosity to postprocess c2rust's output - gen/generate_interpreter.js: Ported to produce Rust instead of C - src/rust/*: A few functions and macros to connect the old Rust code and the new Rust code - src/*.js: Removes the loading of the old emscripten wasm module and adapts imports and exports from emscripten to llvm
17 lines
782 B
Docker
17 lines
782 B
Docker
FROM ttt43ttt/emscripten
|
|
|
|
RUN \
|
|
dpkg --add-architecture i386 && \
|
|
apt-get update -qq && \
|
|
apt-get install -y clang-tidy gcc-multilib nasm gdb unzip openjdk-8-jre wget python python3 qemu-system-x86 && \
|
|
wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.xz && \
|
|
tar xfv node-v8.9.4-linux-x64.tar.xz && \
|
|
rm node-v8.9.4-linux-x64.tar.xz && \
|
|
wget https://sh.rustup.rs -O rustup.sh && \
|
|
sh ./rustup.sh -y && \
|
|
rm ./rustup.sh && \
|
|
export PATH="$HOME/.cargo/bin:$PATH" && \
|
|
rustup toolchain install nightly && \
|
|
rustup default nightly && \
|
|
rustup target add wasm32-unknown-unknown --toolchain nightly && \
|
|
rustup component add rustfmt-preview --toolchain nightly
|