Skip to content

Commit 7d19b22

Browse files
authored
feat(wasi-threads): Add CI for WASI threads (#1819)
Update wasi-sdk from 12.0 to 16.0 in CI Build wasi-libc and build wai-threads sample in CI
1 parent e8ce4c5 commit 7d19b22

4 files changed

Lines changed: 70 additions & 11 deletions

File tree

.github/workflows/compilation_on_android_ubuntu.yml

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ jobs:
232232
os: [ubuntu-20.04, ubuntu-22.04]
233233
wasi_sdk_release:
234234
[
235-
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz",
235+
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-16/wasi-sdk-16.0-linux.tar.gz",
236236
]
237237
wabt_release:
238238
[
@@ -299,7 +299,7 @@ jobs:
299299
os: [ubuntu-20.04, ubuntu-22.04]
300300
wasi_sdk_release:
301301
[
302-
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz",
302+
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-16/wasi-sdk-16.0-linux.tar.gz",
303303
]
304304
wabt_release:
305305
[
@@ -313,8 +313,8 @@ jobs:
313313
run: |
314314
cd /opt
315315
sudo wget ${{ matrix.wasi_sdk_release }}
316-
sudo tar -xzf wasi-sdk-12.0-*.tar.gz
317-
sudo mv wasi-sdk-12.0 wasi-sdk
316+
sudo tar -xzf wasi-sdk-16.0-*.tar.gz
317+
sudo mv wasi-sdk-16.0 wasi-sdk
318318
319319
- name: download and install wabt
320320
run: |
@@ -323,6 +323,17 @@ jobs:
323323
sudo tar -xzf wabt-1.0.24-*.tar.gz
324324
sudo mv wabt-1.0.24 wabt
325325
326+
- name: build wasi-libc (needed for wasi-threads)
327+
run: |
328+
git clone --branch wasi-sdk-17 https://github.com/WebAssembly/wasi-libc
329+
cd wasi-libc
330+
make \
331+
AR=/opt/wasi-sdk/bin/llvm-ar \
332+
NM=/opt/wasi-sdk/bin/llvm-nm \
333+
CC=/opt/wasi-sdk/bin/clang \
334+
THREAD_MODEL=posix
335+
working-directory: core/deps
336+
326337
- name: Build Sample [basic]
327338
run: |
328339
cd samples/basic
@@ -376,6 +387,14 @@ jobs:
376387
exit $?
377388
working-directory: ./samples/simple
378389

390+
- name: Build Sample [wasi-threads]
391+
run: |
392+
cd samples/wasi-threads
393+
mkdir build && cd build
394+
cmake -DWASI_SYSROOT=`pwd`/../../../core/deps/wasi-libc/sysroot ..
395+
cmake --build . --config Release --parallel 4
396+
./iwasm wasm-apps/no_pthread.wasm
397+
379398
spec_test:
380399
needs: [build_iwasm, build_llvm_libraries, build_wamrc]
381400
runs-on: ubuntu-20.04

.github/workflows/compilation_on_macos.yml

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ jobs:
210210
#$AOT_BUILD_OPTIONS,
211211
]
212212
os: [macos-latest]
213-
wasi_sdk_release: ["https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-macos.tar.gz"]
213+
wasi_sdk_release: ["https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-16/wasi-sdk-16.0-macos.tar.gz"]
214214
wabt_release: ["https://github.com/WebAssembly/wabt/releases/download/1.0.24/wabt-1.0.24-macos.tar.gz"]
215215
steps:
216216
- name: checkout
@@ -246,7 +246,7 @@ jobs:
246246
strategy:
247247
matrix:
248248
os: [macos-latest]
249-
wasi_sdk_release: ["https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-macos.tar.gz"]
249+
wasi_sdk_release: ["https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-16/wasi-sdk-16.0-macos.tar.gz"]
250250
wabt_release: ["https://github.com/WebAssembly/wabt/releases/download/1.0.24/wabt-1.0.24-macos.tar.gz"]
251251
steps:
252252
- name: checkout
@@ -256,8 +256,8 @@ jobs:
256256
run: |
257257
cd /opt
258258
sudo wget ${{ matrix.wasi_sdk_release }}
259-
sudo tar -xzf wasi-sdk-12.0-*.tar.gz
260-
sudo mv wasi-sdk-12.0 wasi-sdk
259+
sudo tar -xzf wasi-sdk-16.0-*.tar.gz
260+
sudo mv wasi-sdk-16.0 wasi-sdk
261261
262262
- name: download and install wabt
263263
run: |
@@ -266,6 +266,17 @@ jobs:
266266
sudo tar -xzf wabt-1.0.24-*.tar.gz
267267
sudo mv wabt-1.0.24 wabt
268268
269+
- name: build wasi-libc (needed for wasi-threads)
270+
run: |
271+
git clone --branch wasi-sdk-17 https://github.com/WebAssembly/wasi-libc
272+
cd wasi-libc
273+
make \
274+
AR=/opt/wasi-sdk/bin/llvm-ar \
275+
NM=/opt/wasi-sdk/bin/llvm-nm \
276+
CC=/opt/wasi-sdk/bin/clang \
277+
THREAD_MODEL=posix
278+
working-directory: core/deps
279+
269280
- name: Build Sample [basic]
270281
run: |
271282
cd samples/basic
@@ -311,3 +322,11 @@ jobs:
311322
cmake ..
312323
cmake --build . --config Release --parallel 4
313324
./hello
325+
326+
- name: Build Sample [wasi-threads]
327+
run: |
328+
cd samples/wasi-threads
329+
mkdir build && cd build
330+
cmake -DWASI_SYSROOT=`pwd`/../../../core/deps/wasi-libc/sysroot ..
331+
cmake --build . --config Release --parallel 4
332+
./iwasm wasm-apps/no_pthread.wasm

.github/workflows/compilation_on_sgx.yml

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ jobs:
244244
os: [ubuntu-20.04]
245245
wasi_sdk_release:
246246
[
247-
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz",
247+
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-16/wasi-sdk-16.0-linux.tar.gz",
248248
]
249249
wabt_release:
250250
[
@@ -258,8 +258,8 @@ jobs:
258258
run: |
259259
cd /opt
260260
sudo wget ${{ matrix.wasi_sdk_release }}
261-
sudo tar -xzf wasi-sdk-12.0-*.tar.gz
262-
sudo mv wasi-sdk-12.0 wasi-sdk
261+
sudo tar -xzf wasi-sdk-16.0-*.tar.gz
262+
sudo mv wasi-sdk-16.0 wasi-sdk
263263
264264
- name: download and install wabt
265265
run: |
@@ -268,6 +268,17 @@ jobs:
268268
sudo tar -xzf wabt-1.0.24-*.tar.gz
269269
sudo mv wabt-1.0.24 wabt
270270
271+
- name: build wasi-libc (needed for wasi-threads)
272+
run: |
273+
git clone --branch wasi-sdk-17 https://github.com/WebAssembly/wasi-libc
274+
cd wasi-libc
275+
make \
276+
AR=/opt/wasi-sdk/bin/llvm-ar \
277+
NM=/opt/wasi-sdk/bin/llvm-nm \
278+
CC=/opt/wasi-sdk/bin/clang \
279+
THREAD_MODEL=posix
280+
working-directory: core/deps
281+
271282
- name: install SGX SDK and necessary libraries
272283
run: |
273284
mkdir -p /opt/intel
@@ -327,6 +338,14 @@ jobs:
327338
cmake --build . --config Release --parallel 4
328339
./hello
329340
341+
- name: Build Sample [wasi-threads]
342+
run: |
343+
cd samples/wasi-threads
344+
mkdir build && cd build
345+
cmake -DWASI_SYSROOT=`pwd`/../../../core/deps/wasi-libc/sysroot ..
346+
cmake --build . --config Release --parallel 4
347+
./iwasm wasm-apps/no_pthread.wasm
348+
330349
spec_test_default:
331350
needs: [build_iwasm, build_llvm_libraries, build_wamrc]
332351
runs-on: ubuntu-20.04

samples/wasi-threads/wasm-apps/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ function (compile_sample SOURCE_FILE)
2929
LINKER:--export=__data_end
3030
LINKER:--shared-memory,--max-memory=1966080
3131
LINKER:--export=wasi_thread_start
32+
LINKER:--export=malloc
33+
LINKER:--export=free
3234
)
3335
endfunction ()
3436

0 commit comments

Comments
 (0)