Releases: MediaTek-Labs/nanomips-gnu-toolchain
nanoMIPS-2021.11-02
nanoMIPS GNU toolchain v2021.11-02
Published on December 03, 2021
- Introduction
- Release Notes
- Documentation
- Component Versions
- Downloads
- Bug Reporting
- License Agreements
Introduction
The nanoMIPS Toolchain includes example code, source code, and documentation to facilitate development of bare metal applications on nanoMIPS simulators and development boards. These toolchains provide compilers, linkers, libraries and utilities for building applications to run on nanoMIPS cores.
Component Description
- GCC Bare Metal Toolchain
This is a software engineer's cross-development system for nanoMIPS processors, intended for statically linked embedded applications running on bare metal CPUs or light-weight operating systems. - GCC Linux (MUSL) Toolchain
For compiling Linux applications for Linux running on nanoMIPS cores.
Release Notes
New Features
-
Recognize
__builtin_clz
on bitwise complemented operand as the CLO instruction [BZ #5]. -
Emit NOT instruction in compiler for bitwise complement operations instead of NOR. Certain NOT instructions can be 16-bit encoded, depending on the register operands [BZ #3].
-
Enable linker relaxation from 32-bit SAVE/RESTORE instructions to 16-bit variants.
Bug Fixes
-
Use JRC.HB instruction instead of just JR for functions with
use_hazard_barrier_return
attribute [BZ #1]. -
Fix jump-table optimization in GCC to utilize the full 16-bit jump-table range with scaling and prefer unsigned offset tables over signed [BZ #2].
-
Fix internal error in linker when using
--emit-relocs
with--gc-sections
[BZ #7]. -
Fix assembler relaxation to utilize the full range of 16-bit branches [CR MOLY00715449].
-
Fix
-fdebug-prefix-map
option for LTO builds. Prevent the option from leaking in to gnu.lto_opts and apply its mapping early to byte-code [BZ #9]. -
Updates calls to
stat
syscall in MUSL to inspecterrno
in order to detect failures. Raw syscalls that do not modifyerrno
were replaced with syscall wrappers that do in a previous change, however some call sites were not updated to reflect in change in semantics. -
Fix simulation of SLTI/SLTIU instructions in gdb simulator to not sign-extend immediate operands.
Other Changes
-
Add linker relaxation from 32-bit B[EQ|NE]ZC instructions to 16-bit [BZ #6].
-
Add a multilib variant of libsupc++ built with
-fno-exceptions
for the link-time command-line option-nortti-libstdc++
[BZ #4].
Known issues
- The relocation minimization pass in the assembler results in instructions with invalid branch targets in some cases [BZ #17]. This pass is disabled by default and it is advisable to keep it disabled until further notice.
Documentation
Note These are external links to docunments by MIPS Tech/Wave Computing.
- Getting Started Guide, v1.02
- nanoMIPS ABI Supplement, v1.03
- Programmer's Guide, v1.04
- nanoMIPS ABI Porting Guide, v1.02
- Tuning memcpy for MIPS Cores - whitepaper, v0.2
Component Versions
Component | Based on upstream version |
---|---|
binutils | 2.28 |
GCC | 6.3.0 |
musl | 1.1.16 |
newlib | 2.5.0 |
GDB | 8.0 |
QEMU | 2.5.0 |
gold | 2.30 |
smallClib | Internal |
Python | 2.7.16 |
Downloads
Prebuilt Binaries
Variant | Size | Checksum |
---|---|---|
Bare Metal Toolchain | ||
Linux x64 (.tar.gz) | [118M] | md5: f57a16e8852cbf0e502357aec929d3b9 sha256: 0fe2b84001975910af1b337166a55d2f01eaccbb626fbcb1606f6a45231c0031 |
Windows 64 (.tar.gz) | [94M] | md5: 31d17f6daae5e2bedc7d36ee5f46faf4 sha256: 6c4f3055189c82107e2483ef400d372b6fcb04ead94f1afda5e462d58f21200b |
Linux x86 (.tar.gz) | [121M] | md5: 251a924cefada74e88687d4d8cecb138 sha256: 7dba9f8d822a2bceef1b87a64165c3853329e72efe3c129de134c07678c9b5cc |
Windows x86 (.tar.gz) | [91M] | md5: 274718ac718b485c769d89aa3117f167 sha256: fd98dbbaa10708fc221a01bb33e319bed12a6eef8961ac0a375fb46c1c360c8b |
MUSL/Linux Toolchain | ||
Linux x64 (.tar.gz) | [129M] | md5: 5c1a9a5622153d16de4727a01d92af77 sha256: 1d41f03e5c5b641801d1cef0d224a9e10a428434ff76202bb296cba56c3acdf6 |
Windows 64 (.tar.gz) | [110M] | md5: dc0566a2c902eea6c981956bbf402004 sha256: fb816f7252231c6d5d453106ff171ac013bf3a36cae1fc746b8256ed893aa9fe |
Linux x86 (.tar.gz) | [130M] | md5: 3c527b8f5c6a3aafc90d5a0ae1432480 sha256: df3e5de28eb280ea08c697d4bfd0b2c2124cad385bd4e54e310c9cad5f7e2b54 |
Windows x86 (.tar.gz) | [106M] | md5: cbc21c3f9571d6ced9185f22d30b91e9 sha256: 4ff381cdd0a38c38808bb0e6b2c3f359f8ac2153646b45e9dacde3ea6dd511a5 |
Source Components
Component | Size | Checksum |
---|---|---|
binutils-2021.11-02.src.tar.gz | [51M] | md5: cac44dcf275f91e86bd7800e8f822c47 sha256: 03bb8e1ea8c77132a8fb31cd347f70b82493d4fb4566b1d9e6858eb503a28166 |
gdb-2021.11-02.src.tar.gz | [51M] | md5: cd7dc7bccec345094e50f21703b3ac13 sha256: 3e870a666c349c929aa0cd4119c28fd67ce8ab28fc6dbee8d941081f9766306f |
gold-2021.11-02.src.tar.gz | [52M] | md5: 7cced0c043df3a8bbc245d8759e3a296 sha256: 6cfa0f352db00eaedf9fbb894ce45eb43edcb0c641f1716f66d3044c64256717 |
newlib-2021.11-02.src.tar.gz | [19M] | md5: a747f8d9bf6bd05d43a9ada0c83b2316 sha256: cba1fb1184bd39577f77028c5490b0162d75cc2a624112befb43c70cc92dd718 |
gcc-2021.11-02.src.tar.gz | [112M] | md5: 1e713b424de80d767f97c99023b46afc sha256: 78d83b7af01f51b229109eae2f4bef223b9cd3165d1d411aa7078572f2ca768b |
smallclib-2021.11-02.src.tar.gz | [1M] | md5: 8308f78c9323e5d9f9ab37dffc02d010 sha256: 2f4970fc839ed54ea78a1c5ee930b77274d61ca3f087bbf06ab506a68bd468f4 |
qemu-2021.11-02.src.tar.gz | [11M] | md5: 7862126d82e0c7a6d3bf7e72afff4e91 sha256: c98eddb3cf4a0f5ac06f46cf421a7931b305f41d3434c3e0c7e6f1f50a1caf6a |
musl-2021.11-02.src.tar.gz | [1M] | md5: 35df398c20c588f113e9993d2650e6d9 sha256: 006092876cc271989225be1a860ca3772625be162ed33daae08f1e23d9f7d2da |
packages-2021.11-02.src.tar.gz | [189M] | md5: ef2c4d8a50d453e60f314712262e4127 sha256: 23e9034041da67457635c3da370a29c45120d8557159d226db096505c4bcee45 |
python-2021.11-02.src.tar.gz | [16M] | md5: 23be3057efc8e0d39b89321cb6866b98 sha256: 9e80d55a898ca685ce8e31e029ba7a248d75df5e99f3b3d7cdfe68d2e3119787 |
Bug Reporting
Report bugs for MediaTek's nanoMIPS GNU toolchain, here.
For reporting issues that are not target-specific, please see instructions provided within the source files of the concerned component.
License Agreements
License Categories
The components included in this toolchain fall under multiple license agreements:
- GPL v2 - QEMU, Linux
- GPL v3.1 - GNU toolchain, gdb, gmp, mpfr, libiconv
- LGPL v3 - mpc
- MIT / BSD style Licenses - Newlib, smallclib, tinyclib, libgloss/MIPS HAL, musl-libc, libffi, expat, ncurses
- zlib - zlib-libpng license
- PSFL v2 - python
To refer to the complete license text for any component, check the corresponding sources above.
*Disclaimer of Warranties ...
nanoMIPS-2021.07-01
nanoMIPS GNU toolchain v2021.07-01
Published on August 06, 2021
- Introduction
- Release Notes
- Documentation
- Component Versions
- Downloads
- Bug Reporting
- License Agreements
Introduction
The nanoMIPS Toolchain includes example code, source code, and documentation to facilitate development of bare metal applications on nanoMIPS simulators and development boards. These toolchains provide compilers, linkers, libraries and utilities for building applications to run on nanoMIPS cores.
Component Description
- GCC Bare Metal Toolchain
This is a software engineer's cross-development system for nanoMIPS processors, intended for statically linked embedded applications running on bare metal CPUs or light-weight operating systems. - GCC Linux (MUSL) Toolchain
For compiling Linux applications for Linux running on nanoMIPS cores.
Release Notes
New Features
- Add variation of memcpy (__aligned_memcpy_no_prefetch) for 4-byte aligned pointers and sizes. This does not perform any validation on alignment of the input parameters. It must be explicitly invoked via a source code change where alignment is known. Behavior will be unpredictable if invoked for misaligned pointers or sizes. It also does not prefetch and is intended for sizes of 128 bytes or less. For larger sizes the standard memcpy is typically faster due to prefetch.
Bug Fixes
- Fix for incorrect branch targets in assembler output due to minimize relocations pass ( CR MOLY00690538, MOLY00690538).
- Decouple the minimize relocations pass from jump-table optimization. Previously disabling minimize relocations would inhibit jump-table relaxations and could cause link failures if jump vectors overflow their estimated address range due to linker relaxation. The historic behavior can be restored with the new assembler option -mlegacy-minimize-relocs-behavior.
- Fix incorrect exception-handling information in assembler due to linker relaxation.
- Fix internal error in linker due to output sections declared in linker script without any input sections.
- Fix %a translation for formatted output functions.
- Fix buffer overrun in formatted output functions.
Other Changes
- The minimize relocations pass in the assembler is now disabled by default. It can be reenabled by the command-line option -mminimize -relocs.
Known issues
- None
Documentation
Note These are external links to docunments by MIPS Tech/Wave Computing.
- Getting Started Guide, v1.02
- nanoMIPS ABI Supplement, v1.03
- Programmer's Guide, v1.04
- nanoMIPS ABI Porting Guide, v1.02
- Tuning memcpy for MIPS Cores - whitepaper, v0.2
Component Versions
Component | Based on upstream version |
---|---|
binutils | 2.28 |
GCC | 6.3.0 |
musl | 1.1.16 |
newlib | 2.5.0 |
GDB | 8.0 |
QEMU | 2.5.0 |
gold | 2.30 |
smallClib | Internal |
Python | 2.7.16 |
Downloads
Prebuilt Binaries
Variant | Size | Checksum |
---|---|---|
Bare Metal Toolchain | ||
Linux x64 (.tar.gz) | [118M] | md5: cbfc12f1d15c532eee55d4a18711604a sha256: e7ea63e8071ae7cd6d53f047d93f4288c6f4b00a36242c60b8d7b5863c566344 |
Windows 64 (.tar.gz) | [94M] | md5: 0c095293745f6bb4521103c107a1db9f sha256: 34d000a74765d71d7a3d7acb6519565d060c67d5d462cc20f0cc519781710217 |
Linux x86 (.tar.gz) | [121M] | md5: ae869d416e653569cdf0da926c89bba9 sha256: 92fd06ef34ca2e798abeb853c35347518deeaf8893191bcf6a4254b128731eff |
Windows x86 (.tar.gz) | [91M] | md5: d981aee964624c1f8a57352ba1064da4 sha256: 879089b1969fe53dc04b030813683b40c5ad61fc9aee7e8e21df979b3ee6bb37 |
MUSL/Linux Toolchain | ||
Linux x64 (.tar.gz) | [129M] | md5: dad69f7ffb39d45b75d9f7948fdda026 sha256: 390a4c04136ae7890bcb74f51ed8c1c55a6a3f812d4ec2c7b77aff78f4718891 |
Windows 64 (.tar.gz) | [109M] | md5: bf34c08081787448c0eeb6440685883a sha256: 0bcb531710e50ddc860980dcdd2bf3f0fee3fb52a7eb9384b8e22d59dea21234 |
Linux x86 (.tar.gz) | [130M] | md5: 333203e4847504131ccba0a705084ff4 sha256: e00d7de14040671ac62f47fb7faccb64eccbc0f420fe050e939812a05788a2d2 |
Windows x86 (.tar.gz) | [106M] | md5: 83cc14af130f9eb941074fdc22300d7b sha256: cb55fb6733d194f4c62beaffa2f7010fe8556e1bcfe0d462de35a21bf0e61150 |
Source Components
Component | Size | Checksum |
---|---|---|
binutils-2021.07-01.src.tar.gz | [51M] | md5: 490a29bd604af80b7465a58121682947 sha256: 629fce274ab436870b678211134cf6ea25e9b1ac10244c041d260039ef9c0ff7 |
gdb-2021.07-01.src.tar.gz | [51M] | md5: 8b34265b92a25b05aa521dc482f1b995 sha256: 1aa1715ce14ea0946e2299c082f9795565b9535a42ea2874d272d4a9f4617e13 |
gold-2021.07-01.src.tar.gz | [52M] | md5: de69057cebd27d5806cce5d9746075f6 sha256: c867f30946072623f85dc848f940bf8451ea3c3fad83c3ee92b707282329c8c4 |
newlib-2021.07-01.src.tar.gz | [19M] | md5: 850fee1d032b31e9cdbf769fb8562196 sha256: 70d5a4e7d0756261449a979ec47e5f9f00c3f676e2df02545328bb0412870bcd |
gcc-2021.07-01.src.tar.gz | [112M] | md5: af3c728d5493e1d55b93af68a03433f8 sha256: 615b84c995c890816bf3e10a05dd441e16e4cd3e4d4d42bea01044b99ebef449 |
smallclib-2021.07-01.src.tar.gz | [1M] | md5: 70f972f165a870d1019fcdff5416b3e3 sha256: 60cc8d806dee2fec3a6be4d4dd23a8ba79cd2b01472f3e90f3f17b78b0b490df |
qemu-2021.07-01.src.tar.gz | [11M] | md5: c8be0b015ff0b244de6f77bfaa9fa5d3 sha256: 6527e08ff71ea2062a446c816c078e9cffdd003890c313324caa922ed3db8e42 |
musl-2021.07-01.src.tar.gz | [1M] | md5: 09691dbd52a909451769c81e521f4319 sha256: 3b91340d7b71ae8b5251eb5001adaa6efc9cba2b810347478dde96b168664363 |
packages-2021.07-01.src.tar.gz | [189M] | md5: 868a3c757312d89fb8b27c9027031915 sha256: 24d489b586bc2edc85eee4b35924eb7cc0d1d3d0cf5af006870aff07d53afb4d |
python-2021.07-01.src.tar.gz | [16M] | md5: 26bc70e2a09ba21e04a1137e4ca68579 sha256: fb1fec7a6769e7d95c88a2be7235a9ce4b3514ff29bb98b668bdc916125444a8 |
Bug Reporting
Report bugs for MediaTek's nanoMIPS GNU toolchain, here.
For reporting issues that are not target-specific, please see instructions provided within the source files of the concerned component.
License Agreements
License Categories
The components included in this toolchain fall under multiple license agreements:
- GPL v2 - QEMU, Linux
- GPL v3.1 - GNU toolchain, gdb, gmp, mpfr, libiconv
- LGPL v3 - mpc
- MIT / BSD style Licenses - Newlib, smallclib, tinyclib, libgloss/MIPS HAL, musl-libc, libffi, expat, ncurses
- zlib - zlib-libpng license
- PSFL v2 - python
To refer to the complete license text for any component, check the corresponding sources above.
Disclaimer of Warranties and Limitation of Liability
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTA...
nanoMIPS-2021.04-02
nanoMIPS GNU toolchain v2021.04-02
Published on May 02, 2021
- Introduction
- Release Notes
- Documentation
- Component Versions
- Downloads
- Bug Reporting
- License Agreements
Introduction
The nanoMIPS Toolchain includes example code, source code, and documentation to facilitate development of bare metal applications on nanoMIPS simulators and development boards. These toolchains provide compilers, linkers, libraries and utilities for building applications to run on nanoMIPS cores.
Component Description
- GCC Bare Metal Toolchain
This is a software engineer's cross-development system for nanoMIPS processors, intended for statically linked embedded applications running on bare metal CPUs or light-weight operating systems. - GCC Linux (MUSL) Toolchain
For compiling Linux applications for Linux running on nanoMIPS cores.
Release Notes
New Features
-
Add option -flto-preserve-object-names to re-map temporary LTO object names back to original object names at link time. When this option is used, original object names can be matched directly in linker scripts. The linker map file output shows original object names as if generated without LTO.
-
Improve use of 'INS' instruction in situations where bitfield manipulation is expressed in source code using shifts and masks. This should yield improvements in code size and execution speed.
Bug Fixes
- None.
Other Changes
- None.
Known issues
- None
Documentation
Note These are external links to docunments by MIPS Tech/Wave Computing.
- Getting Started Guide, v1.02
- nanoMIPS ABI Supplement, v1.03
- Programmer's Guide, v1.04
- nanoMIPS ABI Porting Guide, v1.02
- Tuning memcpy for MIPS Cores - whitepaper, v0.2
Component Versions
Component | Based on upstream version |
---|---|
binutils | 2.28 |
GCC | 6.3.0 |
musl | 1.1.16 |
newlib | 2.5.0 |
GDB | 8.0 |
QEMU | 2.5.0 |
gold | 2.30 |
smallClib | Internal |
Python | 2.7.16 |
Downloads
Prebuilt Binaries
Variant | Size | Checksum |
---|---|---|
Bare Metal Toolchain | ||
Linux x86 (.tar.gz) | [120M] | md5: c433d6d6fd706a676704015782b96a34 sha256: 16db411b19f3723575363f47c8d86b85041527c18208aa30c98beb4b0b99a097 |
Windows x86 (.tar.gz) | [90M] | md5: 7272a91c1a2440151e02d8f89a77a99d sha256: 13234e85084e9efc9ad877e49aebaac20c7c2376e9c07304179c88e17058b6c7 |
Linux x64 (.tar.gz) | [118M] | md5: a7da08cafbf38356ff63d8902bda4c47 sha256: 491fd7070b64db6b88a40e6df6ee301eb44709cc5b9b5d1ad2168da3d82ae520 |
Windows 64 (.tar.gz) | [93M] | md5: 194bbca8f1cadb3c009cd46ca9e646f5 sha256: 4b0b2f5a767da9023b5df41a262a762c3c9532354aef051f599d8af6861085c5 |
MUSL/Linux Toolchain | ||
Linux x86 (.tar.gz) | [130M] | md5: 079256f03d1f78097b4110017484996e sha256: 2d1462a70df614766c24f666871cb050614e07c50a38502783868a9d8d32e46a |
Windows x86 (.tar.gz) | [106M] | md5: 0df373185874a2d95ec89b059766034a sha256: d2d65b5c9da3de95caa1cd3d007357186335ff74128f39342812b931e7fce7b2 |
Linux x64 (.tar.gz) | [129M] | md5: a6763a27c133b17b21ff60a343e6afd8 sha256: d32747bbaf5ed667afd34f9d54a08a0260b529e82c34ce4fba20390bdcd76610 |
Windows 64 (.tar.gz) | [109M] | md5: 68cc3b826400a4aadd1a4b3bc6295099 sha256: ddfd157c3a6b99ca702616487e0542deae4a356f7758f1ee61290f034dcb8c8c |
Source Components
Component | Size | Checksum |
---|---|---|
binutils-2021.04-02.src.tar.gz | [51M] | md5: 68124df44b640c5ea9d19157ce401642 sha256: 530672c1e5081b4027c5baac65e40c6cc64ee6da24aa2bb8b178ede0ba7f0b42 |
gdb-2021.04-02.src.tar.gz | [51M] | md5: e753ced58166410ccaef19b0f5d0090f sha256: c52b9e2d133a4bef01da6ef233de685598a0c979430eb65907489bd71d54c5cb |
gold-2021.04-02.src.tar.gz | [52M] | md5: d52184b77bb73d4470ca05a10d94d552 sha256: 2e16c5f6200aaafbf799c1ea6bb5a7afbea88ecd60ecc4e2bdfc031d376a16f7 |
newlib-2021.04-02.src.tar.gz | [19M] | md5: 8df4ff4f734c7a01a554cee5be9486d1 sha256: 3aefca89b7d8c44cd7227afcb64d452ec3a1724a08d477caf6a3d7fb43e16ee5 |
gcc-2021.04-02.src.tar.gz | [112M] | md5: d0a0708e608f102417263ba872d817dd sha256: fa3ed019bcad037f3ed7a70f0226fcbc1441b7287fdb8646e939a433a23749da |
smallclib-2021.04-02.src.tar.gz | [1M] | md5: 5d522e398b4b1d6a5a51dfb57aca2495 sha256: 4e6fd3277cae189d223fa188433cfe1aba8612df39466158ca0aa58da7d44ef3 |
qemu-2021.04-02.src.tar.gz | [11M] | md5: a10f5164fd59bcb2f5afb5965c9bfb93 sha256: b0b733f5403e608ea2fcfe9b6dc1de8542f2065f3105cf9faf2fa85f783b7092 |
musl-2021.04-02.src.tar.gz | [1M] | md5: 8f3384e434492c0e3dfa76c6b55bec6e sha256: e609148e052c1f6f559f6f32cce88b2d3fd7a3a763a25b20ef17a9d2166793d7 |
packages-2021.04-02.src.tar.gz | [189M] | md5: 12b34bc4cd4489409fad10d46da776f4 sha256: c80e2239cb586de0e47894a92ad47c73f07d32548dd27ecbd25206e08c965f39 |
python-2021.04-02.src.tar.gz | [16M] | md5: 75c71facc3c9f9c5a51f1e0da11d6762 sha256: 7389c954cab2d3d460caf917af19550d89439416f592cd4b2ac2c798aaee7dba |
Bug Reporting
Report bugs for MediaTek's nanoMIPS GNU toolchain, here.
For reporting issues that are not target-specific, please see instructions provided within the source files of the concerned component.
License Agreements
License Categories
The components included in this toolchain fall under multiple license agreements:
- GPL v2 - QEMU, Linux
- GPL v3.1 - GNU toolchain, gdb, gmp, mpfr, libiconv
- LGPL v3 - mpc
- MIT / BSD style Licenses - Newlib, smallclib, tinyclib, libgloss/MIPS HAL, musl-libc, libffi, expat, ncurses
- zlib - zlib-libpng license
- PSFL v2 - python
To refer to the complete license text for any component, check the corresponding sources above.
Disclaimer of Warranties and Limitation of Liability
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
TO THE FULLEST EXTENT ALLOWED AND PERMITTED BY APPLICABLE LAWS AND REGULATIONS, MEDIATEK SHALL NOT, UNDER ANY CIRCUMSTANCES, BE LIABLE TO YOU OR ANY THIRD PARTY THROUGH YOU FOR PERSONAL INJURY OR ANY CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, INDIRECT, PUNITIVE OR SPECIAL DAMAGES WHATSOEVER, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, LOSS OF DATA, BUSINESS INTERRUPTION OR ANY OTHER COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR IN RELATION TO THIS AGREEMENT, YOUR USE OF THE Software Package and DOCUMENTATION, OR YOUR DEVELOPMENT OF APPLICATIONS, WHETHER BASED ON BREACH OF CONTRACT, BREACH OF WAR...
nanoMIPS-2021.02-01
nanoMIPS GNU toolchain v2021.02-01
Published on February 28, 2021
- Introduction
- Release Notes
- Documentation
- Component Versions
- Downloads
- Bug Reporting
- License Agreements
Introduction
The nanoMIPS Toolchain includes example code, source code, and documentation to facilitate development of bare metal applications on nanoMIPS simulators and development boards. These toolchains provide compilers, linkers, libraries and utilities for building applications to run on nanoMIPS cores.
Component Description
- GCC Bare Metal Toolchain
This is a software engineer's cross-development system for nanoMIPS processors, intended for statically linked embedded applications running on bare metal CPUs or light-weight operating systems. - GCC Linux (MUSL) Toolchain
For compiling Linux applications for Linux running on nanoMIPS cores.
Release Notes
New Features
-
Add support for the -mfunc-opt-list command-line option to control optimizations on a per-function basis
-
Allow linking against version of libstdc++.a built with -fno-rtti and -fno-exceptions with the link-time command-line option -nortti-libstdc++.
Bug Fixes
- Fix bad code generation from movep optimization under certain conditions. Option -mno-movep-follow-copy-chains can be used to disable this part of the optimization, if the issue persists.
Other Changes
- Change newlib's internal _dtoa_r implementation to return a newly malloc'd string, instead
of reusing a static one. Callers of _dtoa_r are now expected to free the resulting string.
This enables the printf family of functions to safely format floating-point values in a
multi-threaded context, but is otherwise transparent to users.
Known issues
- None
Documentation
Note These are external links to docunments by MIPS Tech/Wave Computing.
- Getting Started Guide, v1.02
- nanoMIPS ABI Supplement, v1.03
- Programmer's Guide, v1.04
- nanoMIPS ABI Porting Guide, v1.02
- Tuning memcpy for MIPS Cores - whitepaper, v0.2
Component Versions
Component | Based on upstream version |
---|---|
binutils | 2.28 |
GCC | 6.3.0 |
musl | 1.1.16 |
newlib | 2.5.0 |
GDB | 8.0 |
QEMU | 2.5.0 |
gold | 2.30 |
smallClib | Internal |
Python | 2.7.16 |
Downloads
Prebuilt Binaries
Variant | Size | Checksum |
---|---|---|
Bare Metal Toolchain | ||
Linux x86 (.tar.gz) | [120M] | md5: 2af105592f8adb3eeaecb74ade36f99f sha256: 6c709eadbc8cd9d9856a4c078cf8c710cb939e9733b14d3d5867dffbc9f07c1a |
Windows x86 (.tar.gz) | [90M] | md5: 6b0851c1dd1bab202bafd5c60ddb295f sha256: a05be8c273f149665c612a315608277dcbb8a8b7cd800128855d52697d4475f7 |
Linux x64 (.tar.gz) | [118M] | md5: 166a2305d95bb69addae892e08da622a sha256: 932efb4c6c9d88abd6cc9ce9c8c3f2cd1dd927d374806dfad4059f7ab714a5e0 |
Windows 64 (.tar.gz) | [93M] | md5: 60957161a23814911858a97d80791efa sha256: e1abc1e69ed9e9f494285d78c9904d921d0ca86523c3a5529ad6c4a3bda29bc5 |
MUSL/Linux Toolchain | ||
Linux x86 (.tar.gz) | [130M] | md5: 6ee2c44a29ea3236779e74eef4b43a02 sha256: 3e53f14b3948c66ea0e8c92bdc173110c56e782c42ba4fce9bb3d9c8b29297f9 |
Windows x86 (.tar.gz) | [106M] | md5: 1f20bb8172077539a74407783fc5d262 sha256: 8c1d2a53d8a5f3ff48432fd70448f58008bdda5900d78cf0459e4c54a85b40c5 |
Linux x64 (.tar.gz) | [129M] | md5: 99b68ac4c752e0ae22a3fbb0873dcb23 sha256: ffcd71b8cfaaee5b733e5df5aade9d0a0fe218e91141fe3fa4bf13aaf232a8c7 |
Windows 64 (.tar.gz) | [109M] | md5: c04c67697a3056e720249857ff897a15 sha256: 4c899e51cff0745b1816e10c484b6e912e1cbce379e0f0c666dd1027bfcc1fa3 |
Source Components
Component | Size | Checksum |
---|---|---|
binutils-2021.02-01.src.tar.gz | [51M] | md5: ae790db7774fa3e72f2e1f8bd3460ffc sha256: ea9b79c1805c5051f0930f4db1cd07b9110d0e1fb7134b18c4a6e538656eba31 |
gdb-2021.02-01.src.tar.gz | [51M] | md5: 80d4a3fc2ae08f79b6766f634dab0075 sha256: 76ff22b40edb1af4784873e4086024524d19fc2e43469ed86e86c818a611dd8a |
gold-2021.02-01.src.tar.gz | [52M] | md5: f4d6f06b3a5c20295e0ba2edf2afd657 sha256: 8c8e82483e94d3c66e22e0fc374b382012f4dc08653d3633579baac9e6444367 |
newlib-2021.02-01.src.tar.gz | [19M] | md5: dc301904c3bc076005fc957f5673973e sha256: 9b07de4057feaefc54b31ce4e51d1b9de591e81cf2e5027b31967a211bf1d22e |
gcc-2021.02-01.src.tar.gz | [112M] | md5: 86d17056a121f86dbc96c77b56691081 sha256: af4cd85e78c510933634eb467935915642a31ce0bfc4a4f2759cb02087387cd5 |
smallclib-2021.02-01.src.tar.gz | [1M] | md5: 9d8702b0f555c765b8ad8efbdce6bd5c sha256: c208fb2ef73236a1ea98ca67c841aab3e49a24f4f88737ba250c928d262e25af |
qemu-2021.02-01.src.tar.gz | [11M] | md5: 765b363a59f1f0916867255bb4175579 sha256: dc49020e8b4478b56cf6684f5592445c977c6d2095c9f64b701e80a6ac9964ea |
musl-2021.02-01.src.tar.gz | [1M] | md5: 5e55bbd96ea9ade07034a578801703bc sha256: 20a285c7847733c0307f934023e88d2338c7b128323edd5504adf498360fed4d |
packages-2021.02-01.src.tar.gz | [189M] | md5: f9745361e2f43928be331b05908dc096 sha256: ff4965902171ed3cd610d2430c72f0c2b3d2de863b1261d273fd7a751432c61f |
python-2021.02-01.src.tar.gz | [16M] | md5: 3e9bff136d487bab41fa77d077c6b426 sha256: a2ea83c3bbba276212c034ac931e29df3d567fdbd7455c1e26388fa44e1db3b8 |
Bug Reporting
Report bugs for MediaTek's nanoMIPS GNU toolchain, here.
For reporting issues that are not target-specific, please see instructions provided within the source files of the concerned component.
License Agreements
License Categories
The components included in this toolchain fall under multiple license agreements:
- GPL v2 - QEMU, Linux
- GPL v3.1 - GNU toolchain, gdb, gmp, mpfr, libiconv
- LGPL v3 - mpc
- MIT / BSD style Licenses - Newlib, smallclib, tinyclib, libgloss/MIPS HAL, musl-libc, libffi, expat, ncurses
- zlib - zlib-libpng license
- PSFL v2 - python
To refer to the complete license text for any component, check the corresponding sources above.
Disclaimer of Warranties and Limitation of Liability
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
TO THE FULLEST EXTENT ALLOWED AND PERMITTED BY APPLICABLE LAWS AND REGULATIONS, MEDIATEK SHALL NOT, UNDER ANY CIRCUMSTANCES, BE LIABLE TO YOU OR ANY THIRD PARTY THROUGH YOU FOR PERSONAL INJURY OR ANY CONSEQUE...
nanoMIPS-2019.03-07
nanoMIPS GNU Toolchain v2019.03-07
Published on February 16, 2021
Introduction
The nanoMIPS Toolchain includes example code, source code, and documentation to facilitate development of bare metal applications on nanoMIPS simulators and development boards. These toolchains provide compilers, linkers, libraries and utilities for building applications to run on nanoMIPS cores.
Component Description
- GCC Bare Metal Toolchain
This is a software engineer's cross-development system for nanoMIPS processors, intended for statically linked embedded applications running on bare metal CPUs or light-weight operating systems. - GCC Linux (MUSL) Toolchain
For compiling Linux applications for Linux running on nanoMIPS cores.
Release Notes
New Features
- None.
Bug Fixes
- None.
Other Changes
- Rebrand the release from MIPS to MediaTek.
Known issues
- The movep optimization can lead to bad code generation in some cases. The compiler option -mno-movep-follow-copy-chains can be used to restrict interactions between adjacent optimization sites and avoid this issue.
Documentation
Note These are links to docunments from MIPS Tech/Wave Computing.
- Getting Started Guide, v1.02
- nanoMIPS ABI Supplement, v1.03
- Programmer's Guide, v1.04
- nanoMIPS ABI Porting Guide, v1.02
- Tuning memcpy for MIPS Cores - whitepaper, v0.2
Component Versions
Component | Based on upstream version |
---|---|
binutils | 2.28 |
GCC | 6.3.0 |
musl | 1.1.16 |
newlib | 2.5.0 |
GDB | 8.0 |
QEMU | 2.5.0 |
gold | 2.30 |
smallClib | Internal |
Python | 2.7.16 |
Downloads
Prebuilt Binaries
Variant | Size | Checksum |
---|---|---|
Bare Metal Toolchain | ||
Linux x86 (.tar.gz) | [116M] | md5: 4fecedf4bec48c63fc5df1f8170300aa sha256: b4606497de686fd37921ce22bea201d160e4edf5461138dd0ac57e0c98342d12 |
Windows x86 (.tar.gz) | [86M] | md5: 58dc7163a933cded779c4abbea8f5026 sha256: 69bcdf67858dae677871db4a2a9ca0d34148e19e8dbea067bfece95a4d9811a7 |
Linux x64 (.tar.gz) | [114M] | md5: 7f4a03d642a68a599739b2e471713d9e sha256: 8a8d80ca86cafb6a23429b599306a4241aa92c0b63d4d534188eddf3d05a8200 |
Windows 64 (.tar.gz) | [89M] | md5: 1ef0133198f1653a3bf074d5db36f5b0 sha256: 87d5ca170e8f855a63cb2beb9dc2a684812d5ea1a005553180d1087b4adbdbae |
MUSL/Linux Toolchain | ||
Linux x86 (.tar.gz) | [130M] | md5: 6803ddad4c01dfbd2e2b59c69d21b0a8 sha256: d950d477cb8ec7718a68a28912ee868dc5a24576e3325a324595aff1125489be |
Windows x86 (.tar.gz) | [106M] | md5: c4887a49eb30bcf7a487a518ffb10dec sha256: ebec8a2f0ba2ccb4678f8299ff0b212241fcbddcd26e7dacc593a0f65c4e96d7 |
Linux x64 (.tar.gz) | [129M] | md5: 6724f3ddb17760d45be17a30ffdab22f sha256: ba2e4f6afb55ba0101de00ad78f9aee62914897ef858505d9c3b54bb9c44bac7 |
Windows 64 (.tar.gz) | [109M] | md5: 516db13d0df3fb02489cf8550de51c39 sha256: 36006aff0727f392888467cb2d970a1452e2442324d65cb2de886b5a2a037021 |
Source Components
Component | Size | Checksum |
---|---|---|
binutils-2019.03-07.src.tar.gz | [51M] | md5: 83d6e2ef8ac1b095183ac4c5249e90a5 sha256: 3bee3f7c0cd3419dc4fefba43dc11f15799f1593b85e4dd328e6b8b9eb78fe32 |
gdb-2019.03-07.src.tar.gz | [51M] | md5: d8478f84bc38eaf9ef575a597781d48c sha256: 565b5a6818aa8627248cec44c35a4d54f097eab4c90a2e97bc5529a1723029b2 |
gold-2019.03-07.src.tar.gz | [52M] | md5: b5259ec57f0aadfcdb96046a96dcc8f8 sha256: 0df87ee39cb5dbdfd9650388f060c2850cdaffd62794856100aaf9da2537be44 |
newlib-2019.03-07.src.tar.gz | [19M] | md5: 0a74a8c6fdf5d8eea442581531ccbc49 sha256: 60e453575f6702dbc646129a7dc91885c7e986342dfea598d2fa9ed8f1651d35 |
gcc-2019.03-07.src.tar.gz | [112M] | md5: bd883c228b4c9883985243cdca8618cd sha256: daacf1c0613cf493a62f29d10e9f935ca7e72282363912e4a4faa4dddc1d8c3e |
smallclib-2019.03-07.src.tar.gz | [1M] | md5: 08015e0a2cc093008bca43227aa278e0 sha256: 9ef6f164a7bef77d73c09fda04f1fd8fa79bff75eab5662f26805f44234e8f34 |
qemu-2019.03-07.src.tar.gz | [11M] | md5: d8006374312ecc2aabddc38cdb42642f sha256: 6dc6a14488a7a3e75e59ad34d020eeaf90866f6d9314059df70573e94cc74553 |
musl-2019.03-07.src.tar.gz | [1M] | md5: 733ca11f83e7e9b80f6ec3c7e26027df sha256: c12d2ac44c62d15739c4e926ed0303667d6f41a89a9ae1b3c078a24ab9b877fb |
packages-2019.03-07.src.tar.gz | [189M] | md5: 15995cd06863d9b5484bba59e4cf3c02 sha256: 8bea60272f50a0d4308cba4034c245b4a12538a660131b189ef6628597e7d1cd |
python-2019.03-07.src.tar.gz | [16M] | md5: b40a9b2bfa174e8cc41f9b6e1e5d0f7d sha256: 6e96c6d35108301cfefb26154bf5c5bef43fe97aa2efcf1b84b2befd4f970583 |
License Agreements
License Categories
The components included in this toolchain fall under multiple license agreements:
- GPL v2 - QEMU, Linux
- GPL v3.1 - GNU toolchain, gdb, gmp, mpfr, libiconv
- LGPL v3 - mpc
- MIT / BSD style Licenses - Newlib, smallclib, tinyclib, libgloss/MIPS HAL, musl-libc, libffi, expat, ncurses
- zlib - zlib-libpng license
- PSFL v2 - python
The software included in this product contains copyrighted software that is licensed under the GPLv3. A copy of that license is included in the source. You may obtain the complete Corresponding Source code above.
Licenses for each component are installed as part of the package, are listed in the getting started guide and can be referred to again after the install.
Disclaimer of Warranties and Limitation of Liability
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
TO THE FULLEST EXTENT ALLOWED AND PERMITTED BY APPLICABLE LAWS AND REGULATIONS, MEDIATEK SHALL NOT, UNDER ANY CIRCUMSTANCES, BE LIABLE TO YOU OR ANY THIRD PARTY THROUGH YOU FOR PERSONAL INJURY OR ANY CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, INDIRECT, PUNITIVE OR SPECIAL DAMAGES WHATSOEVER, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, LOSS OF DATA, BUSINESS INTERRUPTION OR ANY OTHER COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR IN RELATION TO THIS AGREEMENT, YOUR USE OF THE Software Package and DOCUMENTATION, OR YOUR DEVELOPMENT OF APPLICATIONS, WHETHER BASED ON BREACH OF CONTRACT, BREACH OF WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR OTHERWISE, EVEN IF MEDIATEK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
License Agreements
GPL v3.1
The source code is...