-
Language:
English
-
Language:
English
Red Hat Training
A Red Hat training course is available for Red Hat Developer Toolset
Appendix A. Changes in Version 6.0
The sections below document features and compatibility changes introduced in Red Hat Developer Toolset 6.0.
A.1. Changes in binutils
Red Hat Developer Toolset 6.0 is distributed with binutils 2.27, which provides a number of bug fixes and feature enhancements over the version included in Red Hat Enterprise Linux and the previous version of Red Hat Developer Toolset. Below is a comprehensive list of new features in this release.
A.1.1. Changes Since Red Hat Enterprise Linux 6.8
The following features have been added since the release of binutils in Red Hat Enterprise Linux 6.8:
The GNU assembler (
as
), GNU linker (ld
), and other binary tools that are part of binutils are now released under the GNU General Public License, version 3.
A.1.1.1. GNU Linker
Another ELF linker,
gold
, is now available in addition to ld
, the existing GNU linker. gold
is intended to be a drop-in replacement for ld
, so ld
's documentation is intended to be the reference documentation. gold
supports most of ld
's features, except notable ones such as MRI-compatible linker scripts, cross-reference reports (--cref
), and various other minor options. It also provides significantly improved link time with very large C++ applications.
In Red Hat Developer Toolset 6.0, the
gold
linker is not enabled by default. Users can explicitly switch between ld
and gold
by using the alternatives
mechanism.
A.1.1.1.1. New Features
The following features have been added since the release of binutils included in Red Hat Enterprise Linux 6.8:
- A new
INPUT_SECTION_FLAGS
keyword has been added to the linker script language. This keyword can be used to select input sections by section header flags. - A new
SORT_BY_INIT_PRIORITY
keyword has been added to the linker script language. This keyword can be used to sort sections by numerical value of the GCCinit_priority
attribute encoded in the section name. - A new
SORT_NONE
keyword has been added to the linker script language. This keyword can be used to disable section sorting. - A new linker-provided symbol,
__ehdr_start
, has been added. When producing ELF output, this symbol points to the ELF file header (and nearby program headers) in the program's memory image. - A new
--compress-debug-sections
command line option has been added to enable the generation of compressed DWARF debug information sections in the relocatable output file.
A.1.1.1.2. Compatibility Changes
The following compatibility changes have been made since the release of binutils included in Red Hat Enterprise Linux 6.8:
- The
--copy-dt-needed-entries
command line option is no longer enabled by default. Instead,--no-copy-dt-needed-entries
is now the default option. - Evaluation of linker script expressions has been significantly improved. Note that this can negatively affect scripts that rely on undocumented behavior of the old expression evaluation.
A.1.1.2. GNU Assembler
A.1.1.2.1. New Features
The following features have been added since the release of binutils included in Red Hat Enterprise Linux 6.8:
- The GNU Assembler no longer requires double ampersands in macros.
- A new
--compress-debug-sections
command line option has been added to enable the generation of compressed DWARF debug information sections in the relocatable output file.Note that the setting of this option for the linker overrides the setting for the assembler. For example, if an object file contains a compressed debug section, but it is linked without--compress-debug-sections
being passed to the linker, then those sections will be uncompressed as they are copied into the output binary. - Support for
.bundle_align_mode
,.bundle_lock
, and.bundle_unlock
directives for x86 targets has been added.. - On x86 architectures, the GNU Assembler now allows
rep bsf
,rep bsr
, andrep ret
syntax.
A.1.1.3. Other Binary Tools
A.1.1.3.1. New Features
The following features have been added since the release of binutils included in Red Hat Enterprise Linux 6.8:
- Support for reading the optimized debug information generated by the
dwz -m
tool has been added. - The devtoolset-2-binutils-devel package now provides the
demangle.h
header file.
A.1.2. Changes Since Red Hat Developer Toolset 4.1
The following features have been added since the release of binutils in Red Hat Developer Toolset 4.1 and Red Hat Enterprise Linux 7.3:
- Support has been added for generating and using compressed debug sections. This reduces the size of binaries but can cause problems when other tools, not from the binutils package, try to examine them. For this reason, the actual generation of the compressed sections requires an explicit command-line option to be passed to the assembler or linker.
A.1.2.1. GNU Linker
A.1.2.1.1. New Features
The following features have been added since the release of binutils included in Red Hat Developer Toolset 4.1 and Red Hat Enterprise Linux 7.3:
- The linker now automatically enables the read-only run-time relocations (option
-z relro
) unless explicitly told otherwise. This helps to enhance the security of executables. - The linker supports a new command-line option to define how orphan sections should be handled. Orphan sections are sections from input files whose placement in the output file is not defined by the linker script being used. The default behaviour is still maintained, but the option can be used to generate warning or error messages about them, or even to discard them entirely.
- The linker supports a new command line option,
--require-defined SYM
, which causes the linker to generate an error if SYM has not been defined by the time the end of the linking process has been reached. - The linker supports a new command line option,
-z nodynamic-undefined-weak
, which stops it from generating dynamic relocations against undefined weak symbols in the executable being created.
A.1.2.2. GNU Assembler
A.1.2.2.1. New Features
The following features have been added since the release of binutils included in Red Hat Developer Toolset 4.1 and Red Hat Enterprise Linux 7.3:
- The assembler now supports the ARM v8.1 and ARM v8-M architectures, including the Adv.SIMD, LOR, PAN, Security, and DSP extensions.
- The assembler now allows ELF section flags and types to be set using numeric values as well as textual names.
- The assembler now accepts symbol and label names enclosed in double quotes ("), which allows them to contain characters that are not part of valid symbol names in high-level languages.