Skip to content

Releases: MediaTek-Labs/nanomips-gnu-toolchain

nanoMIPS-2024.01-02

05 Mar 08:59
818736e
Compare
Choose a tag to compare
Update README.md

nanoMIPS-2022.03-01

20 Mar 19:39
818736e
Compare
Choose a tag to compare

MTK Logo    nanoMIPS GNU toolchain v2022.03-01

        Published on March 21, 2022

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 apply static 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 support noipa 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.

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...
Read more

nanoMIPS-2021.11-05-nongnulibs

24 Apr 19:45
818736e
Compare
Choose a tag to compare

MTK Logo    nanoMIPS GNU toolchain v2021.11-05-nongnulibs

        Published on April 23, 2024

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 release replaces the runtime libraries (libgcc / libstdc++) and headers of release 2021.11-02 with counterparts from LLVM v13.0.0.

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

  • Replace GCC builtins ( libgcc.a ) 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++.a ) with LLVM LibC++
  • Replace low-level headers from GCC with LLVM/Clang headers
  • Add missing C99 interfaces to libc:
    • imaxabs
    • imaxdiv
    • strtoimax
    • stroumax
    • wcstoimax
    • wcstoumax
    • nexttowardf
  • GNU libstdc++.a is replaced with a thin archive which is a combination of libc++.a and libc++abi.a. This allows the user to link C++ programs without having to explicitly specify the 2 component libraries.

Bug Fixes

  • None.

Other Changes

  • None.

Known issues

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

  • Interface differences cause many test failures. Many of them are not relevant to our use-case, but the presence of large number of failures makes the base-line noisy and may be hiding potential issues. Some of the known differences that cause failures are:

    • Ubsan
    • Unwinder library
    • Complex division in CompilerRT causes pre-mature overflow for DOUBLE_MAX numerators.
  • 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 documents by MIPS Tech/Wave Computing.

Component Versions

Component Based on upstream version
llvm-project 13.0.0
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) [122M] md5: 55f786628877bcc042690dc54608a627
sha256: 34aef5c5b0a9205581be569be8eb9e2cb538a5cbd3c4e12942e173d22512a1df

Source Components

Component Size Checksum
llvm-project-2021.11-05-nongnulibs.src.tar.gz [142M] md5: 568c070d789dd391e2c08732f7e375b5
sha256:9 4d8ffe29792257d14d718b7e81ae95e4c67c8aa0402df357cdb5c78003d4d9b
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 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 sect...

Read more

nanoMIPS-2021.11-02

03 Dec 05:59
818736e
Compare
Choose a tag to compare

MTK Logo    nanoMIPS GNU toolchain v2021.11-02

        Published on December 03, 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

  • 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 inspect errno in order to detect failures. Raw syscalls that do not modify errno 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.

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

Read more

nanoMIPS-2021.07-01

06 Aug 04:37
818736e
Compare
Choose a tag to compare

MTK Logo    nanoMIPS GNU toolchain v2021.07-01

        Published on August 06, 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

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

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

Read more

nanoMIPS-2021.04-02

02 May 12:30
818736e
Compare
Choose a tag to compare

MTK Logo    nanoMIPS GNU toolchain v2021.04-02

        Published on May 02, 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

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

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

Read more

nanoMIPS-2021.02-01

28 Feb 18:20
818736e
Compare
Choose a tag to compare

MTK Logo    nanoMIPS GNU toolchain v2021.02-01

        Published on February 28, 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

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

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

Read more

nanoMIPS-2019.03-07

16 Feb 18:14
818736e
Compare
Choose a tag to compare

MTK Logo    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.

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

Read more