The OCaml system enjoys excellent support for a wide variety of hardware systems, and is not hard to port to new platforms, as long as Unix-like OS facilities (notably a libc) are available.
This talk discusses the issues that arise when trying to port instead to a platform without such general purpose OS facilities and tackles the resulting tricky cross-compilation issues. Interfacing directly with the hardware and via a ported MirageOS layer is also discussed, as well as cross-compilation of user libraries and strategies for reducing code size.
Running OCaml in new platforms is always fun, and the technical aspects will be interesting to anyone working in a cross-compilation setting.