From 1ddb9ef51ec92c5de5557599030125223662db93 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Fri, 27 Jan 2023 07:45:34 +0900 Subject: [PATCH] Rename thread_spawn import (#1907) Following the wit-defined ABI: https://github.com/WebAssembly/wasi-threads/pull/26 cf. https://github.com/WebAssembly/wasi-libc/pull/387 --- .github/workflows/compilation_on_android_ubuntu.yml | 7 ++++++- .github/workflows/compilation_on_macos.yml | 9 +++++++-- .github/workflows/compilation_on_sgx.yml | 7 ++++++- .../lib-wasi-threads/lib_wasi_threads_wrapper.c | 6 +++--- samples/wasi-threads/wasm-apps/CMakeLists.txt | 4 ++-- 5 files changed, 24 insertions(+), 9 deletions(-) diff --git a/.github/workflows/compilation_on_android_ubuntu.yml b/.github/workflows/compilation_on_android_ubuntu.yml index bf31c499fc..b8e2edd23e 100644 --- a/.github/workflows/compilation_on_android_ubuntu.yml +++ b/.github/workflows/compilation_on_android_ubuntu.yml @@ -326,8 +326,13 @@ jobs: - name: build wasi-libc (needed for wasi-threads) run: | - git clone --branch wasi-sdk-17 https://github.com/WebAssembly/wasi-libc + mkdir wasi-libc cd wasi-libc + git init + # "Rename thread_spawn import" commit on main branch + git fetch https://github.com/WebAssembly/wasi-libc \ + 8f5275796a82f8ecfd0833a4f3f444fa37ed4546 + git checkout FETCH_HEAD make \ AR=/opt/wasi-sdk/bin/llvm-ar \ NM=/opt/wasi-sdk/bin/llvm-nm \ diff --git a/.github/workflows/compilation_on_macos.yml b/.github/workflows/compilation_on_macos.yml index 1e5ff415b6..31bd424bae 100644 --- a/.github/workflows/compilation_on_macos.yml +++ b/.github/workflows/compilation_on_macos.yml @@ -268,8 +268,13 @@ jobs: - name: build wasi-libc (needed for wasi-threads) run: | - git clone --branch wasi-sdk-17 https://github.com/WebAssembly/wasi-libc + mkdir wasi-libc cd wasi-libc + git init + # "Rename thread_spawn import" commit on main branch + git fetch https://github.com/WebAssembly/wasi-libc \ + 8f5275796a82f8ecfd0833a4f3f444fa37ed4546 + git checkout FETCH_HEAD make \ AR=/opt/wasi-sdk/bin/llvm-ar \ NM=/opt/wasi-sdk/bin/llvm-nm \ @@ -329,4 +334,4 @@ jobs: 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 + ./iwasm wasm-apps/no_pthread.wasm diff --git a/.github/workflows/compilation_on_sgx.yml b/.github/workflows/compilation_on_sgx.yml index c4d4142dde..efcb294ae8 100644 --- a/.github/workflows/compilation_on_sgx.yml +++ b/.github/workflows/compilation_on_sgx.yml @@ -270,8 +270,13 @@ jobs: - name: build wasi-libc (needed for wasi-threads) run: | - git clone --branch wasi-sdk-17 https://github.com/WebAssembly/wasi-libc + mkdir wasi-libc cd wasi-libc + git init + # "Rename thread_spawn import" commit on main branch + git fetch https://github.com/WebAssembly/wasi-libc \ + 8f5275796a82f8ecfd0833a4f3f444fa37ed4546 + git checkout FETCH_HEAD make \ AR=/opt/wasi-sdk/bin/llvm-ar \ NM=/opt/wasi-sdk/bin/llvm-nm \ diff --git a/core/iwasm/libraries/lib-wasi-threads/lib_wasi_threads_wrapper.c b/core/iwasm/libraries/lib-wasi-threads/lib_wasi_threads_wrapper.c index 46db6d524b..81efc67515 100644 --- a/core/iwasm/libraries/lib-wasi-threads/lib_wasi_threads_wrapper.c +++ b/core/iwasm/libraries/lib-wasi-threads/lib_wasi_threads_wrapper.c @@ -148,12 +148,12 @@ thread_spawn_wrapper(wasm_exec_env_t exec_env, uint32 start_arg) } /* clang-format off */ -#define REG_NATIVE_FUNC(func_name, signature) \ - { #func_name, func_name##_wrapper, signature, NULL } +#define REG_NATIVE_FUNC(name, func_name, signature) \ + { name, func_name##_wrapper, signature, NULL } /* clang-format on */ static NativeSymbol native_symbols_lib_wasi_threads[] = { REG_NATIVE_FUNC( - thread_spawn, "(i)i") }; + "thread-spawn", thread_spawn, "(i)i") }; uint32 get_lib_wasi_threads_export_apis(NativeSymbol **p_lib_wasi_threads_apis) diff --git a/samples/wasi-threads/wasm-apps/CMakeLists.txt b/samples/wasi-threads/wasm-apps/CMakeLists.txt index 0da9aa749f..c586978685 100644 --- a/samples/wasi-threads/wasm-apps/CMakeLists.txt +++ b/samples/wasi-threads/wasm-apps/CMakeLists.txt @@ -14,7 +14,7 @@ endif () set (CMAKE_SYSROOT "${WASI_SYSROOT}") set (CMAKE_C_COMPILER "${WASI_SDK_DIR}/bin/clang") set (CMAKE_ASM_COMPILER "${WASI_SDK_DIR}/bin/clang") -set (CMAKE_C_COMPILER_TARGET "wasm32-wasi") +set (CMAKE_EXE_LINKER_FLAGS "-target wasm32-wasi-threads") function (compile_sample SOURCE_FILE) get_filename_component (FILE_NAME ${SOURCE_FILE} NAME_WLE) @@ -36,4 +36,4 @@ function (compile_sample SOURCE_FILE) endfunction () compile_sample(no_pthread.c wasi_thread_start.S) -compile_sample(thread_termination.c wasi_thread_start.S) \ No newline at end of file +compile_sample(thread_termination.c wasi_thread_start.S)