Miosix Toolchain
Information on the Miosix Toolchain
The Miosix Toolchain is a patched version of the GCC compiler, Newlib C library, and libstdc++ library. The patches to the compiler and standard libraries are required to:
- Provide thread safety. Cooperation between the compiler and kernel is needed to make certain C/C++ standard library functions and certain C++ language constructs thread safe.
- Implement the memory model for Miosix processes and support the fluid kernel design of Miosix (-qkernelspace option to switch between compiling for the kernel or processes)
- Improved speed of the pthread and C++ thread APIs.
- Code size and RAM requirement reductions.
Some of the patches have been contributed upstream, but to date compiling Miosix still requires patches. Patches are updated from time to time, and users are required to upgrade to the latest version of the compiler when necessary. The build system will warn you when it's time to upgrade the compiler.
Latest Unstable version of the Miosix Toolchain
Release GCC 15.2.0mp4.2
Released March 25th, 2026. This version:
- is required to compile Miosix v2.99 and higher. Compiling older kernels (v2.81 and lower) no longer supported, you'll still need the 9.2.0 release for that.
- provides C++23 support
- provides OpenMP support to allow parallelization of algorithms when targeting multicore microcontrollers
- GCC upgraded to 15.2.0
_MIOSIX_GCC_PATCH_MAJOR is set to 4, and _MIOSIX_GCC_PATCH_MINOR is set to 2 in this release.
- Miosix Toolchain Linux (sha256sum 51cf6cb78f2a04341db0d17869bd2074d6c63332612269a4edc8fb4c7469e2dd) This is self-installing shell script, run it with
sh MiosixToolchainInstaller15.2.0mp4.2.run
- Miosix Toolchain Windows (sha256sum c67158aa2efb5275e4c460289e7e7514bf57c3dc3ec93161ae32d22d511b269f) This is a self-installing .exe
- Miosix Toolchain Mac OS (Intel) (sha256sum 59b000631bb69b44f4846653cb3671997a38476c5e67295ade6417344296d7be) Contributed by Daniele Cattaneo, it is a release build of the Miosix toolchain for Mac OS (Intel).
- Miosix Toolchain Mac OS (ARM) (sha256sum 95a847bbd7991e285a26b3559bca5be33997ca64bf1e9ed71bab5c1dca08650f) Contributed by Daniele Cattaneo, it is a release build of the Miosix toolchain for Mac OS (ARM).
As an alternative to installing a binary release, you can build this toolchain from sources.
Latest Stable version of the Miosix Toolchain
Release GCC 9.2.0mp3.2
Released July 29th, 2024. This version:
- speed improvements in newlib fread function (up to 70% faster)
- support for more architectures (Cortex-M0+ and Cortex-M4 variant without FPU)
- GCC kept at version 9.2.0
_MIOSIX_GCC_PATCH_MAJOR is set to 3, and _MIOSIX_GCC_PATCH_MINOR is set to 2 in this release.
- Miosix Toolchain Linux (sha256sum d71fdac28a6fc4a4c0b41e90fb46c3722805b04e1ddb355d0da2f1b67e50ef3e) This is self-installing shell script, run it with
sh MiosixToolchainInstaller9.2.0mp3.2.run
- Miosix Toolchain Windows (sha256sum 4182788ccb27e42cd56afe65c7146c601aadcab0b758c9882e4a3cf394c6f622) This is a self-installing .exe
- Miosix Toolchain Mac OS (Intel) (sha256sum 5420a4fdb7aee9337350a77bde4820d983d41c7e193cc7bc90612a58287c6010) Contributed by Daniele Cattaneo, it is a release build of the Miosix toolchain for Mac OS (Intel).
- Miosix Toolchain Mac OS (ARM) (sha256sum dca08d3aff33b06b5b848ca07d5f7d95a17a8ae0bde53f0a6e8fca4f181d4f16) Contributed by Daniele Cattaneo, it is a release build of the Miosix toolchain for Mac OS (ARM).
As an alternative to installing a binary release, you can build this toolchain from sources.
Previous version of the Miosix Toolchain
Release GCC 9.2.0mp3.1
Released August 12th, 2020. This version:
- upgrades GCC to 9.2.0
- supports the C++11 thread API in Miosix (before only the POSIX one was supported)
- supports C++14
- reduces code size of printf-related functions
- provides many improvements and bug fixes to Miosix userspace processes
- provides more comprehensive atomic operation support through GCC's libatomic
_MIOSIX_GCC_PATCH_MAJOR is set to 3, and _MIOSIX_GCC_PATCH_MINOR is set to 1 in this release.
No longer supported, if you need it you will have to rebuild this toolchain from sources.
Release GCC 4.7.3mp1
Released June 8th, 2014. This version provides GCC 4.7.3.
_MIOSIX_GCC_PATCH_VERSION is set to 1 in this release.
No longer supported, if you need it you will have to rebuild this toolchain from sources.