diff --git a/.github/workflows/compilation_on_android_ubuntu.yml b/.github/workflows/compilation_on_android_ubuntu.yml index 06a92100..fd983167 100644 --- a/.github/workflows/compilation_on_android_ubuntu.yml +++ b/.github/workflows/compilation_on_android_ubuntu.yml @@ -232,7 +232,7 @@ jobs: os: [ubuntu-20.04, ubuntu-22.04] wasi_sdk_release: [ - "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz", + "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-16/wasi-sdk-16.0-linux.tar.gz", ] wabt_release: [ @@ -299,7 +299,7 @@ jobs: os: [ubuntu-20.04, ubuntu-22.04] wasi_sdk_release: [ - "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz", + "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-16/wasi-sdk-16.0-linux.tar.gz", ] wabt_release: [ @@ -313,8 +313,8 @@ jobs: run: | cd /opt sudo wget ${{ matrix.wasi_sdk_release }} - sudo tar -xzf wasi-sdk-12.0-*.tar.gz - sudo mv wasi-sdk-12.0 wasi-sdk + sudo tar -xzf wasi-sdk-16.0-*.tar.gz + sudo mv wasi-sdk-16.0 wasi-sdk - name: download and install wabt run: | @@ -323,6 +323,17 @@ jobs: sudo tar -xzf wabt-1.0.24-*.tar.gz sudo mv wabt-1.0.24 wabt + - name: build wasi-libc (needed for wasi-threads) + run: | + git clone --branch wasi-sdk-17 https://github.com/WebAssembly/wasi-libc + cd wasi-libc + make \ + AR=/opt/wasi-sdk/bin/llvm-ar \ + NM=/opt/wasi-sdk/bin/llvm-nm \ + CC=/opt/wasi-sdk/bin/clang \ + THREAD_MODEL=posix + working-directory: core/deps + - name: Build Sample [basic] run: | cd samples/basic @@ -376,6 +387,14 @@ jobs: exit $? working-directory: ./samples/simple + - name: Build Sample [wasi-threads] + run: | + cd samples/wasi-threads + mkdir build && cd build + cmake -DWASI_SYSROOT=`pwd`/../../../core/deps/wasi-libc/sysroot .. + cmake --build . --config Release --parallel 4 + ./iwasm wasm-apps/no_pthread.wasm + spec_test: needs: [build_iwasm, build_llvm_libraries, build_wamrc] runs-on: ubuntu-20.04 diff --git a/.github/workflows/compilation_on_macos.yml b/.github/workflows/compilation_on_macos.yml index 73ebec89..1e5ff415 100644 --- a/.github/workflows/compilation_on_macos.yml +++ b/.github/workflows/compilation_on_macos.yml @@ -210,7 +210,7 @@ jobs: #$AOT_BUILD_OPTIONS, ] os: [macos-latest] - wasi_sdk_release: ["https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-macos.tar.gz"] + wasi_sdk_release: ["https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-16/wasi-sdk-16.0-macos.tar.gz"] wabt_release: ["https://github.com/WebAssembly/wabt/releases/download/1.0.24/wabt-1.0.24-macos.tar.gz"] steps: - name: checkout @@ -246,7 +246,7 @@ jobs: strategy: matrix: os: [macos-latest] - wasi_sdk_release: ["https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-macos.tar.gz"] + wasi_sdk_release: ["https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-16/wasi-sdk-16.0-macos.tar.gz"] wabt_release: ["https://github.com/WebAssembly/wabt/releases/download/1.0.24/wabt-1.0.24-macos.tar.gz"] steps: - name: checkout @@ -256,8 +256,8 @@ jobs: run: | cd /opt sudo wget ${{ matrix.wasi_sdk_release }} - sudo tar -xzf wasi-sdk-12.0-*.tar.gz - sudo mv wasi-sdk-12.0 wasi-sdk + sudo tar -xzf wasi-sdk-16.0-*.tar.gz + sudo mv wasi-sdk-16.0 wasi-sdk - name: download and install wabt run: | @@ -266,6 +266,17 @@ jobs: sudo tar -xzf wabt-1.0.24-*.tar.gz sudo mv wabt-1.0.24 wabt + - name: build wasi-libc (needed for wasi-threads) + run: | + git clone --branch wasi-sdk-17 https://github.com/WebAssembly/wasi-libc + cd wasi-libc + make \ + AR=/opt/wasi-sdk/bin/llvm-ar \ + NM=/opt/wasi-sdk/bin/llvm-nm \ + CC=/opt/wasi-sdk/bin/clang \ + THREAD_MODEL=posix + working-directory: core/deps + - name: Build Sample [basic] run: | cd samples/basic @@ -311,3 +322,11 @@ jobs: cmake .. cmake --build . --config Release --parallel 4 ./hello + + - name: Build Sample [wasi-threads] + run: | + cd samples/wasi-threads + mkdir build && cd build + cmake -DWASI_SYSROOT=`pwd`/../../../core/deps/wasi-libc/sysroot .. + cmake --build . --config Release --parallel 4 + ./iwasm wasm-apps/no_pthread.wasm \ No newline at end of file diff --git a/.github/workflows/compilation_on_sgx.yml b/.github/workflows/compilation_on_sgx.yml index 70eeaec0..c4d4142d 100644 --- a/.github/workflows/compilation_on_sgx.yml +++ b/.github/workflows/compilation_on_sgx.yml @@ -244,7 +244,7 @@ jobs: os: [ubuntu-20.04] wasi_sdk_release: [ - "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz", + "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-16/wasi-sdk-16.0-linux.tar.gz", ] wabt_release: [ @@ -258,8 +258,8 @@ jobs: run: | cd /opt sudo wget ${{ matrix.wasi_sdk_release }} - sudo tar -xzf wasi-sdk-12.0-*.tar.gz - sudo mv wasi-sdk-12.0 wasi-sdk + sudo tar -xzf wasi-sdk-16.0-*.tar.gz + sudo mv wasi-sdk-16.0 wasi-sdk - name: download and install wabt run: | @@ -268,6 +268,17 @@ jobs: sudo tar -xzf wabt-1.0.24-*.tar.gz sudo mv wabt-1.0.24 wabt + - name: build wasi-libc (needed for wasi-threads) + run: | + git clone --branch wasi-sdk-17 https://github.com/WebAssembly/wasi-libc + cd wasi-libc + make \ + AR=/opt/wasi-sdk/bin/llvm-ar \ + NM=/opt/wasi-sdk/bin/llvm-nm \ + CC=/opt/wasi-sdk/bin/clang \ + THREAD_MODEL=posix + working-directory: core/deps + - name: install SGX SDK and necessary libraries run: | mkdir -p /opt/intel @@ -327,6 +338,14 @@ jobs: cmake --build . --config Release --parallel 4 ./hello + - name: Build Sample [wasi-threads] + run: | + cd samples/wasi-threads + mkdir build && cd build + cmake -DWASI_SYSROOT=`pwd`/../../../core/deps/wasi-libc/sysroot .. + cmake --build . --config Release --parallel 4 + ./iwasm wasm-apps/no_pthread.wasm + spec_test_default: needs: [build_iwasm, build_llvm_libraries, build_wamrc] runs-on: ubuntu-20.04 diff --git a/samples/wasi-threads/wasm-apps/CMakeLists.txt b/samples/wasi-threads/wasm-apps/CMakeLists.txt index 25dba40b..59f48713 100644 --- a/samples/wasi-threads/wasm-apps/CMakeLists.txt +++ b/samples/wasi-threads/wasm-apps/CMakeLists.txt @@ -29,6 +29,8 @@ function (compile_sample SOURCE_FILE) LINKER:--export=__data_end LINKER:--shared-memory,--max-memory=1966080 LINKER:--export=wasi_thread_start + LINKER:--export=malloc + LINKER:--export=free ) endfunction ()