Rust. ARM. uClibc. Choose any three.

So one day you wake up and decide you want to use Rust in Linux with uClibc on a slightly niche ARM platform. You look at the handy Rust Forge and realize your dream platform isn’t supported. What ever will you do??

I have spent the bulk of this year wrestling with that question. A customer requested the usage of our Rust services in a uClibc environment on an ARM Cortex-M3 platform. The Rust compiler featured limited support for uClibc targets and a bare metal Cortex-M3 target, but no support for Linux + uClibc on a Cortex-M3. So began the journey of figuring out how to bring up a new Rust target and stumbling along the path to a fully portable executable.

Along the course of this journey I found there was not one single place which listed the steps or resources I would need to bring up this new target. I ended up taking 20+ pages of notes in Notion as I attempted to carefully document the steps I took and what I learned along the way. My intent is to translate those pages of notes into several technically dense posts which can serve as a resource and encouragement to future travelers on the dusty road of a target bring up