RetroFed Forums
Your home away from modern life.
GNU C Library 2.43 released
Post Reply
AuthorMessage
cm0002
no.lastname.nz
cm0002@no.lastname.nz
Joined: 2025-11-13
Posted:   Subject: GNU C Library 2.43 released Quote

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.

1   Original
Post Reply
Back to top