Changelog:
2.31.1
This release also contains a fix for PR gold/23409 where the gold
linker could end up creating duplicate copies of some symbols.
2.31
This release contains numerous bug fixes, and also the
following new features:
* Direct linking with DLLs for Cygwin and Mingw targets is now faster.
* The linker now defaults to enabling -z separate-code for Linux
targets, although a configure time option can change this.
This option can increase disk and memory size of executables, but
it does help to improve security.
* The disassembler supports Netronome Flow Processor (NFP) firmware
files.
* The AArch64 disassembler supports showing disassembly notes which
are emitted when inconsistencies are found with the instruction that
may result in the instruction being invalid. It also emits warnings
when a combination of an instruction and a named register could be
invalid.
* The AR archive manager now supports an "O" modifier to display
member offsets inside an archive.
* The ADR and ADRL pseudo-instructions supported by the ARM assembler
now only set the bottom bit of the address of thumb function symbols
if the -mthumb-interwork command line option is active.
* The MIPS assembler supports the Global INValidate (GINV) and
Cyclic Redudancy Check (CRC) architecture extensions.
* Support has been added for the Freescale S12Z architecture.
* The assembler has a new --generate-missing-build-notes=[yes|no]
option to create (or not) GNU Build Attribute notes if none are
present in the input sources.
* The -mold-gcc command-line option has been removed for x86 targets.
* The x86 assembler now supports a -O[2|s] command-line options to
enable alternate shorter instruction encodings.
* The gold linker has a new --debug=plugin option for easier debugging
of plugin-related problems.
* The gold linker now supports the -z keep_text_section_prefix option.
* The gold linker now has support for .note.gnu.property sections
(from Linux ABI extensions).
* Add gold linker now has support for Intel's Indirect Branch Tracking
(IBT) and Shadow Stack instructions.
Changelog:
In the assembler:
* Add support for location views in DWARF debug line information.
In the BFD linker:
* Add -z separate-code to generate separate code PT_LOAD segment.
* Add "-z undefs" command line option as the inverse of the "-z defs"
option.
* Add -z globalaudit command line option to force audit libraries to be run
for every dynamic object loaded by an executable - provided that the
loader
supports this functionality.
* Tighten linker script grammar around file name specifiers to prevent the
use
of SORT_BY_ALIGNMENT and SORT_BY_INIT_PRIORITY on filenames. These would
previously be accepted but had no effect.
* The EXCLUDE_FILE directive can now be placed within any SORT_* directive
within input section lists.
In the GOLD linker:
* Add support for .MIPS.options sections (MIPS only).
* Add support for compound relocations (MIPS only).
* Add --emit-stub-syms, --no-tls-optimize, --tls-get-addr-optimize options
(PowerPC only).
* Add -z text-unlikely-segment option.
* Add plugin support for adding new input files
(LDPT_REGISTER_NEW_INPUT_HOOK).
In the utilities:
* Add --debug-dump=links option to readelf and --dwarf=links option to
objdump
which displays the contents of any .gnu_debuglink or .gnu_debugaltlink
sections.
* Add a --debug-dump=follow-links option to readelf and a
--dwarf=follow-links
option to objdump which causes indirect links into separate debug info
files
to be followed when dumping other DWARF sections.
Changelog:
GAS:
Changes in 2.28:
* Add support for the RISC-V architecture.
* Add support for the ARM Cortex-M23 and Cortex-M33 processors.
LD:
Changes in 2.28:
* The EXCLUDE_FILE linker script construct can now be applied outside of the
section list in order for the exclusions to apply over all input sections in
the list.
* Add support for the RISC-V architecture.
* The command line option --no-eh-frame-hdr can now be used in ELF based
linkers to disable the automatic generation of .eh_frame_hdr sections.
* Add --in-implib=<infile> to the ARM linker to enable specifying a set of
Secure Gateway veneers that must exist in the output import library specified
by --out-implib=<outfile> and the address they must have. As such,
--in-implib is only supported in combination with --cmse-implib.
* Extended the --out-implib=<file> option, previously restricted to x86 PE
targets, to any ELF based target. This allows the generation of an import
library for an ELF executable, which can then be used by another application
to link against the executable.
BINUTILS:
Changes in 2.28:
* Add support for locating separate debug info files using the build-id
method, where the separate file has a name based upon the build-id of
the original file.
* This version of binutils fixes a problem with PowerPC VLE 16A and 16D
relocations which were functionally swapped, for example,
R_PPC_VLE_HA16A performed like R_PPC_VLE_HA16D while R_PPC_VLE_HA16D
performed like R_PPC_VLE_HA16A. This could have been fixed by
renumbering relocations, which would keep object files created by an
older version of gas compatible with a newer ld. However, that would
require an ABI update, affecting other assemblers and linkers that
create and process the relocations correctly. It is recommended that
all VLE object files be recompiled, but ld can modify the relocations
if --vle-reloc-fixup is passed to ld. If the new ld command line
option is not used, ld will ld warn on finding relocations inconsistent
with the instructions being relocated.
* The nm program has a new command line option (--with-version-strings)
which will display a symbol's version information, if any, after the
symbol's name.
* The ARC port of objdump now accepts a -M option to specify the extra
instruction class(es) that should be disassembled.
* The --remove-section option for objcopy and strip now accepts section
patterns starting with an exclamation point to indicate a non-matching
section. A non-matching section is removed from the set of sections
matched by an earlier --remove-section pattern.
* The --only-section option for objcopy now accepts section patterns
starting with an exclamation point to indicate a non-matching section.
A non-matching section is removed from the set of sections matched by
an earlier --only-section pattern.
* New --remove-relocations=SECTIONPATTERN option for objcopy and strip.
This option can be used to remove sections containing relocations.
The SECTIONPATTERN is the section to which the relocations apply, not
the relocation section itself.
Changelog:
Changes in 2.26:
* Add option to objcopy to insert new symbols into a file:
--add-symbol <name>=[<section>:]<value>[,<flags>]
* Add support for the ARC EM/HS, and ARC600/700 architectures.
* Extend objcopy --compress-debug-sections option to support
--compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] for ELF
targets.
* Add --update-section option to objcopy.
* Add --output-separator option to strings.
Existing SHA1 digests verified, all found to be the same on the
machine holding the existing distfiles (morden). Existing SHA1
digests retained for now as an audit trail.