Releases: Solo5/solo5
v0.10.0
v0.10.0 (2025-10-27)
- Fix compilation on OpenBSD about
#ifdef(@omegametabroccolo, @hannesm, @reynir, #614, related with #600) - Add GitHub actions to test Solo5 on different platforms (@hannesm, #616, #617 & #540)
- Do not use
-Wstringopt-overflowwhen we useclangfortest_ssp(@hannesm, #607) - Show errors and exit instead of
assert false(@shym, @edwintorok, @hannesm, @reynir, #613 & #612) - Define
.note.GNU-stackwhen it's needed (@shym, @Kensan, @hannesm, @palainp, @dinosaure, #619, #570 & #562) - Detect MTU on TAP interface for hvt, spt and virtio (@reynir, @hannesm, @dinosaure, #605 & #606)
v0.9.3
v0.9.2
v0.9.2 (2025-07-15)
- Send FPU info to GDB in HVT server (@greydot, #571)
- Support of OpenBSD 7.5 (@shym, @adamsteen, @omegametabroccolo, #573)
v0.9.1
v0.9.0
v0.9.0 (2024-10-11)
- Fetch
stdadomic.hfrom system on FreeBSD (#574, @shym, @hannesm) - Improve documentation about NAT & deployement (#575, @panglesd, @reynir)
- Ensure reproducibility of installed objects (#576, @dinosaure)
- Allow 4GB of memory for the unikernel (#577, @mato, @reynir, @Kensan, @hannesm)
- Fix error path execution about unstable TSC from system (#578, @reynir, @hannesm)
-no-acpiis deprecated, use-machine acpi=off(#579, @wegank)- Fix yield on
spttarget (#582, @reynir, @Firobe) - Delete redundant check (#583, @hannesm, @PizieDust)
- Multiple net devices for
virtiotargets (#581, @ricarkol, @palainp, @reynir, @hannesm)
v0.8.1
v0.8.1 (2024-04-05)
- Update the documentation about how to use Solo5 (@fabbing, @dinosaure, @Kensan, #558)
- Fix few warnings about the new introduced TLS support (@greydot, #563)
- Prevent the release if we get some errors with
-Werror(@hannesm, @palainp, #565) - Fix the
gdbsupport and theEFLAGSregister (@greydot, @reynir, #567) - Fix few warnings and errors on FreeBSD 14 (@hannesm, #564)
- Allow to pass
HOSTARandHOST_PKG_CONFIGfor the NixOS support (@sternenseemann, #508)
v0.8.0
v0.8.0 (2023-04-25)
-
Be able to build
spt,virtio,muenandxentargets on OpenBSD
(@adamsteen, #544). This change does not allow us to "run" these targets on
OpenBSD -
Fix linker scripts with TLS (Thread Local Storage) sections
(@palainp, @hannesm, @dinosaure, #542) -
Export TLS symbols (@palainp, @hannesm, @dinosaure, #546)
breaking change due to #542 & #546, tenders must be upgraded. Indeed,
solo5.0.7.* tenders will not be able to load correctly unikernels compiled
with solo5.0.8.0. The internal ABI version forsolo5-hvt/solo5-sptwas
upgraded accordingly.This version implements Thread Local Storage. The user can initialise a TLS
block withsolo5_tls_initon a pointer tosolo5_tls_size()free bytes.
Then, the user is able to set thetp(Thread Pointer) pointer via
solo5_set_tls_base(solo5_tls_tp_offset(tls_block)). More details are
available intosolo5.h.Note: this change does not allow a Solo5 unikernel to use multiple cores! It
only provides an API required by OCaml 5 / pthread to launch, at most, one
thread. -
Split out the
time.cimplementation between Muen and HVT
(@dinosaure, @Kensan, #552) -
User hypercall instead of TSC-based clock when the user asks for the
wall-clock (@dinosaure, @reynir, #549, #550)Note: only hvt & virtio are updated to avoid a clock drift on the wall-clock.
Indeed, when the unikernel is suspended, the wall-clock is not updated. Muen
& Xen still use a TSC-based wall-clock. The spt target was already in sync
with the host's wall-clock. -
Fix the
.bsssection according to #542 & #546. The.bsssection is tagged
withPT_LOAD. Tenders are available to load this section properly.
(@Kensan, @dinosaure, #551, #554) -
Fix the cross-compilation of Solo5 for
aarch64
(@dinosaure, @palainp, @hannesm, #555) -
Increase the Muen ABI (2 to 3) due to TLS changes (@Kensan, #557)
-
Support lifecycle management for Muen (@Kensan, #557)
The user is able to configure automatic restarting of unikernels that invokes
solo5_ext() -
Fix the
test_fputest & ensure the alignment of variables (@Kensan, #557)
v0.7.5
v0.7.5 (2022-12-07)
-
Since MirageOS moved from PV mode to PVH on Xen, and thus replacing Mini-OS
with solo5, there was an issue in the solo5 code which failed to properly
account the already written bytes on the console. This only occurs if the
output to be performed does not fit in a single output buffer (2048 bytes on
Xen).The code in question set the number of bytes written to the last written count
written = output_some(buf), instead of increasing the written count
written += output_some(buf).Thanks to Krzysztof Burghardt, Pierre Alain, Thomas Leonard & Hannes Mehnert
for the issue, review and proposal. The fix is available here: #538.
v0.7.4
v0.7.4 (2022-11-04)
- Mark .text execute-only, currently only on OpenBSD (@adamsteen, #450)
- Allow all log levels to be passed as command line parameter to the tender
(added --solo5:error, --solo5:warn, --solo5:info) (@reynir, #532) - Add tender command line argument --block-sector-size:=int. This allows
to specify the desired block sector size. The default if not provided is 512,
the same that was used before (@reynir, #528, addresses partially #325) - Check that the file passed as block device is aligned to the block sector size
(@reynir, #527) - Use
realpathto determine toolchain paths - allowing tools being symlinks
as they are on NixOS (@greydot, #526) - Allow slack in sleep in test_time (@greydot, #525, #535)
- Fix build when using git worktree (.git being a file) (@reynir, #531)
- Fix tests on OpenBSD 7.2 (@dinosaure, #535)
- Add
x-ci-failureson our OPAM files about CentOS 7 (@dinosaure, #535)