Skip to content

Nuclei RISC-V Toolchain 2023.10

Compare
Choose a tag to compare
@fanghuaqi fanghuaqi released this 02 Nov 08:49
· 18 commits to nuclei/2023 since this release

This is the release note of Nuclei RISC-V Toolchain 2023.10.

Warning

This 2023.10 toolchain has some issues in using Zc extension, please use 2024.02 release to replace this version.

Note: llvm compiler is introduced in Nuclei Toolchain for the first time, you can take a try with it, but with just official RISC-V ISA support, no Nuclei customized ISA supported.

This release is maded upon nuclei/2023 branch

Please create issue if you are facing issues using Nuclei RISC-V Toolchain, see https://github.com/riscv-mcu/riscv-gnu-toolchain/issues

Known issues of this release: #10

Toolchain source version update

  • Bump gcc from gcc 10.2 to gcc 13.1
  • Bump binutils from 2.36 to 2.40
  • Bump gdb from 10.0 to 13.2
  • Bump newlib 4.1.0 to 4.3.0
  • Bump libncrt from 2.0.0 to 3.0.0
  • Include clang release 17.0.2

New features

This new version of toolchain need to work with Nuclei Studio 2023.10, and it is already included in it.

Nuclei SDK 0.5.0 and NMSIS 1.2.0 need to use this new version of toolchain.

Nuclei Toolchain cross compile prefix changed from riscv-nuclei-elf- to riscv64-unknown-elf-

  • Both gcc and clang distributed in this release support latest RISC-V Vector Intrinsic API v0.12
  • -march compiler isa option changed to use both single-letter and multi-letter ISA extensions, see riscv-non-isa/riscv-toolchain-conventions#26, so previous single-lettler isa string such as b/p/k/v now all changed to multi-letter now, see https://doc.nucleisys.com/nuclei_sdk/develop/buildsystem.html#arch-ext for details isa string name changes.
  • P Extension draft 0.5.4 release and Nuclei DSP N1/N2/N3 support is added to gcc 13, isa naming is _xxldsp, _xxldspn1x, _xxldspn2x and _xxldspn3x
  • RISC-V Code Size Reduction extension called Zc* support is added to gcc 13, isa naming is _zca, _zcb, _zcf, _zcd, _zcmp and _zcmt
  • Nuclei Code Size Reduction extension called Xxlcz support is added to gcc 13, isa naming is _xxlcz, need to use together with Zc* extension
  • Other general extensions such as IMAFDCV and Zk* extension support is already added in gcc 13 officially, see https://gcc.gnu.org/gcc-13/changes.html
  • We also cherry picked upstream master branch's new feature such as Zicond and RVV auto vectorization.
  • Nuclei customized CSRs support are added in gcc 13
  • Nuclei libncrt C library upgrade to version 3.0.0, and library spilt into three parts(c library part + fileops part + heapops part), for more details, please check libncrt user guide distributed in toolchain share/pdf/Nuclei C Runtime Library Doc.pdf doc, eg. --specs=libncrt_small.specs in gcc10 now should change to --specs=libncrt_small.specs -lncrt_small -lfileops_uart -lheapops_basic in linker options, you can also refer to https://doc.nucleisys.com/nuclei_sdk/develop/buildsystem.html#stdclib.
  • We also changed multilib combinations to support B/P/Zc extensions, check it by riscv64-unknown-elf-gcc -print-multi-lib or riscv64-unknown-elf-clang -v
  • Toolchain prebuilt documentation can be found in share/pdf and share/doc folder.

How to get prebuilt toolchain for windows or linux

Please click https://nucleisys.com/download.php#tools to find release 2023.10.

See other Nuclei Tools Releases