mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-05-08 20:56:13 +00:00
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.
This commit is contained in:
parent
aaf671d688
commit
156318f0d4
|
@ -274,7 +274,7 @@ jobs:
|
||||||
os: [ubuntu-20.04, ubuntu-22.04]
|
os: [ubuntu-20.04, ubuntu-22.04]
|
||||||
wasi_sdk_release:
|
wasi_sdk_release:
|
||||||
[
|
[
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz",
|
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
|
||||||
]
|
]
|
||||||
wabt_release:
|
wabt_release:
|
||||||
[
|
[
|
||||||
|
@ -334,17 +334,14 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-20.04, ubuntu-22.04]
|
os: [ubuntu-20.04, ubuntu-22.04]
|
||||||
include:
|
wasi_sdk_release:
|
||||||
- os: ubuntu-20.04
|
[
|
||||||
wasi_sdk_release: "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz"
|
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz"
|
||||||
wabt_release: "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz"
|
]
|
||||||
wasi_sdk_folder_name: "wasi-sdk-19.0"
|
wabt_release:
|
||||||
wasi_sysroot_option: "-DWASI_SYSROOT=`pwd`/../../../core/deps/wasi-libc/sysroot"
|
[
|
||||||
- os: ubuntu-22.04
|
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz"
|
||||||
wasi_sdk_release: "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20%2Bthreads/wasi-sdk-20.0.threads-linux.tar.gz"
|
]
|
||||||
wabt_release: "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz"
|
|
||||||
wasi_sdk_folder_name: "wasi-sdk-20.0+threads"
|
|
||||||
wasi_sysroot_option: ""
|
|
||||||
steps:
|
steps:
|
||||||
- name: checkout
|
- name: checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
@ -354,7 +351,7 @@ jobs:
|
||||||
cd /opt
|
cd /opt
|
||||||
sudo wget ${{ matrix.wasi_sdk_release }}
|
sudo wget ${{ matrix.wasi_sdk_release }}
|
||||||
sudo tar -xzf wasi-sdk-*.tar.gz
|
sudo tar -xzf wasi-sdk-*.tar.gz
|
||||||
sudo mv ${{ matrix.wasi_sdk_folder_name }} wasi-sdk
|
sudo mv wasi-sdk-20.0 wasi-sdk
|
||||||
|
|
||||||
- name: download and install wabt
|
- name: download and install wabt
|
||||||
run: |
|
run: |
|
||||||
|
@ -363,23 +360,6 @@ jobs:
|
||||||
sudo tar -xzf wabt-1.0.31-*.tar.gz
|
sudo tar -xzf wabt-1.0.31-*.tar.gz
|
||||||
sudo mv wabt-1.0.31 wabt
|
sudo mv wabt-1.0.31 wabt
|
||||||
|
|
||||||
- name: build wasi-libc (needed for wasi-threads)
|
|
||||||
if: matrix.os == 'ubuntu-20.04'
|
|
||||||
run: |
|
|
||||||
mkdir wasi-libc
|
|
||||||
cd wasi-libc
|
|
||||||
git init
|
|
||||||
# "Fix a_store operation in atomic.h" commit on main branch
|
|
||||||
git fetch https://github.com/WebAssembly/wasi-libc \
|
|
||||||
1dfe5c302d1c5ab621f7abf04620fae92700fd22
|
|
||||||
git checkout FETCH_HEAD
|
|
||||||
make -j \
|
|
||||||
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]
|
- name: Build Sample [basic]
|
||||||
run: |
|
run: |
|
||||||
cd samples/basic
|
cd samples/basic
|
||||||
|
@ -437,7 +417,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
cd samples/wasi-threads
|
cd samples/wasi-threads
|
||||||
mkdir build && cd build
|
mkdir build && cd build
|
||||||
cmake ${{ matrix.wasi_sysroot_option }} ..
|
cmake ..
|
||||||
cmake --build . --config Release --parallel 4
|
cmake --build . --config Release --parallel 4
|
||||||
./iwasm wasm-apps/no_pthread.wasm
|
./iwasm wasm-apps/no_pthread.wasm
|
||||||
|
|
||||||
|
@ -470,20 +450,16 @@ jobs:
|
||||||
$THREADS_TEST_OPTIONS,
|
$THREADS_TEST_OPTIONS,
|
||||||
$WASI_TEST_OPTIONS,
|
$WASI_TEST_OPTIONS,
|
||||||
]
|
]
|
||||||
|
wasi_sdk_release:
|
||||||
|
[
|
||||||
|
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz"
|
||||||
|
]
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-20.04
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
|
||||||
wasi_sdk_release: "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz"
|
|
||||||
wabt_release: "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz"
|
|
||||||
wasi_sdk_folder_name: "wasi-sdk-19.0"
|
|
||||||
wasi_sysroot_option: "WASI_SYSROOT_OPTION='--sysroot ../../../../../core/deps/wasi-libc/sysroot'"
|
|
||||||
ubuntu_version: "20.04"
|
ubuntu_version: "20.04"
|
||||||
- os: ubuntu-22.04
|
- os: ubuntu-22.04
|
||||||
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
||||||
wasi_sdk_release: "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20%2Bthreads/wasi-sdk-20.0.threads-linux.tar.gz"
|
|
||||||
wabt_release: "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz"
|
|
||||||
wasi_sdk_folder_name: "wasi-sdk-20.0+threads"
|
|
||||||
wasi_sysroot_option: ""
|
|
||||||
ubuntu_version: "22.04"
|
ubuntu_version: "22.04"
|
||||||
exclude:
|
exclude:
|
||||||
# uncompatiable modes and features
|
# uncompatiable modes and features
|
||||||
|
@ -525,24 +501,7 @@ jobs:
|
||||||
cd /opt
|
cd /opt
|
||||||
sudo wget ${{ matrix.wasi_sdk_release }}
|
sudo wget ${{ matrix.wasi_sdk_release }}
|
||||||
sudo tar -xzf wasi-sdk-*.tar.gz
|
sudo tar -xzf wasi-sdk-*.tar.gz
|
||||||
sudo mv ${{ matrix.wasi_sdk_folder_name }} wasi-sdk
|
sudo mv wasi-sdk-20.0 wasi-sdk
|
||||||
|
|
||||||
- name: build wasi-libc (needed for wasi-threads)
|
|
||||||
if: matrix.os == 'ubuntu-20.04' && matrix.test_option == '$WASI_TEST_OPTIONS'
|
|
||||||
run: |
|
|
||||||
mkdir wasi-libc
|
|
||||||
cd wasi-libc
|
|
||||||
git init
|
|
||||||
# "Fix a_store operation in atomic.h" commit on main branch
|
|
||||||
git fetch https://github.com/WebAssembly/wasi-libc \
|
|
||||||
1dfe5c302d1c5ab621f7abf04620fae92700fd22
|
|
||||||
git checkout FETCH_HEAD
|
|
||||||
make -j \
|
|
||||||
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: set env variable(if llvm are used)
|
- name: set env variable(if llvm are used)
|
||||||
if: matrix.running_mode == 'aot' || matrix.running_mode == 'jit' || matrix.running_mode == 'multi-tier-jit'
|
if: matrix.running_mode == 'aot' || matrix.running_mode == 'jit' || matrix.running_mode == 'multi-tier-jit'
|
||||||
|
@ -579,12 +538,12 @@ jobs:
|
||||||
|
|
||||||
- name: Build WASI thread tests
|
- name: Build WASI thread tests
|
||||||
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
||||||
run: ${{ matrix.wasi_sysroot_option }} bash build.sh
|
run: bash build.sh
|
||||||
working-directory: ./core/iwasm/libraries/lib-wasi-threads/test/
|
working-directory: ./core/iwasm/libraries/lib-wasi-threads/test/
|
||||||
|
|
||||||
- name: build socket api tests
|
- name: build socket api tests
|
||||||
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
||||||
run: ${{ matrix.wasi_sysroot_option }} bash build.sh
|
run: bash build.sh
|
||||||
working-directory: ./core/iwasm/libraries/lib-socket/test/
|
working-directory: ./core/iwasm/libraries/lib-socket/test/
|
||||||
|
|
||||||
- name: run tests
|
- name: run tests
|
||||||
|
|
6
.github/workflows/compilation_on_macos.yml
vendored
6
.github/workflows/compilation_on_macos.yml
vendored
|
@ -218,7 +218,7 @@ jobs:
|
||||||
os: [macos-latest]
|
os: [macos-latest]
|
||||||
wasi_sdk_release:
|
wasi_sdk_release:
|
||||||
[
|
[
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-macos.tar.gz",
|
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz",
|
||||||
]
|
]
|
||||||
wabt_release:
|
wabt_release:
|
||||||
[
|
[
|
||||||
|
@ -250,7 +250,7 @@ jobs:
|
||||||
os: [macos-latest]
|
os: [macos-latest]
|
||||||
wasi_sdk_release:
|
wasi_sdk_release:
|
||||||
[
|
[
|
||||||
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20%2Bthreads/wasi-sdk-20.0.threads-macos.tar.gz",
|
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz",
|
||||||
]
|
]
|
||||||
wabt_release:
|
wabt_release:
|
||||||
[
|
[
|
||||||
|
@ -265,7 +265,7 @@ jobs:
|
||||||
cd /opt
|
cd /opt
|
||||||
sudo wget ${{ matrix.wasi_sdk_release }}
|
sudo wget ${{ matrix.wasi_sdk_release }}
|
||||||
sudo tar -xzf wasi-sdk-*.tar.gz
|
sudo tar -xzf wasi-sdk-*.tar.gz
|
||||||
sudo mv wasi-sdk-20.0+threads wasi-sdk
|
sudo mv wasi-sdk-20.0 wasi-sdk
|
||||||
|
|
||||||
- name: download and install wabt
|
- name: download and install wabt
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -11,7 +11,6 @@ for file in "${files[@]}"
|
||||||
do
|
do
|
||||||
echo $file
|
echo $file
|
||||||
$CC \
|
$CC \
|
||||||
$WASI_SYSROOT_OPTION \
|
|
||||||
--target=wasm32-wasi-threads \
|
--target=wasm32-wasi-threads \
|
||||||
-I../inc \
|
-I../inc \
|
||||||
../src/wasi/wasi_socket_ext.c -pthread -ftls-model=local-exec \
|
../src/wasi/wasi_socket_ext.c -pthread -ftls-model=local-exec \
|
||||||
|
|
|
@ -14,7 +14,6 @@ for test_c in *.c; do
|
||||||
|
|
||||||
echo "Compiling $test_c to $test_wasm"
|
echo "Compiling $test_c to $test_wasm"
|
||||||
$CC \
|
$CC \
|
||||||
$WASI_SYSROOT_OPTION \
|
|
||||||
-target wasm32-wasi-threads \
|
-target wasm32-wasi-threads \
|
||||||
-pthread -ftls-model=local-exec \
|
-pthread -ftls-model=local-exec \
|
||||||
-z stack-size=32768 \
|
-z stack-size=32768 \
|
||||||
|
|
Loading…
Reference in New Issue
Block a user