Este conteúdo não está disponível no idioma selecionado.
Appendix A. Changes in Version 9.0
The sections below document features and compatibility changes introduced in Red Hat Developer Toolset 9.0.
A.1. Changes in GCC Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 9.0 is distributed with GCC 9.3.1.
The following features have been added or modified since the previous release of Red Hat Developer Toolset:
General Improvements
- All command-line options that accept byte-size arguments now accept 64-bit integers and standard SI and IEC suffixes.
-
A new option is added:
-flive-patching=[inline-only-static|inline-clone]. It provides safe compilation for live patching. GCC diagnostics are improved:
-
The left margin now shows line numbers. To configure this feature, use the
-fno-diagnostics-show-line-numbersoption. -
Regions of the source code can now be labeled to show relevant information, for example types within an expression. To disable labels, use the
-fno-diagnostics-show-labelsoption.
-
The left margin now shows line numbers. To configure this feature, use the
-
The alignment-related options
-falign-functions,-falign-labels,-falign-loops, and-falign-jumpsare now supported for a secondary alignment, for example-falign-loops=n:m:n2:m2. -
A new pair of profiling options is added:
-fprofile-filter-filesand-fprofile-exclude-files. These options help to filter which source files are instrumented. The following built-in functions are added:
-
The
__builtin_expect_with_probabilityfunction provides the branch prediction probability hints to the optimizer. -
The
__builtin_has_attributefunction determines whether a function, type, or variable is declared with an attribute. -
The
__builtin_speculation_safe_valuefunction helps mitigate against unsafe speculative execution.
-
The
-
The new
copyfunction attribute is added. Use it with functions, variables, or types. Numerous code generation improvements are added including inter-procedural, profile-driven, and link-time optimization improvements, for example:
- Switch expansion is improved by using a different strategy for a subset of switch cases. Strategies include a jump table, a bit test, and a decision tree.
- The GCOV command-line utility is improved. For example, the intermediate format of the GCOV tool is now a new JSON format.
Language Features
Notable changes related to languages include:
C family
- C and C++ compilers now partially support version 5.0 of the OpenMP specification.
-
A new extension
__builtin_convervectoris added for vector conversions. -
A new warning
-Waddress-of-packed-memberis added. It is enabled by default and warns about an unaligned pointer value from the address of a packed member of a struct or union. - Some existing warnings are enhanced.
C
-
Experimental support for
-std=c2xis added. -
A new warning
-Wabsolute-valueis added. It warns for calls to standard functions that compute the absolute value of an argument when a more appropriate standard function is available.
C++
New warnings are added:
-
The
-Wredundant-moveoption is implied by-Wextraand warns about redundant calls tostd::move. -
The
-Wpessimizing-moveoption is implied by-Walland warns when a call tostd::moveprevents copy elision. -
The
-Winit-list-lifetimeoption is on by default. It warns when usingstd::initializer_listmay result in a dangling pointer.
-
The
-
The C++ front end now has experimental support for some C++2a draft features with the
-std=c++2aor-std=gnu++2aflags. - Error-reporting diagnostics are improved.
Architecture and Processor Support
Changes to architecture and processor support include:
The 64-bit ARM architecture
The following processors are now supported (the GCC identifiers are provided in parentheses):
- ARM Cortex-A76 (cortex-a76)
- ARM Cortex-A55/Cortex-A76 DynamIQ big.LITTLE (cortex-a76.cortex-a55)
- ARM Neoverse N1 (neoverse-n1)
- ARM Neoverse E1 processor (-mcpu=neoverse-e1)
AMD64 and Intel 64
- Intel MPX (Memory Protection Extensions) are no longer supported.
- New ISA extension support for Intel PTWRITE is added.
- Intel CPU named Cascade Lake with AVX512 extensions are now supported.
IBM Z
- The ARCH(13) architecture is now supported.
-
Built-in features for the new vector instructions are added. Use the
-mzvectoroption to enable them. - Support for ESA architecture machines G5 and G6 is deprecated.
A.2. Changes in GDB Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 9.0 is distributed with GDB 8.3.
The following features have been added or modified since the previous release of Red Hat Developer Toolset:
General Improvements
-
GDB and GDBserver now allow accessing additional registers on the IBM POWER systems (
PPR,DSCR,TAR,EBB/PMU, andHTMregisters). -
GDB and GDBserver now support the IPv6 connections. Pass the IPv6 addresses using the
[ADDRESS]:PORTnotation or the regularADDRESS:PORTmethod. - GDB in batch mode now exits with status 1 if the last command to be executed fails.
- Terminal styling is now available for the CLI and the TUI. For a list of styling commands, see Output Styling section of the GDB User Manual. The GNU Source Highlight program can also be used for source code styling.
New Commands
frame apply [all | COUNT | -COUNT | level LEVEL…] [FLAG]… COMMAND- Apply to some frames only.
-
Use the
FLAGarguments to choose the required output and to set a method to handle errors that you may get when applyingCOMMANDto a frame.
The
taas COMMANDsyntax is a shorter version ofthread apply all -s COMMAND.- Apply to all the threads including threads with errors and empty output.
The
faas COMMANDsyntax is a shorter version offrame apply all -s COMMAND.- Apply to all the frames including frames with errors and empty output.
The
tfaas COMMANDsyntax is a shorter version ofthread apply all -s frame apply all -s COMMAND.- Apply to all the frames of all the threads including frames and threads with errors and empty output.
Changed Commands
Changes to the
frame,select-frame, andinfo frameCLI commands:- These commands now accept the frame specification. It can be a frame level or one of the keywords level, address, function, or view followed by a parameter.
- A keyword is required to select a frame by address or to view a frame outside of the current backtrace.
- Selecting a frame by level is unchanged.
-
The MI comment
-stack-select-frameis unchanged.
target remote FILENAMEandtarget extended-remote FILENAME-
If
FILENAMEis a Unix domain socket, GDB attempts to connect to this socket and will not openFILENAMEas a character device.
-
If
info args [-q] [-t TYPEREGEXP] [NAMEREGEXP]info functions [-q] [-t TYPEREGEXP] [NAMEREGEXP]info locals [-q] [-t TYPEREGEXP] [NAMEREGEXP]info variables [-q] [-t TYPEREGEXP] [NAMEREGEXP]The preceding four commands now have a new
[-t TYPEREGEXP]flag. It returns matching entities to types matchingTYPEREGEXP. The[-q]flag disables printing headers or information messages.info functionsinfo typesinfo variablesrbreakThe preceding four commands now determine entities' syntax based on the language chosen in the
set languageoption. Theset language autooption automatically chooses the language of the shown entities.thread apply [all | COUNT | -COUNT] [FLAG]… COMMAND-
New
[FLAG]arguments are added. Use the[FLAG]arguments to choose the required output and to set a method to handle errors that you can get when applyingCOMMANDto a frame.
-
New
Python API
-
A new
progspaceproperty is added for thegdb.Inferiortype. It is the program space associated with that inferior. -
A new
objfilesmethod is added to thegdb.Progspacetype. It returns the list ofobjfilesassociated with that program space. -
A new constructor is added to the
gdb.Valuetype. It is used to construct agdb.Valuefrom a Python buffer object and agdb.Type. -
The following new domains are added to reflect changes to the GDB core:
gdb.SYMBOL_LOC_COMMON_BLOCK,gdb.SYMBOL_MODULE_DOMAIN, andgdb.SYMBOL_COMMON_BLOCK_DOMAIN.
A.3. Changes in binutils Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 9.0 is distributed with binutils 2.32.
The following features have been added or modified since the previous release of Red Hat Developer Toolset:
The Assembler
-
A new command-line option is added:
--generate-missing-build-notes=yes. It creates GNU Build Attribute notes if the input sources do not contain such notes. Specific to the AMD64 and Intel 64 architecture:
-
The assembler now has a
-mvexwig=[0|1]option to control encoding of VEX.W-ignored (WIG) VEX instructions. -
A new
-mx86-used-note=[yes|no]option allows to choose if GNU property notes are generated. These notes are based on the input assembler. -
The new
-O[2|s]command line options enable alternate, shorter instruction encoding.
-
The assembler now has a
The BFD Linker
The default behavior of the linker is now to create separate code and data segments. This makes binaries bigger, but safer, because the loader can turn off write permission to the code segment.
-
Use a command-line option
-z noseparate-codeto disable this behavior. The linker will create one segment as before.
-
Use a command-line option
-
A linker map file, created with the
-Mapcommand-line option, now includes details of property changes that happen when merging GNU property notes. The
--traceoption does not report members within an archive anymore. This makes the option more useful when generating a list of files that should be packaged for a linker bug report.- To report members within an archive give the option twice.
The GOLD Linker
- Warning messages for relocations that refer to discarded sections are improved.
-
The new
--debug=pluginoption allows for easier debugging of plug-in-related problems. -
The new
-z keep_text_section_prefixoption provides compatibility with the BFD linker. - Support for the 64-bit ARM architecture is improved.
-
The
.note.gnu.propertysections from Linux ABI extensions are now supported. - Intel Indirect Branch Tracking (IBT) and Shadow Stack (AMD64 and Intel 64 only) are now supported.
Other Binary Utilities
-
The
addr2line,c++filt,nm, andobjdumptools now have a limit on the maximum amount of recursion that is allowed while demangling strings. The value for this limit is defined by the DEMANGLE_RECURSE_LIMIT constant. This constant has the value of 2048 in binutils shipped as part of Red Hat Developer Toolset 9.0. -
The
--no-recurse-limitoption can be used to remove the limit mentioned above. It restores the behavior of earlier versions of these tools. This option allows demangling of very complicated names, but it also leaves the tools vulnerable to stack exhaustion from maliciously constructed mangled names. -
The
ararchive manager now supports anOmodifier to display member offsets inside an archive. -
Objdump: the--disassembleoption now takes a parameter specifying the starting symbol for disassembly. Disassembly will continue from this symbol up to the next symbol or the end of the function. -
The disassembler for the 64-bit ARM processors can now show notes that are created when a system finds inconsistencies with instructions that may result in invalid instructions. These notes can be turned on with the
-M notesoption toobjdump. The disassembler also creates warnings when a combination of an instruction and a named register is invalid.
A.4. Changes in strace Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 9.0 is distributed with strace 5.1.
The following features have been added or modified since the previous release of Red Hat Developer Toolset:
License
- The test suite is now provided under the terms of the GNU General Public License version 2 or later.
- The rest of strace is now provided under the terms of the GNU Lesser General Public License version 2.1 or later.
Changes in Behavior
-
If strace is interrupted by a signal that it handles (currently one of
SIGHUP,SIGINT,SIGQUIT,SIGPIPE, orSIGTERM), strace terminates itself with this signal. -
The
-Doption now implies-I4: by default strace ignoresSIGHUP,SIGINT,SIGQUIT,SIGPIPE,SIGTERM,SIGTTIN,SIGTTOU, andSIGTSTPwhen the-Doption is used. - A diagnostic message is no longer printed if an attempt to restart a process has failed with ESRCH. This feature addresses BZ#1662936.
- The ASCII dump no longer tries to read the whole buffer at once. As a result, it can fail with a diagnostic message after dumping only a part. The amount of preceding zeros printed for offset is now chosen in a way to accommodate all the digits of all the offsets being printed.
Improvements
- Stack trace printing on receiving signals is implemented.
-
Named constant printing styles support configured by
-Xoption is enhanced. -
Decoding of the following system calls has been added:
clock_gettime64,clock_settime64,clock_adjtime64,clock_getres_time64,clock_nanosleep_time64,timer_gettime64,timer_settime64,timerfd_gettime64,timerfd_settime64,utimensat_time64,pselect6_time64,ppoll_time64,io_pgetevents_time64,recvmmsg_time64,mq_timedsend_time64,mq_timedreceive_time64,semtimedop_time64,rt_sigtimedwait_time64,futex_time64,sched_rr_get_interval_time64,pidfd_send_signal,io_uring_setup,io_uring_enter, andio_uring_register. -
Decoding of the
bpfsystem call is enhanced. -
Decoding of the following ioctl commands is implemented:
BLKGETZONESZ,BLKGETNRZONES,KVM_CHECK_EXTENSION,NBD_*, andRND*. -
Decoding of the
AF_PACKETprotocols in thessocket system call is implemented. -
Decoding of the
SOL_XDPsocket option names is implemented. -
Decoding of the
getsockoptSO_ERRORandSO_TIMESTAMP*_NEWoptions is enhanced. -
Decoding of the
IFLA_*,NETCONFA_*, andSMC_DIAG_*netlinkattributes is enhanced. -
Decoding of the
pkey_mprotect,pkey_alloc, andpkey_freesystem calls is now available on IBM Z architecture. - Decoding of the direct IPC system calls is now available on IBM POWER and IBM Z architecture.
-
Decoding of the
kexec_file_loadandrseqsystem calls is now available on the 64-bit ARM architecture.
A.5. Changes in SystemTap Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 9.0 is distributed with SystemTap 4.1.
The following features have been added or modified since the previous release of Red Hat Developer Toolset:
- The eBPF runtime backend can handle more features of the scripting language such as string variables and rich formatted printing.
- Performance of the translator is significantly improved.
- The DWARF4 debuginfo constructs can now extract more types of data in optimized C code.
A.6. Changes in Valgrind Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 9.0 is distributed with Valgrind 3.15.0.
The following features have been added or modified since the previous release of Red Hat Developer Toolset:
- AMD64: the RDRAND and F16C instruction set extensions are now supported.
-
Cachegrind: the
cg_annotatetool has a new option--show-percs. It prints percentages next to all event counts. -
Callgrind:
callgrind_annotatehas a new option--show-percs. It prints percentages next to all event counts. -
Massif: the default value for
--read-inline-infois now yes. -
Memcheck: the
--xtree-leak=yesoption now activates the--show-leak-kinds=alloption. A new option is added:
--show-error-list=no|yes.- It lists detected errors and used suppressions after the run is ended.
-
In the previous version of Valgrind this information was only shown in
-v verbosemode. -
The short option
-sis equivalent to--show-error-list=yes.
The DHAT tool is non-experimental now. It is improved and has received a GUI. Changes and new features include:
-
To use DHAT, run a new command
--tool=dhat. The old command--tool=exp-dhatis not supported. -
The
--show-top-nand--sort-byoptions are removed. When the program ends, DHAT prints only minimal data and writes all profiling data to a file. A new viewer is added:
dh_view.html.- It is a JavaScript program that should be run in a browser.
-
It is shipped as
/usr/libexec/valgrind/dh_view.html. - To see profile results with the viewer, follow the instructions from a message that is printed after a run finishes.
-
DHAT manual is shipped as
/usr/share/doc/valgrind/html/dh-manual.html.
A.7. Changes in OProfile Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 9.0 is distributed with OProfile 1.3.0.
The following features have been modified since the previous release of Red Hat Developer Toolset:
- OProfile now correctly maps samples from binaries generated by the GCC compiler back to the source code. It applies to the GCC compiler shipped as part of Red Hat Developer Toolset 9.0.
- OProfile ocount now correctly terminates any child processes created as a result of errors in performance monitoring hardware setup. OProfile ocount no longer creates orphan processes when an error occurs during performance monitoring hardware setup.
A.8. Changes in Dyninst Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 9.0 is distributed with Dyninst 10.1.0.
The following feature has been improved since the previous release of Red Hat Developer Toolset:
- Start-up time has been improved by using parallel code analysis.
Dyninst 10.1.0 is only available for AMD64 and Intel 64 and does not run on IBM POWER and the 64-bit ARM architecture.