glibc
The GNU C library.
www.gnu.org
Most Popular In The Past Month
- Enable --no-undefined-version by default
Adhemerval Zanella: Recent lld version default to --no-undefined-version, which triggers errors when building multiple libraries. - linux: Add mseal syscall support
Adhemerval Zanella: It has been added on Linux 6.10 (8be7258aad44b5e25977a98db136f677fa6f4370) as a way to block operations such as mapping, moving to another location, shrinking the size, expanding the size, or modifying it to a pre-existing memory mapping. - Implement C23 memalignment
Joseph Myers: Add the C23 memalignment function (query the alignment of a pointer) to glibc.
Given how simple this operation is, it would make sense for compilers to inline calls to this function, but I'm treating that as a compiler matter (compilers should add it as a built-in function) rather than adding an inline version to glibc headers (although such an inline
version would be reasonable as well). - nss: Add ERANGE testing to tst-nss-test4 (bug 33361)
Carlos O'Donell: This adds testing for the fix added in commit: 0fceed254559836b57ee05188deac649bc505d05 "nss: Group merge does not react to ERANGE during merge (bug 33361)"
The in-use group size is increased large enough to trigger ERANGE for initial buffers and cause a retry. - Rename fromfp files in preparation for changing types for C23
Joseph Myers: As discussed in bug 28327, the fromfp functions changed type in C23 (compared to the version in TS 18661-1); they now return the same type as the floating-point argument, instead of intmax_t / uintmax_t.
As with other such incompatible changes compared to the initial TS 18661 versions of interfaces (the types of totalorder functions, in particular), it seems appropriate to support only the new version as an API, not the old one (although many programs written for the old API might in fact work wtih the new one as well). - math: Add builtin support for (l)lround(f)
Wilco Dijkstra: Add builtin support for (l)lround(f) via the math-use-builtins header mechanism. - riscv: Add vector registers to __SYSCALL_CLOBBERS
Peter Bergner: The Linux kernel ABI specifies that the vector registers are not preserved across system calls, but the __SYSCALL_CLOBBERS macro doesn't mention them. - Support assert as a variadic macro for C23
Joseph Myers: C23 makes assert into a variadic macro to handle cases of an argument that would be interpreted as a single function argument but more than one macro argument (in particular, compound literals with an unparenthesized comma in an initializer list); this change was made by N2829. - math: Optimize frexpf (binary32) with fast path for normal numbers
Osama Abdelkader: Add fast path optimization for frexpf using a single unsigned comparison to identify normal floating-point numbers and return immediately via arithmetic on the bit representation.
The implementation uses asuint()/asfloat() from math_config.h and arithmetic operations to adjust the exponent, which generates better code than bit masking on ARM and RISC-V architectures. - math: Optimize frexp (binary64) with fast path for normal numbers
Osama Abdelkader: Add fast path optimization for frexp using a single unsigned comparison to identify normal floating-point numbers and return immediately via arithmetic on the bit representation.
The implementation uses asuint64()/asdouble() from math_config.h and arithmetic operations to adjust the exponent, which generates better code than bit masking on ARM and RISC-V architectures.