GNU Binutils release 2.45 is now available
Nick Clifton <[email protected]> Sun, 27 Jul 2025 10:52:21 +0100
| Newsgroups | gmane.org.fsf.announce |
|---|---|
| Message-ID | <[email protected]> |
Hi Everyone,
We are pleased to announce that version 2.45 of the GNU Binutils project
sources have been released and are now available for download at:
https://ftp.gnu.org/gnu/binutils
https://sourceware.org/pub/binutils/releases/
The sha256 checksums are:
1393f90db70c2ebd785fb434d6127f8888c559d5eeb9c006c354b203bab3473e binutils-2.45.tar.bz2
8a3eb4b10e7053312790f21ee1a38f7e2bbd6f4096abb590d3429e5119592d96 binutils-2.45.tar.gz
17a71cbe6cd31f6b2237a15a8a413d234c2d664d1df1df48f4f12fab8023324c binutils-2.45.tar.lz
c50c0e7f9cb188980e2cc97e4537626b1672441815587f1eab69d2a1bfbef5d2 binutils-2.45.tar.xz
7f288c9a869582d53dc645bf1b9e90cc5123f6862738850472ddbca69def47a3 binutils-2.45.tar.zst
These tarballs were made with the "-r <date>" option supported by
the src-release.sh script. This attempts to make reproducible
tarballs by sorting the files and passing the "--mtime=<date>" option
to tar. The date used for these tarballs was obtained by running:
git log -1 --format=%cd --date=format:%F bfd/version.m4
As this is an odd numbered release, the sources for the GOLD
linker are *not* included.
This release contains numerous bug fixes, and also the following new
features:
Assembler:
All sframe information generated by the assembler is now in compliance
with the SFrame V2 specification.
The assembler now supports .errif and .warnif directives, permitting
user-controlled diagnostics with conditionals that are evaluated only
at the end of assembly.
The assembler predefines the symbol "GAS(version)".
The assembler now supports the generation of SFrame stack trace
information (.sframe) from CFI directives on s390 64-bit (s390x).
For RISC-V, the ".option arch, -ext" format is deprecated due to its
controversial use.
For RISC-V, stop generating mapping symbols $x and replace with $x<isa>. The
$x was defined to have the same ISA as previous $x<isa>, but now is defined
to have the same ISA as elf architecture attribute. Once both used .option
arch/rvc/norvc/push/pop directives (some code have different architectures
with file attribute) and data directives in text, then the file need to be
rebuilt since 2.45.
The assembler supports the latest architecture extensions for the
RISC-V, LoongArch and AArch64 architectures.
Linker:
The linker's --stats option can take an optional argument which if used is
interpreted as a filename into which resource usage information should be
stored. As an alternative mechanism the LD_STATS environment variable can
also be used to achieve the same results. Resource usage information for
various phases of the linking operation is now included in the report.
If a map file is being produced then the information is also included there.
The --no-stats option can be used to disable stat reporting, should it have
been enabled.
On s390 64-bit (s390x), generate SFrame stack trace information (.sframe)
for the linker generated .plt section. On s390 32-bit, generate
".eh_frame" unwind information for the linker generated .plt section.
Both features are enabled by default and can be disabled using linker
option --no-ld-generated-unwind-info.
On RISC-V, add new PLT formats, and GNU property merge rules for zicfiss and
zicfilp extensions.
On AVR, the default linker scripts now assert that the .progmem sections
don't extend past 0xffff since they are accessed by means of LPM.
For data in program memory that may be located past 0xffff, a .progmemx
section should be used.
On LoongArch, linker relaxation time complexity is no longer quadratic with
respect to relocation counts. Linking time of large software should be
improved. In addition R_LARCH_32_PCREL records are now checked for
overflow.
Other binary utilities:
New versioned release of libsframe: libsframe.so.2. This release introduces
versioned symbols with version node name LIBSFRAME_2.0. Some new symbols
have been added to support the new flag SFRAME_F_FDE_FUNC_START_PCREL and
retrieving flags from SFrame decoder and encoder objects:
- Addition of sframe_decoder_get_flags,
sframe_decoder_get_offsetof_fde_start_addr, sframe_encoder_get_flags,
sframe_encoder_get_offsetof_fde_start_addr.
This release also includes backward-incompatible ABI changes:
- Removal of sframe_get_funcdesc_with_addr.
- Change in the behavior of sframe_decoder_get_funcdesc_v2,
sframe_encoder_add_funcdesc_v2 and sframe_encoder_write.
For SFrame stack trace format, the function start address in each SFrame
FDE has a changed encoding: The 32-bit signed integer now holds the offset
of the start PC of the associated function from the sfde_func_start_address
field itself (instead of the earlier where it was the offset from the start
of the SFrame section itself). All SFrame sections generated by gas and ld
now default to this new encoding, setting the (new)
SFRAME_F_FDE_FUNC_START_PCREL flag.
Relocatable SFrame links are now fixed.
Readelf now recognizes RISC-V GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS and
GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED for zicfiss and zicfilp
extensions.
The LoongArch disassembler now properly accepts multiple disassembly
options given by -M, such as "-M no-aliases,numeric". (Previously only the
first option took effect.)
For more information see:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gas/NEWS;;hb=refs/tags/binutils-2_45
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=ld/NEWS;hb=refs/tags/binutils-2_45
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=binutils/NEWS;hb=refs/tags/binutils-2_45
Our thanks go out to all of the binutils contributors, past and
present, for helping to make this release possible.
Cheers
Nick Clifton