From: Robert Klink Date: Sat, 15 Jul 2023 13:23:56 +0000 (+0200) Subject: lib/libwamr: Move to musl and address compiler errors X-Git-Tag: RELEASE-0.14.0 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=b3986b0a81a069b948c02dfba927a4c03721a658;p=unikraft%2Flibs%2Fwamr.git lib/libwamr: Move to musl and address compiler errors Move from the `LIBNEWLIBC` and `LIBPTHREAD_EMBEDDED` to `LIBMUSL`. Changed needed to build lib-wamr were: * Using the `uk/essentials.h` header for a definition of `offsetof` * Adding a new `0006` patch file to change `PTHREAD_MUTEX_RECURSIVE_NP` into `PTHREAD_MUTEX_RECURSIVE` as the former on isn't defined * Change the `0005` patch file to use modern working unikraft initrd loading code so it can load the `.wasm` files Signed-off-by: Robert Klink Signed-off-by: Ricardo Mohamedhoesein Co-authored-by: Ricardo Mohamedhoesein Reviewed-by: Eduard Vintilă Reviewed-by: Stefan Jumarea Approved-by: Razvan Deaconescu Tested-by: Unikraft CI GitHub-Closes: #8 --- 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); +