mirage / mirage-solo5

Solo5 core platform libraries for MirageOS
ISC License
20 stars 21 forks source link

Mirage 3/4 compatibility patch #78

Closed dinosaure closed 2 years ago

dinosaure commented 3 years ago

This PR is not ready yet but it keep in our minds that we need a patch to be compatible with MirageOS 3 and 4. The issue was spotted while the cross-compilation of some unikernels, I need to test this patch with the current state of MirageOS 3 but it seems fine.

dinosaure commented 3 years ago

Ok the CI fails because ocaml-ci tries to compile all rules include the rule for MirageOS 3 and MirageOS 4. At this stage, we don't know how to fix that but the package is still is installable.

hannesm commented 2 years ago

is this relevant and up to date? it unfortunately has conflicts with the main branch, would you mind to fix them, please?

dinosaure commented 2 years ago

I think this PR is still relevant but we found a problem about ocaml-ci which takes the wrong dependency path. The current behavior of this PR is to compile mirage-solo5 according to is_freestanding dune variable which exists in MirageOS 4 and it does not exists in MirageOS 3.

I'm not sure that it's the best layout but we stopped the dev of this PR due to the ocaml-ci failure. We should start to think about a real solution.

TheLortex commented 2 years ago

I've found a way to make dune build @check happy. It consists in adding a dependency on is_freestanding for the Mirage 4 build of the stubs and marking it as optional. Changes have been included and PR is rebased.

EDIT: now failing because of opam dune lint.

dinosaure commented 2 years ago

From the a discussion with @mirage/core, we don't want to keep the support between MirageOS 3 & 4. So this PR can be deleted.