From 4eba315526b05fe72817843d92046299b5b46be8 Mon Sep 17 00:00:00 2001 From: Piotr Sikora Date: Mon, 26 Oct 2020 10:51:20 +0000 Subject: [PATCH] Allow building for wasm32-wasi target. Signed-off-by: Piotr Sikora --- .github/workflows/rust.yml | 30 ++++++++++++++++++++++++++---- src/allocator.rs | 6 +++++- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 79776ffe..8340af02 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -89,17 +89,28 @@ jobs: run: | rustup toolchain install stable --component clippy --component rustfmt rustup target add wasm32-unknown-unknown + rustup target add wasm32-wasi - - name: Build + - name: Build (wasm32-unknown-unknown) env: RUSTFLAGS: -D warnings -C link-args=-S run: cargo build --release --all-targets --target=wasm32-unknown-unknown - - name: Format (clippy) + - name: Clippy (wasm32-unknown-unknown) env: RUSTFLAGS: -D warnings -C link-args=-S run: cargo clippy --release --all-targets --target=wasm32-unknown-unknown + - name: Build (wasm32-wasi) + env: + RUSTFLAGS: -D warnings -C link-args=-S + run: cargo build --release --all-targets --target=wasm32-wasi + + - name: Clippy (wasm32-wasi) + env: + RUSTFLAGS: -D warnings -C link-args=-S + run: cargo clippy --release --all-targets --target=wasm32-wasi + - name: Format (rustfmt) run: cargo fmt -- --check @@ -122,18 +133,29 @@ jobs: run: | rustup toolchain install nightly --component clippy --component rustfmt rustup +nightly target add wasm32-unknown-unknown + rustup +nightly target add wasm32-wasi rustup default nightly - - name: Build + - name: Build (wasm32-unknown-unknown) env: RUSTFLAGS: -D warnings -C link-args=-S run: cargo build --release --all-targets --target=wasm32-unknown-unknown - - name: Format (clippy) + - name: Clippy (wasm32-unknown-unknown) env: RUSTFLAGS: -D warnings -C link-args=-S run: cargo clippy --release --all-targets --target=wasm32-unknown-unknown + - name: Build (wasm32-wasi) + env: + RUSTFLAGS: -D warnings -C link-args=-S + run: cargo build --release --all-targets --target=wasm32-wasi + + - name: Clippy (wasm32-wasi) + env: + RUSTFLAGS: -D warnings -C link-args=-S + run: cargo clippy --release --all-targets --target=wasm32-wasi + - name: Format (rustfmt) run: cargo fmt -- --check diff --git a/src/allocator.rs b/src/allocator.rs index 5e66543b..3c708a60 100644 --- a/src/allocator.rs +++ b/src/allocator.rs @@ -15,8 +15,12 @@ #[global_allocator] static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; +#[cfg_attr( + all(target_arch = "wasm32", target_os = "unknown"), + export_name = "malloc" +)] #[no_mangle] -pub extern "C" fn malloc(size: usize) -> *mut u8 { +pub extern "C" fn proxy_on_memory_allocate(size: usize) -> *mut u8 { let mut vec: Vec = Vec::with_capacity(size); unsafe { vec.set_len(size);