Merge branch main into dev/wasi_threads

This commit is contained in:
Wenyong Huang
2023-01-21 13:18:55 +08:00
52 changed files with 1155 additions and 345 deletions

View File

@ -25,9 +25,9 @@ SRCS += $(APP_FRAMEWORK_DIR)/wgl/app/src/*.c
all:
@$(CC) $(CFLAGS) $(SRCS) \
--target=wasm32 -O3 -z stack-size=2048 -Wl,--initial-memory=65536 \
-Wl,--allow-undefined \
-Wl,--strip-all,--no-entry -nostdlib \
--target=wasm32-wasi -O3 -z stack-size=2048 -Wl,--initial-memory=65536 \
-nostdlib -Wl,--allow-undefined \
-Wl,--strip-all,--no-entry \
-Wl,--export=on_init -Wl,--export=on_timer_callback \
-Wl,--export=on_widget_event \
-Wl,--export=__heap_base,--export=__data_end \

View File

@ -38,3 +38,6 @@ set (CMAKE_EXE_LINKER_FLAGS
add_executable(test.wasm main.c)
target_link_libraries(test.wasm)
add_executable(main_thread_exception.wasm main_thread_exception.c)
target_link_libraries(main_thread_exception.wasm)

View File

@ -0,0 +1,36 @@
/*
* Copyright (C) 2019 Intel Corporation. All rights reserved.
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
*/
#include <stdio.h>
#include <pthread.h>
typedef struct ThreadArgs {
int start;
int length;
} ThreadArgs;
void *
thread(void *args)
{
while (1) {
/* When other threads (including main thread) throw exception,
this thread can successfully exit the dead loop */
}
}
int
main()
{
pthread_t tids;
if (pthread_create(&tids, NULL, thread, NULL) != 0) {
printf("pthread_create failed\n");
}
/* Trigger an exception */
__builtin_trap();
return 0;
}