When i say embedded system, i really mean embedded system running on a minimal Linux with low power CPU, not so much flash, same for the RAM.
It's similar to think that a raspberry pi is a IOT. It's not, it's mini computer on ARM platform. In my case, it's really an embedded system, low cpu, not so much ram, neither flash.
And btw i know exactly how yocto works because i build myself our OS. And that's not exactly python, it's a mix between python and bash.
We build two different distributions: one ARM and one x86 (for emulation purpose, valgrind, etc.). and all tools(chains) associated.
This ocaml software needs to be integrated in this workflow.
Right now, we use plain C, and yes cross compilation is a specific setup, but it's not difficult to achieve.
The advantage right now to use cross compilation are:
We can use all the power of a real computer to build/debug/code.
I can use all the interfaces that my computer have and not my end (embedded) system: multiple ethernet cards, bluetooth, usb, etc.
I have multiple projects to manage and all of them are not embedded related.
Thanks for your answer and the time spent for my question :-)
TL;DR: i need to cross compile ocaml code to arm because my device is not powerful enough and that's not possible in industrial purpose to change that.