glibc
The GNU C library.
www.gnu.org
Recent Activity
- elf: Set up TLS slotinfo for dlopen'd modules before relocation (BZ 34170)
Adhemerval Zanella: An IFUNC resolver in a DSO that is being loaded by dlopen is allowed to read its own TLS storage during the resolver call. - riscv: Add RVV memcmp for both multiarch and non-multiarch builds
Yao Zihong: This patch adds an RVV-optimized implementation of memcmp for RISC-V and enables it for both multiarch (IFUNC) and non-multiarch builds.
The implementation integrates Hau Hsu's 2023 RVV work under a unified ifunc-based framework. - powerpc64le: Add optimized __memcmpeq for POWER10
Sachin Monga: __memcmpeq (added in glibc 2.35) was previously an alias to memcmp on POWER10 via strong_alias. - Arch64: Add support for SVE2 ifuncs
Wilco Dijkstra: Add support for SVE2 in cpu-features. - hurd: let the root user raise its priority
Diego Nieto Cid: Check for task_max_priority RPC - hurd: add validations in msync
Etienne Brateau: POSIX specs specify that invalid flags shall return EINVAL and that ENOMEM shall be returned in case of address outside of address space or when one or more pages are not mapped. - elf: Initialize static TLS before relocation processing (BZ 34164)
Adhemerval Zanella: An IFUNC resolver firing during dynamic linker relocation reads its DSO's __thread storage from a zero-filled slot: init_tls() allocates the static TLS block zero-filled, but .tdata is not copied in until the trailing _dl_allocate_tls_init at the end of dl_main, long after the per-object phase 2 resolvers from commit 63b31c05a8a901 have run. - AArch64: Optimize memcmp for Kunpeng 950 with SVE
Weihong Ye: Key optimizations:- Use SVE predication for branch-free handling of short inputs and tails- Use 4-way loop unrolling to maximize pipeline utilization- Optimize mismatch detection with early exit logic
Benchmark (bench-memcmp, generic -> this patch):- Small (0-128B): 15% - 50% speedup- Medium (129-1024B): 21% - 50% speedup- Large (2048-4096B): 28% - 50% speedup
Note: regressions may be observed in edge cases where offsets are near 4K boundaries. - Simplify tzdb-related configuration
Paul Eggert: tzdb 2026b no longer needs -Wno-discarded-qualifiers or-Wno-unused-variable. - timezone: sync to tzdb 2026b
Paul Eggert: Sync tzselect, zdump, zic to tzdb 2026b.
This fixes some buffer and integer overflows in zic, adds new zic options -D, -m and -u inspired by FreeBSD, and raises zic’s maximum number of abbreviation bytes per timezone from 50 to 256.
This patch incorporates the following tzdb source code changes:
f9d30685 Output a minimal time zone designation table 37a4d178 Fix zic overflow bug with too-large offsets 4392f2dc zic now checks for signals more often 99a08a66 Fix zic buffer overflow when computing TZ d63b9287 zic: keep needed last transition to new type d005045d Pacify clang -Wunterminated-string-initialization e67b08d3 Port to C23 strchr macro 3d4b4e46 Add zic.c overflow commentary d9101b88 zic now a bit safer for overflows near 2**63 b23fa8e0 zic now allows more than 50 leap seconds 4ff518d2 Increase TZ_MAX_CHARS from 50 to 256 75d3b73b New -DTZ_RUNTIME_LEAPS=0 build-time option 87343c6e TZ_MAX_TIMES must be at least 310 now fc8f1b68 Simplify int_fast32_t definition on C89 platforms 24581465 Remove TZDEFRULES ("posixrules") from localtime.c fc708427 zic now warns about -p b09a3f23 Port TWOS_COMPLEMENT to signed-magnitude hosts 56b7a24a Make sure 2**31 - 1 is signed 9068ab78 zic no longer generates utoff == -2**31 cb6f9b3b Omit unnecessary L suffixes c37fbc32 Clarify when ‘__attribute__((pure))’ is a hack 859690a7 Fix some unsequenced/reproducible commentary 9c772ca7 Port to POSIX.1-2001 fflush 10f93018 Omit no-op transitions when Rule+Zone cancel a0b09b52 Fix unlikely backslash bug in scripts 2cbd3a71 Allow builder to override GRANDPARENTED c7257626 not used at → used outside faed4bd3 Clarify <sys/auxv.h> vs getauxval df08e6a1 Port mode_t (and gid_t, uid_t) to MS-Windows 6127d375 New zic option -u, inspired by FreeBSD 813c9ee0 New zic option -m, inspired by FreeBSD 987ea89c New zic option -D, inspired by FreeBSD cc377b07 Simplify mkdir situation cd994a90 Simplify !HAVE_POSIX_DECLS situation 052ddf76 Minor gettext macro improvements d9018f1c Refactor duplicate duplicate-option code 8d65db97 Prefer fdopen to umask in zic d7edca6e Omit “'”s from zic usage message a09ba7a5 getopt returns -1 (not EOF) on failure e22d410c zic now uses is_digit f57cadda Always invoke umask at start 242a8338 Fix mode_t issues on MS-Windows 2fecd606 MKDIR_UMASK → MKDIR_PERMS refactoring 90ef088a Move static_assert to top level 41576478 Port better to platforms lacking mempcpy 90a08d3e * private.h: Include stddef.h early enough aa8b35fe Simplify port to NetBSD struct __state cd2fddf7 Port to -DHAVE_SYS_STAT_H=0 -DHAVE_POSIX_DECLS=0 8470e759 Pacify GCC 15 -Wunterminated-string-initialization 8817d42f Prefer mempcpy to doing it by hand 87abb113 Tighten security checks on TZ values c87f0918 Use strnlen 07f7f31a Fix preprocessor indenting 3adf4123 Add offtime_r à la FreeBSD and NetBSD b807a31e Don’t depend on ‘true’ for tzselect ddffc800 * zic.c: Fix misspelled comment (thanks to Jonathan Wakely).
Most Popular In The Past Month
- elf: Defer all IRELATIVE relocations until after PLT setup
Adhemerval Zanella: When a shared library is built with -z lazy and its IFUNC resolver calls a PLT function, the dynamic linker can crash. - powerpc64le: Add optimized __memcmpeq for POWER10
Sachin Monga: __memcmpeq (added in glibc 2.35) was previously an alias to memcmp on POWER10 via strong_alias. - hurd: add validations in msync
Etienne Brateau: POSIX specs specify that invalid flags shall return EINVAL and that ENOMEM shall be returned in case of address outside of address space or when one or more pages are not mapped. - elf: Initialize static TLS before relocation processing (BZ 34164)
Adhemerval Zanella: An IFUNC resolver firing during dynamic linker relocation reads its DSO's __thread storage from a zero-filled slot: init_tls() allocates the static TLS block zero-filled, but .tdata is not copied in until the trailing _dl_allocate_tls_init at the end of dl_main, long after the per-object phase 2 resolvers from commit 63b31c05a8a901 have run. - hurd: let the root user raise its priority
Diego Nieto Cid: Check for task_max_priority RPC - Arch64: Add support for SVE2 ifuncs
Wilco Dijkstra: Add support for SVE2 in cpu-features. - riscv: Add RVV memcmp for both multiarch and non-multiarch builds
Yao Zihong: This patch adds an RVV-optimized implementation of memcmp for RISC-V and enables it for both multiarch (IFUNC) and non-multiarch builds.
The implementation integrates Hau Hsu's 2023 RVV work under a unified ifunc-based framework. - timezone: sync to tzdb 2026b
Paul Eggert: Sync tzselect, zdump, zic to tzdb 2026b.
This fixes some buffer and integer overflows in zic, adds new zic options -D, -m and -u inspired by FreeBSD, and raises zic’s maximum number of abbreviation bytes per timezone from 50 to 256.
This patch incorporates the following tzdb source code changes:
f9d30685 Output a minimal time zone designation table 37a4d178 Fix zic overflow bug with too-large offsets 4392f2dc zic now checks for signals more often 99a08a66 Fix zic buffer overflow when computing TZ d63b9287 zic: keep needed last transition to new type d005045d Pacify clang -Wunterminated-string-initialization e67b08d3 Port to C23 strchr macro 3d4b4e46 Add zic.c overflow commentary d9101b88 zic now a bit safer for overflows near 2**63 b23fa8e0 zic now allows more than 50 leap seconds 4ff518d2 Increase TZ_MAX_CHARS from 50 to 256 75d3b73b New -DTZ_RUNTIME_LEAPS=0 build-time option 87343c6e TZ_MAX_TIMES must be at least 310 now fc8f1b68 Simplify int_fast32_t definition on C89 platforms 24581465 Remove TZDEFRULES ("posixrules") from localtime.c fc708427 zic now warns about -p b09a3f23 Port TWOS_COMPLEMENT to signed-magnitude hosts 56b7a24a Make sure 2**31 - 1 is signed 9068ab78 zic no longer generates utoff == -2**31 cb6f9b3b Omit unnecessary L suffixes c37fbc32 Clarify when ‘__attribute__((pure))’ is a hack 859690a7 Fix some unsequenced/reproducible commentary 9c772ca7 Port to POSIX.1-2001 fflush 10f93018 Omit no-op transitions when Rule+Zone cancel a0b09b52 Fix unlikely backslash bug in scripts 2cbd3a71 Allow builder to override GRANDPARENTED c7257626 not used at → used outside faed4bd3 Clarify <sys/auxv.h> vs getauxval df08e6a1 Port mode_t (and gid_t, uid_t) to MS-Windows 6127d375 New zic option -u, inspired by FreeBSD 813c9ee0 New zic option -m, inspired by FreeBSD 987ea89c New zic option -D, inspired by FreeBSD cc377b07 Simplify mkdir situation cd994a90 Simplify !HAVE_POSIX_DECLS situation 052ddf76 Minor gettext macro improvements d9018f1c Refactor duplicate duplicate-option code 8d65db97 Prefer fdopen to umask in zic d7edca6e Omit “'”s from zic usage message a09ba7a5 getopt returns -1 (not EOF) on failure e22d410c zic now uses is_digit f57cadda Always invoke umask at start 242a8338 Fix mode_t issues on MS-Windows 2fecd606 MKDIR_UMASK → MKDIR_PERMS refactoring 90ef088a Move static_assert to top level 41576478 Port better to platforms lacking mempcpy 90a08d3e * private.h: Include stddef.h early enough aa8b35fe Simplify port to NetBSD struct __state cd2fddf7 Port to -DHAVE_SYS_STAT_H=0 -DHAVE_POSIX_DECLS=0 8470e759 Pacify GCC 15 -Wunterminated-string-initialization 8817d42f Prefer mempcpy to doing it by hand 87abb113 Tighten security checks on TZ values c87f0918 Use strnlen 07f7f31a Fix preprocessor indenting 3adf4123 Add offtime_r à la FreeBSD and NetBSD b807a31e Don’t depend on ‘true’ for tzselect ddffc800 * zic.c: Fix misspelled comment (thanks to Jonathan Wakely). - Simplify tzdb-related configuration
Paul Eggert: tzdb 2026b no longer needs -Wno-discarded-qualifiers or-Wno-unused-variable. - AArch64: Optimize memcmp for Kunpeng 950 with SVE
Weihong Ye: Key optimizations:- Use SVE predication for branch-free handling of short inputs and tails- Use 4-way loop unrolling to maximize pipeline utilization- Optimize mismatch detection with early exit logic
Benchmark (bench-memcmp, generic -> this patch):- Small (0-128B): 15% - 50% speedup- Medium (129-1024B): 21% - 50% speedup- Large (2048-4096B): 28% - 50% speedup
Note: regressions may be observed in edge cases where offsets are near 4K boundaries.