From the Hardening Mosys design doc: https://docs.google.com/document/d/1MkBUhp6KURhB2HArB7QYcrMpU8z1PQgknU-hx8c4K2k/edit#heading=h.xerfucybb4ss
This feature bug will track transitioning the perimeter components of mosys called out in the design doc to Rust without rewriting the core. Go was evaluated and--while great--was discarded due to a desire to have a dynamic library. A proof-of-concept is already in-process of landing in the mosys repo.
Before we can stop building the binary from the C build system, we need to work through the requirement that Firmware Updater have statically linked binaries. The proof-of-concept is currently configured to generate dynamically linked. Concurrently, there's an on-going effort to save space in the Firmware Updater by using dynamic linking: https://bugs.chromium.org/p/chromium/issues/detail?id=765499 . If that's close to being completed, we can avoid generating a static binary.
See additional discussion and rationale in design doc.
Comment 1 by jclinton@chromium.org
, Dec 18 2017