Skip to content

GNU Toolchain for ARC Processors, arc-2024.12-release

Choose a tag to compare

@synopsys-arc-automation-bot synopsys-arc-automation-bot released this 30 Jan 15:02
· 7 commits to arc-releases since this release

This is release of 2024.12 version of the GNU Toolchain for DesignWare ARC 600, ARC 700, EM, HS3x/4x, HS5x, HS6x and ARC-V processors.

More information about ARC-V processors can be found on Synopsys website here Power-Efficient RISC-V Processors for Embedded Applications and here Maximum Performance Efficiency for Real-time Applications.

arc-v-hero-aem

Important

EM Starter Kit and Ashling Opella-XD probe are EOL (End of Life) and they are no longer supported. Refer the old documentation site for guides related to EM Starter Kit and Ashling Opella-XD for old releases. Corresponding pages on the official documentation site for recent releases still exist but they may be not applicable for the recent releases.

Toolchain and IDE Components Versions

  • GCC 14.2 with ARC patches
  • Binutils 2.43 with ARC patches
  • GDB 15.1 with ARC patches
  • Newlib 4.4.0 with ARC patches
  • uClibc-ng v1.0.49 with ARC patches
  • glibc 2.40 with ARC patches

This release of GNU toolchain is supported by CGEN IPlib (TCF generator) version 1.0.53 and later.

New Features and Enhancements

Binary distribution

  • Supported host operating systems: Windows 11 64-bit, Ubuntu 22.04, RHEL/AlmaLinux 8.x
  • Prebuilt bare-metal toolchains for 64-bit Windows & Linux hosts, see table with references and list of artifacts below.

Toolchain Components

For this release binary distributions of ARC GNU tools for all supported processor families (both ARC Classic and ARC-V) are produced from the same sources of corresponding tools.

There are no major changes for ARC Classic targets except ARC-specific improvements and fixes for ARCompact, ARCv2 and ARCv3 ISA processors on top of the upstream releases. All components are updated on top of upstream releases.

There are a few major changes for ARC-V targets besides updates to the latests versions:

  1. Added full support of tuning instructions scheduling for RMX-100, RMX-500 and RHX-100.
  2. Add initial support of RVV extension for ARC-V RPX processors in the binary distribution of ARC GNU toolchain.
  3. Prebuilt standard libraries for base RMX-100, RMX-500 and RHX-100 profiles are included. Refer Understanding ARC-V Configurations page for details.

Here is a list of GitHub issues addressed in this release: GitHub issues for 2024.12. Note, though, this list only contains issues filed against ARC GNU toolchain. Bugs and enhancements made in upstream open-source projects of each toolchain component could be found in the corresponding bug-tracking system.

Fixes and improvements in the final release compared to Release Candidate 1

There are no changes in the final release compared to the Release Candidate 1.

Known issues

ARC Classic

  1. Newlib's libgloss doesn't support RF16 configuration of ARC cores when building for nSIM with -specs=nsim.specs, see #231. Use -specs=hl.specs instead for RF 16 configurations.

  2. Non-multilib toolchain doesn't contain libgloss libraries for nSIM and development boards, see #262.

  3. libcrypt.so.1 is not included in the toolchain (starting from glibc 2.38 libcrypt.so.1 is not built by default and will be removed from glibc in the future), please use libcrypt implemented by external libraries such as libxcrypt instead of relying on Glibc internal implementation.

  4. Eclipse IDE for ARCompact does not support selecting -specs= options in project's configuration menu. Consider passing this options (e.g., -specs=nsim.specs for nSIM) in "ARC GNU Linker" field of projects configuration dialog (C/C++ Build -> Settings -> Top Settings -> ARC GNU Linker).

ARC-V

  1. Some complex combinations of -march= and -mabi= options may lead to unpredictable errors during compilation. Such issues are related to general support of RISC-V extensions in GCC. Refer #610 for details.

  2. The size-optimized Newlib Nano configuration (used when -specs=nano.specs is passed to GCC) does not support printf() for float and double by default. Nano printf() is size-optimized and does not include support of float and double. If you need that feature, pass -u _printf_float to GCC when you compile your applications. This option picks up support of float and double for size optimized printf() on demand.

  3. There is an issue in GCC that prevents matching -march configurations like rv32imc and rv32im_zca as compatible and interchangeable. Refer #653 for details.

  4. Using selective scheduler with a specific set of options may lead to incorrect code generation. Refer Bug 118153 for details.

Getting help

ARC Classic

Documentation and guides for ARC Classic targets may be found here: https://foss-for-synopsys-dwc-arc-processors.github.io/documentation/2024.12/. Please report any problems by filing an Issue in GitHub here.

ARC-V

Getting Started manual covering all aspects of the ARC-V family of processors could be found here: https://foss-for-synopsys-dwc-arc-processors.github.io/documentation/2024.12/arcv/.

Also visit the GitHub discussions link for a community forum tailored to ARC-V processors. To report issues and enhancement requests, use GitHub issues (if you are not sure, start with discussions, since a discussion can always be converted into an issue).

Linux x86_64 Linux ARC HS Windows x86_64 macOS x86_64
Baremetal Little endian / Big endian Little endian / Big endian
Linux/uClibc ARC 700 Little endian / Big endian
Linux/uClibc ARC HS Little endian / Big endian
Linux/glibc ARC HS Little endian / Big endian Little endian
Baremetal ARCv3 Little endian
Linux/glibc ARC HS6x Little endian Little endian
Linux/uClibc ARC HS5x Little endian Little endian
Linux/glibc ARC HS5x Little endian Little endian
Baremetal ARC-V Little endian Little endian
IDE Download Download
1e114b77ef0e5422d2fab215485ca2c81a5ac207446d50c581660d71d5a3cef2 *arc_gnu_2024.12_prebuilt_arc64_glibc_linux_install.tar.xz
fa69d5e62306b50d3ea99254d6fcd0cc0a9bc7a3996875154851d938466f9c96 *arc_gnu_2024.12_prebuilt_arc32_uclibc_native_install.tar.xz
8b9d034d85132aa83c2504e811a298c3aabc9f6991cd7026e445583497d25321 *arc_gnu_2024.12_prebuilt_arc32_glibc_linux_install.tar.xz
9dca9ec69f5355da7a79d0d27d339a3fbda74814f35be59e61990a486e419137 *arc_gnu_2024.12_prebuilt_arc64_elf_linux_install.tar.xz
49edb6fb5300da55b5eee1d915d250e249765f33bb3bc9d43f65f5b10009dc36 *arc_gnu_2024.12_prebuilt_arc32_uclibc_linux_install.tar.xz
1ff33f884ea2e578089fba880d3ed41d9264dcdc3df8a29180dcfd2aa444211d *arc_gnu_2024.12_prebuilt_uclibc_be_arc700_linux_install.tar.xz
59bccb56c6b4557153991533705048705843761f7eb8777d645f8acef156b6d2 *arc_gnu_2024.12_prebuilt_uclibc_be_archs_linux_install.tar.xz
959610ce663161754ea062365b7f3d5fe20492b9f5582fa9002b7b545eeb2622 *arc_gnu_2024.12_prebuilt_arc64_glibc_native_install.tar.xz
9a1414ad048f2ec1873cade449786c9dee3232dec9fa7ce321c1ccec2fa881d2 *arc_gnu_2024.12_prebuilt_glibc_le_archs_native_install.tar.xz
a2a69717a379ead18ac2b0e79fe767edfc5dbb3fb35b1ef2522d24a1f909c694 *arc_gnu_2024.12_prebuilt_glibc_be_archs_linux_install.tar.xz
664e66eb7a782551a168ff7e4d622841d85058bdc712fb2b15b74bc330e3babc *arc_gnu_2024.12_prebuilt_elf32_le_linux_install.tar.xz
b9e9b6d542caeea42e1df2ff75b417175685735d2630a3e70d52c0e5b27dd109 *arc_gnu_2024.12_prebuilt_uclibc_le_arc700_linux_install.tar.xz
c05cfb12fa4c4301c26610d2669358945b5b05a566bbf2180d4088dcf06aa1ba *arc_gnu_2024.12_prebuilt_elf32_be_linux_install.tar.xz
13a39849192f676232e484ae440879e17c50c2f1c5e3825909fd59261d9c4fbd *arc_gnu_2024.12_prebuilt_uclibc_le_archs_linux_install.tar.xz
fcc34afb73e8851bd2f00115e56539af4b04667d954259f1c5e27601f74b10c2 *arc_gnu_2024.12_prebuilt_glibc_le_archs_linux_install.tar.xz
b1cc1fd9f479b1e061bdcd41544e8431d158a99823a4f163eccd32634357e865 *arc_gnu_2024.12_prebuilt_elf32_be_win_install.tar.xz
f31b65b21768d90372aff3f8b348df0f28e6ba08c92830b78eec6f000bb69b0d *arc_gnu_2024.12_prebuilt_elf32_le_win_install.tar.xz
b7dd1627ca7dbfbb4309a210091919ba9cce13ce44c5bd51b4dd89e6f6c7ce8d *arc_gnu_2024.12_prebuilt_riscv64_elf_le_linux_install.tar.xz
f6fdf4b99eb3ade579b10d6a3e63f9d4e443df3f66e165f91bab49015a4bd725 *arc_gnu_2024.12_prebuilt_riscv64_elf_le_win_install.tar.xz
f227919033eba38b44732ef4f6d3439b05f24ecd893d7d6a957575d7dc2eb373 *arc_gnu_2024.12_ide_linux_install.tar.xz
a7a6dd869a7aa5d09e3f7b872e53ea1481985fe52f7a9d50f2877592cde911c3 *arc_gnu_2024.12_ide_win_install.exe
274090af59c0466753c283ca70f986dccf389347040485641997a3b041cfbe19 *arc_gnu_2024.12_sources.tar.xz