GNU C Library 2.43 released - No Last Name Needed
>Major new features: > >* The ISO C23 free_sized, free_aligned_sized,
memset_explicit, and memalignment functions have been added. > >* As specified
in ISO C23, the assert macro is defined to take variable arguments to support
expressions with a comma inside a compound literal initializer not surrounded by
parentheses. > >* For ISO C23, the functions bsearch, memchr, strchr, strpbrk,
strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr that return
pointers into their input arrays now have definitions as macros that return a
pointer to a const-qualified type when the input argument is a pointer to a
const-qualified type. > >* The ISO C23 typedef names long_double_t, _Float32_t,
_Float64_t, and (on platforms supporting _Float128) _Float128_t, introduced in
TS 18661-3:2015, have been added to <math.h>. > >* The ISO C23 optional time
bases TIME_MONOTONIC, TIME_ACTIVE, and TIME_THREAD_ACTIVE have been added. > >*
On Linux, the mseal function has been added. It allows for sealing memory
mappings to prevent further changes during process execution, such as changes to
protection permissions, unmapping, relocation to another location, or shrinking
the size. > >* Additional optimized and correctly rounded mathematical functions
have been imported from the CORE-MATH project, in particular acosh, asinh,
atanh, erf, erfc, lgamma, and tgamma. > >* Optimized implementations for fma,
fmaf, remainder, remaindef, frexpf, frexp, frexpl (binary128), and frexpl
(intel96) have been added. > >* The SVID handling for acosf, acoshf, asinhf,
atan2f, atanhf, coshf, fmodf, lgammaf/lgammaf_r, log10f, remainderf, sinhf,
sqrtf, tgammaf, y0/j0, y1/j1, and yn/jn was moved to compat symbols, allowing
improvements in performance. > >* Experimental support for building with clang
has been added. It requires at least clang version 18, aarch64-linux-gnu or
x86_64-linux-gnu targets, and a libgcc compatible runtime (including libgcc_s.so
for pthread cancellation and backtrace runtime support). > >* On Linux, the
openat2 function has been added. It is an extension of openat and provides a
superset of its functionality. It is supported only in LFS mode and is a
cancellable entrypoint. > >* On AArch64, support for 2MB transparent huge pages
has been enabled by default in malloc (similar to setting glibc.malloc.hugetlb=1
tunable). > >* On AArch64 Linux targets supporting the Scalable Matrix Extension
(SME), the clone() system call wrapper will disable the ZA state of the SME. >
>* On AArch64 targets supporting the Branch Target Identification (BTI)
extension, it is possible to enforce that all binaries in the process support
BTI using the glibc.cpu.aarch64_bti tunable. > >* On AArch64 Linux targets
supporting at least one of the branch protection extensions (e.g. Branch Target
Identification or Guarded Control Stack), it is possible to use
LD_DEBUG=security to make the dynamic linker show warning messages about loaded
binaries that do not support the corresponding security feature. > >* On
AArch64, vector variants of the new C23 exp2m1, exp10m1, log10p1, log2p1, and
rsqrt routines have been added. > >* On RISC-V, an RVV-optimized implementation
of memset has been added. > >* On x86, support for the Intel Nova Lake and
Wildcat Lake processors has been added. > >* The test suite has seen significant
improvements in particular around the scanf, strerror, strsignal functions and
multithreaded testing. > >* Unicode support has been updated to Unicode 17.0.0.
> >* The manual has been updated and modernized, in particular also regarding
many of its code examples.