Skip to content

Releases: MediaTek-Labs/nanomips-gnu-toolchain

nanoMIPS-2024.11-02

08 Jan 14:01
818736e
Compare
Choose a tag to compare

MTK Logo    nanoMIPS GNU toolchain v2024.11-02

        Published on January 08, 2025

Introduction

The nanoMIPS Toolchain includes example code, source code, and documentation to facilitate development of bare metal applications on nanoMIPS simulators and development boards. This is not a fully functional toolchain. These toolchains provide GNU components (assembler, linkers, libraries and utilities) that can be couple with clang/LLVM for building applications to run on nanoMIPS cores.

Component Description

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

Bug Fixes

  • GOLD linker now correctly expands DSP BPOSGE32C instruction in to 3 instructions using a trampoline, when the branch target is out of +16kB range.
  • GDB simulator(nanomips-elf-run) will clear the DSP carry bit in the DSPcontrol register when there is no carry out of ADDSC instruction. Retaining the spurious carry can affect the correctness of a subsequent ADDWC instruction.
  • Fix encoding of DSP prepend instruction in GNU assembler.

Other Changes

Known Issues

  • The relocation-minimization pass in the assembler results in instructions with invalid branch targets in some cases. 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

Component Versions

Component Based on upstream version
binutils 2.28
GCC 6.3.0
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) [170M] md5: 50c06d9968aaa46e0ddc06852714001a
sha256: 34c1301f9579d0c97c71a449f04384a365b2db0f1ef95e96f5494152e36f727e

Source Components

Component Size Checksum
binutils-2024.11-02.src.tgz [51M] md5: 69b839aea24c54f0b7e755f31e08b8a8
sha256: 3d28480136aa86d853614686a8005e5b5e26e7317f41fbcecfe4bae3e161e15f
gdb-2024.11-02.src.tgz [51M] md5: 45e18511a783f60ef4f9f372b0cad551
sha256: 963bcc8dacc71cb19d75392f6a70040d47239ab2d56091cb0dbb3004255e38cf
gold-2024.11-02.src.tgz [52M] md5: f12c43fe0acce1e3e70d2f87f0050098
sha256: ff2b14bae1d9697026c18ec4bf6de6a2116e0ccc1e8447f9424ba74d14809bc9
newlib-2024.11-02.src.tgz [21M] md5: 52d136b522066068958e030d715314dd
sha256: 409020ee436be5eb20d41d0821acb1ea627d727bb52f139b71acccef403091e7
gcc-2024.11-02.src.tgz [119M] md5: 44b3ed79080455cb202903417cce4108
sha256: 3013920d67d52d75da91e90215b2bf76440ff8760434300f3dddb1a575c36595
smallclib-2024.11-02.src.tgz [1M] md5: 79ad29f7b69df6af459a9879fd6693a2
sha256: 4b8301f25aaa26639168ce3589e80874678e9c4ec1a672e7eedc376e70ca0759
qemu-2024.11-02.src.tgz [90M] md5: 9499bdcf184ec71647937ff3de4e2673
sha256: 262a07ec48884832323882ffb1d8d2ceee61fc3df2b88b470649779fdc06c6e6
packages-2024.11-02.src.tgz [192M] md5: 733b10eceabb99d4f67eac06e6bfa9c8
sha256: 6ad35493fb18a965775a2fa5f3b9dc3afe36e8a09854a4455103f9a9c7dd4cec
python-2024.11-02.src.tgz [22M] md5: 9975608efb1ea6492387f50fe516bbd0
sha256: 2e27d7b9ecf548f7fc640725bd4affe62f3126154d4b34809641ce171a396b8a

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

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

Read more

nanoMIPS-2024.09-03

11 Nov 17:55
818736e
Compare
Choose a tag to compare

MTK Logo    nanoMIPS GNU toolchain v2024.09-03

        Published on November 12, 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. This is not a fully functional toolchain. These toolchains provide GNU components (assembler, linkers, libraries and utilities) that can be couple with clang/LLVM for building applications to run on nanoMIPS cores.

Component Description

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

  • The toolchain implements a 64-bit time_t type to avoid the Y2K38 issue. This must be explicitly enabled by passing the flag -muse-64bit-time_t on the compiler command line and it has the following effects:
    time_t as defined by #include <time.h> becomes 64-bit wide
    • Compiler defines macro __nanomips_64bit_time_t__ which user code can use to detect this condition.
    • Library search paths in the link command get updated to use a standard C library with 64-bit time_t.
      • Note: Link command-lines that specify an explicit search path for the C library must be manually updated!
    • ABI Version field in the ELF header of output objects is incremented to 1 and these objects can not be inter-linked with legacy objects that use a 32-bit time_t. A new linker option
      -Wl,--allow-abi-mismatch can be used to force inter-linking with a broken time_t ABI, if absolutely required.
    • Objects can be inspected with nanomips-elf-readelf -h and those built with the work-around enabled will exhibit an incremented ABI Version (1 instead of 0).

Bug Fixes

Other Changes

Known issues

  • The relocation-minimization pass in the assembler results in instructions with invalid branch targets in some cases. 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

Component Versions

Component Based on upstream version
binutils 2.28
GCC 6.3.0
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) [171M] md5: 9b9ab249a85f056c555fc261880a7b67
sha256: bdf77a448612cf5bbf36da924193a1b54385782a20743de30fcfe10366db840e

Source Components

Component Size Checksum
binutils-2024.09-03.src.tgz [51M] md5: 0123c1c3b4609f21e97517b76ba1af54
sha256: 9f940360c94f7822436f93c57d7591e6c770f5c1a72279832c820580745a99a2
gdb-2024.09-03.src.tgz [51M] md5: 407857b2f24bcb584c30571ed1e94bc5
sha256: 812545a3c21525c36fdb4a862ec720d5c9c5324f499c9f523b1e2b4b2d717500
gold-2024.09-03.src.tgz [52M] md5: 5589036d213ea2dcc55a5813b7f1c755
sha256: 29ce33441bbb1dd7ce44cb00ecb14b70c832e6527aff3f22b48de494e11143e6
newlib-2024.09-03.src.tgz [21M] md5: 2b6b42a33ccbf2f93758dc369d260221
sha256: 70b3ac64197f39e3069afae720592057cb75ee67f331ff8921d4afdd7b33c070
gcc-2024.09-03.src.tgz [119M] md5: 3a6082e1fe5d14964486b1e44989e496
sha256: 49748fc93ca45de9bbd3fb733f35ae4175084de08d844747df12cab218416309
smallclib-2024.09-03.src.tgz [1M] md5: 11e39d70a6d77c900536dcc3d5a2f37e
sha256: 9318a678ae2a1566f35c1f5b4dc510e7f738593e5cefefc1a001995ea7b0a6e6
qemu-2024.09-03.src.tgz [90M] md5: 39e74ce21af3a74f33d846bc2a6473cc
sha256: af3360be8f82309f558f00fda876287ed85ff499337b47517baf2c45c6d8440f
packages-2024.09-03.src.tgz [192M] md5: e91ea45c748a7631aa41ad8aba136677
sha256: c241c9f2771ce9495046dacf133e94499a3680c4c49c8e0ff7bfa6f17419edb6
python-2024.09-03.src.tgz [22M] md5: 4372b816c98027050e9c8bb7d2d9b3be
sha256: f58cf539a311126180951ca2cd5c5d67ac26000d6a3ba9738d06fb5bb99d8c28

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

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

Read more

nanoMIPS-2024.07-02

28 Aug 12:30
818736e
Compare
Choose a tag to compare

MTK Logo    nanoMIPS GNU toolchain v2024.07-02

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

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.

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.

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

Read more

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

28 Nov 11:40
818736e
Compare
Choose a tag to compare

MTK Logo    nanoMIPS GNU toolchain v2021.11-07

        Published on October 15, 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.

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

  • The toolchain implements a 64-bit time_t type to avoid the Y2K38 issue. This must be explicitly enabled by passing the flag -muse-64bit-time_t on the compiler command line and it has the following effects:
    time_t as defined by #include <time.h> becomes 64-bit wide
    • Compiled defines macro __nanomips_64bit_time_t__ which user code can use to detect this condition.
    • Library search paths in the link command get updated to use a standard C library with 64-bit time_t.
      Note: Link command-lines that specify an explicit search path for the C library must be manually updated!
    • ABI Version field in the ELF header of output objects is incremented to 1 and these objects can not be inter-linked with legacy objects that use a 32-bit time_t. A new linker option
      -Wl,--allow-abi-mismatch can be used to force inter-linking with a broken time_t ABI, if absolutely required.
    • Objects can be inspected with nanomips-elf-llvm-readelf -h and those built with the work-around enabled will exhibit an incremented ABI Version (1 instead of 0).
      *Provide dummy interfaces for floating point (fenv/cfenv) headers. The nanoMIPS I7200 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.

Bug Fixes

Other Changes

Known issues

  • The relocation-minimization pass in the assembler results in instructions with invalid branch targets in some cases. 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 (.tgz) [131M] md5: 3331a027b2096d7efc9c01eff6b12412
sha256: fcdf0afb376c4ba5c9f323f0f43a6da75664e4c0f16db4735c8d08616d43f8cf
Windows 64 (.tgz) [109M] md5: 0fd4476f0b03ee5c504bf03122944e21
sha256: cae349f3844c31bac3c3e457e75e368996c9c491e1ada25363e8aab3eb536c66
Linux x86 (.tgz) [136M] md5: 6dfb96acbb1b34d2d2e2b839a3d87deb
sha256: 187c6f4f7b0e6096f24d67ca50367d753b748157f2c750d2ac14e021e026bf52
Windows x86 (.tgz) [106M] md5: 9cdc466ab80c070bf26aee07c44582c9
sha256: 4b36af39eda5a226e24db94dedceedaaec8800da126f7072169a80dea08bbcb8
MUSL/Linux Toolchain
Linux x64 (.tgz) [129M] md5: 49610f7fb4d9975c7890f0abcd3826c2
sha256: 739d177d01dc092b50ad07b2d8a5e04c03b8a61464fa2ba4f1cd03661a1e8f04
Windows 64 (.tgz) [110M] md5: b1977bf5d71fa3e10d80e063efaa1693
sha256: 663941257cf82199817936712a81e6afe8fd7f4f5a52395474917327785857b5
Linux x86 (.tgz) [130M] md5: 1c9ca78344ccc05065a0f0d8133a6456
sha256: b5b7f39d6ed805a359d64e4d9f7a9fc05652b989ab21fefcdb402239494b35a5
Windows x86 (.tgz) [106M] md5: a8d6299e78303d5136d6d18aca27ea29
sha256: da327cc8217e323267721b71ff47fc338135f104f3285223d3ab1366bc2e1985

Source Components

Component Size Checksum
binutils-2021.11-07.src.tar.gz [51M] md5: b49fc252b915b5d19f5be92d608dff13
sha256: 103763556c65a584fdd655258874765d41eb2ba6e40985dd3a2689fc1670a8db
gdb-2021.11-07.src.tar.gz [51M] md5: 50b29bc9542f25351a591ba4ecbc0c22
sha256: 27527090024fb68b81c4910e48dd634bf05c8e1ddb47700352f8a72bc05c3284
gold-2021.11-07.src.tar.gz [52M] md5: 68c1b2c9091aa3b153aa97cffc86b37c
sha256: dca8d373463460da99c09cb92a88b3c6770f066d1824a8b6516436ace49a3b03
newlib-2021.11-07.src.tar.gz [20M] md5: d70f15d9bb6ae760b27ea174abfc7afd
sha256: f5e7bd326bf2185b0ac4bb7b8c6c7d606e6beaf2b80a752fb3a9b3c6af8729b0
gcc-2021.11-07.src.tar.gz [112M] md5: e35c4137878e3510526c1ea22474c58a
sha256: 3dd8062732f3668b87164f51309459fa2c48d76626ce495b98ab8e7e09cc3cec
smallclib-2021.11-07.src.tar.gz [1M] md5: fba6ac550bc49f509860e3e06ba6e447
sha256: ead8234605f2daaf10fe8dc9f11a486c811f9155cb60207a55b4d0700031d677
qemu-2021.11-07.src.tar.gz [11M] md5: f64003c4a44d90b98ca98f3ea14427bd
sha256: f0d52dbd2d653108a5a75c1718476f0ae7c5895f913533d48785555b8dfaefc7
musl-2021.11-07.src.tar.gz [1M] md5: 99f82cd54b9cce1493abe6b1b9c14e2e
sha256: 3627bc31278aca07114383b6c88d66ea4582e8f3ce88e262bd4f2227279ebe6d
packages-2021.11-07.src.tar.gz [189M] md5: 43cb183ecd5eb7c15eb09b83874d3db3
sha256: e20f193f9d66280cfa7f5ac34b5c6184c984bdc23c969b9f068743311d82dc8f
python-2021.11-07.src.tar.gz [16M] md5: 1ede895e9f32dbfcf5b7230a81f34d0a
sha256: c8f98674db913b3a3d0c9356e21dcfc7a49de6e5dd72a330b154448a450ba511

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

Read more

nanoMIPS-2021.11-05.2-nongnulibs

23 Aug 15:46
818736e
Compare
Choose a tag to compare

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

        Published on August 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 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.

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.

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

Read more

nanoMIPS-2021.11-05.1-nongnulibs

31 May 12:20
818736e
Compare
Choose a tag to compare

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 expand b[al]c[32] with specific bit patterns into lapc[48] + j[al]rc.
  • Enabled via linker option --fix-nmips-hw142543. Linker will expand b[al]c[32] with specific bit patterns into lapc[48] + j[al]rc. It will also expand move.balc with specific bit patterns into move + 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

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

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

31 May 11:58
818736e
Compare
Choose a tag to compare

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 expand b[al]c[32] with specific bit patterns into lapc[48] + j[al]rc.
  • Enabled via linker option --fix-nmips-hw142543. Linker will expand b[al]c[32] with specific bit patterns into lapc[48] + j[al]rc. It will also expand move.balc with specific bit patterns into move + balc[32].