GNU Binutils 2.47 Released with New RISC-V Features, Linker Improvements, and Reproducible Builds
The GNU Project has officially released GNU Binutils 2.47, the latest version of its essential collection of binary development tools for Linux and other Unix-like systems. The release delivers numerous bug fixes alongside new assembler, linker, and disassembler capabilities, expanded RISC-V support, reproducible source archives, and continued modernization of the GNU toolchain.
Used by developers worldwide, GNU Binutils forms a core part of the software development ecosystem, providing the low-level tools needed to assemble, link, inspect, and manipulate executable programs and object files.
What Is GNU Binutils?
GNU Binutils is a collection of command-line utilities that work closely with compilers such as GCC and Clang. While a compiler translates source code into object files, Binutils provides the tools needed to transform those object files into executable programs and libraries.
The package includes well-known utilities such as:
ld(GNU Linker)as(GNU Assembler)objdumpobjcopyreadelfnmstriparstrings
Together, these tools are used daily by Linux distributions, embedded developers, operating system projects, and software engineers building applications in C, C++, Rust, Go, and many other languages.
Expanded Support for RISC-V
One of the biggest improvements in Binutils 2.47 is expanded support for the rapidly growing RISC-V architecture.
The release adds support for several additional standard RISC-V extensions, allowing developers targeting modern RISC-V processors to work with newer instruction sets and hardware capabilities. These additions continue the GNU toolchain's strong commitment to one of the fastest-growing open processor architectures.
As more Linux distributions, development boards, and enterprise hardware adopt RISC-V, keeping development tools current is becoming increasingly important.
New Assembler Options
GNU Assembler (gas) gains several useful enhancements in version 2.47.
Among the most notable is a new command-line option:
--reloc-section-sym=[all|internal|none]
This option gives developers finer control over how relocations referencing locally bound symbols are converted to section symbols, improving flexibility for certain assembly and linking workflows.
The release also introduces numerous assembler improvements across multiple CPU architectures.
Better Disassembly for AArch64
Developers working with Arm-based systems also benefit from new functionality.
The AArch64 disassembler now supports the -M annotate option, which displays symbolic information for undefined instructions during disassembly. This provides additional context when analyzing binaries, reverse engineering software, or debugging low-level code.
These kinds of quality-of-life improvements make diagnosing binary behavior significantly easier for systems programmers.
Linker and Toolchain Improvements
Version 2.47 includes numerous updates across the GNU linker (ld) and related utilities.
Highlights include:
- Improved linker behavior
- Better diagnostics
- Bug fixes across multiple architectures
- Enhanced ELF handling
- Various performance and reliability improvements
Although many of these changes are incremental, they contribute to a more dependable development environment for compiling large software projects.
Reproducible Source Tarballs
Another notable change is the introduction of reproducible release tarballs.
The official source archives are now generated in a reproducible manner, allowing developers to independently verify that downloaded source packages match the published releases. This improves transparency, strengthens supply chain security, and supports broader efforts toward reproducible software builds.
Reproducibility has become an increasingly important goal across the open-source ecosystem as projects work to improve software integrity and verification.
Gold Linker Removed from the Main Tarball
Binutils 2.47 also continues the transition away from the Gold linker.
The Gold linker is no longer included in the primary source distribution and is instead provided separately. Gold has seen relatively little active development in recent years, while the GNU project's primary linker (ld.bfd) has continued receiving the majority of new features and maintenance.
For most Linux users and distributions, this change will have little practical impact, as many have already standardized on the main GNU linker or LLVM's lld.
Deprecation of 32-bit s390
The release also marks the deprecation of the 32-bit IBM s390 target.
While modern IBM enterprise systems continue using the 64-bit s390x architecture, support for the older 32-bit platform is gradually being phased out due to declining usage and maintenance needs.
This allows developers to focus resources on actively maintained architectures while simplifying long-term maintenance.
Bug Fixes Across the Project
Beyond the new features, GNU Binutils 2.47 incorporates numerous bug fixes affecting multiple architectures and utilities.
These improvements enhance:
- Binary compatibility
- Linker stability
- Assembler correctness
- Cross-compilation support
- Overall reliability
As with most Binutils releases, many of these fixes come from contributions across the open-source community and hardware vendors working to improve support for emerging platforms.
Why This Release Matters
Although end users rarely interact with Binutils directly, it is one of the most important components of the Linux software development stack.
Nearly every Linux distribution relies on Binutils when building:
- The Linux kernel
- GNU utilities
- Desktop environments
- Programming languages
- Libraries
- Embedded firmware
Each new release helps ensure developers have access to modern tooling that supports the latest processor architectures while improving build reliability and debugging capabilities.
Conclusion
GNU Binutils 2.47 continues the steady evolution of one of the Linux ecosystem's most important developer toolkits. With expanded RISC-V support, improved assembler and disassembler features, reproducible release archives, linker enhancements, and numerous bug fixes, the release strengthens the foundation used to build countless open-source projects.
For Linux developers, compiler toolchain maintainers, and embedded systems engineers, Binutils 2.47 provides another solid update that improves compatibility, reliability, and support for today's rapidly evolving hardware platforms.
