Releases: MediaTek-Labs/nanomips-gnu-toolchain
nanoMIPS-2024.07-02
![MTK Logo] nanoMIPS GNU toolchain v2024.07-02
Published on August 28, 2024
- 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.
Release Notes
New Features
- Provide dummy interfaces for floating point (fenv/cfenv) headers. Thor/nanoMIPS processor does not have hardware floating point capability. The library support provides is just sufficient to satisfy compile/link requirements for projects that refer to the interface.
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 (.tgz) | [156M] | md5: cef4a004eb27de3cdc92b62b17c8665c sha256: c6b0b53b4807ad0b72827f3e5be2aeb012cbec91ee4ca8f07c5d75eacb0443e2 |
Source Components
Component | Size | Checksum |
---|---|---|
binutils-2024.07-02.src.tgz | [53M] | md5: 6688ae14f20bcc408a6f7876ff55030e sha256: 0f4156530642462ff69283eefd61b8912b6879611ffc991513a61d4d8531d828 |
gdb-2024.07-02.src.tgz | [52M] | md5: b6b535320bea76757624d64b5fb553fd sha256: 7d848df549cd77925100ea463014df9f4300be81cf11c4ccceaf3ac1fbc76b52 |
gold-2024.07-02.src.tgz | [54M] | md5: 5f26d3c5dbf4b22f28181e3b88471951 sha256: a4330d1a2284dfd1b74e2b51d3fdb9b629c7d9d8386dbf06c7d55193a91dc231 |
newlib-2024.07-02.src.tgz | [20M] | md5: a3fc02c828b54eecd6fc93a4188c74db sha256: eff32c1a3eca3bb29101e9dd76a509df07115a5ecb021d49004080a0f0d9239e |
gcc-2024.07-02.src.tgz | [125M] | md5: 0a04c83ea3b307ed5690cd5db840a6da sha256: 82a36166151c03660cd321ecfe202fe8939bde03a0ce827438efd6e823ec0ff3 |
smallclib-2024.07-02.src.tgz | [1M] | md5: d6e233f37bd9185a91647e5e95fbb487 sha256: bdb068f911075e9d13033aaabe3cf9997a957936dd6c41b91da97212ec1f5fa6 |
qemu-2024.07-02.src.tgz | [90M] | md5: ca75037b3ffcb2316f3b0dac6b5d48d4 sha256: 68e2e9f031149b0880fa6b78f594a88950d9038a4ebf6b8f34812be452424f8e |
musl-2024.07-02.src.tgz | [1M] | md5: 150a0867c52ec68b87631e9473a13847 sha256: 800b7b653a7aa7d77df828ebf85cd4d1b8acbdcfd990c12416d94a21888b2087 |
packages-2024.07-02.src.tgz | [192M] | md5: fbb919ed81766b5fc12e3da9c0228dd7 sha256: edc0e3b24cbd480144bda356b3c593532ba98fc5690c3ffcc2b0effd13716f9c |
python-2024.07-02.src.tgz | [22M] | md5: 457dddfcae2a08e7b346db3289d576f8 sha256: 168a676797a6750df556739c40bc91efbd97b9a5db9e251f3b62e6cc1d6e7c82 |
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 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 distributed under the GNU General Public License version 3,
with the addition under section 7 of an exception described in the "GCC
Runtime Library Exception, version 3.1" as follows (or see the file
COPYING.RUNTIME):
GCC RUNTIME LIBRARY EXCEPTION
Version 3.1, 31 March 2009
Copyright (C) 2009 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
This GCC Runtime Library Exception ("Exception") is an additional
permission under section 7 of the GNU General Public License, version
3 ("GPLv3"). It applies to a given file (the "Runtime Library") that
bears a notice placed by the copyright holder of the file stating that
the file is governed by GPLv3 along with this Exception.
When you use GCC to compile a program, GCC may combine portions of
certain GCC header files and runtime libraries with the compiled
program. The purpose of this Exception is to allow compilation of
non-GPL (including proprietary) programs to use, in this way, the
header files and runtime libraries covered by this Exception.
- Definitions.
A file is an "Independent Module" if it either requires the Runtime
Library for execution after a Compilation Process, or makes use of an
interface provided by the Runtime Library, but is not otherwise based
on the Runtime Library.
"GCC" means a version of the GNU Compiler Collection, with or without
modifications, governed by version 3 (or a specified later version) of
the GNU General Public License (GPL) with the option of using any
subsequent versions published by the FSF.
"GPL-compatible Software" is software whose conditions of propagation,
modification and use would permit combination with GCC in accord with
the license of GCC.
"Target Code" refers to output from any compiler for a real or virtual
target processor architecture, in executable form or suitable for
input to an assembler, loader, linker and/or execution
phase. Notwithstanding that, Target Code does not include data in any
format that is used as a compil...
nanoMIPS-2024.01-02
Update README.md
nanoMIPS-2022.03-01
nanoMIPS GNU toolchain v2022.03-01
Published on March 21, 2022
- 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
- Update GCC from v6.3.0 to v11.2.0
- GCC now defaults to GNU C17 for compiling C code and to C++17 for compiling C++ code.
- GCC now defaults to DWARF version 5 for debug information structures, excluding line tables. Support libraries are still built with
-gdwarf-4
to maintain compatibility with the rest of the toolchain. - GCC now defaults to
-fno-common
. Multiple tentative definitions result in errors at link stage. - GCC now preserves auxiliary debug information created by the language front-end when doing LTO which increases final debug information size but eases debugging experience.
- A new
nanomips-elf-lto-dump
has been added. It dumps various information about LTO byte-code object files. - Various enhancements to existing GCC warnings as well the introduction of the new ones enabled by default as
-Wignored-attributes
,-Wshift-count-negative
,-Wstringop-*
,-Wfree-nonheap-object
and-Wbuiltin-declaration-mismatch
.
- Update binutils from v2.29 to v2.37
- Update newlib from v2.5.0 to v4.2.0
- Update qemu from v2.5 to v6.2.0
Bug Fixes
- C99 inlining semantics is now properly implemented by the GCC. Non-static functions having
inline
keyword that do not end up inlined by the GCC, require out of line definition and can cause missing symbol errors at the link stage if one is not provided in another object file. Proper fix in most cases is to applystatic
keyword to such functions.
Other Changes
- Internal LTO format has changed. LTO object files created with the prior versions of the toolchain cannot be linked with this release.
Known issues
- The
-fstack-check
feature is not supported. - The
-mfunc-opt-list
does not supportnoipa
attribute. - Dereferencing a pointer explicitly marked with aligned attribute less than the pointer's natural alignment, may produce unaligned access at runtime if passed as argument to a function.
Refer to the upstream release notes for GCC 11.2 for more details.
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.37 |
GCC | 11.2.0 |
musl | 1.1.16 |
newlib | 4.2.0 |
GDB | 8.0 |
QEMU | 6.2.0 |
gold | 2.30 |
smallClib | Internal |
Python | 3.7.4 |
Downloads
Prebuilt Binaries
Variant | Size | Checksum |
---|---|---|
Bare Metal Toolchain | ||
Linux x64 (.tar.gz) | [168M] | md5: 16abf95c4909d7d187392ebc6c32e2c4 sha256: 72b700af37e6be7c92a5dc5e9a12f9236023a09866292b93253a956fc9204286 |
Windows 64 (.tar.gz) | [122M] | md5: eb5d860f121987a9d11065c395266681 sha256: 2358613dca04daea05cb732a53521f91796199ba76519d4b88417f18d0b33e7f |
Linux x86 (.tar.gz) | [171M] | md5: f21d3316650fb3431981c002312a03d0 sha256: 68c05ac1522dc2c2c64a645b1f490460812ba607bc51a7d144587c6a41b60b23 |
Windows x86 (.tar.gz) | [118M] | md5: 764ba0045137afa06dd88d1b3b678f8e sha256: 8951a500da066b375e747a7e819e0832c4fce44b615dbd3fe02d980b59e79b55 |
MUSL/Linux Toolchain | ||
Linux x64 (.tar.gz) | [184M] | md5: 6bb0b8a36b53762441cd5c16878b6fd0 sha256: 26dc4cc9b81d652757e6543f9c3c1f1932a3611e337a6727610c74de8750327e |
Windows 64 (.tar.gz) | [147M] | md5: 9a2576852dda88e3724d297a833e1dc5 sha256: b906c0bd0b624ae7ed5770a3d8da71cb302bde44baa88ce1a7a1c8eae9d917ec |
Linux x86 (.tar.gz) | [186M] | md5: 6859e59668b92ae644bd595712ec8d2a sha256: 8f487b3016ac8c18e0acf3f5620f4428e255a470dda009c88f9af7d9f21d7f19 |
Windows x86 (.tar.gz) | [142M] | md5: 38fd8ae3b0d16519aef947a8d2d8b093 sha256: 8b0aa8d4750af234e08ff544cf1ea1ca426b8dd266990a9c41c60c1467f0683d |
Source Components
Component | Size | Checksum |
---|---|---|
binutils-2022.03-01.src.tar.gz | [51M] | md5: 9c534173e7323807548babed97cf225e sha256: eb825018b62e70e666ea2a9abdb35c7354e5abf5229137d6496c173647e57bb6 |
gdb-2022.03-01.src.tar.gz | [51M] | md5: f24202cf90d1aae0912eed36432291f7 sha256: 142102f6c5c8a372b641c7ef97ef3386d97acc5080ac2b7f4540955c3820ab89 |
gold-2022.03-01.src.tar.gz | [52M] | md5: 90ccdd0fd2c7fde03cf58be032c2a58e sha256: 0e324dad66f26bd09bdac0cfb7a1eddf42da634f5abd3b2063d220f719ba1ba8 |
newlib-2022.03-01.src.tar.gz | [21M] | md5: b6bec7cb08f9dd7b456672b6d82d083a sha256: 89e71a1053b84df54f7e10d65f3355671f79859d2b97fe3e3a3037e6f9d89ebd |
gcc-2022.03-01.src.tar.gz | [119M] | md5: e1163f1a2032a0ed1799460fd953c1f4 sha256: bae9cf646817ca999db4ef4e2a5929a46abdf0b007a196c1a050228ad5879aad |
smallclib-2022.03-01.src.tar.gz | [1M] | md5: 6e907b59949edbb0bbc72e1339ae4dcd sha256: 83bb6d15a13a9354a924ad7fbd7ae1e919cc5be003944108a8a88323dedc9b03 |
qemu-2022.03-01.src.tar.gz | [90M] | md5: 4f22a3d705255a13edc5145e4d2c74df sha256: 7d896e824ab64d0608e62731e36778d23a0d89420485245218e153fa7fa87bac |
musl-2022.03-01.src.tar.gz | [1M] | md5: 3f4d763384966fc243e3b0ebeb3cd5bf sha256: 25127ad0737fad18eb2713c67f04db6ec4aefe2a3281c83e66932fe2381bcf7c |
packages-2022.03-01.src.tar.gz | [192M] | md5: 1fba8e5f262cb60800142a9735d2ac5d sha256: e227b97c9ba16781559feba47e03d98c17dd169d30fd6769d318f8bec18f46bd |
python-2022.03-01.src.tar.gz | [22M] | md5: 307abaaa75bd376ba1f43cb4e7162f7c sha256: 8f2206a574854320c1c49d20225b5df3ad673ea673afc2d0d8c098509232138c |
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.0 - GNU toolchain, gdb, gmp, mpfr, libiconv
- LGPL v3 - mpc
- MIT / BSD style Licenses - Newlib, smallclib, tinyclib, libgloss/MIPS HAL, musl-libc, libffi, expat, ncu...
nanoMIPS-2021.11-05.2-nongnulibs
nanoMIPS GNU toolchain v2021.11-05.2-nongnulibs
Published on August 23, 2024
- 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. This is the nongnulibs variant of the GNU toolchain with some GNU library/runtime components replaced with non-GPL'd counterparts from LLVM13. This is a support release based on 2021.11-05.1-nongnulibs with minor changes to newlib.
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.
Release Notes
This is a minor update on top of
New Features
- Provide dummy interfaces for floating point (fenv/cfenv) headers. The i7200 processor does not have hardware floating point capability. The library support provided here is just enough to satisfy compile/link requirements for projects that refer to the interface.
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) | [155M] | md5: e0863900285443084db72ead1e31df64 sha256: 1bdc82a5305c6ff0130feff1d59b30192709338fa1a820e60ad127620828cb37 |
Source Components
Component | Size | Checksum |
---|---|---|
llvm-project-2021.11-05-nongnulibs.src.tgz | [147M] | md5:32e3455149a6fbfac657332334a949e9 sha256:578185a05ee96afe7aced721bf3bfda7c693ba3003ae8eebbcf6b0e7c56b176c |
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-05.2-nongnulibs.src.tar.gz | [19M] | md5:139c344c55cc72449e280629a72c93a1 sha256: 639711e41d1818125aa6bcc8db24cdad199dc7d5a5a7651512fdcafe4f02cb9e |
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
- LLVM - Apache License v2.0 with LLVM Exceptions
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 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 distributed under the GNU General Public License version 3,
with the addition under section 7 of an exception described in the "GCC
Runtime Library Exception, version 3.1" as follows (or see the file
COPYING.RUNTIME):
GCC RUNTIME LIBRARY EXCEPTION
Version 3.1, 31 March 2009
Copyright (C) 2009 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
This GCC Runtime Library Exception ("Exception") is an additional
permission under section 7 of the GNU General Public License, version
3 ("GPLv3"). It applies to a given file (the "Runtime Library") that
bears a notice placed by the copyright holder of the file stating that
the file is governed by GPLv3 along with this Exception.
When you use GCC to compile a program, GCC may combine portions of
certain GCC header files and runtime libraries with the compiled
program. The purpose of this Exception is to allow compilation of
non-GPL (including proprietary) programs to use, in this way, the
header files and runtime libraries covered by this Exception.
- Definitions.
A file is an "Independent Module" if it either requires the Runtime
Library for execution after a Compilation Process, or makes use of an
inte...
nanoMIPS-2021.11-05.1-nongnulibs
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. This is the nongnulibs variant of the GNU toolchain with some GNU library/runtime components replaced with non-GPL counter-parts from LLVM13. This is a support release based on v2021.11-05-nongnulibs with linker updates.
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.
Release Notes
Software work-arounds
- Enabled via linker option
--fix-nmips-hw113064
. Linker will expandb[al]c[32]
with specific bit patterns intolapc[48] + j[al]rc
. - Enabled via linker option
--fix-nmips-hw142543
. Linker will expandb[al]c[32]
with specific bit patterns intolapc[48] + j[al]rc
. It will also expandmove.balc
with specific bit patterns intomove + balc[32]
.
Changes to generate nongnulibs variant
- Replace GCC builtins ( libgcc ) with the builtins library from CompilerRT.
- Replace C-runtime components from GCC (crtbegin.o, crtend.o) with corresponding versions from CompilerRT.
- Replace GNU standard C++ library ( libstdc++ ) with LLVM LibC++.
- Replace low-level headers from GCC with LLVM/Clang headers.
- The run-time library and headers are publicly available in MediaTek-labs llvm-project repository on branch mtk/nanomips-nongnu
Usage
- The default library/header/object paths in the toolchain have been replaced with symbolic links to the new components. One can use this toolchain as a drop-in replacement for GNU toolchain v2021.11-02.
- C++ clock interfaces, std::time() and std::steady_clock() required an implementation of gettimeofday() at the link step. This is not included in the toolchain and must be provided by the user.
nanoMIPS-2021.11-05-nongnulibs
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. This is the nongnulibs variant of the GNU toolchain, based on v2021.11-02 with some GNU library/runtime components replaced with non-GPL counter-parts from LLVM13.
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.
Release Notes
Changes to generate nongnulibs variant
- Replace GCC builtins ( libgcc ) with the builtins library from CompilerRT.
- Replace C-runtime components from GCC (crtbegin.o, crtend.o) with corresponding versions from CompilerRT.
- Replace GNU standard C++ library ( libstdc++ ) with LLVM LibC++.
- Replace low-level headers from GCC with LLVM/Clang headers.
- The run-time library and headers are publicly available in MediaTek-labs llvm-project repository on branch mtk/nanomips-nongnu
Usage
- The default library/header/object paths in the toolchain have been replaced with symbolic links to the new components. One can use this toolchain as a drop-in replacement for GNU toolchain v2021.11-02.
- C++ clock interfaces, std::time() and std::steady_clock() required an implementation of gettimeofday() at the link step. This is not included in the toolchain and must be provided by the user.
nanoMIPS-2021.11-02.1
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. This is a support release based on v2021.11-02 with linker updates.
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.
Release Notes
Software work-arounds
- Enabled via linker option
--fix-nmips-hw113064
. Linker will expandb[al]c[32]
with specific bit patterns intolapc[48] + j[al]rc
. - Enabled via linker option
--fix-nmips-hw142543
. Linker will expandb[al]c[32]
with specific bit patterns intolapc[48] + j[al]rc
. It will also expandmove.balc
with specific bit patterns intomove + balc[32]
.
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...