This is release of 2024.06 version of the GNU Toolchain for DesignWare ARC 600, ARC 700, EM, HS3x/4x, HS5x, HS6x and ARC-V processors. This is the first release which supports the latest GNU tools for both ARC Classic and ARC-V processors simultaneously.
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.
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.1 with ARC patches
- Binutils 2.42 with ARC patches
- GDB 14.2 with ARC patches
- Newlib 4.4.0 with ARC patches
- uClibc-ng v1.0.49 with ARC patches
- glibc 2.39 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 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.
Here is a list of GitHub issues addressed in this release: GitHub issues for 2024.06. 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 inthe corresponding bug-tracking system.
- GCC 14.1 with ARC patches
- Uses upstream 14.1 release, see release announcement and complete list of changes.
- Initial support of RVV extensions is added in upstream GCC 14.
- Binutils 2.42 with ARC patches
- Sources used for the release: https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/releases/tag/arc-2024.06-rc1
- Uses upstream 2.42 release, see release notes.
- GDB 14.2 with ARC patches
- Sources used for the release: https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/tree/arc-2024.06-gdb
- Uses upstream 14.2 release, see release announcement for 14.1 and complete list of changes for 14.1 for major changes.
- Newlib 4.4.0 with ARC patches
- Sources used for the release: https://github.com/foss-for-synopsys-dwc-arc-processors/newlib/releases/tag/arc-2024.06-rc1
- Uses upstream 4.4.0 release, see release announcement.
- Upstream Newlib source tree now contains the latest changes for ARC Classic.
- uClibc-ng 1.0.49 with ARC patches
- Sources used for the release: https://github.com/foss-for-synopsys-dwc-arc-processors/uClibc/releases/tag/arc-2024.06-rc1
- Uses upstream 1.0.49 release, see release announcement.
- glibc 2.39 with ARC patches
- Sources used for the release: https://github.com/foss-for-synopsys-dwc-arc-processors/glibc/releases/tag/arc-2024.06-rc1
- Uses upstream 2.39 release, see release announcement and complete list of changes.
Fixes and improvements in the final release compared to Release Candidate 2
There are no changes in the final release compared to the Release Candidate 2.
Fixes and improvements in the Release Candidate 2 compared to Release Candidate 1
- #630: A temporary patch applied to fix an incorrect behavior of
__builtin_mul_overflow
function. - #633: Resolved an issue when FPU is not enabled by default in Newlib for ARC-V targets with
f
ord
extensions.
Known issues
ARC Classic
-
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. -
Non-multilib toolchain doesn't contain
libgloss
libraries for nSIM and development boards, see #262. -
libcrypt.so.1
is not included in the toolchain (starting from glibc 2.38libcrypt.so.1
is not built by default and will be removed from glibc in the future), please uselibcrypt
implemented by external libraries such as libxcrypt instead of relying on Glibc internal implementation. -
Eclipse IDE for ARC 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
-
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. See #610. -
GCC 14 generates incorrect include directories if it's configured with
--with-sysroot=...
and--with-native-system-header-dir=...
options. This is a valid set of options for building GCC, however since GCC that leads to including invalid paths to a includes search list when-save-temps
is used while building binaries. This issue is not critical and is going to be addressed later. See #628. -
The size-optimized Newlib Nano configuration (used when
-specs=nano.specs
is passed to GCC) does not supportprintf()
forfloat
anddouble
by default. Nanoprintf()
is size-optimized and does not include support offloat
anddouble
. If you need that feature, pass-u _printf_float
to GCC when you compile your applications. This option picks up support offloat
anddouble
for size optimizedprintf()
on demand.
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.06/. 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/arc-v-getting-started.
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).
- GitHub discussions: https://github.com/foss-for-synopsys-dwc-arc-processors/arc-v-getting-started/discussions
- GitHub issues: https://github.com/foss-for-synopsys-dwc-arc-processors/arc-v-getting-started/issues
Prebuilt toolchains available for download
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 HS68 | Little endian | Little endian | ||
Linux/uClibc ARC HS58 | Little endian | Little endian | ||
Linux/glibc ARC HS58 | Little endian | Little endian | ||
Baremetal ARC-V | Little endian | Little endian | ||
IDE | Download | Download |
49e9aff242e8691d031edb023cecb8250dee31f0b84c27a5b0edd92d376b12a8 *arc_gnu_2024.06_prebuilt_arc32_glibc_linux_install.tar.bz2
f4938febf4702cede1988cf7338db1db57c804be0bf319383295b4876f26eeee *arc_gnu_2024.06_prebuilt_arc32_uclibc_linux_install.tar.bz2
b0e1b967e69cbf52abc0d831a79e6633608e335f6b28cc5b9d40a8c81f747903 *arc_gnu_2024.06_prebuilt_arc32_uclibc_native_install.tar.bz2
b8a8feff3a525d0de4f47c17e7aadbbdc97ebfdc569c38171fbc7f1afb14b783 *arc_gnu_2024.06_prebuilt_arc64_glibc_linux_install.tar.bz2
a2619739963acb712c3a6523ed9e0449676ffa57ccc7b9eaa9797c7cf0dd6f57 *arc_gnu_2024.06_prebuilt_arc64_glibc_native_install.tar.bz2
6b30ef2abd3385c50d954a4e8576c259a4f99405db2b2e38b362eed2f28cecb2 *arc_gnu_2024.06_prebuilt_arc64_elf_linux_install.tar.bz2
080bbf8c0747d221314d04b0fcef89f91dc82710afa1aa66a88f04c93719663a *arc_gnu_2024.06_prebuilt_uclibc_le_arc700_linux_install.tar.bz2
37ad59b2624608cd126fab3a83a188edc18ad9e2bba8bbb778d46cdd49ad2ffe *arc_gnu_2024.06_prebuilt_glibc_le_archs_linux_install.tar.bz2
6867bc6f895c29b053020423923ead2054b8474816f1d067f2726b13e8ee16c0 *arc_gnu_2024.06_prebuilt_uclibc_le_archs_linux_install.tar.bz2
f0e74406e057ac91be79ce68c3f39d60fa0dfdab680870951144dd786940486e *arc_gnu_2024.06_prebuilt_glibc_le_archs_native_install.tar.bz2
6efd9025e4b226bf1b4a4d448670e00f928e61e0051a0b209b7adaa327945a32 *arc_gnu_2024.06_prebuilt_uclibc_be_arc700_linux_install.tar.bz2
ae2ffb5fbe8d6002341dd87d005400010e85dfc1df1e8db070a19ab7300d738f *arc_gnu_2024.06_prebuilt_glibc_be_archs_linux_install.tar.bz2
892a576acdf962afafde345d2c830317cb14ff8ef95da7cadc79177c226db269 *arc_gnu_2024.06_prebuilt_uclibc_be_archs_linux_install.tar.bz2
fe1ccfa411159c998241714df58c63ba5e84a0fcdbdde7b3576cbaa03b7b8941 *arc_gnu_2024.06_prebuilt_elf32_be_win_install.tar.bz2
002bb5fc731e73f8be5aa909194ff20a0a795284e071050e5283faae0b2b209a *arc_gnu_2024.06_prebuilt_elf32_be_linux_install.tar.bz2
a0bf96af14f0e1e8cc2a1fb60ae494290869d90d73112cda6750989e69e9581a *arc_gnu_2024.06_prebuilt_elf32_le_win_install.tar.bz2
3e55271b920e8b2c1b03397cd00374b1963b61c0dc0f52578725d33fd4360497 *arc_gnu_2024.06_prebuilt_elf32_le_linux_install.tar.bz2
67fee291175cbbdc93f0f5797445ed1076b164c4a546ac1984805e3a4ef0b820 *arc_gnu_2024.06_prebuilt_riscv64_elf_le_win_install.tar.bz2
b5250a3bf9caa8ac6fcd708a0b7b48ec246d7a226aa2e15fe35ba70b5c23aac5 *arc_gnu_2024.06_prebuilt_riscv64_elf_le_linux_install.tar.bz2
e12c51dbe81d22657a74cbe88c47961f865b8594ed188520c1e6dfef26353958 *arc_gnu_2024.06_ide_linux_install.tar.bz2
995d2c41f32326b78e11e6b3f02e6bd07f9677c144e7cf06dd7abf3a2c2109fb *arc_gnu_2024.06_ide_win_install.exe
4aef7320e65742362c0d753cc3c304432c9e4a428433c43c541c078e40427c61 *arc_gnu_2024.06_sources.tar.bz2