Skip to content

Commit 2b0e2b1

Browse files
authored
Disable WASI on CI (#215)
This accidentally worked before but `crypto/uid.c` references nonexistent functions in the WASI SDK which no longer works with more recent versions of Clang in an updated WASI SDK. Currently WASI SDK I think has a bug when compiled against the latest version of LLVM (pulled in with updated rustc) which causes CI failures as well. I've updated the configuration here to pull in a newer WASI SDK which exposes the failure to build with `crypto/uid.c`, but I unfortunately don't have time to track this further right now.
1 parent 4238eed commit 2b0e2b1

File tree

4 files changed

+8
-7
lines changed

4 files changed

+8
-7
lines changed

.github/workflows/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ jobs:
5959
- target: x86_64-pc-windows-gnu
6060
rust: stable
6161
os: ubuntu-latest
62-
- target: wasm32-wasi
63-
rust: stable
64-
os: ubuntu-latest
62+
# - target: wasm32-wasi
63+
# rust: stable
64+
# os: ubuntu-latest
6565
- target: i686-pc-windows-msvc
6666
rust: stable-i686-msvc
6767
os: windows-2019

ci/docker/wasm32-wasi/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM ubuntu:18.04
1+
FROM ubuntu:22.04
22

33
RUN apt-get update -y && apt-get install -y --no-install-recommends \
44
ca-certificates \
@@ -9,12 +9,11 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \
99
xz-utils \
1010
libc6-dev
1111

12-
# cargo-wasi setup (cargo-wasi depends on wasmtime to be present)
1312
RUN curl https://wasmtime.dev/install.sh -sSf | bash
1413
ENV PATH="$PATH:/root/.wasmtime/bin"
1514

1615
# Install WASI-SDK
17-
ENV WASI_VERSION=14
16+
ENV WASI_VERSION=20
1817
ENV WASI_VERSION_FULL=${WASI_VERSION}.0
1918
RUN wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz
2019
RUN tar xvf wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz -C /root
@@ -23,6 +22,7 @@ RUN tar xvf wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz -C /root
2322
ENV WASI_SDK_PATH=/root/wasi-sdk-${WASI_VERSION_FULL}
2423
ENV CC_wasm32-wasi="${WASI_SDK_PATH}/bin/clang --sysroot=${WASI_SDK_PATH}/share/wasi-sysroot"
2524
ENV CARGO_TARGET_WASM32_WASI_LINKER="${WASI_SDK_PATH}/bin/clang"
25+
ENV CARGO_TARGET_WASM32_WASI_RUNNER=wasmtime
2626

2727
ENV RUSTFLAGS=-Ctarget-feature=-crt-static
2828

ci/run.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ testcrate_dir="$(pwd)/testcrate"
66
set -ex
77

88
export CARGO_TARGET_AARCH64_APPLE_DARWIN_RUNNER=echo
9-
export CARGO_TARGET_WASM32_WASI_RUNNER=wasmtime
109

1110
cargo test --manifest-path "$testcrate_dir/Cargo.toml" --target $target -vvv
1211
cargo test --manifest-path "$testcrate_dir/Cargo.toml" --target $target -vvv --release

src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,8 @@ impl Build {
505505
// -D_WASI_EMULATED_GETPID and link with -lwasi-emulated-getpid
506506
// The link argument is output in the `Artifacts::print_cargo_metadata` method
507507
"-D_WASI_EMULATED_GETPID",
508+
// WASI doesn't have chmod right now, so don't try to use it.
509+
"-DNO_CHMOD",
508510
]);
509511
}
510512

0 commit comments

Comments
 (0)