Skip to content

Commit 156318f

Browse files
authored
Use wasi-sdk-20 to build wasi-threads cases in CI (#2095)
wasi-sdk-20 supports older versions of glibc and allow us to use it in the CI with Ubuntu 20.04. Refer to https://github.com/WebAssembly/wasi-sdk/releases/tag/wasi-sdk-20 And #2021 for previous upgrade to wasi-sdk-20 pre-release.
1 parent aaf671d commit 156318f

File tree

4 files changed

+21
-64
lines changed

4 files changed

+21
-64
lines changed

.github/workflows/compilation_on_android_ubuntu.yml

Lines changed: 18 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ jobs:
274274
os: [ubuntu-20.04, ubuntu-22.04]
275275
wasi_sdk_release:
276276
[
277-
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz",
277+
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
278278
]
279279
wabt_release:
280280
[
@@ -334,17 +334,14 @@ jobs:
334334
strategy:
335335
matrix:
336336
os: [ubuntu-20.04, ubuntu-22.04]
337-
include:
338-
- os: ubuntu-20.04
339-
wasi_sdk_release: "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz"
340-
wabt_release: "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz"
341-
wasi_sdk_folder_name: "wasi-sdk-19.0"
342-
wasi_sysroot_option: "-DWASI_SYSROOT=`pwd`/../../../core/deps/wasi-libc/sysroot"
343-
- os: ubuntu-22.04
344-
wasi_sdk_release: "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20%2Bthreads/wasi-sdk-20.0.threads-linux.tar.gz"
345-
wabt_release: "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz"
346-
wasi_sdk_folder_name: "wasi-sdk-20.0+threads"
347-
wasi_sysroot_option: ""
337+
wasi_sdk_release:
338+
[
339+
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz"
340+
]
341+
wabt_release:
342+
[
343+
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz"
344+
]
348345
steps:
349346
- name: checkout
350347
uses: actions/checkout@v3
@@ -354,7 +351,7 @@ jobs:
354351
cd /opt
355352
sudo wget ${{ matrix.wasi_sdk_release }}
356353
sudo tar -xzf wasi-sdk-*.tar.gz
357-
sudo mv ${{ matrix.wasi_sdk_folder_name }} wasi-sdk
354+
sudo mv wasi-sdk-20.0 wasi-sdk
358355
359356
- name: download and install wabt
360357
run: |
@@ -363,23 +360,6 @@ jobs:
363360
sudo tar -xzf wabt-1.0.31-*.tar.gz
364361
sudo mv wabt-1.0.31 wabt
365362
366-
- name: build wasi-libc (needed for wasi-threads)
367-
if: matrix.os == 'ubuntu-20.04'
368-
run: |
369-
mkdir wasi-libc
370-
cd wasi-libc
371-
git init
372-
# "Fix a_store operation in atomic.h" commit on main branch
373-
git fetch https://github.com/WebAssembly/wasi-libc \
374-
1dfe5c302d1c5ab621f7abf04620fae92700fd22
375-
git checkout FETCH_HEAD
376-
make -j \
377-
AR=/opt/wasi-sdk/bin/llvm-ar \
378-
NM=/opt/wasi-sdk/bin/llvm-nm \
379-
CC=/opt/wasi-sdk/bin/clang \
380-
THREAD_MODEL=posix
381-
working-directory: core/deps
382-
383363
- name: Build Sample [basic]
384364
run: |
385365
cd samples/basic
@@ -437,7 +417,7 @@ jobs:
437417
run: |
438418
cd samples/wasi-threads
439419
mkdir build && cd build
440-
cmake ${{ matrix.wasi_sysroot_option }} ..
420+
cmake ..
441421
cmake --build . --config Release --parallel 4
442422
./iwasm wasm-apps/no_pthread.wasm
443423
@@ -470,20 +450,16 @@ jobs:
470450
$THREADS_TEST_OPTIONS,
471451
$WASI_TEST_OPTIONS,
472452
]
453+
wasi_sdk_release:
454+
[
455+
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz"
456+
]
473457
include:
474458
- os: ubuntu-20.04
475459
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
476-
wasi_sdk_release: "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz"
477-
wabt_release: "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz"
478-
wasi_sdk_folder_name: "wasi-sdk-19.0"
479-
wasi_sysroot_option: "WASI_SYSROOT_OPTION='--sysroot ../../../../../core/deps/wasi-libc/sysroot'"
480460
ubuntu_version: "20.04"
481461
- os: ubuntu-22.04
482462
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
483-
wasi_sdk_release: "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20%2Bthreads/wasi-sdk-20.0.threads-linux.tar.gz"
484-
wabt_release: "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz"
485-
wasi_sdk_folder_name: "wasi-sdk-20.0+threads"
486-
wasi_sysroot_option: ""
487463
ubuntu_version: "22.04"
488464
exclude:
489465
# uncompatiable modes and features
@@ -525,24 +501,7 @@ jobs:
525501
cd /opt
526502
sudo wget ${{ matrix.wasi_sdk_release }}
527503
sudo tar -xzf wasi-sdk-*.tar.gz
528-
sudo mv ${{ matrix.wasi_sdk_folder_name }} wasi-sdk
529-
530-
- name: build wasi-libc (needed for wasi-threads)
531-
if: matrix.os == 'ubuntu-20.04' && matrix.test_option == '$WASI_TEST_OPTIONS'
532-
run: |
533-
mkdir wasi-libc
534-
cd wasi-libc
535-
git init
536-
# "Fix a_store operation in atomic.h" commit on main branch
537-
git fetch https://github.com/WebAssembly/wasi-libc \
538-
1dfe5c302d1c5ab621f7abf04620fae92700fd22
539-
git checkout FETCH_HEAD
540-
make -j \
541-
AR=/opt/wasi-sdk/bin/llvm-ar \
542-
NM=/opt/wasi-sdk/bin/llvm-nm \
543-
CC=/opt/wasi-sdk/bin/clang \
544-
THREAD_MODEL=posix
545-
working-directory: core/deps
504+
sudo mv wasi-sdk-20.0 wasi-sdk
546505
547506
- name: set env variable(if llvm are used)
548507
if: matrix.running_mode == 'aot' || matrix.running_mode == 'jit' || matrix.running_mode == 'multi-tier-jit'
@@ -579,12 +538,12 @@ jobs:
579538

580539
- name: Build WASI thread tests
581540
if: matrix.test_option == '$WASI_TEST_OPTIONS'
582-
run: ${{ matrix.wasi_sysroot_option }} bash build.sh
541+
run: bash build.sh
583542
working-directory: ./core/iwasm/libraries/lib-wasi-threads/test/
584543

585544
- name: build socket api tests
586545
if: matrix.test_option == '$WASI_TEST_OPTIONS'
587-
run: ${{ matrix.wasi_sysroot_option }} bash build.sh
546+
run: bash build.sh
588547
working-directory: ./core/iwasm/libraries/lib-socket/test/
589548

590549
- name: run tests

.github/workflows/compilation_on_macos.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ jobs:
218218
os: [macos-latest]
219219
wasi_sdk_release:
220220
[
221-
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-macos.tar.gz",
221+
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz",
222222
]
223223
wabt_release:
224224
[
@@ -250,7 +250,7 @@ jobs:
250250
os: [macos-latest]
251251
wasi_sdk_release:
252252
[
253-
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20%2Bthreads/wasi-sdk-20.0.threads-macos.tar.gz",
253+
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz",
254254
]
255255
wabt_release:
256256
[
@@ -265,7 +265,7 @@ jobs:
265265
cd /opt
266266
sudo wget ${{ matrix.wasi_sdk_release }}
267267
sudo tar -xzf wasi-sdk-*.tar.gz
268-
sudo mv wasi-sdk-20.0+threads wasi-sdk
268+
sudo mv wasi-sdk-20.0 wasi-sdk
269269
270270
- name: download and install wabt
271271
run: |

core/iwasm/libraries/lib-socket/test/build.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ for file in "${files[@]}"
1111
do
1212
echo $file
1313
$CC \
14-
$WASI_SYSROOT_OPTION \
1514
--target=wasm32-wasi-threads \
1615
-I../inc \
1716
../src/wasi/wasi_socket_ext.c -pthread -ftls-model=local-exec \

core/iwasm/libraries/lib-wasi-threads/test/build.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ for test_c in *.c; do
1414

1515
echo "Compiling $test_c to $test_wasm"
1616
$CC \
17-
$WASI_SYSROOT_OPTION \
1817
-target wasm32-wasi-threads \
1918
-pthread -ftls-model=local-exec \
2019
-z stack-size=32768 \

0 commit comments

Comments
 (0)