Este conteúdo não está disponível no idioma selecionado.
Appendix A. Changes in Version 12.0
The following sections document features and compatibility changes introduced with Red Hat Developer Toolset 12.1. The list is not full and will be updated.
A.1. Changes in GCC Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 12.1 is distributed with GCC 12.2.1.
The following features have been added or modified since the previous release of Red Hat Developer Toolset:
General Improvements
-
Vectorization is enabled at
-O2, which is now equivalent to the original-O2 -ftree-vectorize -fvect-cost-model=very-cheap.
Language-specific Improvements
OpenMP
-
OpenMP 5.0 support has been extended. The
close mapmodifier and theaffinityclause are now supported. -
Several newly implemented OpenMP 5.1 features have been added. For example, support for expressing OpenMP directives as C++ 11 attributes, the
maskedandscopeconstruct, thenothinganderrordirectives, usingprimarywith theproc_bindclause andOMP_PROC_BINDenvironment variable, thereproducibleandunconstrainedmodifiers to theorderclause, and, for C and C++ only, thealignandallocatormodifiers to theallocateclause, and the atomic extensions.
C family
New features and attributes:
-
Support for the
__builtin_shufflevectorbuilt-in compatible with the clang language extension. -
Support for the
unavailableattribute. -
A new built-in function,
__builtin_assoc_barrier, used to inhibit re-association of floating-point expressions. -
Support for the
__builtin_dynamic_object_sizebuilt-in compatible with the clang language extension.
-
Support for the
New warnings:
-
-Wbidi-charswarns about potentially misleading UTF-8 bidirectional control characters. The default is-Wbidi-chars=unpaired. -
-Warray-comparewarns about comparisons between two operands of array type.
-
Enhanced warnings:
-
-Wattributeshas been extended, so it is now possible to use-Wno-attributes=ns::attror-Wno-attributes=ns::to suppress warnings about unknown scoped attributes in C++11 and C2X. Similarly, the#pragmaGCC diagnosticignored_attributes "vendor::attr"can be used to do the same thing.
-
C
- Digit separators, like in C++, are supported for C2X.
-
The
#elifdefand#elifndefpreprocessing directives are now supported. -
The
printfandscanfformats checking with-Wformatnow support the%bformat specified by C2X for binary integers, and the%Bformat recommended by C2X forprintf.
C++
The following C++23 features have been implemented:
-
P1938R3: Implement
if consteval -
P0849R8:
auto(x):decay-copyin the language -
P2242R3: Non-literal variables (and labels and gotos) in
constexprfunctions -
P2334R1: Support for preprocessing directives
elifdefandelifndef -
P2360R0: Extend
init-statementto allowalias-declaration - P2128R6: Multidimensional subscript operator
- DR 2397: auto specifier for pointers and references to arrays
-
P1938R3: Implement
-
A new command-line option,
-fimplicit-constexpr, used to make inline functions implicitlyconstexpr. -
A new command-line option,
-ffold-simple-inlines, used to fold calls to certain trivial inline functions such asstd::move,std::forward,std::addressof, andstd::as_const. - Deduction guides can be declared at class scope
-
-Wuninitializednow warns about using uninitialized variables in member initializer lists. New warnings:
-
New warning options for the following C++ language mismatches:
-Wc11-extensions`, `-Wc14-extensions,-Wc17-extensions`, `-Wc20-extensions, and-Wc++23-extensions. They are enabled by default and are used to control existing pedwarns about occurrences of new C++ constructs in code using an old C++ standard dialect. -
A new warning,
-Wmissing-requires, warns about missingrequires. -
The existing
std::is_constant_evaluatedwarning is extended to warn in more cases.
-
New warning options for the following C++ language mismatches:
For more information about new C++ features in Red Hat Developer Toolset 12.1, see the following Red Hat Developers article.
Runtime library libstdC++
The following experimental C++20 support features have been improved:
-
std::vector,std::basic_string,std::optional, andstd::variantcan now be used inconstexprfunctions. -
std::make_sharedfor arrays with default initialization, andstd::atomic<std::shared_ptr<T>>. - Layout-compatibility and pointer-interconvertibility traits.
-
The following experimental C++23 support features have been improved:
-
Monadic operations for
std::optional. -
std::move_only_function -
<spanstream> -
std::basic_string::resize_and_overwrite -
std::unique_ptrcan now be used inconstexprfunctions. -
<stacktrace>(not built by default, requires linking to an extra library). -
<stdatomic.h> -
std::invoke_r -
constexprstd::type_info::operator==
-
Monadic operations for
Architecture-specific Improvements
The 64-bit ARM architecture
-
A number of new CPUs are supported through the
-mcpuand-mtuneoptions. -
The 64-byte atomic load/store intrinsics to accelerator memory from the 2020 Arm Architecture extensions are supported through the
+ls64option extension. -
Initial code generation support is supported for hardware instructions that accelerate the
memcpy,memmove, andmemsetstandard functions. Generate these instructions when compiling with the+mopsoptionextension. -
The Arm C Language Extensions (ACLE) Advanced Single Instruction Multiple Data (SIMD) intrinsics accessible through the
arm_neon.hheader are significantly reimplemented and generate higher-performing code than previous GCC versions.
AMD and Intel 64-bit architectures
-
New ISA extension support for Intel AVX512-FP16 was added. AVX512FP16 intrinsics are available via the
-mavx512fp16compiler switch. -
For both C and C++, the
_Float16 typeis supported on systems withSSE2enabled. -
Mitigation against straight line speculation (SLS) for function return and indirect jump is supported via
-mharden-sls=[none|all|return|indirect-jmp].
A.2. Changes in elfutils Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 12.1 is distributed with elfutils 0.187.
The following features have been added or modified since the previous release of Red Hat Developer Toolset:
-
Support for the NVIDIA Cuda line map extensions in the
libdwlibrary. -
The
eu-addr2lineexecutable now defaults to the-A,--absoluteoption, which shows file names including the full compilation directory. Use the new--relativeoption to revert to the old behavior. -
The
eu-readelfandeu-elflintexecutables now recognize FDO Packaging Metadata ELF notes. The
debuginfodexecutable now supports:-
A new
-d :memory:option for in-memory databases. -
A new
-roption to use-Ior-Xregexes for grooming stale files. -
A new
-Coption for connection thread pooling. -
A new
--passivemode for serving from read-only databases.
-
A new
-
The
debuginfod-clientdirectory now supports setting theDEBUGINFOD_MAXSIZE,DEBUGINFOD_MAXTIME, andDEBUGINFOD_RETRYenvironment variables. Negative cache files are now zero-sized, which work better than no-permission files when scanning files or making backups.
A.3. Changes in GDB Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 12.1 is distributed with GDB 11.2.
The following features have been added or modified since the previous release of Red Hat Developer Toolset:
New features
- New support for Aarch64 MTE. See new commands with the "memory-tag" prefix.
--qualifiedoption for-break-insertand-dprintf-insert. This option looks for an exact match of the user’s event location instead of searching in all scopes.For example,
break --qualified foowill look for a symbol named foo in the global scope. Without--qualified, GDB will search all scopes for a symbol with that name.-
--force-condition: Any supplied condition is defined even if it is currently invalid. -
-break-condition --force: Likewise for the MI command. -
-file-list-exec-source-filesaccepts optionalREGEXPto limit output. .gdbinitsearch path includes the config directory. The order is:- $XDG_CONFIG_HOME/gdb/gdbinit
- $HOME/.config/gdb/gdbinit
- $HOME/.gdbinit.
-
Support for
~/.config/gdb/gdbearlyinitor~/.gdbearlyinit. -
-eixand-eiexearly initialization file options.
Terminal user interface (TUI)
- Support for mouse actions inside terminal user interface (TUI) windows.
- Key combinations that do not act on the focused window are now passed to GDB.
New and improved commands
-
A new
show print memory-tag-violationscommand. -
A new
set print memory-tag-violationscommand. -
A new
memory-tag show-logical-tagcommand. -
A new
memory-tag with-logical-tagcommand. -
A new
memory-tag show-allocation-tagcommand. -
A new
memory-tag checkcommand. -
New
show startup-quietlyandset startup-quietlycommands: A way to specify-qor-quietin GDB scripts. Only valid in early initialization files. -
New
show print type hexandset print type hexcommands: Tells GDB to print sizes or offsets for structure members in hexidecimal instead of decimal. -
New
show python ignore-environmentandset python ignore-environmentcommands: If enabled, GDB’s Python interpreter ignores Python environment variables, much like passing-Eto the Python executable. Only valid in early initialization files. -
New
show python dont-write-bytecodeandset python dont-write-bytecodecommands: If 'off', these commands suppress GDB’s Python interpreter from writing bytecode compiled objects of imported modules, much like passing-Bto the Python executable. Only valid in early initialization files. -
break LOCATION if CONDITION: If CONDITION is invalid, GDB refuses to set a breakpoint. The-force-conditionoption overrides this. -
CONDITION -force N COND: Same as the previous command. -
inferior [ID]: When ID is omitted, this command prints information about the current inferior. Otherwise, unchanged. -
ptype[/FLAGS] TYPE | EXPRESSION: Use the '/x' flag to use hexidecimal notation when printing sizes and offsets of struct members. Use the '/d' flag to do the same but using decimal. -
info sources: Output has been restructured.
Python API
-
Inferior objects contain a read-only
connection_numattribute. -
New
gdb.Frame.level()method. -
New
gdb.PendingFrame.level()method. -
gdb.BreakpoiontEventemitted instead ofgdb.Stop.
A.4. Changes in strace Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 12.1 is distributed with strace 5.18.
The following features have been added or modified since the previous release of Red Hat Developer Toolset:
Changes in Behavior
Modified
%processclass contains system calls associated with process lifecycle (creation, execution, and termination):-
New calls:
kill,tkill,tgkill,pidfd_send_signal, andrt_sigqueueinfo -
Removed calls:
arch_prctlandunshare
-
New calls:
Improvements
-
A new
--secontext=mismatchoption finds mismatches in SELinux contexts. -
A new
--strings-in-hex=non-ascii-charsoption for using hexadecimal numbers instead of octal characters in escape sequences in the output strings. -
A new
--decode-pids=commoption, and its alias-Y, print command names for PIDs. -
A new
--decode-pids=pidnsalias to the--pidns-translationoption. -
Printing the current working directory when the
AT_FDCWDconstant is used with the--decode-fds=pathoption enabled is implemented. -
A new
--tipsoption printsstracetips, tricks, and tweaks at the end of a tracing session. -
Extended personality designation syntax of system call specification expressions to support
all@persand%class@pers. - Enhanced rejection of invalid system call numbers in syscall specification expressions.
-
Decoding of the following system calls is implemented:
futex_waitv,memfd_secret,process_mrelease,quotactl_fd, andset_mempolicy_home_node. -
Decoding of the following system calls is enhanced:
bpf,io_uring_register,prctl,seccomp, andtimes. -
Decoding of the following
ioctlcommands is implemented:COUNTER_*,HDIO_,KD*,LIRC*,RTC_PARAM_GET,RTC_PARAM_SET, andSECCOMP_*. -
Decoding of the
BTRFS_IOC_FS_INFOioctlcommand is enhanced. -
Decoding of the following netlink messages is implemented:
RTM_NEWCACHEREPORT,RTM_{NEW,DEL,GET}NEXTHOP, andRTM_{NEW,GET}STATS NETLINK_ROUTE. -
Decoding of the following netlink attributes is enhanced:
IFLA_*,MDBA_ROUTER_PATTR_*,TCA_ACT_IN_HW_COUNT,*_INTVL, and*_TIMER. -
Decoding of the
siginfo_t.si_pkeyfield is implemented. -
Printing system call names in places where the associated
AUDIT_ARCH_*value is present (the ptracePTRACE_GET_SYSCALL_INFOrequest,SIGSYSsiginfo_t) is improved. -
Decoding of the following socket addresses is implemented:
AF_ALG,AF_IEEE802154,AF_MCTP,AF_NFC,AF_QIPCRTR,AF_RRPC,AF_VSOCK, andAF_XDP. -
Decoding of the
AF_IPXandAF_NETLINKsocket addresses is enhanced. -
Lists of the following constants are updated:
AF_*,ARPHRD_*,AUDIT_*,BPF_*,BR_*,BTRFS_*,DEVCONF_*,DM_*,ETH_P_*,FAN_*,FAN_REPORT_*,IFA_*,IFLA_*,IORING_*,IOSQE_*,IPV4_DEVCONF_*,KEY_*,KVM_*,MADV_*,MODULE_INIT_*,MOUNT_ATTR_*,MOVE_MOUNT_*,MPOL_*,NDA_*,PACKET_*,RTM_*,SCTP_*,SO_*,TCA_ACT_*,UFFD_*,V4L2_*,XFRM_MSG_*, and*_MAGIC. -
Lists of
ioctlcommands are updated to match the Linux 5.18 kernel.
Bug Fixes
-
Printing of the updated value of
union bpf_attr.next_idon the exiting ofbpf(BPF_*_GET_NEXT_ID)calls is fixed. -
Printing of the
struct bpf_prog_info.map_idsarray is fixed. -
The
dev,pidfd, andsocketarguments of the--print-fdsoption no longer imply thepathargument.
A.5. Changes in SystemTap Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 12.1 is distributed with SystemTap 4.7.
The following features have been added or modified since the previous release of Red Hat Developer Toolset:
-
A new
--sign-moduleoption to manually sign modules with a MOK key, for use on SecureBoot systems. -
A new
stap-profile-annotatetool to produce system-wide profiles of annotated source code. - A new general Python tapset for probing function entry and return.
-
Extended
$foo$processing for kernel-space probes for strings that may be in user-space. - Extended the regular-expression language for non-capturing groups.
- Added tapset support for several recently added kernel system calls.
For further information about notable changes, see the upstream SystemTap 4.7 release notes.
A.6. Changes in Dyninst Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 12.1 is distributed with Dyninst 12.1.0.
The following features have been added since the previous release of Red Hat Developer Toolset 12.1:
-
Initial support for
glibc-2.35multiple namespaces - Concurrency fixes for DWARF parallel parsing
-
Better support for the
CUDAandCDNA2GPU binaries - Better support for IBM POWER Systems (little endian) register access
- Better support for PIE binaries
- Corrected parsing for catch blocks
-
Corrected access to 64-bit Arm (
aarch64) floating point registers
A.7. Changes in Annobin Copiar o linkLink copiado para a área de transferência!
Red Hat Developer Toolset 12.1 is distributed with Annobin 11.08.
The following features have been added or modified since the previous release of Red Hat Developer Toolset:
-
A new command line option for annocheck tells it to avoid using the
debuginfodservice, if it is unable to find debug information in another way. Usingdebuginfodprovides annocheck with more information, but it can also cause significant slow downs in annocheck’s performance if thedebuginfodserver is unavailable. -
The Annobin sources can now be built using
mesonandninjarather than configure and make if desired. - Annocheck now supports binaries built by the Rust 1.18 compiler.