Ce contenu n'est pas disponible dans la langue sélectionnée.
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
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 map
modifier and theaffinity
clause 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
masked
andscope
construct, thenothing
anderror
directives, usingprimary
with theproc_bind
clause andOMP_PROC_BIND
environment variable, thereproducible
andunconstrained
modifiers to theorder
clause, and, for C and C++ only, thealign
andallocator
modifiers to theallocate
clause, and the atomic extensions.
C family
New features and attributes:
-
Support for the
__builtin_shufflevector
built-in compatible with the clang language extension. -
Support for the
unavailable
attribute. -
A new built-in function,
__builtin_assoc_barrier
, used to inhibit re-association of floating-point expressions. -
Support for the
__builtin_dynamic_object_size
built-in compatible with the clang language extension.
-
Support for the
New warnings:
-
-Wbidi-chars
warns about potentially misleading UTF-8 bidirectional control characters. The default is-Wbidi-chars=unpaired
. -
-Warray-compare
warns about comparisons between two operands of array type.
-
Enhanced warnings:
-
-Wattributes
has been extended, so it is now possible to use-Wno-attributes=ns::attr
or-Wno-attributes=ns::
to suppress warnings about unknown scoped attributes in C++11 and C2X. Similarly, the#pragma
GCC diagnosticignored_attributes "vendor::attr"
can be used to do the same thing.
-
C
- Digit separators, like in C++, are supported for C2X.
-
The
#elifdef
and#elifndef
preprocessing directives are now supported. -
The
printf
andscanf
formats checking with-Wformat
now support the%b
format specified by C2X for binary integers, and the%B
format recommended by C2X forprintf
.
C++
The following C++23 features have been implemented:
-
P1938R3: Implement
if consteval
-
P0849R8:
auto(x)
:decay-copy
in the language -
P2242R3: Non-literal variables (and labels and gotos) in
constexpr
functions -
P2334R1: Support for preprocessing directives
elifdef
andelifndef
-
P2360R0: Extend
init-statement
to 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
-
-Wuninitialized
now 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_evaluated
warning 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::variant
can now be used inconstexpr
functions. -
std::make_shared
for 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_ptr
can now be used inconstexpr
functions. -
<stacktrace>
(not built by default, requires linking to an extra library). -
<stdatomic.h>
-
std::invoke_r
-
constexpr
std::type_info::operator==
-
Monadic operations for
Architecture-specific Improvements
The 64-bit ARM architecture
-
A number of new CPUs are supported through the
-mcpu
and-mtune
options. -
The 64-byte atomic load/store intrinsics to accelerator memory from the 2020 Arm Architecture extensions are supported through the
+ls64
option extension. -
Initial code generation support is supported for hardware instructions that accelerate the
memcpy
,memmove
, andmemset
standard functions. Generate these instructions when compiling with the+mopsoption
extension. -
The Arm C Language Extensions (ACLE) Advanced Single Instruction Multiple Data (SIMD) intrinsics accessible through the
arm_neon.h
header 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
-mavx512fp16
compiler switch. -
For both C and C++, the
_Float16 type
is supported on systems withSSE2
enabled. -
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
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
libdw
library. -
The
eu-addr2line
executable now defaults to the-A
,--absolute
option, which shows file names including the full compilation directory. Use the new--relative
option to revert to the old behavior. -
The
eu-readelf
andeu-elflint
executables now recognize FDO Packaging Metadata ELF notes. The
debuginfod
executable now supports:-
A new
-d :memory:
option for in-memory databases. -
A new
-r
option to use-I
or-X
regexes for grooming stale files. -
A new
-C
option for connection thread pooling. -
A new
--passive
mode for serving from read-only databases.
-
A new
-
The
debuginfod-client
directory now supports setting theDEBUGINFOD_MAXSIZE
,DEBUGINFOD_MAXTIME
, andDEBUGINFOD_RETRY
environment 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
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.
--qualified
option for-break-insert
and-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 foo
will 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-files
accepts optionalREGEXP
to limit output. .gdbinit
search path includes the config directory. The order is:- $XDG_CONFIG_HOME/gdb/gdbinit
- $HOME/.config/gdb/gdbinit
- $HOME/.gdbinit.
-
Support for
~/.config/gdb/gdbearlyinit
or~/.gdbearlyinit
. -
-eix
and-eiex
early 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-violations
command. -
A new
set print memory-tag-violations
command. -
A new
memory-tag show-logical-tag
command. -
A new
memory-tag with-logical-tag
command. -
A new
memory-tag show-allocation-tag
command. -
A new
memory-tag check
command. -
New
show startup-quietly
andset startup-quietly
commands: A way to specify-q
or-quiet
in GDB scripts. Only valid in early initialization files. -
New
show print type hex
andset print type hex
commands: Tells GDB to print sizes or offsets for structure members in hexidecimal instead of decimal. -
New
show python ignore-environment
andset python ignore-environment
commands: If enabled, GDB’s Python interpreter ignores Python environment variables, much like passing-E
to the Python executable. Only valid in early initialization files. -
New
show python dont-write-bytecode
andset python dont-write-bytecode
commands: If 'off', these commands suppress GDB’s Python interpreter from writing bytecode compiled objects of imported modules, much like passing-B
to 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-condition
option 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_num
attribute. -
New
gdb.Frame.level()
method. -
New
gdb.PendingFrame.level()
method. -
gdb.BreakpoiontEvent
emitted instead ofgdb.Stop
.
A.4. Changes in strace
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
%process
class contains system calls associated with process lifecycle (creation, execution, and termination):-
New calls:
kill
,tkill
,tgkill
,pidfd_send_signal
, andrt_sigqueueinfo
-
Removed calls:
arch_prctl
andunshare
-
New calls:
Improvements
-
A new
--secontext=mismatch
option finds mismatches in SELinux contexts. -
A new
--strings-in-hex=non-ascii-chars
option for using hexadecimal numbers instead of octal characters in escape sequences in the output strings. -
A new
--decode-pids=comm
option, and its alias-Y
, print command names for PIDs. -
A new
--decode-pids=pidns
alias to the--pidns-translation
option. -
Printing the current working directory when the
AT_FDCWD
constant is used with the--decode-fds=path
option enabled is implemented. -
A new
--tips
option printsstrace
tips, tricks, and tweaks at the end of a tracing session. -
Extended personality designation syntax of system call specification expressions to support
all@pers
and%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
ioctl
commands is implemented:COUNTER_*
,HDIO_
,KD*
,LIRC*
,RTC_PARAM_GET
,RTC_PARAM_SET
, andSECCOMP_*
. -
Decoding of the
BTRFS_IOC_FS_INFO
ioctl
command 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_pkey
field is implemented. -
Printing system call names in places where the associated
AUDIT_ARCH_*
value is present (the ptracePTRACE_GET_SYSCALL_INFO
request,SIGSYS
siginfo_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_IPX
andAF_NETLINK
socket 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
ioctl
commands are updated to match the Linux 5.18 kernel.
Bug Fixes
-
Printing of the updated value of
union bpf_attr.next_id
on the exiting ofbpf(BPF_*_GET_NEXT_ID)
calls is fixed. -
Printing of the
struct bpf_prog_info.map_ids
array is fixed. -
The
dev
,pidfd
, andsocket
arguments of the--print-fds
option no longer imply thepath
argument.
A.5. Changes in SystemTap
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-module
option to manually sign modules with a MOK key, for use on SecureBoot systems. -
A new
stap-profile-annotate
tool 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
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.35
multiple namespaces - Concurrency fixes for DWARF parallel parsing
-
Better support for the
CUDA
andCDNA2
GPU 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
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
debuginfod
service, if it is unable to find debug information in another way. Usingdebuginfod
provides annocheck with more information, but it can also cause significant slow downs in annocheck’s performance if thedebuginfod
server is unavailable. -
The Annobin sources can now be built using
meson
andninja
rather than configure and make if desired. - Annocheck now supports binaries built by the Rust 1.18 compiler.