Docker container with cross-compilers for generating the multi-architecture size table in the project README.
| Target | Compiler | Word size |
|---|---|---|
| Cortex-M0 (Thumb-1) | arm-none-eabi-gcc | 32-bit |
| Cortex-M4 (Thumb-2) | arm-none-eabi-gcc | 32-bit |
| MSP430 | msp430-elf-gcc (TI) | 16-bit |
| RISC-V 32 (rv32im) | riscv64-unknown-elf-gcc | 32-bit |
| ESP32 (Xtensa) | xtensa-esp-elf-gcc | 32-bit |
| 68k | m68k-linux-gnu-gcc-12 | 32-bit |
| x86-32 | gcc -m32 | 32-bit |
| x86-64 | gcc | 64-bit |
| 8051 | sdcc | 8-bit |
Build the image (one-time, ~5 min):
docker build -t fr-math-sizes docker/Run the size report:
docker run --rm -v $(pwd):/src fr-math-sizes bash /src/docker/build_sizes.shOutput goes to stdout and build/size_table.md.
The container can also be managed via pocketdock, a lightweight container runner for dev workflows:
from pocketdock import Container
c = Container(dockerfile="docker/Dockerfile", tag="fr-math-sizes")
c.run("bash /src/docker/build_sizes.sh", mount={"src": "."})