If UV_ONCE_INIT is a struct, the following errors will occur: libuv/src/unix/nuttx.c: In function 'uv__global_get': /home/hujun5/downloads1/vela_sim/apps/system/libuv/libuv/include/uv/unix.h:136:22: error: expected expression before '{' token 136 | #define UV_ONCE_INIT PTHREAD_ONCE_INIT | ^~~~~~~~~~~~~~~~~ libuv/src/unix/nuttx.c:287:26: note: in expansion of macro 'UV_ONCE_INIT' 287 | global->once = UV_ONCE_INIT; | ^~~~~~~~~~~~ /home/hujun5/downloads1/vela_sim/apps/system/libuv/libuv/include/uv/unix.h:136:22: error: expected expression before '{' token 136 | #define UV_ONCE_INIT PTHREAD_ONCE_INIT | ^~~~~~~~~~~~~~~~~ libuv/src/unix/nuttx.c:288:50: note: in expansion of macro 'UV_ONCE_INIT' 288 | global->uv__signal_global_init_guard = UV_ONCE_INIT; Signed-off-by: hujun5 <hujun5@xiaomi.com>
libuv
Most features of libuv are supported by current port, except SIGPROF relative function (loop_configure).
Nearly full libuv's test suite avaliable on NuttX, but some known case can't run on sim:
- loop_update_time
- idle_starvation
- signal_multiple_loops
- signal_pending_on_close
- metrics_idle_time
- metrics_idle_time_thread
- metrics_idle_time_zero
And some will cause crash by some reason:
- fs_poll_ref