Miosix Toolchain: Difference between revisions

From Miosix Wiki
Jump to navigation Jump to search
mNo edit summary
No edit summary
 
Line 15: Line 15:
We are currently working on the release of Miosix 3.0, making changes in the unstable and testing branches that require a more up-to-date compiler version. Here is a snapshot of the compiler:
We are currently working on the release of Miosix 3.0, making changes in the unstable and testing branches that require a more up-to-date compiler version. Here is a snapshot of the compiler:
* [https://miosix.org/toolchain/MiosixToolchainInstaller15.2.0mp4.1.run GCC 15.2.0mp4.1 compiled for Linux] (sha256sum 01c293813e233d0c8f25b4b1af700605f4a728e4c76748fd43c4f1053bfac2d7), last updated March 9th, 2026
* [https://miosix.org/toolchain/MiosixToolchainInstaller15.2.0mp4.1.run GCC 15.2.0mp4.1 compiled for Linux] (sha256sum 01c293813e233d0c8f25b4b1af700605f4a728e4c76748fd43c4f1053bfac2d7), last updated March 9th, 2026
* [https://miosix.org/toolchain/MiosixToolchainInstaller15.2.0mp4.1_Intel.pkg GCC 15.2.0mp4.1 compiled for Mac OS (Intel)] (sha256sum 8274d52ed931796ca4d32f1311ff189996e8cee5f44dc0905092c05a6c769db7) Contributed by Daniele Cattaneo
* [https://miosix.org/toolchain/MiosixToolchainInstaller15.2.0mp4.1_ARM.pkg GCC 15.2.0mp4.1 compiled for Mac OS (ARM)] (sha256sum b7cf3214efcce543e6ca2a28fc6232963804b0e911db3d1cfcf29dd64cf5139c) Contributed by Daniele Cattaneo
* Compiled releases for other OSes coming soon...
* Compiled releases for other OSes coming soon...


Line 30: Line 32:
_MIOSIX_GCC_PATCH_MAJOR is set to 3, and _MIOSIX_GCC_PATCH_MINOR is set to '''2''' in this release.
_MIOSIX_GCC_PATCH_MAJOR is set to 3, and _MIOSIX_GCC_PATCH_MINOR is set to '''2''' in this release.


* [https://miosix.org/toolchain/MiosixToolchainInstaller.run Miosix Toolchain Linux] (sha256sum d71fdac28a6fc4a4c0b41e90fb46c3722805b04e1ddb355d0da2f1b67e50ef3e) This is self-installing shell script, run it with  
* [https://miosix.org/toolchain/MiosixToolchainInstaller9.2.0mp3.2.run Miosix Toolchain Linux] (sha256sum d71fdac28a6fc4a4c0b41e90fb46c3722805b04e1ddb355d0da2f1b67e50ef3e) This is self-installing shell script, run it with  
<source lang="bash">sh MiosixToolchainInstaller.run</source>
<source lang="bash">sh MiosixToolchainInstaller.run</source>
* [https://miosix.org/toolchain/MiosixToolchainInstaller.exe Miosix Toolchain Windows] (sha256sum 4182788ccb27e42cd56afe65c7146c601aadcab0b758c9882e4a3cf394c6f622) This is a self-installing .exe
* [https://miosix.org/toolchain/MiosixToolchainInstaller9.2.0mp3.2.exe Miosix Toolchain Windows] (sha256sum 4182788ccb27e42cd56afe65c7146c601aadcab0b758c9882e4a3cf394c6f622) This is a self-installing .exe
* [https://miosix.org/toolchain/MiosixToolchainInstaller.pkg Miosix Toolchain Mac OS (Intel)] (sha256sum 5420a4fdb7aee9337350a77bde4820d983d41c7e193cc7bc90612a58287c6010) Contributed by Daniele Cattaneo, it is a release build of the Miosix toolchain for Mac OS (Intel).
* [https://miosix.org/toolchain/MiosixToolchainInstaller9.2.0mp3.2_Intel.pkg Miosix Toolchain Mac OS (Intel)] (sha256sum 5420a4fdb7aee9337350a77bde4820d983d41c7e193cc7bc90612a58287c6010) Contributed by Daniele Cattaneo, it is a release build of the Miosix toolchain for Mac OS (Intel).
* [https://miosix.org/toolchain/MiosixToolchainInstaller-arm64.pkg Miosix Toolchain Mac OS (ARM)] (sha256sum dca08d3aff33b06b5b848ca07d5f7d95a17a8ae0bde53f0a6e8fca4f181d4f16) Contributed by Daniele Cattaneo, it is a release build of the Miosix toolchain for Mac OS (ARM).
* [https://miosix.org/toolchain/MiosixToolchainInstaller9.2.0mp3.2_ARM.pkg 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 [https://github.com/fedetft/miosix-kernel/tree/master/miosix/_tools/compiler/gcc-9.2.0-mp3.2 sources].
As an alternative to installing a binary release, you can build this toolchain from [https://github.com/fedetft/miosix-kernel/tree/master/miosix/_tools/compiler/gcc-9.2.0-mp3.2 sources].

Latest revision as of 21:18, 11 March 2026

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

We are currently working on the release of Miosix 3.0, making changes in the unstable and testing branches that require a more up-to-date compiler version. Here is a snapshot of the compiler:

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 MiosixToolchainInstaller.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.