Skip to content

Commit

Permalink
Move wasi-threads to a separate library
Browse files Browse the repository at this point in the history
  • Loading branch information
yamt committed May 26, 2024
1 parent 2bb8e69 commit 168e62e
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 6 deletions.
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ add_subdirectory(lib)
if(TOYWASM_ENABLE_WASI)
add_subdirectory(libwasi)
endif()
if(TOYWASM_ENABLE_WASI_THREADS)
add_subdirectory(libwasi_threads)
endif()
if(TOYWASM_ENABLE_WASI_LITTLEFS)
add_subdirectory(libwasi_littlefs)
endif()
Expand Down Expand Up @@ -56,6 +59,7 @@ set(cli_sources
add_executable(toywasm-cli ${cli_sources})
target_link_libraries(toywasm-cli toywasm-lib-core
$<$<BOOL:${TOYWASM_ENABLE_WASI}>:toywasm-lib-wasi>
$<$<BOOL:${TOYWASM_ENABLE_WASI_THREADS}>:toywasm-lib-wasi-threads>
$<$<BOOL:${TOYWASM_ENABLE_WASI_LITTLEFS}>:toywasm-lib-wasi-littlefs>
$<$<BOOL:${TOYWASM_ENABLE_DYLD}>:toywasm-lib-dyld>
m)
Expand Down
6 changes: 0 additions & 6 deletions libwasi/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,8 @@ set(lib_wasi_sources
"wasi_vfs_impl_host.c"
)

if(TOYWASM_ENABLE_WASI_THREADS)
list(APPEND lib_wasi_sources
"wasi_threads.c")
endif()

set(lib_wasi_headers
"wasi.h"
"wasi_threads.h"
"wasi_uio.h"
)

Expand Down
2 changes: 2 additions & 0 deletions libwasi/wasi.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,6 @@ uint32_t wasi_instance_exit_code(struct wasi_instance *wasi);
int import_object_create_for_wasi(struct wasi_instance *wasi,
struct import_object **impp);

uint32_t wasi_convert_errno(int host_errno);

__END_EXTERN_C
31 changes: 31 additions & 0 deletions libwasi_threads/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# lib-wasi-threads

set(lib_wasi_threads_sources
"wasi_threads.c"
)

set(lib_wasi_threads_headers
"wasi_threads.h"
)

add_library(toywasm-lib-wasi-threads STATIC ${lib_wasi_threads_sources})
set_target_properties(toywasm-lib-wasi-threads PROPERTIES OUTPUT_NAME toywasm-wasi-threads)
if (USE_IPO)
# Note: -flto=full seems to produce considerably faster code
# than -flto=thin for us. However, cmake INTERPROCEDURAL_OPTIMIZATION
# always use -flto=thin for clang.
# cf. https://gitlab.kitware.com/cmake/cmake/-/issues/16808
set_property(TARGET toywasm-lib-wasi-threads PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
endif()
set_property(TARGET toywasm-lib-wasi-threads PROPERTY PUBLIC_HEADER ${lib_wasi_threads_headers})
target_link_libraries(toywasm-lib-wasi-threads toywasm-lib-wasi)
target_include_directories(toywasm-lib-wasi-threads
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>)

install(TARGETS toywasm-lib-wasi-threads
EXPORT toywasm-lib-wasi-threads-config
PUBLIC_HEADER DESTINATION include/toywasm)
install(EXPORT toywasm-lib-wasi-threads-config
DESTINATION lib/cmake/toywasm-lib-wasi-threads)
1 change: 1 addition & 0 deletions libwasi/wasi_threads.c → libwasi_threads/wasi_threads.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include "suspend.h"
#include "type.h"
#include "usched.h"
#include "wasi.h" /* wasi_convert_errno */
#include "wasi_impl.h"
#include "wasi_threads.h"
#include "wasi_threads_abi.h"
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

#include "platform.h"

#define WASI_U32_ALIGN 4

struct wasi_thread_spawn_result {
uint8_t is_error;
union {
Expand Down

0 comments on commit 168e62e

Please sign in to comment.