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/

Reply via email to