<hannes>
ehirdoy: so my rough approach would be to not think too much about solo5, but rather about mirage-solo5 (which implements the main event loop etc.) and ocaml-freestanding (providing the ocaml runtime) -- these are the only users of the solo5 API, so if you adapt these pieces to use <whatever-else-is-on-arm32> you won't need the solo5 api
<ehirdoy>
are those ESP32 port natively compiled or bytecode?
<hannes>
on a different note, you can run mirageos as unix/linux process on arm32 directly already (modulo bitrot)..
<hannes>
in ocaml-freestanding, there's a single sysdeps_solo5.c, and there could be another sysdeps_arm32.c to be used on arm32..
<ehirdoy>
@hannes :)
<hannes>
the esp32 port was an attempt at cross-compilation as well, which lead to further improvements of the mirage utility build story (there are various PRs in progress, but this has not yet been merged) --> the esp32-opam-repo with lots of opam packages with "-esp32" suffix is no longer needed AFAICT (but i have neither worked on the former nor on the latter)
<hannes>
ehirdoy: as first step, i'd really recommend to try compiling mirage/unix (so mirage configure -t unix) on an arm32 (or emulator thereof), and see if this produces working binaries
Haudegen has quit [Quit: Bin weg.]
haesbaert has quit [Ping timeout: 272 seconds]
_whitelogger has joined #mirage
<reynir>
Hmm. My unikernel has a constraint mirage-xen < 4.0.0 and I don't understand why
<kuso>
reynir: are you pinning down _anything_ right now?
<kuso>
reynir: are you sure your opam is opam 2.x? did you opam update?
<hannes>
reynir: mirage -- the tool -- generates opam files with lower _and_ upper bounds -- maybe it generates sth with mirage-xen < 4.0.0?
<reynir>
Yes, it generates mirage-xen < 4.0.0, hannes
<hannes>
reynir: there's "package ~min:"3.1.0" ~max:"4.0.0" "mirage-xen"" in mirage/lib/mirage.ml ...
<reynir>
But I don't see why it's doing that
<reynir>
Aha
<hannes>
since we ended in sad situations where we broke everything for existing users
<reynir>
Haha oh :(
<hannes>
feel free to PR to mirage a change with an adjusted upper bound (now certainly, every now and then we forget to adjust the lower+upper bounds)
<hannes>
(it has been generating upper bounds since nov 2018, mirage 3.3.0)
<reynir>
My unikernel compiles fine with mirage-xen 4.0.1
<hannes>
cool, i barely track mirage-xen changes (and thus don't know why the major bumped), but if its fine, as said, we can easily bump the upper bound in the mirage tool.
<reynir>
The changelog says OS.Xen was renamed to OS_xen (modulo spelling), but I'm not using those directly
<hannes>
that's fine then, the constraints in the mirage utility should only _not being adjusted_ if the initialisation (or linking/...) procedure changed ~> feel free to PR ~max:"5.0.0" :)
<reynir>
OS.Xen --> Os_xen
<hannes>
yes, a change i don't really understand tbh
<kuso>
reynir: still something weird, i just ran a builder-build in a clean vm and it auto-picked 4.0.1 afaict
<hannes>
(the constraint is only picked up on make depend // opam install --deps-only . ~~> a mirage build / make won't take up these constraints)
<reynir>
Okay, qubes-mirage-firewall breaks on mirage-xen 4.0.1 -- OS.MM.Heap_pages.total is unbound
<kuso>
reynir: 4.08.0 ?
<kuso>
(for both)
<reynir>
I think I had to downgrade to OCaml 4.07.0
<reynir>
No wait, I could use OCaml 4.08.0 for the firewall, but not for the ssh-agent
<kuso>
i upped it to 4.08.0 for the -fw in Makefile.builder recently, but ssh-agent still has 4.05.0 there, retry with both at 4.08.0 running right now.
<reynir>
I think some dependency for ssh-agent doesn't work for 4.08.0 yet, but 4.07.1 works
<reynir>
Also, I found out it's not just OS.Xen --> Os_xen, OS.Xs has also been renamed/moved to Os_xen.Xs...
<reynir>
Aaand OS.MM --> Os_xen.MM
<kuso>
(yes, ssh-agent with 4.08.0 explodes here too)