From 88cc6b1a973e0712726bd114367221dbadce47a3 Mon Sep 17 00:00:00 2001 From: James Sturtevant Date: Tue, 8 Jul 2025 00:07:04 +0000 Subject: [PATCH] Update to use the latest wasi sdk Signed-off-by: James Sturtevant --- .devcontainer/Dockerfile | 2 +- .github/workflows/CreateDevcontainerImage.yml | 2 +- .github/workflows/dep_build_wasm_examples.yml | 2 +- src/hyperlight_wasm/scripts/build-wasm-examples.sh | 2 +- src/hyperlight_wasm_macro/Cargo.lock | 2 +- src/wasm_runtime/src/wasip1.rs | 7 +++++++ src/wasmsamples/compile-wasm.bat | 2 +- src/wasmsamples/dockerfile | 10 +++++----- 8 files changed, 18 insertions(+), 11 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 0c9cbce..4095d16 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -18,7 +18,7 @@ RUN apt-get install -y g++-multilib \ && apt-get install -y libgcc-${GCC_VERSION}-dev \ && apt-get install -y lib32gcc-${GCC_VERSION}-dev -ARG WASI_SDK_VERSION_FULL=20.0 +ARG WASI_SDK_VERSION_FULL=25.0 ARG WASI_SDK_VERSION_MAJOR=${WASI_SDK_VERSION_FULL%%.*} # Install wasi-sdk diff --git a/.github/workflows/CreateDevcontainerImage.yml b/.github/workflows/CreateDevcontainerImage.yml index aad47ab..a7fe4dc 100644 --- a/.github/workflows/CreateDevcontainerImage.yml +++ b/.github/workflows/CreateDevcontainerImage.yml @@ -18,7 +18,7 @@ env: LLVM_VERSION: 17 RUST_TOOLCHAIN_DEFAULT: 1.85.0 RUST_TOOLCHAIN_FILE: rust-toolchain.toml - WASI_SDK_VERSION_FULL: "20.0" + WASI_SDK_VERSION_FULL: "25.0" GCC_VERSION: "12" # There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu. diff --git a/.github/workflows/dep_build_wasm_examples.yml b/.github/workflows/dep_build_wasm_examples.yml index 0bc874a..5b99316 100644 --- a/.github/workflows/dep_build_wasm_examples.yml +++ b/.github/workflows/dep_build_wasm_examples.yml @@ -71,7 +71,7 @@ jobs: load: true push: ${{ env.DO_PUSH }} build-args: | - WASI_SDK_VERSION_FULL=20.0 + WASI_SDK_VERSION_FULL=25.0 GCC_VERSION=12 tags: ghcr.io/${{ github.repository_owner }}/wasm-clang-builder:latest cache-from: type=registry,ref=ghcr.io/${{ github.repository_owner }}/wasm-clang-builder:buildcache diff --git a/src/hyperlight_wasm/scripts/build-wasm-examples.sh b/src/hyperlight_wasm/scripts/build-wasm-examples.sh index 50ef684..a14a5d2 100755 --- a/src/hyperlight_wasm/scripts/build-wasm-examples.sh +++ b/src/hyperlight_wasm/scripts/build-wasm-examples.sh @@ -31,7 +31,7 @@ else docker pull ghcr.io/hyperlight-dev/wasm-clang-builder:latest - docker build --build-arg GCC_VERSION=12 --build-arg WASI_SDK_VERSION_FULL=20.0 --cache-from ghcr.io/hyperlight-dev/wasm-clang-builder:latest -t wasm-clang-builder:latest . 2> ${OUTPUT_DIR}/dockerbuild.log + docker build --build-arg GCC_VERSION=12 --build-arg WASI_SDK_VERSION_FULL=25.0 --cache-from ghcr.io/hyperlight-dev/wasm-clang-builder:latest -t wasm-clang-builder:latest . 2> ${OUTPUT_DIR}/dockerbuild.log for FILENAME in $(find . -name '*.c') do diff --git a/src/hyperlight_wasm_macro/Cargo.lock b/src/hyperlight_wasm_macro/Cargo.lock index 8f26920..3d2934b 100644 --- a/src/hyperlight_wasm_macro/Cargo.lock +++ b/src/hyperlight_wasm_macro/Cargo.lock @@ -53,7 +53,7 @@ dependencies = [ [[package]] name = "hyperlight-wasm-macro" -version = "0.1.0" +version = "0.7.0" dependencies = [ "hyperlight-component-util", "itertools", diff --git a/src/wasm_runtime/src/wasip1.rs b/src/wasm_runtime/src/wasip1.rs index e4c8881..0b235a1 100644 --- a/src/wasm_runtime/src/wasip1.rs +++ b/src/wasm_runtime/src/wasip1.rs @@ -81,6 +81,13 @@ pub(crate) fn register_handlers(linker: &mut Linker) -> Result<() linker.func_wrap("wasi_snapshot_preview1", "fd_close", |fd: i32| -> i32 { panic!("fd_close called {}", fd); })?; + linker.func_wrap( + "wasi_snapshot_preview1", + "random_get", + |buff: i32, len: i32| -> i32 { + panic!("random_get called for {} with len {}", buff, len); + }, + )?; linker.func_wrap( "wasi_snapshot_preview1", "fd_fdstat_get", diff --git a/src/wasmsamples/compile-wasm.bat b/src/wasmsamples/compile-wasm.bat index bd4b279..e4c7d10 100644 --- a/src/wasmsamples/compile-wasm.bat +++ b/src/wasmsamples/compile-wasm.bat @@ -18,7 +18,7 @@ where docker || ( echo Building docker image that has Wasm sdk. Should be quick if no changes to docker image. echo Log in %2\dockerbuild.log -%dockercmd% build --build-arg GCC_VERSION=12 --build-arg WASI_SDK_VERSION_FULL=20.0 --cache-from ghcr.io/hyperlight-dev/wasm-clang-builder:latest -t wasm-clang-builder:latest !dockerinput! 2> %2dockerbuild.log +%dockercmd% build --build-arg GCC_VERSION=12 --build-arg WASI_SDK_VERSION_FULL=25.0 --cache-from ghcr.io/hyperlight-dev/wasm-clang-builder:latest -t wasm-clang-builder:latest !dockerinput! 2> %2dockerbuild.log echo Building Wasm files in %1 and output to %2 for /R "%1" %%i in (*.c) do ( diff --git a/src/wasmsamples/dockerfile b/src/wasmsamples/dockerfile index 41d043c..1e3fde0 100644 --- a/src/wasmsamples/dockerfile +++ b/src/wasmsamples/dockerfile @@ -13,11 +13,11 @@ RUN apt-get install -y wget \ && apt-get install -y libgcc-${GCC_VERSION}-dev \ && apt-get install -y lib32gcc-${GCC_VERSION}-dev -ARG WASI_SDK_VERSION_FULL=20.0 +ARG WASI_SDK_VERSION_FULL=25.0 ARG WASI_SDK_VERSION_MAJOR=${WASI_SDK_VERSION_FULL%%.*} -RUN wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION_MAJOR}/wasi-sdk-${WASI_SDK_VERSION_FULL}-linux.tar.gz \ - && tar xvf wasi-sdk-${WASI_SDK_VERSION_FULL}-linux.tar.gz \ - && rm wasi-sdk-${WASI_SDK_VERSION_FULL}-linux.tar.gz \ - && mv /wasi-sdk-${WASI_SDK_VERSION_FULL} /opt/wasi-sdk +RUN wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION_MAJOR}/wasi-sdk-${WASI_SDK_VERSION_FULL}-x86_64-linux.tar.gz \ + && tar xvf wasi-sdk-${WASI_SDK_VERSION_FULL}-x86_64-linux.tar.gz \ + && rm wasi-sdk-${WASI_SDK_VERSION_FULL}-x86_64-linux.tar.gz \ + && mv /wasi-sdk-${WASI_SDK_VERSION_FULL}-x86_64-linux /opt/wasi-sdk CMD ["/bin/sh"]