Releases: unikraft/unikraft
v0.16.3 Telesto
We are proud to announce the latest version update of Unikraft, v0.16.3!
This release comes with many fixes and updates to the application catalog and to the documentation.
Here is the full updates list in this release:
arch/arm64
: Update asm constraints inmte_insert_random_tag()
(#1361) by @michpappasdoc
: Update kraft link inREADME.md
(#1359) by @PorridgeSwimlib/posix-futex
: Clear thread's objects upon thread exit (#1358) by @michpappaslib/posix-time
: SupportCLOCK_REALTIME_COARSE
(#1355) by @andreittrlib/posix-socket
: AddLIBPOSIX_FDIO
config dependency (#1354) by @michpappasdrivers/ukbus/platform
: MakeUKBUS_PLATFORM_FDT
conditional to parent (#1353) by @michpappaslib/posix-environ
: Deduplicate env variables during boot (#1352) by @skuenzerscripts/checkpatch
: Do not warn about symbolic permissions (#1351) by @skuenzerdrivers/virtio
: Replace libc types with unikraft defined (#1345) by @rares-miculescudrivers/ukintctlr
: Replace libc types with unikraft defined (#1344) by @rares-miculescudrivers/ukbus
: Replace libc types with unikraft defined (#1343) by @rares-miculescucheckpatch
: Additional updates for compliance to coding style (#1342) by @michpappaslib/posix-poll
: Fix missingepoll
file locking (#1338) by @andreittrlib/ukvmem/arch
: Do not print error message if demand paging disabled (#1334) by @mogasergiulib/nolibc
: Includehtonl()
andntohl()
functions (#1332) by @mschlumpplib/ukintctlr
: Simplify the interface ofukintctlr_platform_probe()
(#1330) by @michpappasdrivers/virtio/net
: Ensure half-page alignment fornetbuf
(#1328) by @mogasergiulib/nolibc
: Providefd
functions withoutvfscore
(#1327) by @andreittrlib/posix-unixsocket
: FixNULL
deref crash (#1326) by @andreittrlib/posix-sysinfo
: Use a more Linux compatible release string (#1325) by @mschlumpplib/posix-time
: AliasCLOCK_MONOTONIC_RAW
toCLOCK_MONOTONIC
(#1324) by @mschlumppplat/kvm/x86
: Fix {XSAVE
,AVX
,FSGSBASE
} checking/enabling behavior (#1323) by @mogasergiulib/uksched
: Addmembarrier
syscall (#1321) by @andreittrlib/vfscore
: Ensure we return symlink target onnamei_resolve
(#1320) by @mogasergiudriver/virtio/blk
: Ensure request header stays in-page boundaries AND some minor sglist cleanup (#1290) by @mogasergiulib/uknetdev
: Add a interface for TCP segmentation offload (#1030) by @mschlumpp[app-elfloader]
: Consider environment variablesPATH
andPWD
(#75) by @skuenzer[app-elfloader]
: Ensureargs
,env
andauxv
strings are in the information block (#71) by @mogasergiu[app-helloworld-cpp]
: README: Add reference to active repository (#25) by @feohuman[app-helloworld]
: README: Add reference to active repository (#36) by @feohuman[app-helloworld]
: Fix verbose build issue by modifying makefile (#16) by @ranfun[app-httpreply]
: README: Add reference to active repository (#21) by @feohuman[app-lua]
: README: Add reference to active repository (#13) by @feohuman[app-nginx]
: README: Redirect to active repository (#24) by @feohuman[app-redis]
: README: Add reference to active repository (#24) by @feohuman[app-sqlite]
: README: Add reference to active repository (#14) by @feohuman[lib-lwip]
: IgnoreSO_LINGER
socket option (#51) by @mogasergiu[lib-musl]
:libsched
: Addsys/membarrier.h
to provided headers (#75) by @andreittr
Updates to the application catalog
:
- feat(examples): Add Node 21 Prisma example (#104) by @razvand
- feat(examples): Update helloworld-rs (#97) by @razvand
- feat(node18): Use alpine Dockerfile (#95) by @razvand
- fix(library): Add user-provided EINITRD support (#94) by @razvand
- feat(examples): Introduce Caddy example (#93) by @razvand
- fix(examples): Update some examples to newer README.md format (#92) by @felipehuici
- feat(examples): Add examples and have others use runtime directive (#91) by @felipehuici
- feat(examples): Introduce HTTP Node21 example (#90) by @razvand
- feat(library): Introduce NodeJS 21 as library (#83) by @razvand
- feat(library): Introduce NodeJS 20 as library (#82) by @razvand
- feat(library): Introduce NodeJS 19 as library (#81) by @razvand
- feat(examples): Add Redis example (#78) by @felipehuici
- feat(examples): Add Hugo, C++ Boost, DuckDB and Flask examples (#76) by @felipehuici
- feat(examples): Add Memcached example (#74) by @felipehuici
- feat(examples): Add PHP example (#73) by @felipehuici
- feat(examples): Add Ruby and Perl examples (#71) by @felipehuici
- feat(examples): Add Rust examples (#69) by @felipehuici
- fix(examples): Improve http-python3.10 README (#68) by @razvand
- fix(examples): Improve README for http-python3.10 (#63) by @felipehuici
- fix(examples): Improve README for http-python3.10 (#62) by @razvand
- docs(redis/7.0): Indicate min memory requirement (#59) by @ChaoyiHuang
- feat(examples): Add Node Prisma example (#56) by @razvand
- feat(examples): Introduce HTTP Flask server as example (#55) by @razvand
- feat(library): Introduce Hugo 0.122 as library (#53) by @razvand
- feat(library): Introduce Memcached 1.6 as library (#49) by @razvand
- feat(library): Introduce Perl 5.38 as library (#28) by @razvand
- feat(library): Introduce PHP as library (#24) by @razvand
- feat(library): Introduce Ruby as library (#23) by @razvand
- feat(native): add tiny-http Rust server (#20) by @mkroening
- feat(library): Introduce Skipper 0.18 (#15) by @razvand
- feat(library): Add support for Caddy (#12) by @razvand
A big thank you also to all those who helped in the review process: Alexander Jung, Andrei Tatar, Cezar Craciunoiu, Delia Pavel, Eduard Vintilă, Felipe Huici, Florin Postolache, Marco Schlumpp, Maria Pana, Maria Sfiraiala, Michalis Pappas, Mihnea Firoiu, Oleksii Moisieiev, Radu Nichita, Razvan Deaconescu, Razvan Virtan, Sergiu Moga, Simon Kuenzer, Stefan Jumarea.
For more information, check out the accompanying blog post or view the full changelog.
v0.16.2 Telesto
We are proud to announce the latest version update of Unikraft, v0.16.2!
This release comes with fixes, Xen ARM64 support an updates to the application catalog.
Here is the full updates list in this release:
.github/workflows
: Disable 'merge' global flag (#1318) by @craciunoiuc.github/workflows
: Set committer email and name globally (#1313) by @craciunoiuclib/posix-fdtab
: Fix minor docstring issues (#1312) by @andreittrlib/nolibc
: Solve warning of Musl importedstrstr
(#1311) by @mogasergiulib/posix-poll
: Fix EPOLL_CTL_MOD missing events (#1310) by @andreittrlib/nolibc
: Expose FD_SETSIZE as Kconfig option (#1309) by @andreittrlib/posix-sysinfo
: Fix off-by-1 error insethostname
(#1307) by @andreittrplat/xen
: Remove duplicate PAGE definitions (#1306) by @michpappasplat/kvm/x86
: Remove unused variable fromlxboot_entry()
(#1305) by @michpappaslib/posix-time
: Add support forCLOCK_BOOTTIME
(#1304) by @andreittrlib/posix-process
: Add option to context switch away from clone caller (#1303) by @mschlumpplib/vfscore
: Prevent superfluous slashes in working directory (#1302) by @mschlumpplib/posix-fdio
: ENOTTY for unsupported tty ioctls (#1301) by @andreittrlib/ukvmem
: Use correct argument type in format string (#1300) by @michpappaslib/posix-fdtab
: Silence unused parameter warning (#1299) by @michpappaslib/nolibc
: Usestrcat()
from mini-os (#1298) by @michpappaslib/posix-poll
: Fixepoll
missing events (#1297) by @andreittrlib/posix-socket
: IntroduceCREATE
,BIND
events (#1296) by @skuenzer.github/workflows
: Remove redundant checks (#1295) by @craciunoiuclib/posix-process
: Add support for RLIMIT_AS (#1294) by @andreittrbuild
: Disable image compression (#1293) by @michpappas.github/workflows
: Enable-Werror
on integration builds (#1292) by @michpappaslib/ukboot
: Ensure the auxiliary stack is backed by physical memory (#1291) by @michpappascheckpatch
: Update to v6.8-rc2 (#1289) by @michpappasdrivers/ukintctrl
: Update GICv2 compatible list (#1287) by @ananoslib/ukboot
: Ensure the auxiliary stack is backed by physical memory (#1286) by @michpappas.github/workflows
: Add missing checkpatch flags (#1285) by @craciunoiuclib/vfscore
: Additional mount options (#1282) by @skuenzerlib/nolibc
: Change default FD_SETSIZE to 1024 (#1280) by @marcrittinghauslib/posix-socket
: Extend socket events (#1279) by @marcrittinghaussupport/scripts
: Fixcheckpatch.uk
(#1276) by @skuenzer- Add README for posix-pipe library (#1275) by @RaduNichita
support/scripts
: Auto-split words and disable info message (#1274) by @craciunoiuclib/posix-mmap
: Round-up madvise length to page size (#1273) by @michpappas.github/workflows
: Switch to debug logging (#1270) by @craciunoiuc- Misc fixes found during the development of the Aarch64 XEN support. (#1269) by @oleksiimoisieiev
- Align auxiliary stack with regular stacks and add guard pages on per-thread regular stacks (#1264) by @mogasergiu
- Promote unhandled page fault message level and add stack guard page explicit message (#1263) by @mogasergiu
lib/nolibc
: Importstrstr
frommusl
(#1261) by @mogasergiulib/posix-poll
: Fixepoll()
crash onNULL
event arg (#1259) by @andreittrlib/posix-poll
: Handle unpollable files correctly (#1258) by @andreittrlib/posix-poll
: Fixpoll()
ignoring fd 0 (#1255) by @andreittr{include/,lib/*}
: Separate initializers from anonymous right-hand values (#1245) by @andreittrlib/posix-fdtab
: Add comments forposix-fdtab
(#1241) by @DeliaPavel.github/workflows
: Move integration tests to upb runners (#1215) by @craciunoiucplat/common/x86
: UseFSGSBASE
for TLS if available (#862) by @andreittrarm64/xen
: Introduce xen support for aarch64 architecture (#726) by @oleksiimoisieiev[lib-lwip]
: ExposeLWIP_SO_RCVBUF
config and set on by default (#50) by @andreittr[lib-lwip]
: Set system hostname when initializing interface (#49) by @andreittr[lib-lwip]
: Prepare lwip to provde DNS functions to native musl (#48) by @skuenzer[lib-lwip]
: Option to wait for DHCP and fail without netifs (#47) by @skuenzer[lib-lwip]
: Various smaller fixes (#46) by @mschlumpp[lib-musl]
: Option to handle DNS requesets by lwIP (#74) by @skuenzer
A big thank you also to all those who helped in the review process: Alexander Jung, Andrei Stan, Cezar Craciunoiu, Delia Pavel, Eduard Vintilă, Florin Postolache, Ioan-Teodor Teugea, Marco Schlumpp, Maria Pana, Maria Sfiraiala, Michalis Pappas, Mihnea Firoiu, Oleksandr Grytsov, Oleksii Moisieiev, Radu Nichita, Razvan Deaconescu, Razvan Virtan, Sergiu Moga, Simon Kuenzer.
v0.16.1 Telesto
We are proud to announce the latest version update of Unikraft, v0.16.1!
This release contains both important and breaking changes related to the KConfig and syntax when statically specifying network interface information as well as the list of fstab (automount) entries at the kernel command-line.
Caution
We strongly advise upgrading to this latest version of Unikraft in order to continue to be compatible with future versions. In our accompanying blog post we include necessary migration steps. Additionally, we have released a new version of KraftKit (v0.7.2) which already incorporates an understanding these changes and have upgraded all images in the Unikraft Community Catalog of pre-built unikernel images.
Changelog
- lib/vfscore: Auto-mounting scheme with 3 tables (#1262) by @skuenzer
- lib/vfscore: Fix
getcwd
to use the kernel API (#1268) by @andreittr - .github/workflows: Do not rerun checks on pushes (#1267) by @craciunoiuc
- lib/{uksched, ukboot}: Use
uk_memalign
for auxstack allocation (#1266) by @mogasergiu - lib/vfscore: Stub
F_GETLK
to always returnF_UNLCK
(#1260) by @mogasergiu - plat/common/lcpu: Fix re-def warnings of
LCPU_AUXSP_OFFSET
(#1257) by @mogasergiu - plat/kvm/arm: Ensure restoration of
x0
on binary system calls (#1256) by @mogasergiu - .github/workflows: Add bot mail/name and use other target (#1252) by @craciunoiuc
- .github/workflows: Several more fixes to ensure functionality (#1251) by @craciunoiuc
- support/scripts: Implement python and bash suggestions (#1246) by @craciunoiuc
- .github/workflows: Bump governctl and fix lint issues (#1243) by @craciunoiuc
- .github/workflows: Correctly fetch the PR number (#1242) by @craciunoiuc
- .github/workflows: Bump actions/checkout from 3 to 4 (#1232) by @dependabot
- .github/workflows: Bump actions/checkout from 3 to 4 (#1254) by @dependabot
- .github/workflows: Bump actions/checkout from 3 to 4 (#1253) by @dependabot
- lib/uknetdev: New
netdev.ip
kernel parameter (#1211) by @skuenzer
For more information, check out the accompanying blog post or view the full changelog.
v0.16.0 Telesto
We are proud to announce the latest version update of Unikraft, v0.16.0! This release brings important new features and further improvements and stabilizing to the previous release (0.15.0 - Pandora). It adds new features, a healthy number of fixes and it enhances application support.
Here is the full updates list:
🚀 New Features
lib/posix-socket
: Socket events (#1224) by @skuenzer.github/workflows
: Add workflow to merge approved PRs (#1223) by @craciunoiuc- Limit visibility of fdt libraries to fdt-capable platforms (#1219) by @michpappas
arch
: Introduce dedicated CPU Exception stack configuration (#1214) by @mogasergiu.github/workflows
: Add workflow to merge approved PRs (#1209) by @craciunoiuc- Add
lib/posix-fdtab
andlib/vfscore
destructors (#1205) by @mogasergiu lib/posix-{fdio,socket}
: Add stat support to socket files (#1203) by @andreittrlib/vfscore
: initrd:extract
option (#1201) by @skuenzerlib/ramfs
: Implement copying of directories (#1190) by @mschlumpplib/posix-environ
: AddREADME.md
file for posix-environ (#1185) by @DeliaPavellib/posix-environ
: Add comments for posix-environ (#1184) by @DeliaPavellib/*
: Introduce support forAF_UNIX
sockets (#1183) by @andreittrlib/posix-socket
: Port from vfscore to newuk_file
(#1182) by @andreittrlib/ukcpio
: Refactor and improve CPIO extraction (#1181) by @andreittrlib/posix-timerfd
: Introduce timerfd support (#1179) by @andreittrlib/posix-sysinfo
: Add documentation (#1178) by @StefanJumlib/posix-user
: Add README.md file for posix-user (#1177) by @DeliaPavellib/posix-time
: Add README.md (#1176) by @RaduNichita- Introduce
UK_LLSYSCALL_R_U_DEFINE
and registerclone
with it (#1175) by @mogasergiu - Implement stack switching on system call entries and on ARM traps/IRQ's (#1174) by @mogasergiu
lib/*
: Move POSIX pipes out of vfscore (#1172) by @andreittrlib/*
: Replaceposix-event
with independent libraries (#1171) by @andreittrlib/*
: Introduce posix-fdio (#1170) by @andreittrbuild
: IntroduceUK_IMAGE_NAME_OVERWRITE
make var (#1169) by @nderjunglib/*
: Introduce posix-fdtab (#1168) by @andreittrlib/uknetdev
: Addipv4_dns0_addr
configuration (#1167) by @mschlumpplib/ukfile
: Introduce the ukfile library (#1165) by @andreittrlib/posix-user
: Add code comments (#1164) by @DeliaPavellib/uktimeconv
: Add conversion functions for common timestamp structs (#1162) by @andreittrinclude
: Add strong/weak reference counting (#1160) by @andreittrplat/common/arm
+lib/posix-process
: Various fixes for Golang ARM64 support (#1158) by @eduardvintilalib/ukboot
: Shutdown feature (#1148) by @skuenzerlib/vfscore
: Introduceukopts
, a newvfs.fstab
option andmkmp
, aukopts
option (#1145) by @mogasergiulib/vfscore
: Re-enable the mounting ofinitrd
's throughfstab
(#1144) by @mogasergiu.github/workflows
: Add PR auto-labelling (#1142) by @craciunoiuc.github/workflows
: Add checkpatch checks for commits (#1141) by @craciunoiuc.github
: Enable dependabot for action bumping (#1140) by @craciunoiuc.github/workflows
: Add commit and PR format checks (#1139) by @craciunoiuc.github/workflows
: Add github workflows checks (#1137) by @craciunoiuc.github/workflows
: Add python checks for support scripts (#1134) by @craciunoiuc.github/workflows
: Add shellcheck for scripts (#1133) by @craciunoiuc{include/, lib/uksched, lib/uklock}
: Add static initializers (#1126) by @andreittrinclude/arch
: Add atomic fetch & AND operation (#1125) by @andreittrplat/kvm/efi.c
: Obtain MemoryMap again and retry when ExitBootService fails (#1105) by @kha-dinhlib/nolibc
: Introduce 'FILE' object APIs (#1043) by @Starnoxplat
: Migrate ns16550 to drivers/uktty (#1026) by @michpappasplat
: Migrate pl011 to drivers/uktty (#1025) by @michpappasinclude/uk
: Move compiler definitions fromessentials.h
tocompiler.h
(#960) by @rares-miculesculib
: Moveatomic.h
arhitecture specific code to newukatomic
(#950) by @Starnoxplat
: Move register definitions into arch (#937) by @rares-miculesculib/ukgcov
: Introduce library for code coverage (#906) by @Starnoxlib/devfs
: Add Doxygen-style comments (#714) by @calex257[dynamic-apps]
: Couchdb src (#56) by @mtimaN[app-elfloader]
: Namespace VDSO config option (#68) by @skuenzer[app-elfloader]
: build: UpgradeKraftfile
to v0.6 specification (#66) by @nderjung[app-elfloader]
: Registerarch_prctl
throughUK_LLSYSCALL_R_U_DEFINE
(#65) by @mogasergiu[app-python3]
: README.md: Fix typo and update kraft run (#25) by @gabrielpitic[app-uwebsockets]
: Pull uSockets and uWebSockets from Unikraft repos (#1) by @jviotti[lib-libgo]
: Add support for AArch64 (#9) by @eduardvintila[lib-lwip]
: Adapt to new auxiliary stack argument oflibuksched
API (#41) by @mogasergiu[lib-lwip]
: Update to latest inittab changes (#40) by @skuenzer[lib-lwip]
: socket.c: Port to the new posix-socket API (#39) by @andreittr[lib-lwip]
: Modifyatomic.h
import line to accomodate plat re-arch (#36) by @Starnox[lib-lwip]
: Add RAW socket type to LwIP (#2) by @flapjack321[lib-musl]
: patches: Prefault page tables used in stacks allocated for threads (#73) by @eduardvintila[catalog]
: feat(library): Introduce Node 18 as library (#22) by @razvand[catalog]
: feat(library): Update base configuration (#21) by @razvand[catalog]
: feat: add "Hello, world!" Rust-based example (#16) by @mkroening[catalog]
: feat(base): Introduce base (ELFLoader) to library (#11) by @razvand[catalog]
: feat(library): Introduce Lua (#6) by @razvand[catalog]
: feat(workflows): Add linting GitHub Actions (#5) by @gabrielmocanu[catalog]
: feat(library): Introduce SQLite (#4) by @razvand[catalog]
: feat(examples): Introduce HTTP C application (#3) by @razvand
🐛 Bug Fixes & Improvements
lib/posix-fdtab
: Fix fdtab cleanup w/o asserts (#1239) by @andreittrlib/fdtab
: Fix compiler warnings (#1237) by @michpappaslib/posix-unixsocket
: Silence unused variable...
v0.15.0 Pandora
We are proud to announce the latest version update of Unikraft, v0.15.0! This release brings important new features and further improvements and stabilizing to the previous release (0.14.0 - Prometheus). It adds new features, a healthy number of fixes and it enhances application support.
Here is the full updates list:
🚀 New Features
- Improved application documentation and support scripts
[app-click]
: Add configuration files and run scripts (#5) by @StefanJum[app-click]
: Port app-click to use musl (#4) by @MekalBoy[app-duktape]
: Update setup for developer-centric scripts (#10) by @razvand[app-duktape]
: Add Musl support (#9) by @razvand[app-duktape]
: Added Makefile and Makefile.uk to duktape, including the necessary li… (#7) by @justin9939[app-duktape]
: lib/duktape: port to musl addresses: #3 (#6 by @JoachimBose[app-helloworld-cpp]
:README.md
: Use correct Firecracker JSON file name (#22) by @razvand[app-helloworld-cpp]
: Stefan jum/add dev content (#21) by @StefanJum[app-helloworld-cpp]
: Add KraftKit configuration file for KraftCloud (#20) by @razvand[app-helloworld-cpp]
:kraft.yaml
: Fix contents (#19) by @razvand[app-helloworld-go]
: Add networking support for Go applications (#11) by @razvand[app-helloworld-go]
: Add KraftKit configuration file for KraftCloud (#10) by @razvand[app-helloworld]
: Makefile: Remove lwip (#30) by @razvand[app-helloworld]
: Makefile: Remove lwip (#29) by @razvand[app-helloworld]
: Testlib fxdiv (#28) by @SumairShergill[app-helloworld]
: lib/update/test: added library (#27) by @SumairShergill[app-helloworld]
: lib-intx upadate v0.10.0 (#26) by @ZackYe42[app-helloworld]
: Stefan jum/add dev content (#25) by @StefanJum[app-helloworld]
: Add KraftKit configuration file for KraftCloud (#23) by @razvand[app-httpreply]
: README.md: Update documentation (#20) by @razvand[app-httpreply]
: Stefan jum/add dev content (#19) by @StefanJum[app-httpreply]
: Add KraftKit configuration file for KraftCloud (#18) by @razvand[app-lua]
: Stefan jum/add dev content (#12) by @StefanJum[app-lua]
: Add KraftKit configuration file for KraftCloud (#11) by @razvand[app-lua]
: Makefile: Port app-lua to use musl (#6) by @panagiotiskon[app-nginx]
: README.md: Fix repeating words (#22) by @Mihnea0Firoiu[app-nginx]
: README.md: Update README (#20) by @razvand[app-nginx]
: Stefan jum/add dev content (#17) by @StefanJum[app-nginx]
: Add KraftKit configuration file for KraftCloud (#16) by @razvand[app-python3]
: README.md: Fix typo (#24) by @gabrielpitic[app-python3]
: README.md: Update kraft run command (#23) by @SorinAlexB[app-python3]
: Update setup for developer-centric scripts (#21) by @razvand[app-python3]
:kraft.cloud.yaml
: Add networking support (#20) by @razvand[app-python3]
: Simplify root filesystem (#19) by @razvand[app-python3]
: Add KraftKit configuration file for KraftCloud (#18) by @razvand[app-python3]
: kraft.yaml: Update libraries order (#14) by @StefanJum[app-redis]
: Update Redis app directory (#20) by @razvand[app-redis]
: Add kraft.cloud.yaml (#19) by @razvand[app-run-app-elfloader]
: Add new applications and usefs1
as 9p index (#18) by @razvand[app-run-app-elfloader]
: Update prebuilt images to Unikraft 0.14 (#17) by @razvand[app-run-app-elfloader]
: [run.sh] Let user use custom QEMU arguments (#11) by @costinsin[app-sqlite]
: Stefan jum/add dev content (#13) by @StefanJum[app-sqlite]
: Add KraftKit configuration file for KraftCloud (#12) by @razvand[app-testing]
: Introduce generate.py script (#4) by @razvand[app-wamr]
: Update setup for developer-centric scripts (#7) by @razvand[app-wamr]
: Update README.md (#6) by @chococandy63[app-wamr]
: add makefile, makefile.uk (#4) by @akouk[run-app-elfloader]
: Add new applications and usefs1
as 9p index (#18) by @razvand[run-app-elfloader]
: Update prebuilt images to Unikraft 0.14 (#17) by @razvand[run-app-elfloader]
: [run.sh] Let user use custom QEMU arguments (#11) by @costinsin[lib-click]
: Update lib click to the latest Unikraft version (#7) by @StefanJum[lib-wamr]
:patches
: Remove patch0005
:main
adaptation (#9) by @razvand[lib-wamr]
: base to pbase (#2) by @akouk
- Improved Python support
[lib-python-numpy]
: Makefile.uk: Fix internal build include paths (#2) by @andreittr[lib-python-pillow]
: Port upstream Pillow 10.0.0 (#1) by @andreittr[lib-python3]
: Add support for the Pillow extension (#22) by @andreittr[lib-python3]
: Makefile.uk: Supress warnings (#21) by @andreittr[lib-python3]
: Enable themmap
stdlib module (#20) by @andreittr[lib-python3]
: Makefile.uk: Fix generated header include path (#19) by @andreittr[lib-python3]
: patches: Fix ctypes import error (#18) by @andreittr[lib-python3]
: Introduce Library.uk (#14) by @nderjung
- Extended application support
[dynamic-apps]
: Add sed pre-built binary (#103) by @gabrielpitic[dynamic-apps]
: Add awk PIE build (#102) by @andreistan26[dynamic-apps]
: README.md: Fix "dyamic" typo (#101) by @SorinAlexB[dynamic-apps]
: Add tar pre-built binary (#100) by @gabrielpitic[dynamic-apps]
: lang/go: Update libraries for helloworld (#99) by @razvand[dynamic-apps]
: nginx: Ingore generated files (#98) by @razvand[dynamic-apps]
: gzip: Use input.txt as input file (#97) by @razvand[dynamic-apps]
:extract.sh
: Simplify script (#96) by @razvand[dynamic-apps]
: openssl: Update binary and libraries (#95) by @razvand[dynamic-apps]
:bzip2
: Useinput.txt
as input file (#94) by @razvand[dynamic-apps]
: lang/go: Rename client-server to client_server (#93) by @razvand[dynamic-apps]
: Add Python helloworld (#92) by @razvand[dynamic-apps]
: imagemagick: Remove duplicate libraries ([#91](https://github.com/unikraft/dyn...
v0.14.0 Prometheus
We are proud to announce the latest version of Unikraft, v0.14.0 (Prometheus)! This is one of the biggest releases so far with tons of fixes and improvements!
Here is the full updates list:
🚀 New Features
- build: Darwin (macOS) support (#1034) by @skuenzer
- .github/workflows: Introduce GitHub Actions Workflow integrations (#1012) by @nderjung
- build: Add tree builds (#1001) by @andreittr
- plat/kvm/arm64: Firecracker support on arm64 (#989) by @michpappas
- plat/kvm/arm64: Implement lxboot on arm64 (#988) by @michpappas
- lib/vfscore: Implement individual volume automounting (#979) by @mogasergiu
lib/uklibid
: Library identifiers andSUBBUILD
build system feature (#938) by @skuenzer- build: Allow setting flags from the environment (#957) by @mkroening
- lib/ukstore: Introduce dynamic store API (#939) by @michpappas
- Add the ability to build
EFI
ISO
andDISK
images. (#910) by @mogasergiu - Add
EFI
stub support (#909) by @mogasergiu - doc: Introduce
ADOPTERS.md
(#892) by @nderjung - Add PIE support for Xen and KVM (#772) by @mogasergiu
- Makefile: Add flags for cross-compiler
LLVM
target (#685) by @mariasfiraiala [lib-geos]
Port upstream libgeos 3.11.2 (#1) by @andreittr[lib-libffi]
Port upstream libffi 3.4.4 for x86_64 (#1) by @andreittr[lib-fork-glibc]
feat: Binary syscall bypass through VDSO (#1) by @i-Pear[lib-fork-musl]
feat: Binary syscall bypass through VDSO (#1) by @i-Pear[lib-python-numpy]
Port upstream NumPy 1.25.0 (#1) by @andreittr[lib-python-shapely]
Port upstream Shapely 2.0.1 (#1) by @andreittr[app-elfloader]
feat: Provide VDSO image and__kernel_vsyscall
interface (#23) by @i-Pear[catalog]
Create initial version ofcatalog
repository by @nderjung
🐛 Bug Fixes & Improvements
- plat/drivers/virtio: Fix virtio_9p tag read (#1059) by @zhxj9823
- lib/posix-environ: Remove unused variable warnings (#1058) by @mogasergiu
- plat/kvm/x86: Ensure that lxboot initrd/cmdl regions are aligned (#1057) by @mogasergiu
- plat/kvm/arm: Use length when clean/invalidating cache in
KVM
entry (#1056) by @mogasergiu - build: Adjust fixdep to the changed config.h location (#1055) by @mschlumpp
- lib/posix-environ: Ensure that compiled-in strings are writable (#1054) by @mogasergiu
- plat/kvm/arm: Fix default choice in arm64 VMM menu (#1053) by @michpappas
- plat/kvm: Check return code of all memory region inserting methods (#1052) by @mogasergiu
- plat/common: Increase granularity of hardcoded legacy high memory (#1051) by @mogasergiu
- plat/common: Align TLS sections to PAGE_SIZE (#1050) by @mogasergiu
- plat/kvm/arm: Rework early cache clean & invalidate (#1049) by @michpappas
- plat/kvm: Enable 8250 / NS16550 for Firecracker on arm64 (#1048) by @michpappas
- plat/kvm: Align the bootstack base address (#1047) by @michpappas
- plat/common: Add BIOS system memory in legacy high memory region (#1046) by @mogasergiu
- plat/kvm/x86: Enable relocation for
Firecracker
PIE
builds (#1045) by @mogasergiu - support/qemu-guest: Workaround for TCG/x86 and Unikraft paging (#1041) by @skuenzer
- plat/kvm: Fix guest hang on
UKPLAT_HALT
during shutdown request (#1039) by @mogasergiu - plat/kvm: Add configuration hint for EFI (#1038) by @skuenzer
- plat/common/x86: Fix
libukreloc
error for non-PIE
SMP
builds (#1037) by @mogasergiu - .github/workflows: Output all unikernel information and log test fails (#1035) by @craciunoiuc
- .github/workflows: Fix missing dependency to
LIBCOMPILER_RT
(#1033) by @nderjung - lib/nolibc: Fix compiler warning for
(f)scanf()
prototypes (#1029) by @skuenzer - Makefile: Include Makefile.build from main Makefile (#1028) by @skuenzer
- plat/common: Add support for pvpanic devices for x86 (#1022) by @craciunoiuc
- Add ULiège to ADOPTERS.md. (#1020) by @gaulthiergain
plat/*
: Signal shutdown cause on QEMU (#1019) by @mschlumpp- plat/kvm/x86: Fix build error due to missing
assert.h
header (#1017) by @mogasergiu - doc: Add EPAM Systems to the ADOPTERS.md (#1015) by @oleksiimoisieiev
- Add The University of Manchester to ADOPTERS.md (#1013) by @olivierpierre
- Makefile: Allow external Makefile.build and Provide GO 1.18 support (#1005) by @eduardvintila
lib/*
: Add syscall interfaces for dotnet runtime (#1004) by @i-Pear- lib/nolibc: Fix & improve headers (#1002) by @andreittr
- lib/vfscore: Fix create through broken symlink (#998) by @andreittr
- lib/ramfs: Support setting file mode on creation (#997) by @andreittr
- lib/ramfs: Ensure stability of inode numbers (#996) by @andreittr
- lib/ramfs: Implement new file timestamps (#995) by @andreittr
- lib/vfscore: Add unlinkat syscall (#994) by @andreittr
- lib/vfscore: Correct behavior of utime(NULL) (#993) by @andreittr
- lib/ukcpio: Fix symlinks not being extracted (#992) by @andreittr
- lib/vfscore: Accept negative timestamps (#991) by @andreittr
- lib/vfscore: Fix wrong application of umask (#990) by @andreittr
- arch/x86_64: Paging code - Enclose params of function-like macros in brackets (#987) by @cppstef
- plat/drivers: Add two configurations to ns16550 (#985) by @zhxj9823
- plat/drivers/virtio-ring: Downgrade saturated descriptors error (#984) by @mkroening
- build: Add compiler version checking for Clang (#983) by @andreittr
- plat/kvm/arm: Do not enable interrupts before
wfi
(#980) by @kubanrob - lib/nolibc: scanf and fscanf functions (#977) by @RaduNichita
- build: Silence misc warnings (#976) by @andreittr
- Fix exporting of ntohs and also include the long versions (#974) by @haesbaert
- plat/drivers/virtio: Fix virtio read write (#970) by @zhxj9823
lib/ukschedcoop
: Keep track of thread execution times (#965) by @skuenzerlib/*fs
,lib/vfscore
: Add properdirent/dirent64
structure usage (#963) by @StefanJum- plat/linuxu: Add fpsimd source file to build system (#962) by @StefanJum
- lib/vfscore: Fix behavior of writable open on directories (#953) by @andreittr
- lib/vfscore: Fix double-lock bug in symlink (#952) by @andreittr
- lib/vfscore: Reorder locks in
*at
syscalls (#951) by @andreittr
...
v0.13.1
This minor release fixes support for Aarch64 builds. A missing configuration option, introduced by the QEMU / Firecracker image split, prevented Aarch64-based builds to work.
Changelog
- .github: Update Prerequisites in PR template to reference checkpatch.uk (#918) by @michpappas
- 9pfs: Change default 9p version to
9P 2000L
(#914) by @StefanJum - build: Add proper compiler detection (#902) by @StefanJum
- lib/uknetdev: Fix typo in
uk_netdev_tx_one
documentation (#901) by @haesbaert - plat/kvm: Add vmm option for arm64 (#900) by @StefanJum
A big thank you also to all those who helped in the review process: @mschlumpp, @andraprs, @mariasfiraiala, @nderjung, @mogasergiu, @skuenzer and @razvand.
v0.13.0 Atlas
We are proud to announce the latest version of Unikraft, v0.13.0 (Atlas)! Along with many fixes, this release comes with a bunch of new features that are worth your attention!
Warning
This release includes a breaking change which affects output unikernel binary name. See native Firecracker support for details.
Here is the full updates list:
🚀 New Features
- Update parser in
lib/uklibparam
(#882) by @skuenzer - Support escaping of quotes in
lib/ukargparse
(#893) by @skuenzer - Add support for environment variables in
lib/posix-environ
(#868) by @skuenzer - Support for environment variables with
lib/posix-environ
in Musl (lib-musl#43) by @skuenzer - Add
README.md
file for 9pfs inlib/9pfs
(#837) by @DeliaPavel - Extend prsyscall in
lib/syscall_shim
(print structs, ...) (#836) by @marcrittinghaus - Dynamically allocate
struct mount
paths (#826) by @dinhngtu - Port the testsuite to the new scheduling APIs in
lib/posix-futex/test
(#809) by @noureddine-taleb - Add per-lcpu variable definition (#784) by @andraprs
- Add
README.md
file inlib/vfscore
(#780) by @RaduNichita - Add
README.md
file inlib/nolibc
(#778) by @calex257 - Implement a more robust compiler detection in
build
(#774) by @mschlumpp - Add Codacy code quality status badge to
README.md
indoc
(#764) by @aryanvarma7272 - Firecracker boot protocol support in
plat/kvm
(#760) by @mschlumpp - Implement subset of FUTEX_WAIT_BITSET in
lib/posix-futex
(#758) by @mschlumpp - Add an empty implementation of ioctl to eventfd in
lib/posix-event
(#756) by @mschlumpp - Add
syscall
alias touk_syscall
inlib/syscall_shim
(#755) by @mschlumpp - Implement the EFD_NONBLOCK flag for eventfd in
lib/posix-event
(#754) by @mschlumpp - Merge
.gcc_except_table
s inplat/common
(#753) by @mschlumpp - Compile all source files for ISR context in
lib/ukvmem
(#751) by @mschlumpp - Use -ffreestanding compiler flag in
lib/nolibc
(#740) by @razvand - Use 48-bit virtual addressing for PARange >= 52 in
plat/kvm/arm
(#729) by @eduardvintila - Improve unwind information for x86 architecture in
plat/x86
(#700) by @mschlumpp - Improve nolibc compatibility in
lib/nolibc
(#627) by @mschlumpp - Add synchronization mechanisms (#476) by @Sairajkodilkar
- Update description of Musl support in
README
(lib-musl#49) by @razvand - Update newlib to the latest Unikraft version (#28) by @eduardvintila
- Update pthread-embedded to the latest Unikraft version (#11) by @eduardvintila
- Add linux definitions patch (#34) by @John-Ted
- Add
SOCK_NONBLOCK
toaccept4()
andsocket()
(#33) by @marcrittinghaus - Improve
README.md
forapp-elfloader
(app-elfloader#7) by @skuenzer - VFS and native dynamic loader support (app-elfloader#17) by @skuenzer
🐛 Bug Fixes & Improvements
- Add semicolon to
DPRINTF
macro inlib/vfscore
(#890) by @razvand - Initialize lists for
stdio_vnode
inlib/vfscore
(#889) by @razvand - Avoid recursive locking in sys_rename in
lib/vfscore
(#888) by @marcrittinghaus - Add missing errno include in
lib/ukswrand
(#887) by @marcrittinghaus - Fix I/O error on fsync with 9P2000.u in
lib/uk9p, lib/9pfs
(#886) by @marcrittinghaus - Start TID numbering from 1 in
lib/posix-process
(#885) by @maniatro111 - Fix file path resolution for 9pfs setup in
lib/vfscore
(#883) by @andraprs - Disable compiler control flow protection in
build
(#881) by @andreittr - Modify pointer comparison in
lib/{nolibc,isrlib}
(#880) by @mariasfiraiala - Add additional recognised Git trailers to checkpatch in
support/scripts
(#879) by @nderjung - Fix memory region setup and issue #766 in
plat/linuxu
(#878) by @mogasergiu - Fix register names for clang in
plat/kvm/x86
(#877) by @StefanJum fs0
for automounting 9pfs inlib/vfscore
(#875) by @skuenzer- Handle
FIONBIO
command inpipe_ioctl()
inlib/vfscore
(#874) by @eduardvintila - Fix Python ascii codec can't decode byte in
support/scripts
(#873) by @maniatro111 - Change vnops to take constant strings in
lib/vfscore
(#866) by @marcrittinghaus - Fix
dup
,utimensat
, andfutimens
inlib/vfscore
(#865) by @marcrittinghaus - Add
ukarch_fetch_sub
inuk/arch
(#864) by Răzvan Vîrtan - Fix
ioctl()
on device files (+ cleanup) in/lib/devfs
,/lib/ukswran
(#855) by @marcrittinghaus - Fix file flags for
O_NONBLOCK
andO_ASYNC
(#850) by @marcrittinghaus - Remove
clone3
syscall inlib/posix-process
(#847) by @John-Ted - Apply
LIBxxx_COMPFLAGS{,-y}
to C++ too inbuild
(#845) by @dinhngtu - Fix cast to invalid type in
9p.c
(#844) by @hlef - Fix potential
free(NULL)
inlib/vfscore
(#843) by @hlef - Use page alignment macros everywhere (#842) by @hlef
- Remove unreachable NULL checks in
ukalloc
(#840) by @hlef - Fix unchecked
uk_palloc
value inxen/x86/mm.c
(#839) by @hlef - Various fixes for application compatibility (#834) by @marcrittinghaus
- Fix compilation and loading of linuxu images in
plat/linuxu
(#833) by @mschlumpp - Allow non-writable shared file mappings in
lib/ukvmem
(#832) by @csvancea - Fix symlink support for 9pfs in
9pfs, vfscore
(#830) by @andraprs - Fix wrong type for the
st_nlink
field insidestruct stat
inlib/nolibc
(#829) by @csvancea - Fix build warnings in
lib/posix-process
(#820) by @kouk - Force update
UK_CONFIG
inbuild/Makefile
(#817) by @i-Pear - Fix for Issue #730 in
lib/uksglist
(#813) by @vineethkm - Handle a full tracing buffer correctly in
lib/ukdebug
(#810) by @mschlumpp - Fix issues in FDT functions in
plat/drivers/ofw
(#805) by @eduardvintila - Detect if
gawk
can be used instead ofawk
inbuild
(#803) by @skuenzer - Add a simple test for mmap and munmap in
lib/ukmmap
(#802) by Kha Dinh - Remove warnings related to timespec in
lib/nolibc
(#800) by @wattake - Fix
posix-mmap
errno issue (#799) by @John-Ted - Update
uio_offset
anduio_resid
on successful reads inlib/posix-event
(#798) by @eduardvintila - Add comments to
9pfs.h
file ([#794](#79...
v0.12.0 Epimetheus
We are proud to announce the latest version of Unikraft, v0.12.0 (Epimetheus)! This release comes with a bag of new exciting features and more stability to the existing ones. Here is the full updates list:
🚀 New Features
- Expose
HANDLED_CONT
return value ininclude/event
(#738) by @marcrittinghaus - Register
mkdirat
to syscall shim inlib/vfscore
(#732) by @eduardvintila - Fault-safe memory access in
lib/uknofault
(#725) by @marcrittinghaus - Boot code refactoring (#722) by @marcrittinghaus
- Make TCB overlap configurable in
arch/libcontext
(#720) by @eduardvintila - Add
_SC_PHYS_PAGES
and_SC_AVPHYS_PAGES
tosysconf
inlib/posix-sysinfo
(#719) by @osmten - Add
setattr
function for 9pfs inlib/9pfs
(#710) by @StefanJum - Update rust version to latest nightly in
lang/rust
(#709) by @fabianpatras - Add comments to vfs.h file in
lib/vfscore
(#707) by @RaduNichita - Add
README.md
file inlib/ramfs
(#705) by @DeliaPavel - Add comments to ramfs.h file in
lib/ramfs
(#704) by @DeliaPavel - Update documentation of ukarch_random (#703) by @michpappas
- Use ukarch_random_seed to seed MTE keys in
arch/arm64
(#702) by @michpappas - Add IRQ events in
plat/*
(#699) by @mschlumpp - Implement
ukarch_random
inarch/x86_64
(#695) by @michpappas - Handle error code returns from event handlers in
include/event
(#691) by @mschlumpp - Use correct variable name for sect-strip.py tool in
lib/ukdebug
(#690) by @mschlumpp - Use the ukarch_random API to generate PAuth keys and enable Pointer Authentication on KVM (#686) by @michpappas
- 9p2000.L support in
lib/{uk9p,9pfs}
(#671) by @dinhngtu - Implement subclass matching in
plat/common/pci
(#624) by @mschlumpp - Add additional flags for compatibility in
lib/vfscore
(#623) by @mschlumpp - Expose
rmdir
/rename
fromnolibc
inlib/nolibc
(#622) by @mschlumpp - Add
lib/ukvmem
andlib/posix-mmap
(#603) by @marcrittinghaus - Add README.md file in
lib/uktest
(#555) by @StefanJum - Upgrade musl to latest version (1.2.3) (#34) by @eduardvintila
- Upgrade libsqlite version (#4) by @Starnox
- Add configuration file for textlint in
.github
(#178) by @razvand - Add make-based build workflow (#177) by @StefanJum
- Add
CONTRIBUTING.md
file referencing the website (#174) by @StefanJum - Add instructions on contributing to documentation (#171) by @StefanJum
- Split coding style content (#162) by @StefanJum
- Port the informations on the
Makefile.uk
,exportsyms.uk
andextra.ld
files from the Unikraft old documentation (#126) by @StefanJum
🐛 Bug Fixes & Improvements
- Fix typecast for
PT_BUFP
inuk_prsyscall
forlib/syscall_shim
(#750) by @skuenzer - Fix
lstat()
infinite loop inlib/vfscore
(#711) by @mariasfiraiala - Fix
gcc
-ism forclang
compilation inplat/pci_ecam.c
(#701) by @mariasfiraiala - Comment out unused sysinfo buffer in
lib/posix-info
(#673) by @razvand - Fix a memory leak in
lib/ukallocbbuddy
(#689) by @noureddine-taleb - Fix race condition during context switch in
lib/uksched
(#694) by @eduardvintila - Fix segments in ELF output images in
build
(#698) by @mschlumpp - Align the stack to 16 bytes in
arch/x86_64
(#684) by @mschlumpp - Update ukrust to work alongside Cargo in
lib/ukrust
(#680) by @vladandrew - Use Linux-compatible stat structure in
lib/nolibc
(#675) by @razvand - virtio-net fixes (#669) by @dinhngtu
- Flip argument names of
VOP_SYMLINK
inlib/vfscore
(#629) by @mschlumpp - Prefer local include dirs in
support/build
(#625) by @mschlumpp - Ensure time monotonicity for tscclock in
plat/kvm
(#617) by @mschlumpp - 16-byte align syscall stack in
plat/common/x86
(#748) by @marcrittinghaus - Align allocated stacks to arch requirement in
lib/uksched
(#747) by @skuenzer - Fix for .tdata warning (#746) by @marcrittinghaus
- Cast initrd vbase to
(void *)
in lib/vfscore (#744) by @skuenzer - Fix initrd0 macro in
include/uk/plat
(#742) by @marcrittinghaus - Fix cmdline parsing in
plat/kvm/x86
(#741) by @marcrittinghaus - Fix various warnings (#739) by @marcrittinghaus
- Fix dependency for
nanosleep()
inapp-helloworld
(#13) by @michpappas - Adapt forced polling mode to
uknetdev
flag rename (#30) by @mschlumpp - Adapt memory region usage in patch (#7) by @marcrittinghaus
- Remove hash templates for
pthread_t
(#26) by @dinhngtu - Move
_XOPEN_SOURCE
define to library CFLAGS (#33) by @mschlumpp - Remove outdated vendored
features.h
(#32) by @mschlumpp - Fix typos in the
en/docs/contributing
(#179) by @RaduNichita - Fix kraft via pip installation step (#176) by @mkroening
- Ignore md104 rule when inside shortcodes in
github/linter
(#173) by @StefanJum - github/linter: Remove
.png
keyword ingithub/linter
(#172) by @StefanJum
A big thank you also to all those who helped in the review process: @gabrielmocanu, @nderjung, @craciunoiuc, @eduardvintila, @marcrittinghaus, @mariasfiraiala, @razvand, @razvanvirtan, @kubanrob, @mogasergiu, @skuenzer, @StefanJum, @vladandrew, @RaduNichita, @fabianpatras, @andraprs, @michpappas, @maniatro111, @DeliaPavel and @mschlumpp.
For more information, check out the accompanying blog post or view the full changelog.
v0.11.0 Janus
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:
🚀 New Features
- Update the scheduling API and thread support. This feature consists of multiple contributions by @skuenzer
- Re-factor context, extended context, and TLS/TCB handling in
arch/libcontext
(#535) - New scheduling API in
lib/uksched
(#564) - Change occurences of
uk_thread_tcb_fini
touk_thread_uktcb_fini
inuksched
(#660) by @eduardvintila
- Re-factor context, extended context, and TLS/TCB handling in
- Clone system call support. This feature consists of multiple contributions by @skuenzer
- Provide support for Musl as standard C library for Unikraft:
- Solve redefining conflicts in
uktime
(#454) by @dragosargint - Add
UK_LIBC_SYSCALLS
guard aroundsend()
andrecv()
inposix-socket
(#637) by @razvand - Replace
access
andstat
with Unikraft syscalls invfscore
(#636) by @mariasfiraiala - Add syscalls in
legacy_syscalls.h
insyscall_shim
(#634) by @mariasfiraiala - Change
pipe()
call touk_syscall_r_pipe()
invfscore
(#633) by @eduardvintila - Add threading support in
musl
(unikraft/lib-musl#9) by @dragosargint - Add script for generating Makefile.uk.musl.* entries (unikraft/lib-musl#8) by @kubanrob
- Update aarch64 makefiles (unikraft/lib-musl#7) by @kubanrob
- Add patches for aarch64 (unikraft/lib-musl#6) by @kubanrob
- Re-enable wrappers (unikraft/lib-musl#5) by @dragosargint
- Update Makefile for LWIP integration (unikraft/lib-musl#19) by @razvand
- Add syscall wrapper for getrandom (unikraft/lib-musl#25) by @michpappas
- Include
tgmath.h
header (unikraft/lib-musl24) by @maniatro111 - Add
wait.c
build dependency (unikraft/lib-musl#23) by @razvand - Add
sysexits.h
include dependency (unikraft/lib-musl#22) by @razvand - Add sources for
POSIX_USER
functions (unikraft/lib-musl#20) by @StefanJum - Always include the uname sources (unikraft/lib-musl#18) by @StefanJum
- In
lib-lwip
, includefcntl.h
andsys/ioctl.h
insockets.c
(unikraft/lib-lwip#27) by @razvand - In
lib-lwip
, removeip6addr
-related files (unikraft/lib-lwip#25) by @razvand - Add Musl support for LWIP (unikraft/lib-lwip#23) by @razvand
- In
lib-lwip
, adduk/essentials.h
as include dependency (unikraft/lib-lwip#22) by @razvand - Adopt to refactored scheduling API in LWIP (unikraft/lib-lwip#19) by @skuenzer
- In
lib-libcxx
, add patch with signature forvasprintf
(unikraft/lib-libcxx#23) by @mariasfiraiala - Add libcxx
math.h
header (unikraft/lib-libcxx#22) by @StefanJum - Include the first
stddef
header file in libcxx (unikraft/lib-libcxx#18) by @StefanJum - In
lib-libcxx
, remove multiple definitions when using musl (unikraft/lib-libcxx#17) by @StefanJum - In
lib-libcxx
, definestrtoll_l
andstrtoull_l
inlocale
(unikraft/lib-libcxx#14) by @StefanJum - Add support headers for Musl in LIBCXX (unikraft/lib-libcxx#10) by @StefanJum
- In
lib-libcxx
, add location offeatures.h
file from Musl (unikraft/lib-libcxx#9) by @StefanJum - Add support (in
kraft.yaml
) (unikraft/app-helloworld-cpp#8) by @razvand - Add support (in
kraft.yaml
) (unikraft/app-nginx#7 and #8) by @razvand - Add support (in
kraft.yaml
) (unikraft/app-redis#11) by @razvand - Add support (in
kraft.yaml
) (unikraft/app-sqlite#5) by @razvand - Add support (in
kraft.yaml
) (unikraft/app-python3#8) by @razvand - Add support (in
kraft.yaml
) (unikraft/app-micropython#3) by @razvand
- Solve redefining conflicts in
- Implement SGIs in GIC-v3 (#471) by @razvanvirtan
- Add Armv8 MTE (Memory Tagging Extensions) (#458) by @michpappas
- Introduce
ukarch_random
and add implementation for arm64 (FEAT_RNG
) (#434) by @michpappas - New
getdents64
system call (#672) by @razvand
🐛 Bug Fixes & Improvements
- Use
-Wno-cast-function-type
for GCC >= 8 insyscall_shim
(#677) by @razvand - Fix
getdents
count unit invfscore
(#670) by @dinhngtu - Fix
stdio.c
build warning invfscore
(#667) by @razvand - Change the printing function from
printf
to_uk_printk
inuktest
(#662) by @maniatro111 - Fix implicit declaration of
__lxstat
invfscore
(#661) by @eduardvintila - Fix typecast warnings in
posix-process
(#657) by @razvand - Change argument type for
posix_socket_close
inposix-socket
(#647) by @maniatro111 - Fix 9pfs scatter/gather I/O in
9pfs
(#639) by @eduardvintila - Fix uninitialized variable in
vfscore
(#551) by @mariamosn - Define
LVLC_CALLER
in caseCONFIG_LIBUKDEBUG_ANSI_COLOR
is not set inukdebug
(#559) by @hchandad - Fix warning undeclared function
halt()
inarm/lcpu.c
(#540) by @julianhartmer - Fix warning in
year_to_secs
inuktime
(#534) by @marcrittinghaus - Fix buffer length argument when calling
virtio_cread_bytes_many
invirtio_pci
(#519) by @eduardvintila - Use mutable strings in tests in
ukargparse
(#439) by @michpappas - Insert
.uk_testtab
after data section foruktest
(#606) by @alexhoppus - Make
LIBUKTEST_TEST_MYSELF
option enable/disable self tests inuktest
(#602) by @maniatro111 - Add asm flag for compilation with clang on x86 (#560) by @mariasfiraiala
- Add
clone
rule to the build system (#553) by @maniatro111 - Update checkpatch configuration and helper script (#651) by @skuenzer
- Add support for long application directory paths when building (#619) by @kubanrob
- Add
RLIMIT_DATA
resource forprlimit64
inposix-process
(#531) by @Alex-deVis - Add command line parameter
N
for settingUK_NAME
(#682) by @nderjung - In
lib-musl
, use function declaration for getdents64 (#unikraft/lib-musl31) by @razvand - In
lib-musl
, add patch to fix definition of environ variable (#unikraft/lib-musl30) by @razvand - In
lib-musl
, avoid bug inuk_syscall_set_tid_address()
(#unikraft/lib-musl29) by @dragosargint - In
lib-musl
, use-Wno-cast-function-type
for GCC >= 8 (#unikraft/lib-musl28) by @razvand - In
lib-musl
, remove include directory from clean list (#unikraft/lib-musl17) by @kubanrob - In
lib-musl
, introduce depedency to enable parallel build (#unikraft/lib-musl15) by @kubanrob - In
lib-musl
, enable FPSIMD support on ARM64 (#unikraft/lib-musl14) by @razvanvirtan - In
lib-musl
, hide internal headers (#unikraft/lib-musl13) by @kubanrob - In
lib-musl
, patch CVE-2020-28928 (#unikraft/lib-musl11) by @kubanrob - In
lib-musl
, comment macros to stop using VDSO (#unikraft/lib-musl10) by @maniatro111 - In
lib-lwip
, use-Wno-cast-function-type
for GCC >= 8 (unikraft/lib-lwip#28) by @razvand
A big thank you also to all those who helped in the review process: @adinasm, @nderjung, @craciunoiuc, @dragosargint, @eduardvintila, @marcrittinghaus, @mariasfiraiala, @razvand, @razvanvirtan, @rene, @kubanrob, @mogasergiu, @skuenzer, @StefanJum, @vladandrew, @maniatro111, @DeliaPavel and @mschlumpp!
For more information, check out the accompanying blog post or view the full changelog.