Dear Solo5 users, We have just updated, in fire, the new version of Solo5 to have a better integration with Muen. We therefore advise you to update the tooling and your unikernels accordingly if you are a Muen user - an update of the ABI versions has also been done. We thank the Muen team for their responsiveness to this new release. Solo5 is now available via OPAM[^1]: ``` $ opam install solo5 ```
We will update the robur.io repository accordingly to get this latest version of Solo5 via `apt` (for more information on this repository, you can see: https://robur.coop/Projects/Reproducible_builds). Best, [^1]: https://opam.ocaml.org/ On Tue, Apr 25, 2023 at 6:25 PM Romain Calascibetta < [email protected]> wrote: > Dear Solo5 user, > > We just cut the release of Solo5 0.8.0 which integrates several > improvements and a breaking change. You can see the changelog here: > > * Be able to build `spt`, `virtio`, `muen` and `xen` targets 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 for `solo5-hvt`/`solo5-spt` > was > upgraded accordingly. > > This version implements Thread Local Storage. The user can initialise a > TLS > block with `solo5_tls_init` on a pointer to `solo5_tls_size()` free > bytes. > Then, the user is able to set the `tp` (Thread Pointer) pointer via > `solo5_set_tls_base(solo5_tls_tp_offset(tls_block))`. More details are > available into `solo5.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. > * Fix tests reported by NixOS (@greydot, @ehmry, #547) > * Split out the `time.c` implementation 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. > * Improve the muen clock (@Kensan, #553) > * Fix the `.bss` section according to #542 & #546. The `.bss` section is > tagged > with `PT_LOAD`. Tenders are available to load this section properly. > (@Kensan, @dinosaure, #551, #554) > * Fix the cross-compilation of Solo5 for `aarch64` > (@dinosaure, @palainp, @hannes, #555) > > As you can see, Solo5 is able to handle Thread Local Storages now. This > improvement helps us to move forward with OCaml 5, MirageOS and unikernels > which require this ABI. Due to this change, the layout of Solo5 unikernels > was updated and we advise users to upgrade tenders and unikernels with > Solo5 0.8.0 - otherwise, your tender will inform you that the ABI version > is wrong. The Muen team is also aware of such a change. We would like to > thank all contributors to this release for their advice and reviews. > > The project is available here: > https://github.com/Solo5/solo5/releases/tag/v0.8.0 > > Best, > > -- > Romain Calascibetta - http://din.osau.re/ > -- Romain Calascibetta - http://din.osau.re/
