Appendix A. Changes in Version 8.0
The sections below document features and compatibility changes introduced in Red Hat Developer Toolset 8.0.
A.1. Changes in GCC
Red Hat Developer Toolset 8.0 is distributed with GCC 8.2.1, which provides numerous enhancements over the version included in the previous release of Red Hat Developer Toolset.
Changes Since Red Hat Developer Toolset 7.1
The following features have been added since the release of GCC included in Red Hat Developer Toolset 7.1:
- The source code coverage analysis tool GCOV has been extended with various improvements.
-
New code generation options to increase program security such as
-fstack-clash-protectionhave been added. - Various new warnings to detect potentially buggy code with security implications have been added.
- Front-end warnings have been improved to detect more bugs, and various warnings have been added.
- Diagnostic messages have been improved.
-
The GCC sanitizers have been extended to detect more invalid cases. For instance, Address Sanitizer has gained two new options:
-fsanitize=pointer-compareand-fsanitize=pointer-subtract, which warn about wrong code involving operations on pointers.
Optimization Improvements
Improvements in optimization include these areas:
- Interprocedural optimization
- Profile-driven optimization
- Link-time optimization
- Optimization for loop nesting
Architecture support
- Mitigation of the Spectre vulnerability for various architectures has been included and extended.
- Support for the Intel Cannonlake architecture has been added.
-
Tuning for the AMD Zen microarchitecture
znver1was improved. - Support for the Qualcomm Saphira CPU has been added.
-
Handling of the
-march=nativeoption on the ARM and 64-bit ARM architectures has been fixed.
Removed and Deprecated Features
- Support for the Intel Cilk Plus extensions was removed.
- Intel Memory Protection Extensions (MPX) are now deprecated.
A.2. Changes in binutils
Red Hat Developer Toolset 8.0 Beta is distributed with binutils 2.30, which provides a number of enhancements over the version included in the previous release of Red Hat Developer Toolset.
Changes Since Red Hat Developer Toolset 7.1
The following features have been added since the release of binutils included in Red Hat Developer Toolset 7.1:
Assembler
-
A
--generate-missing-build-notes [on|off]option has been added to control creation of GNU Build Attribute notes if none are present in the input sources. - Location views in DWARF debug line information are now supported.
- Support for the WebAssembly file format, and conversion of WebAssembly to the wasm32 ELF file format have been added.
- Support for building code for the Texas Instruments PRU processor has been added.
- Support for the ARMv8-R architecture and Cortex-R52 processor has been added.
Linker
-
The
-z separate-codeand-z undefsoptions to generate a separate code PT_LOAD segment have been added. This improves security, but also increases the size of resulting executables. Note that by default,-z separate-codeis enabled. -
A
-z globalauditoption has been addeed to force audit libraries to be run for every dynamic object loaded by an executable. In situations where the loader does not support this functionality, this has no effect. - Support for GNU Property notes which provide hints to the dynamic loader about the binary file has been added.
Other binary tools
-
The
--debug-dump=linksoption has been added to thereadelftool to display the contents of any.gnu_debuglinkor.gnu_debugaltlinksections present in the binary file. The same functionality has been added to theobjdumptool with the new--dwarf=linksoption. -
The
readelftool has been extended with the--debug-dump=follow-linksoption to follow indirect links into separate debug info files when dumping other DWARF sections. The same functionality has been added to theobjdumptool with the new--dwarf=follow-linksoption. -
The new
--inlinesoption extends the existing--line-numbersoption of theobjdumptool to display nesting information for inlined functions. -
The
--merge-notesoption has been added to theobjcopytool to reduce the size of notes in a binary file by merging and deleting redundant notes. - Support for locating separate debug info files using the build-id method has been added, where the separate file has a name based upon the build-id of the original file.
Changes Since Red Hat Enterprise Linux 7
The following features have been added since the release of binutils included in Red Hat Enterprise Linux 7, in addition to the changes listed above:
Assembler
- Support for the RISC-V architecture has been added.
- Support for the ARM Cortex-M23 and Cortex-M33 processors has been added.
Linker
-
The command line option
--no-eh-frame-hdrcan now be used in ELF-based linkers to disable the automatic generation of.eh_frame_hdrsections. -
The
--in-implib=<infile>option has been added to the ARM linker to enable specifying a set of Secure Gateway veneers that must exist in the output import library specified by the--out-implib=<outfile>option, and the address they must have. Note that--in-implibis only usable in combination with the--cmse-impliboption. -
The
--out-implib=<file>option instructs the linker to generate an import library for an ELF executable, which can be used by another application to link against the executable. Previously, it was restricted to x86 PE targets. This option has been extended to work for any ELF based targets.
Other binary tools
-
The
nmtool gained a new option--with-version-stringsto display a symbol’s version information after the symbol’s name, if present. -
The version of the
objdumptool for ARC now accepts a-Moption to specify multiple additional instruction classes to disassemble. -
The
--remove-sectionoption of theobjcopyandstriptools now accepts section patterns starting with an exclamation point (!) to indicate a non-matching section. Such non-matching section is removed from the set of sections matched by an earlier pattern indicated with the--remove-sectionoption. -
The
--only-sectionoption for theobjcopytool now accepts section patterns starting with an exclamation point (!) to indicate a non-matching section. Such non-matching section is removed from the set of sections matched by an earlier pattern indicated with the--only-sectionoption. -
A new
--remove-relocations=SECTIONPATTERNoption for theobjcopyandstriptools. 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.
A.3. Changes in elfutils
Red Hat Developer Toolset 8.0 Beta is distributed with elfutils 0.174, which provides a number of enhancements over the version included in the previous release of Red Hat Developer Toolset.
Changes Since Red Hat Developer Toolset 7.1
The following features have been added since the release of elfutils included in Red Hat Developer Toolset 7.1:
Support for DWARF5 and split dwarf, including GNU DebugFission has been added:
-
The
eu-readelftools now accepts an--debug-dump=info+option to show split unit DIEs/files. -
The
eu-readelftools now accepts an--dwarf-skeleton=fileoption to associate an object file with the respective.dwofile. -
The libdw library has been extended with the functions
dwarf_die_addr_die(),dwarf_get_units(),dwarf_getabbrevattr_data(), anddwarf_cu_info().
-
The
-
When the debug alt file is not explicitly set with a call to
dwarf_set_alt()in the libdw library, the library now will try to resolve it on first use. -
Previously, the
eu-readelftool could show a variable with a negative value as if it had a large unsigned value, or show a large unsigned value as a negative value. This has been corrected andeu-readelfnow looks up the size and signedness of constant value types to display them correctly. -
A new function
dwarf_next_lines()for reading.debug_linedata lacking CU has been added to the libdw library. This function can be used as alternative to thedwarf_getsrclines()anddwarf_getsrcfiles()functions. -
Previously, files with more than 65280 sections could cause errors in the the libelf and libdw libraries and all tools using them. This bug has been fixed. As a result, extended
shnumandshstrndxvalues in ELF file headers are handled correctly.
A.4. Changes in strace
Red Hat Developer Toolset 8.0 Beta is distributed with strace 4.24, which provides a number of enhancements over the version included in the previous release of Red Hat Developer Toolset.
Changes Since Red Hat Developer Toolset 7.1
The following features have been added since the release of strace included in Red Hat Developer Toolset 7.1:
- Several improvements to tracing of programs with a different personality (architecture) have been added.
-
Optional symbol demangling with the libiberty or libdw libraries has been added. To use this feature, add the
-koption. To determine if this functionality is available, see output of thestrace -Vcommand. -
Handling of multiple
signal=specifications in an injection expression has changed and multiple specification now results in error. -
A new
-e trace=%pureoption for tracing system calls with no arguments that never fail has been added. -
Data are now always displayed for
writesystem calls, regardless of success of these calls. -
Delay injection has been added with the
-e inject=SET:delay_enter=and-e inject=SET:delay_exit=options. -
Injection of system calls with no side effects has been added as an alternative to injection of an invalid system calls. To do so, use the new
-e inject=SET:system call=option. -
The range of values allowed in the
-e inject=…:retval=option expression has been extended.
Decoding improvements and updates
Decoding of the following items has been added, improved or updated:
-
netlinkprotocols, messages and attributes -
arch_prctl,bpf,getsockopt,io_pgetevent,kern_features,keyctl,prctl,ptrace,rseq,setsockopt,socket,statxand other system calls - Constants of various types
-
Path tracing for
execveat,inotify_add_watch,inotify_init,select,symlink,symlinkatsystem calls andmmapsystem calls with indirect arguments -
System calls specific to the ARM architectures
__ARM_NR_* - Lists of signal codes
Additionally, commands for the ioctl system call have been updated to match Linux kernel version 4.17.
A.5. Changes in SystemTap
Red Hat Developer Toolset 8.0 Beta is distributed with SystemTap 3.3, which provides a number of enhancements over the version included in the previous release of Red Hat Developer Toolset.
Changes Since Red Hat Developer Toolset 7.1
The following features have been added since the release of SystemTap included in Red Hat Developer Toolset 7.1:
-
The
--sysrootoption has been optimized for cross-compiled environments. -
A new
--exampleoption allows you to search the example scripts distributed with SystemTap without providing the whole path of the file. - Usage of SystemTap on systems with real time kernel or machines with a high number of CPUs has been improved.
- Handling of code used for Spectre and Meltdown attack mitigation has been improved.
A.6. Changes in Valgrind
Red Hat Developer Toolset 8.0 Beta is distributed with Valgrind 3.14.0, which provides a number of enhancements over the version included in the previous release of Red Hat Developer Toolset.
Changes Since Red Hat Developer Toolset 7.1
The following features have been added since the release of Valgrind included in Red Hat Developer Toolset 7.1:
-
A new
--keep-debuginfooption has been added to enable retention of debug info for unloaded code. As a result, saved stack traces can include file and line information for code that is no longer present in memory. For more information and known limitations, see theValgrind(1)manual page. - Suppressions based on source file name and line number have been added.
-
The Helgrind tool has been extended with an option
--delta-stacktraceto specify computation of full history stack traces. Notably, using this option together with--history-level=fullcan improve Helgrind performance by up to 25%. -
False positive rate in the Memcheck tool for optimised code on the Intel and AMD 64-bit arcitectures and the ARM 64-bit architecture has been reduced. Note that you can use the
--expensive-definedness-checksto control handling of definedness checks and improve the rate at the expense of performance. - Previously, the valgrind-devel package contained additional static libraries for building Valgrind tools. Because these tools are not supported, the package now only contains the header files needed for creating Valgrind-aware programs and libraries.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.