Skip to content

Commit

Permalink
lib/libwamr: Move to musl and address compiler errors
Browse files Browse the repository at this point in the history
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 <roberthklink@gmail.com>
Signed-off-by: Ricardo Mohamedhoesein <rmohamedhoesein3@gmail.com>
Co-authored-by: Ricardo Mohamedhoesein <rmohamedhoesein3@gmail.com>
Reviewed-by: Eduard Vintilă <eduard.vintila47@gmail.com>
Reviewed-by: Stefan Jumarea <stefanjumarea02@gmail.com>
Approved-by: Razvan Deaconescu <razvand@unikraft.io>
Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #8
  • Loading branch information
2 people authored and unikraft-bot committed Aug 7, 2023
1 parent c740500 commit b3986b0
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 5 deletions.
3 changes: 1 addition & 2 deletions Config.uk
Original file line number Diff line number Diff line change
@@ -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

Expand Down
3 changes: 3 additions & 0 deletions include/bh_platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include <time.h>
#include <string.h>
#include <stdio.h>
#include <uk/essentials.h>

#ifndef __cplusplus
int snprintf(char *buffer, size_t count, const char *format, ...);
Expand Down Expand Up @@ -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,
Expand Down
6 changes: 3 additions & 3 deletions patches/0005-adapt-main-c-to-unikraft.patch
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
11 changes: 11 additions & 0 deletions patches/0006-recursive_np-to-recursive.patch
Original file line number Diff line number Diff line change
@@ -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);

0 comments on commit b3986b0

Please sign in to comment.