newlib
La biblioteca estándar de C para sistemas sin sistema operativo, y la que acompaña a casi todos los compiladores cruzados para ARM.
Cygnus Solutions armó newlib a principios de los noventa con código de licencia libre de varias procedencias, porque glibc era demasiado grande y estaba demasiado atada a la GPL para clientes que fabricaban firmware. Red Hat compró Cygnus en 1999 y sigue manteniéndola. Está debajo de arm-none-eabi-gcc y también es la base de la biblioteca C de Cygwin.
El truco es que newlib no sabe nada del hardware. printf funciona, pero termina en una llamada a _write, y malloc pide memoria a través de _sbrk: funciones que el desarrollador de firmware debe aportar, normalmente en un archivo llamado syscalls.c. Quien las olvida recibe errores de enlazado con nombres incomprensibles. Para chips pequeños existe newlib-nano, una variante adelgazada en la que printf ya no se come 20 KB de flash.