GNU Binutils 2.47 Released, Featuring RISC-V Extensions and Faster Linking
GNU Binutils 2.47 has been released, supporting numerous RISC-V extensions and adding optimized linking options, promising reduced build times.
GNU Binutils 2.47 was officially released on July 26, 2026. This latest version introduces support for new RISC-V architecture extensions and multiple optimized options for linking processes. Released in the same weekend as GNU C Library 2.44, this update represents a significant milestone for platforms utilizing the GNU toolchain, including Linux systems.
Support for Numerous RISC-V Extensions
According to a report by Phoronix’s Michael Larabel, GNU Binutils 2.47 now supports a wide range of new RISC-V standard extensions. The supported extensions include:
- zalasr v1.0
- svrsw60t59b v1.0
- zvabd v1.0
- smpmpmt v1.0
- zvqwdota8i, zvqwdota16i, zvfwdota16bf, zvfqwdota8f v1.0
- zvqwbdota8i, zvqwbdota16i, zvfwbdota16bf, zvfqwbdota8f, zvfbdota32f v1.0
Additionally, proprietary extensions from SpacemiT, namely xsmtvdot v1.0 and xsmtvdotii v1.0, have been added to the list of supported features. These extensions cater to various use cases in the RISC-V ecosystem, such as vector processing, matrix operations, and memory protection. As RISC-V adoption continues to grow, the expanded support in toolchains is crucial for designers and embedded developers alike.
New Assembler Options
The GNU Assembler now includes a new command-line option, --reloc-section-sym=[all|internal|none]. This option controls whether relocations referencing locally bound symbols are adjusted to section symbols. It enhances the ability to specify optimizations and debug info handling more granularly during linking.
Specifying Debug Info Search Paths
Both objdump and readelf tools now feature a --debug-dir=[DIR] option, which allows users to specify directories for searching separate debug info files. Managing debug information separately is a common practice for large-scale projects, and this addition is expected to enhance development efficiency.
Moreover, objdump now includes the -map-global-vars option, which displays the location and type of global variables within object files. This makes analyzing and debugging existing binaries significantly easier.
Linker Optimization Level 0
The BFD linker introduces optimization level 0 (-O 0), which halts the merging of contents from mergeable sections. While this results in larger binary sizes, it significantly speeds up the linking process.
In large-scale project builds, linking often becomes a bottleneck, and this new option has the potential to shorten development cycles. However, regular optimization is generally recommended for production builds.
New Library Start/End Options
The linker gains two new options, --start-lib and --end-lib, allowing explicit specification of the start and end positions of libraries within archives. Additionally, the options --no-link-mapless and --link-mapless have been introduced for archives without symbol indices across all formats.
Deprecation of s390 32-bit Target
GNU Binutils 2.47 officially deprecates the 32-bit target for IBM’s mainframe architecture, s390. However, the 64-bit s390x target will continue to receive maintenance. This move reflects the declining demand for 32-bit environments.
Editorial Opinion
The release of GNU Binutils 2.47 marks a significant step forward in expanding options for RISC-V developers. In particular, support for proprietary extensions like SpacemiT’s contributions could catalyze the growth of China’s RISC-V ecosystem. The linker optimization level 0 is likely to prove highly practical for CI/CD pipelines in large software projects.
Looking ahead, the ongoing addition of RISC-V extensions is expected to further establish its position as a viable third architecture alongside x86 and Arm. On the other hand, the deprecation of s390 32-bit signals an accelerating shift away from legacy systems, indicating changes in the embedded and mainframe markets.
The ability for developers to explicitly choose between link speed and binary size is commendable. Optimization level 0 is well-suited for debug builds during development, paving the way for clearer differentiation between development and production builds. Future advancements in the GNU toolchain’s flexibility may offer further productivity gains, warranting close observation.
References
- “GNU Binutils 2.47 Released With More RISC-V Extensions, New Options”, by Michael Larabel — Phoronix, 2026-07-26T19:36:15.000Z (ARR)
- Source URL: https://www.phoronix.com/news/GNU-Binutils-2.47
Frequently Asked Questions
- When should the linker optimization level 0 in GNU Binutils 2.47 be used?
- It is ideal for frequent builds and debug builds during development. While binary size increases, link times are significantly shortened, making it effective for large projects where build time is a bottleneck.
- What are the intended use cases for the RISC-V extensions added in this release?
- The extensions cater to diverse needs such as vector and matrix operations, memory protection, and more. For example, extensions like zvqwdota8i are designed to accelerate AI inference through quantized dot product calculations, while zalasr enhances efficiency in atomic operations. SpacemiT's xsmtvdot extensions are likely tailored for proprietary accelerators.
- Will the deprecation of s390 32-bit affect existing systems?
- While it is currently deprecated, the functionality has not been immediately removed. However, future versions are likely to drop support entirely. Organizations running s390 32-bit environments should consider transitioning to the 64-bit s390x architecture.
Comments