GNU Toolchain for ARC Processors, arc-2024.06-rc1
Pre-releaseThis is the first release candidate 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.
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 |
d93a34894f52536e946890b5ccd576a29e6cd33912a299b53bfafe2f5c26c087 *arc_gnu_2024.06-rc1_prebuilt_arc32_glibc_linux_install.tar.bz2
9e35fe3cff09ad7b1281e89066e6d3700b6d47e3768dffb7ebf276a0608cbe57 *arc_gnu_2024.06-rc1_prebuilt_arc32_uclibc_linux_install.tar.bz2
06813e4c7b0ee288f921503fe9b47c367b0827098e69911999d48825aef701d2 *arc_gnu_2024.06-rc1_prebuilt_arc32_uclibc_native_install.tar.bz2
fc3a28c2e74abf2d639f12fc5b4417c6cb5b94bae221251314d197ab5eb169a3 *arc_gnu_2024.06-rc1_prebuilt_arc64_glibc_linux_install.tar.bz2
a20ae1dad2f682d19902a7af538046d6a13601cf1c36beb4cdb4f4de1c47be83 *arc_gnu_2024.06-rc1_prebuilt_arc64_glibc_native_install.tar.bz2
cd750c6e83ea8612e19773ade575d1d1144ae92914f336b18f78b55ad0265bf5 *arc_gnu_2024.06-rc1_prebuilt_arc64_elf_linux_install.tar.bz2
9be9ff0775ca6d2e883a3719539020b26699992f850169b4603f49f89f1843aa *arc_gnu_2024.06-rc1_prebuilt_uclibc_le_arc700_linux_install.tar.bz2
2bb06163aaa9005577c63f394fc868d87e88931c4e7205b1a0c81cc9f5e6d0bd *arc_gnu_2024.06-rc1_prebuilt_glibc_le_archs_linux_install.tar.bz2
99a28b9c26017348da5fad649c0ba6907091b3884220252b80b639f676b53d5b *arc_gnu_2024.06-rc1_prebuilt_uclibc_le_archs_linux_install.tar.bz2
dd265ad77928f10b9202bc6c23532b13f799d79b14af6f1e8ab9e4c2fba01a93 *arc_gnu_2024.06-rc1_prebuilt_glibc_le_archs_native_install.tar.bz2
7ef9a7eed0ce95263e9b9b34bd261bc5f3f1bbc915bedb3863f70835216010ac *arc_gnu_2024.06-rc1_prebuilt_uclibc_be_arc700_linux_install.tar.bz2
0b463445a814b65a35813bcfa58c135e9500a59de5b7a7247108b22f3174488c *arc_gnu_2024.06-rc1_prebuilt_glibc_be_archs_linux_install.tar.bz2
6e1905df0e3b65e2122a45dfe7b85fbd1eb945a3bcf4e5858db92d9933e8ba22 *arc_gnu_2024.06-rc1_prebuilt_uclibc_be_archs_linux_install.tar.bz2
29520e669cefdd6be51c74149649d925fa385cd18152fe5ef15741b0467bea22 *arc_gnu_2024.06-rc1_prebuilt_elf32_be_win_install.tar.bz2
1dafd2ed0eac2eaa0e6876d496ee2d07a7885679e918b6a4018aaf2f64c63738 *arc_gnu_2024.06-rc1_prebuilt_elf32_be_linux_install.tar.bz2
366c409421a1d1dd5a236a46d74e6aa67f6c8ece6879097079c6c3e75e7e1bfe *arc_gnu_2024.06-rc1_prebuilt_elf32_le_win_install.tar.bz2
c841ebec4fa77445d9272a0a71457375bba96749b01f2a264ce10f29888803bd *arc_gnu_2024.06-rc1_prebuilt_elf32_le_linux_install.tar.bz2
b7c2b3f1ce3cda1d1472a0412c474e9a6ca1fe5ee48db4910664050456e28ceb *arc_gnu_2024.06-rc1_prebuilt_riscv64_elf_le_win_install.tar.bz2
02580b4b8194695c3f5a6248fc52c1c0e16b252d7b4c2a24a059f653e2eb9eef *arc_gnu_2024.06-rc1_prebuilt_riscv64_elf_le_linux_install.tar.bz2
36ec45807de5b8f617952ca3a2b849881e61cecef2333cfcd5b838522e21dd16 *arc_gnu_2024.06-rc1_ide_linux_install.tar.bz2
1ed9be25e3c8cee2b9660077dbd5389501d012c89adc11466a709e6c7193a762 *arc_gnu_2024.06-rc1_ide_win_install.exe
f44a52ab6dbecaf1ce4a15513aa8abcfb1a8abcefa0277ecfd2dc06740d2a1a0 *arc_gnu_2024.06-rc1_sources.tar.bz2