We are proud to announce the latest version of Unikraft, v0.11.0 (Janus)! The most important asset of this release is the long awaited musl support. Besides this, we introduce many new improvements, including critical bug fixes, improved stability and new features. To summarise:
arch/libcontext (#535)lib/uksched (#564)uk_thread_tcb_fini to uk_thread_uktcb_fini in uksched (#660) by Eduard Vintilăuktime (#454) by Dragoș ArgintUK_LIBC_SYSCALLS guard around send() and recv() in posix-socket (#637) by Răzvan Deaconescuaccess and stat with Unikraft syscalls in vfscore (#636) by Maria Sfîrăialălegacy_syscalls.h in syscall_shim (#634) by Maria Sfîrăialăpipe() call to uk_syscall_r_pipe() in vfscore (#633) by Eduard Vintilămusl (#9) by Dragoș Arginttgmath.h header (#24) by Florin Postolachewait.c build dependency (#23) by Răzvan Deaconescusysexits.h include dependency (#22) by Răzvan DeaconescuPOSIX_USER functions (#20) by Ștefan Jumărealib-lwip, include fcntl.h and sys/ioctl.h in sockets.c (#27) by Răzvan Deaconesculib-lwip, remove ip6addr-related files (#25) by Răzvan Deaconesculib-lwip, add uk/essentials.h as include dependency (#22) by Răzvan Deaconesculib/uksched) (#19) by Simon Kuenzerlib-libcxx, add patch with signature for vasprintf (#23) by Maria Sfîrăialămath.h header (#22) by Ștefan Jumăreastddef header file in libcxx (#18) by Ștefan Jumărealib-libcxx, remove multiple definitions when using musl (#17) by Ștefan Jumărealib-libcxx, define strtoll_l and strtoull_l in locale (#14) by Ștefan Jumărealib-libcxx, add location of features.h file from Musl (#9) by Ștefan Jumăreakraft.yaml) for app-helloworld-cpp (#8) by Răzvan Deaconescukraft.yaml) for app-nginx (#7 and #8) by Răzvan Deaconescukraft.yaml) for app-redis (#11) by Răzvan Deaconescukraft.yaml) for app-sqlite (#5) by Răzvan Deaconescukraft.yaml) for app-python3 (#8) by Răzvan Deaconescukraft.yaml) for app-micropython (#3) by Răzvan Deaconescuukarch_random and add implementation for arm64 (FEAT_RNG) (#434) by Michalis Pappasgetdents64 system call (#672) by Răzvan Deaconescu-Wno-cast-function-type for GCC >= 8 in syscall_shim (#677) by Răzvan Deaconescugetdents count unit in vfscore (#670) by Tu Dinh Ngocstdio.c build warning in vfscore (#667) by Răzvan Deaconescuprintf to _uk_printk in uktest (#662) by Florin Postolache__lxstat in vfscore (#661) by Eduard Vintilăposix-process (#657) by Răzvan Deaconescuposix_socket_close in posix-socket (#647) by Florin Postolache9pfs (#639) by Eduard Vintilăvfscore (#551) by Maria MoșneagLVLC_CALLER in case CONFIG_LIBUKDEBUG_ANSI_COLOR is not set in ukdebug (#559) by Hamza Chandadhalt() in arm/lcpu.c (#540) by Julian Hartmeryear_to_secs in uktime (#534) by Marc Rittinghausvirtio_cread_bytes_many in virtio_pci (#519) by Eduard Vintilăukargparse (#439) by Michalis Pappas.uk_testtab after data section for uktest (#606) by Aleksandr IashchenkoLIBUKTEST_TEST_MYSELF option enable/disable self tests in uktest (#602) by Florin Postolacheclone rule to the build system (#553) by Florin PostolacheRLIMIT_DATA resource for prlimit64 in posix-process (#531) by Alex Apostolesculib-musl, use function declaration for getdents64 (#31) by Răzvan Deaconesculib-musl, add patch to fix definition of environ variable (#30) by Răzvan Deaconesculib-musl, avoid bug in uk_syscall_set_tid_address() (#29) by Dragoș Argintlib-musl, use -Wno-cast-function-type for GCC >= 8 (#28) by Răzvan Deaconesculib-musl, remove include directory from clean list (#17) by Robert Kubanlib-musl, introduce depedency to enable parallel build (#15) by Robert Kubanlib-musl, enable FPSIMD support on ARM64 (#14) by Răzvan Vîrtanlib-musl, hide internal headers (#13) by Robert Kubanlib-musl, patch CVE-2020-28928 (#11) by Robert Kubanlib-musl, comment macros to stop using VDSO (#10) by Florin Postolachelib-lwip, use -Wno-cast-function-type for GCC >= 8 (#28) by Răzvan DeaconescuA big thank you also to all those who helped in the review process: Adina Smeu, Alexander Jung, Cezar Crăciunoiu, Dragoș Argint, Eduard Vintilă, Marc Rittinghaus, Maria Sfiraiala, Răzvan Deaconescu, Răzvan Vîrtan, Renê de Souza Pinto, Robert Kuban, Sergiu Moga, Simon Kuenzer, Ștefan Jumărea, Vlad Bădoiu, Florin Postolache, Delia Pavel and Marco Schlumpp.
Feel free to ask questions, report issues, and meet new people.