diff --git a/Config.uk b/Config.uk index 49faa6c..2f2018c 100644 --- a/Config.uk +++ b/Config.uk @@ -1,9 +1,8 @@ menuconfig LIBWAMR bool "wamr - Intel's WebAssembly Micro Runtime" default y - select LIBNEWLIBC + select LIBMUSL select LIBLWIP - select LIBPTHREAD_EMBEDDED select LIBUKTIME select UKUNISTD diff --git a/include/bh_platform.h b/include/bh_platform.h index 44aedc6..3d1d2d7 100644 --- a/include/bh_platform.h +++ b/include/bh_platform.h @@ -26,6 +26,7 @@ #include #include #include +#include #ifndef __cplusplus int snprintf(char *buffer, size_t count, const char *format, ...); @@ -111,6 +112,8 @@ typedef int bh_socket_t; # define NULL ((void*) 0) #endif +#define offsetof __offsetof + #define bh_assert assert extern int b_memcpy_s(void * s1, unsigned int s1max, const void * s2, diff --git a/patches/0005-adapt-main-c-to-unikraft.patch b/patches/0005-adapt-main-c-to-unikraft.patch index c8f73e5..3909ddf 100644 --- a/patches/0005-adapt-main-c-to-unikraft.patch +++ b/patches/0005-adapt-main-c-to-unikraft.patch @@ -74,10 +74,10 @@ - wasm_printf("%s\n", error_buf); - goto fail4; + /* load from initrd */ -+ struct ukplat_memregion_desc img; ++ struct ukplat_memregion_desc *img; + if (ukplat_memregion_find_initrd0(&img) >= 0) { -+ wasm_file_buf = (uint8*)img.base; -+ wasm_file_size = img.len; ++ wasm_file_buf = (uint8*)img->vbase; ++ wasm_file_size = img->len; + + /* load WASM module */ + if (!(wasm_module = wasm_runtime_load(wasm_file_buf, wasm_file_size, diff --git a/patches/0006-recursive_np-to-recursive.patch b/patches/0006-recursive_np-to-recursive.patch new file mode 100644 index 0000000..dbf927a --- /dev/null +++ b/patches/0006-recursive_np-to-recursive.patch @@ -0,0 +1,11 @@ +--- /core/shared-lib/platform/linux/bh_thread.c orig 2023-07-15 14:14:26.388776102 +0200 ++++ /core/shared-lib/platform/linux/bh_thread.c 2023-07-15 14:13:17.443138319 +0200 +@@ -176,7 +176,7 @@ + if (ret) + return BHT_ERROR; + +- pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_RECURSIVE_NP); ++ pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_RECURSIVE); + ret = pthread_mutex_init(mutex, &mattr); + pthread_mutexattr_destroy(&mattr); +