glibc
The GNU C library.
www.gnu.org
Recent Activity
- 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). - 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. - elf: Eliminate alloca for program-header table in the ELF loader
Adhemerval Zanella: The ELF loader allocates the program-header table on the stack with alloca(e_phnum * sizeof(ElfW(Phdr))) in two places: once in open_verify to call elf_machine_reject_phdr_p, and again in _dl_map_object_from_fd to scan segment types. - riscv: Add RVV strncmp for both multiarch and non-multiarch builds
Yao Zihong: This patch adds an RVV-optimized implementation of strncmp 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. - riscv: Add RVV strcmp for both multiarch and non-multiarch builds
Yao Zihong: This patch adds an RVV-optimized implementation of strcmp 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. - stdlib: Add internal stdc_rotate_left implementation
Uros Bizjak: It follows the C2y N3367 proposed interface, along with some tests imported from gnulib (and adapted to glibc libsupport). - riscv: Add RVV strlen for both multiarch and non-multiarch builds
Yao Zihong: This patch adds an RVV-optimized implementation of strlen 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.
Most Popular In The Past Month
- x86: Enable Prefer_No_AVX512 for Hygon model 0x8
xiejiamei: Extend the Prefer_No_AVX512 tuning to cover Hygon model 0x8.
Benchmarks on Hygon platforms show that EVEX implementations are often more profitable than AVX512 paths. - 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. - nss: Add verbose flag to getent tool
Petr Menšík: Unlike older hosts database served by gethostbyname, getaddrinfo call can return varying return codes. - elf: Eliminate alloca for program-header table in the ELF loader
Adhemerval Zanella: The ELF loader allocates the program-header table on the stack with alloca(e_phnum * sizeof(ElfW(Phdr))) in two places: once in open_verify to call elf_machine_reject_phdr_p, and again in _dl_map_object_from_fd to scan segment types. - stdlib: Add internal stdc_rotate_left implementation
Uros Bizjak: It follows the C2y N3367 proposed interface, along with some tests imported from gnulib (and adapted to glibc libsupport). - riscv: Add RVV strcmp for both multiarch and non-multiarch builds
Yao Zihong: This patch adds an RVV-optimized implementation of strcmp 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. - riscv: Add RVV strncmp for both multiarch and non-multiarch builds
Yao Zihong: This patch adds an RVV-optimized implementation of strncmp 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. - riscv: Add RVV strlen for both multiarch and non-multiarch builds
Yao Zihong: This patch adds an RVV-optimized implementation of strlen 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.