Up-To-Date RISC-V GCC Tool Chain Packages

The global hardware and software community is developing a huge range of RISC-V based solutions.  As part of its commitment to that community, Embecosm is making freely available pre-built up-to-date GCC tool chains.  This will ensure that software is built with the latest RISC-V compiler features and optimizations.

As part of our continuous integration and testing, Embecosm routinely builds both GCC and Clang/LLVM tool chains for RISC-V on many different operating systems.  These are compiler tool chains for use from the command line, so including:

  • low level binary utilities (aka binutils);
  • assembler and linker/loader (GNU ld);
  • compiler (GCC or Clang/LLVM);
  • emulation library (libgcc for GCC, CompilerRT for Clang/LLVM);
  • debugger (GDB or LLDB);
  • C library (newlib); and
  • C++ standard template library (libstdc++v3 for GCC, libc++ for Clang/LLVM).

Since we are creating these builds internally, it makes sense to package these up and share them with the community. We’ve heard from customers that it has proven quite difficult for everyone to have good up to date tools. Often these are either woefully out of date, rely on patches which may disappear between releases, or are intrinsically tied with to supplier’s IDE where updating the tools is not possible.

Having a good source of upstream compiler binaries is a good thing for all. We’re starting today with the GCC tool chain. For now just the top-of-tree built for RHEL6, RHEL7 and RHEL8 (or Centos6, Centos7 and Centos8), available as a tarball for you to download, unpack and use. You can download them here:

In the package are:

  • compiled binaries for all the GCC tool chain components;
  • Git SHA hashes, so you can get the original sources from upstream;
  • scripts to build the tool chain yourself from source; and
  • regression test results, so you can verify the quality of the compiler.

By default the compiler will compile for the base CORE-V processor from the Open Hardware Group, in other words the RV32IMAC instruction set extensions.  However this is a completely generic RISC-V compiler tool chain that can be used for any standard RISC-V core, supporting all the main 32-bit and 64-bit RISC-V instruction set extensions and ABI variants.

In due course we’ll add Clang/LLVM tool chains, latest stable versions of the compilers, support for more platforms and versions for the main package managers. This will take us a little while, so if you have an urgent requirement for a particular configuration, please get in touch and we’ll attempt to expedite things.

We welcome your comments and feedback on info@embecosm.com.

Enjoy!
signature-jeremy-blog

Jeremy Bennett is Chief Executive of Embecosm.