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.
Source: Linux Journal - The Original Magazine of the Linux Community