diff --git a/ChangeLog.old b/ChangeLog.old index 2afbfc5..a0b9a7f 100644 --- a/ChangeLog.old +++ b/ChangeLog.old @@ -1,3 +1,2917 @@ +* Fri Jul 30 2021 Siddhesh Poyarekar - 2.33.9000-56 +- Port post scripts for gconv-extra to lua and drop dependency across + architectures for x86 multilib (#1988344). + +* Thu Jul 29 2021 Florian Weimer - 2.33.9000-55 +- Auto-sync with upstream branch master, + commit c37fc3ebf0607ce1953c565ffe56d56555eeb25e: +- Update libc.pot for 2.34 release. +- x86-64: Add Avoid_Short_Distance_REP_MOVSB +- Typo: Rename HAVE_CLONE3_WAPPER to HAVE_CLONE3_WRAPPER +- build-many-glibcs.py: Add x86_64-linux-gnu-minimal configuration +- tests: use xmalloc to allocate implementation array +- xmalloc: Fix warnings with gcc analyzer +- __cxa_thread_atexit_impl: Abort on allocation failure [BZ #18524] +- manual: Drop the .so suffix in libc_malloc_debug description +- hurd: _Fork: unlock malloc before calling fork child hooks + +* Tue Jul 27 2021 Florian Weimer - 2.33.9000-54 +- Revert to old C.UTF-8 locale + +* Mon Jul 26 2021 Siddhesh Poyarekar - 2.33.9000-53 +- Loosen dependency on glibc-gconv-extra (#1812191). + +* Mon Jul 26 2021 Florian Weimer - 2.33.9000-52 +- Switch to new version of C.UTF-8 locale + +* Mon Jul 26 2021 Florian Weimer - 2.33.9000-51 +- Auto-sync with upstream branch master, + commit ddcc612ce923038b867083a0c55d6e034951155a: +- Exclude static tests for mcheck and malloc-check +- i386: Regenerate ulps + +* Sat Jul 24 2021 Florian Weimer - 2.33.9000-50 +- Auto-sync with upstream branch master, + commit d34ed66f96fa9316654d7adb2afcce4be1d1c4f5: +- manual: Document unsupported cases for interposition +- x86: Install [BZ #27958] +- Fix build and tests with --disable-tunables + +* Sat Jul 24 2021 Florian Weimer - 2.33.9000-49 +- Remove both old and new library names in glibc-hwcaps removal (#1983677) + +* Fri Jul 23 2021 Florian Weimer - 2.33.9000-48 +- Auto-sync with upstream branch master, + commit 9a7ab0769b295cbf5232140401742a8f34bda3de: +- hurd: Fix glob lstat compatibility +- socket: Add time64 alias for setsockopt +- socket: Add time64 alias for getsockopt +- mcheck Fix malloc_usable_size [BZ #22057] +- Remove malloc hooks [BZ #23328] +- Move malloc_{g,s}et_state to libc_malloc_debug +- glibc.malloc.check: Wean away from malloc hooks +- mtrace: Wean away from malloc hooks +- Simplify __malloc_initialized +- mcheck: Wean away from malloc hooks [BZ #23489] +- Move malloc hooks into a compat DSO +- Remove __morecore and __default_morecore +- Remove __after_morecore_hook +- Make mcheck tests conditional on GLIBC_2.23 or earlier +- posix: Add sysconf(_SC_{MIN,}SIGSTKSZ) support +- malloc: Fix tst-mallocfork3-malloc-check link +- ARC: elf: make type safe +- ARC: fp: (micro)optimize FPU_STATUS read by eliding FWE bit clearing + +* Thu Jul 22 2021 Fedora Release Engineering - 2.33.9000-47 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jul 21 2021 Florian Weimer - 2.33.9000-46 +- Auto-sync with upstream branch master, + commit 77ede5f010f1b144e067ec035e422a13bb57c55d: +- socket: Add time64 alias for sendmsg +- socket: Add time64 alias for recvmsg +- socket: Add time64 alias for sendmmsg +- Linux: Add time64 alias for prctl +- io: Add time64 alias for fcntl +- misc: Add time64 alias for ioctl +- RISC-V: Update rv64 ULPs +- resolv: Do not install libnss_dns.a, libnss_dns.so +- hurd: Add support for spawn_do_closefrom +- elf: Fix tst-cpu-features-cpuinfo on some AMD systems (BZ #28090) +- i386: Add the clone3 wrapper + +* Mon Jul 19 2021 Florian Weimer - 2.33.9000-45 +- Remove glibc-hwcaps multilibs on upgrade (#1983677) + +* Mon Jul 19 2021 Florian Weimer - 2.33.9000-44 +- Auto-sync with upstream branch master, + commit ee5ed99922ca90bcea4a2f9a48a0c9ae4b534ece: +- nss: Directly load nss_dns, without going through dlsym/dlopen +- resolv: Move nss_dns into libc +- resolv: Move res_query functions into libc +- resolv: Move res_mkquery, res_nmkquery into libc +- resolv: Move res_send, res_nsend into libc +- resolv: Move res_hostalias into its own file, along with hostalias +- resolv: Move __res_context_hostalias into its own file and into libc +- resolv: Move res_queriesmatch to its own file and into libc +- resolv: Move res_nameinquery to its own file and into libc +- resolv: Move ns_samename into its own file, and into libc +- resolv: Move ns_makecanon into its own file, and into libc +- resolv: Move res_isourserver to its own file and reformat to GNU style +- resolv: Move __res_get_nsaddr to its own file and into libc +- resolv: Rename res_comp.c to res-name-checking.c and move into libc +- resolv: Move dn_skipname to its own file and into libc +- resolv: Move dn_comp to its own file and into libc +- resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget +- resolv: Move dn_expand to its own file and into libc +- resolv: Move ns_name_compress into its own file and into libc +- resolv: Move ns_name_pack into its own file and into libc +- resolv: Move ns_name_pton into its own file and into libc +- resolv: Move ns_name_uncompress into its own file and into libc +- resolv: Move ns_name_skip to its own file and into libc (bug 28091) +- resolv: Deprecate legacy interfaces in libresolv +- tst-safe-linking: make false positives even more improbable +- htl: Do not expose pthread hidden proto outside libpthread +- elf: Fix a wrong array access on tst-tls20 +- elf: Add -Wl,--no-as-needed for tst-tls-manydynamic*mod-dep-bad.so (BZ #28089) +- resolv: Move ns_name_unpack to its own file and into libc +- resolv: Remove unnecessary res_isourserver_p call from send_dg +- resolv: Move ns_name_ntop to its own file and into libc +- nss_dns: Do not use deprecated packet parsing functions +- resolv: Sort Makefile routines and Versions lexicographically +- socket: Add hidden prototype for setsockopt +- elf: Fix DTV gap reuse logic (BZ #27135) +- Fix linknamespace errors and local-plt-usages in nss_files. +- Add static tests for __clone_internal +- x86-64: Add the clone3 wrapper +- Add an internal wrapper for clone, clone2 and clone3 +- nss: Fix build error with --disable-nscd +- htl: Fix linking static examples against libpthread +- htl: Let libc call __pthread_mutex_{,try,un}lock +- posix: Ignore non opened files on tst-spawn5 +- mcheck: Align struct hdr to MALLOC_ALIGNMENT bytes [BZ #28068] + +* Thu Jul 15 2021 Siddhesh Poyarekar - 2.33.9000-43 +- Run postun only if the main gconv-modules configuration file exists. + (#1981013) +- Own %{libdir}/gconv/gconv-modules.d +- Rearrange file list command so that gconv-modules.cache is no longer + marked as %config + +* Tue Jul 13 2021 Florian Weimer - 2.33.9000-42 +- Perform systemd re-exec even if glibc.i686 is installed + +* Tue Jul 13 2021 Florian Weimer - 2.33.9000-41 +- Re-exec systemd on upgrades + +* Mon Jul 12 2021 Florian Weimer - 2.33.9000-40 +- Merge files NSS service module into libc. +- Restore vDSO acceleration for time functions on older kernels for i686. +- Auto-sync with upstream branch master, + commit 72e84d1db22203e01a43268de71ea8669eca2863: +- Linux: Use 32-bit vDSO for clock_gettime, gettimeofday, time (BZ# 28071) +- Reduce pollution due to dynamic PTHREAD_STACK_MIN +- Fix failing nss/tst-nss-files-hosts-long. +- nis: nis_local_group may read from __nisgroup[-1] (bug 28075) +- hurd _Fork: Drop duplicate malloc_fork_lock calls +- support: Replace _SC_MINSIGSTKSZ with _SC_SIGSTKSZ +- support: Replace MINSIGSTKSZ with sysconf (_SC_MINSIGSTKSZ) +- Define PTHREAD_STACK_MIN to sysconf(_SC_THREAD_STACK_MIN) +- Force building with -fno-common +- Add a generic malloc test for MALLOC_ALIGNMENT +- Properly run tst-spawn5 directly [BZ #28067] +- build-many-glibcs.py: Add glibcs-arm-linux-gnueabihf-thumb +- nptl: Use out-of-line wake function in __libc_lock_unlock slow path +- powerpc64le: Fix typo in configure +- powerpc64: Remove strcspn ifunc from the loader +- x86: Remove wcsnlen-sse4_1 from wcslen ifunc-impl-list [BZ #28064] +- x86-64: Test strlen and wcslen with 0 in the RSI register [BZ #28064] +- x86_64: Remove unneeded static PIE check for undefined weak diagnostic +- Add NT_ARM_PAC_ENABLED_KEYS to elf.h +- posix: Add posix_spawn_file_actions_addclosefrom_np +- io: Add closefrom [BZ #10353] +- linux: Add close_range +- support: Add support_stack_alloc +- _int_realloc is static +- Move mcheck symbol from stdlib to malloc +- nss: Do not install static linker input files for libnss_files +- elf/tests: Make thrlock and noload depend on libm +- Harden tcache double-free check +- nss: Access nss_files through direct references +- nss_files: Move into libc +- nss_files: Add generic code for set*ent, end*ent and file open +- nss_files: Allocate nscd file registration data on the heap +- libio: Replace internal _IO_getdelim symbol with __getdelim +- libio: Add hidden prototype for ungetc +- inet: Add hidden prototype for __inet_network +- Update MIPS libm-test-ulps +- Update powerpc-nofpu libm-test-ulps +- soft-fp: Add __extendhfsf2/__extendhfdf2, __truncsfhf2/__truncdfhf2, + __eqhf2/__nehf2 +- Update kernel version to 5.13 in tst-mman-consts.py +- tests-exclude-mcheck: Fix typo + +* Wed Jul 07 2021 Florian Weimer - 2.33.9000-39 +- Auto-sync with upstream branch master, + commit 7a5db2e82fbb6c3a6e3fdae02b7166c5d0e8c7a8: +- elf: Clean up GLIBC_PRIVATE exports of internal libdl symbols +- nptl: Reduce the GLIBC_PRIVATE ABI +- nptl: Remove GLIBC_2.34 versions of __pthread_mutex_lock, + __pthread_mutex_unlock +- nptl: Use internal low-level lock type for !IS_IN (libc) +- glibc.malloc.check: Fix nit in documentation +- Exclude tst-realloc from tests-mcheck +- linux: Fix setsockopt fallback +- linux: Use the expected size for SO_TIMESTAMP{NS} convertion +- linux: Consolidate Linux setsockopt implementation +- linux: Consolidate Linux getsockopt implementation +- manual: fix description for preadv() + +* Tue Jul 06 2021 Florian Weimer - 2.33.9000-38 +- Auto-sync with upstream branch master, + commit 832f50be6c9c010e46180d14126bbb81f35e808c: +- linux: Check for null value msghdr struct before use +- elf: Call free from base namespace on error in dl-libc.c [BZ #27646] + +* Mon Jul 05 2021 Florian Weimer - 2.33.9000-37 +- Move libanl.a into glibc-devel. +- Auto-sync with upstream branch master, + commit 91fb0f17a5779da6e7877eb74119a83dbe8bf167: +- hooks.c: Remove incorrect comment +- mtrace: Add attribute nocommon to mallwatch +- Move glibc.malloc.check implementation into its own file +- mtrace: Deprecate mallwatch and tr_break +- Drop source dependencies on hooks.c and arena.c +- malloc: Initiate tcache shutdown even without allocations [BZ #28028] +- Add mcheck tests to malloc +- iconvconfig: Use the public feof_unlocked +- resolv: Move libanl into libc (if libpthread is in libc) +- powerpc: optimize strcpy/stpcpy for POWER9/10 +- soft-fp: Add __extendhfxf2 and __truncxfhf2 +- x86: Check RTM_ALWAYS_ABORT for RTM [BZ #28033] +- Update syscall lists for Linux 5.13 +- s390: Fix MEMCHR_Z900_G5 ifunc-variant if n>=0x80000000 [BZ #28024] +- Fix extra PLT reference in libc.so due to __glob64_time64 if build with gcc 7.5 on 32bit. +- AArch64: Add hp-timing.h +- AArch64: Improve strnlen performance + +* Wed Jun 30 2021 Florian Weimer - 2.33.9000-36 +- Auto-sync with upstream branch master, + commit eb68d7d23cc411acdf68a60f194343a6774d6194: +- Linux: Avoid calling malloc indirectly from __get_nprocs (#1975693) +- Use Linux 5.13 in build-many-glibcs.py + +* Wed Jun 30 2021 Florian Weimer - 2.33.9000-35 +- Drop glibc-s390x-roundeven.patch, applied upstream. +- Move libutil.a into glibc-devel. +- Auto-sync with upstream branch master, + commit 734c60ebb607086ad6d67b2544d6b7baba72a652: +- login: Move libutil into libc +- login: Rework hidden prototypes for __setutent, __utmpname, __endutent +- login: Hidden prototypes for _getpt, __ptsname_r, grantpt, unlockpt +- nptl_db: Re-use the ELF-to-abilist converter for ABI checking +- Add RFC 8335 Definitions from Linux 5.13 +- nss: Fix NSS_DECLARE_MODULE_FUNCTIONS handling of _nss_*_endnetgrent +- s390x: Update math: redirect roundeven function +- posix: Add _Fork [BZ #4737] + +* Mon Jun 28 2021 Florian Weimer - 2.33.9000-34 +- Move librt.a to glibc-devel (#1977058) + +* Mon Jun 28 2021 Florian Weimer - 2.33.9000-33 +- Dropped patches glibc-nosymlink-*.patch, glibc-iconvconfig-corruption.patch, + glibc-libthread_db-dynsym-*.patch; applied upstream. +- Auto-sync with upstream branch master, + commit dd45734e322a03287d34d8af9b7da7b35cfddb8e: +- nptl: Add glibc.pthread.stack_cache_size tunable +- nptl: Export libthread_db-used symbols under GLIBC_PRIVATE +- nptl: Rename nptl_version to __nptl_version +- nptl_db: Clean up main/rtld variable handling +- arm: align stack in clone [BZ 28020] +- Linux: Cleanups after librt move +- Linux: Move timer_settime, __timer_settime64 from librt to libc +- Linux: Move timer_gettime, __timer_gettime64 from librt to libc +- Linux: Move timer_getoverrun from librt to libc +- Linux: Move timer_create, timer_delete from librt to libc +- Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h +- Install shared objects under their ABI names +- elf: Generalize name-based DSO recognition in ldconfig +- Makerules: Remove lib-version, $(subdir-version) +- nptl_db: Install libthread_db under a regular implementation name +- iconvconfig: Fix multiple issues +- wordexp: handle overflow in positional parameter number (bug 28011) +- Update math: redirect roundeven function +- Use GCC builtins for roundeven functions if desired. +- x86_64: roundeven with sse4.1 support +- math: redirect roundeven function + +* Mon Jun 28 2021 Florian Weimer - 2.33.9000-32 +- Switch to new version of libthread_db .dynsym patch + +* Mon Jun 28 2021 Florian Weimer - 2.33.9000-31 +- Further .symtab adjustment: Keep all __GI_* symbols (#1975895) + +* Mon Jun 28 2021 Florian Weimer - 2.33.9000-30 +- Keep most of .symtab in libc.so.6 (#1975895) + +* Sun Jun 27 2021 Florian Weimer - 2.33.9000-29 +- Apply emergency patch to fix iconvconfig corruption + +* Sun Jun 27 2021 Florian Weimer - 2.33.9000-28 +- Adjust glibc.req so that egrep does not cause eu-readelf to fail + +* Sun Jun 27 2021 Florian Weimer - 2.33.9000-27 +- Drop glibc-revert-dtv-gap-reuse.patch, applied upstream. +- Auto-sync with upstream branch master, + commit 2c16cb88a6e5ace0fb7cedca86860ea7bde522a7: +- Linux: Move timer helper routines from librt to libc +- Linux: Move mq_unlink from librt to libc +- Linux: Move mq_send, mq_timedsend, __mq_timedsend_time64 to libc +- Linux: Move mq_receive, mq_timedreceive, __mq_timedreceive_time64 to libc +- Linux: Move mq_open, __mq_open_2 from librt to libc +- Linux: Move mq_notify from librt to libc +- Linux: Move mq_getattr from librt to libc +- Linux: Move mq_setattr from librt to libc +- Linux: Move mq_close from librt to libc +- Linux: Move lio_listio, lio_listio64 from librt to libc +- rt: Rework lio_listio implementation +- Linux: Move aio_write, aio_write64 into libc +- Linux: Move aio_suspend, aio_suspend64, __aio_suspend_time64 to libc +- Linux: Move aio_return, aio_return64 into libc +- Linux: Move aio_read, aio_read64 into libc +- Linux: Move aio_fsync, aio_fsync64 into libc +- Linux: Move aio_error, aio_error64 into libc +- Linux: Move aio_cancel, aio_cancel64 into libc +- Linux: Move aio_init from librt into libc +- support: Fix xclone build failures on ia64 and hppa +- elf: Disable most of TLS modid gaps processing [BZ #27135] +- elf: Fix glibc-hwcaps priorities with cache flags mismatches [BZ #27046] +- * NEWS: Clarify _TIME_BITS change. +- x86: Remove unnecessary overflow check from wcsnlen-sse4_1.S +- String: Add three more overflow tests cases to test-strnlen.c +- Consolidate pthread_atfork +- posix: Do not clobber errno by atfork handlers +- posix: Consolidate fork implementation +- support: Add xclone +- x86: Fix tst-cpu-features-cpuinfo on Ryzen 9 (BZ #27873) +- x86: Copy IBT and SHSTK usable only if CET is enabled +- x86: Fix overflow bug in wcsnlen-sse4_1 and wcsnlen-avx2 [BZ #27974] +- x86: Fix overflow bug with wmemchr-sse2 and wmemchr-avx2 [BZ #27974] +- String: Add overflow tests for strnlen, memchr, and strncat [BZ #27974] +- x86-64: Add wcslen optimize for sse4.1 +- x86-64: Move strlen.S to multiarch/strlen-vec.S +- hurd: Fix build after 52a5fe70a2 +- nptl: Use SA_RESTART for SIGCANCEL handler +- doc: _TIME_BITS defaults may change +- More mcheck -> malloc-check refactoring +- Add NEWS item for gconv-modules.d change +- Handle DT_UNKNOWN in gconv-modules.d +- iconvconfig: Use common gconv module parsing function +- gconv_conf: Split out configuration file processing +- gconv_conf: Remove unused variables +- iconv: Remove alloca use in gconv-modules configuration parsing +- Remove unsused symbols from nptl/Versions +- linux: Only use 64-bit syscall if required for clock_nanosleep +- linux: Only use 64-bit syscall if required for internal futex +- linux: Only use 64-bit syscall if required for utimensat family +- linux: Only use 64-bit syscall if required for sigtimedwait +- linux: Only use 64-bit syscall if required for mq_timedsend +- linux: Only use 64-bit syscall if required for mq_timedreceive +- linux: Only use 64-bit syscall if required for timerfd_settime +- linux: Only use 64-bit syscall if required for semtimedop +- linux: timerfd_gettime minor cleanup +- linux: Remove time64-support +- linux: Remove supports_time64 () from clock_gettime +- linux: Remove supports_time64 () from clock_getres +- linux: Only use 64-bit syscall if required for select +- linux: Only use 64-bit syscall if required for pselect +- linux: Only use 64-bit syscall if required for ppoll +- support: Add support_create_timer +- Use 64 bit time_t stat internally +- malloc: Drop __malloc_initialized from Versions +- tst-mcheck: Rename to tst-malloc-check +- Add hidden prototypes for fsync, fdatasync +- nptl: Move pthreadP.h into sysdeps directory +- rt: Move generic implementation from sysdeps/pthread to rt +- rt: Move shm_unlink into libc +- rt: Move shm_open into libc +- rt: Replace generic stub of shm_unlink with the posix version +- rt: Replace generic stub of shm_open with the posix version +- Fix librt-routines-var issues for !PTHREAD_IN_LIBC +- rt: Lexicographically sort Versions file; librt-routines in Makefile +- elf: Use _dl_catch_error from base namespace in dl-libc.c [BZ #27646] +- Makeconfig: Fix time64-compat.mk target + +* Sun Jun 27 2021 Florian Weimer - 2.33.9000-26 +- Add automatic requires if building against glibc development snapshots + +* Thu Jun 24 2021 Carlos O'Donell - 2.33.9000-25 +- Fix thread local storage corruption (#1974970) + +* Tue Jun 22 2021 Siddhesh Poyarekar - 2.33.9000-24 +- Strengthen dependency on glibc-gconv-extra. + +* Fri Jun 18 2021 Florian Weimer - 2.33.9000-23 +- Make glibc-all-langpacks require glibc-gconv-extra in buildroots (#1973663) + +* Thu Jun 17 2021 Florian Weimer - 2.33.9000-22 +- Export libthread_db symbols under GLBIC_PRIVATE (#1965374) + +* Thu Jun 17 2021 Florian Weimer - 2.33.9000-21 +- Redo the crafted libc.so.6 symbol table for valgrind (#1965374) + +* Thu Jun 17 2021 Florian Weimer - 2.33.9000-20 +- Remove .symtab from libc.so.6 again (#1965374) + +* Thu Jun 17 2021 Florian Weimer - 2.33.9000-19 +- Drop glibc-rh697421.patch: The ISO-10646-UCS-2// alias for UTF-8 is incorrect + (#1972520) + +* Wed Jun 16 2021 Florian Weimer - 2.33.9000-18 +- Rebuild against rawhide gcc + +* Tue Jun 15 2021 Florian Weimer - 2.33.9000-17 +- Dropped glibc-gconv-modules-revert.patch, applied upstream. +- Auto-sync with upstream branch master, + commit aa9a7f629632c9180de89632d4f2c1e6039f7781: +- nptl: Export _pthread_cleanup_push, _pthread_cleanup_pop again +- s390x: Align child stack while clone. [BZ #27968] +- y2038: Add test coverage +- libsupport: Add 64-bit time_t support for stat functions +- libsupport: Add 64-bit time_t support for time functions +- io: Add ftw64 with 64-bit time_t support +- io: Add fts64 with 64-bit time_t support +- posix: Add glob64 with 64-bit time_t support +- y2038: Add support for 64-bit time on legacy ABIs +- time: Add 64-bit time support for getdate +- y2038: Add __USE_TIME_BITS64 support for socket-constants.h +- y2038: Use a common definition for shmid_ds +- y2038: Use a common definition for semid_ds +- y2038: Use a common definition for msqid_ds +- y2038: Use a common definition for stat +- y2038: linux: Add __USE_TIME_BITS64 support for struct timex +- y2038: Add __USE_TIME_BITS64 support for struct utimbuf +- y2038: Add __USE_TIME_BITS64 support for struct timespec +- y2038: Add __USE_TIME_BITS64 support for struct timeval +- y2038: Add __USE_TIME_BITS64 support for time_t +- linux: Add recvvmsg fallback for 64-bit time_t SO_TIMESTAMP{NS} +- linux: Add fallback for 64-bit time_t SO_TIMESTAMP{NS} +- linux: Add fallback for 64-bit time_t SO_{RCV,SND}TIMEO +- linux: s390: Add libanl.abilist in s390 and s390x +- linux: mips: Split libanl.abilist in n32 and n64 +- linux: mips: Split librt.abilist in n32 and n64 +- Reinstate gconv-modules as the default configuration file + +* Tue Jun 15 2021 Florian Weimer - 2.33.9000-16 +- Preserve some symbols in libc.so.6's symtab (#1965374) + +* Tue Jun 15 2021 Florian Weimer - 2.33.9000-15 +- Install shared objects under their ABI names, avoiding symlinks (#1652867) + +* Mon Jun 14 2021 Siddhesh Poyarekar - 2.33.9000-14 +- Add a conditional dependency for glibc-gconv-extra.i686 in x86_64. + +* Mon Jun 14 2021 Siddhesh Poyarekar - 2.33.9000-13 +- Auto-sync with upstream branch master, + commit ebae2f5a6f971a8f0b6c99e00f9c45ef7433924a. +- Revert gconv configuration file name to gconv-modules. + +* Thu Jun 03 2021 Florian Weimer - 2.33.9000-12 +- libdl is no longer a separate shared object. +- CVE-2021-33574: Use-after-free via mq_notify (#1965410) +- Auto-sync with upstream branch master, + commit 466c1ea15f461edb8e3ffaf5d86d708876343bbf: +- dlfcn: Rework static dlopen hooks +- dlfcn: Eliminate GLIBC_PRIVATE dependency from tststatic2 +- dlfcn: Cleanups after -ldl is no longer required +- dlfcn: Move dlopen into libc +- dlfcn: Move dlvsym into libc +- dlfcn: Move dlinfo into libc +- dlfcn: Move dladdr1 into libc +- dlfcn: Move dlmopen into libc +- dlfcn: Move dlsym into libc +- dlfcn: Move dladdr into libc +- dlfcn: Move dlclose into libc +- Improve test coverage of strlen function +- fix typo +- dlfcn: Move dlerror into libc +- Add libc ABI extension kludge for baseline-violating libdl symbols +- scripts/versions.awk: Add local: * to all version nodes +- Add missing symbols to Version files +- Fix use of __pthread_attr_copy in mq_notify (bug 27896) +- Use __pthread_attr_copy in mq_notify (bug 27896) +- Update floating-point feature test macro handling for C2X +- stdio-common: Remove _IO_vfwscanf +- aarch64: align stack in clone [BZ #27939] +- powerpc: Optimized memcmp for power10 +- x86-64: Align child stack to 16 bytes [BZ #27902] + +* Mon May 31 2021 Florian Weimer - 2.33.9000-11 +- glibc-sigsetxid-sa_onstack.patch was applied upstream +- Auto-sync with upstream branch master, + commit 271ec55d0ae795f03d92e3aa61bff69a31a19e3a: +- support: Do not build xpthread_attr_setaffinity_np for hurd +- nptl: Add pthread_attr_setaffinity_np failure test +- support: Add xpthread_attr_setaffinity_np wrapper +- nptl: Move createthread to pthread_create +- nptl: Move Linux createthread to nptl +- nptl: Install SIGSETXID handler with SA_ONSTACK [BZ #27914] +- aarch64: Added optimized memset for A64FX +- aarch64: Added optimized memcpy and memmove for A64FX +- benchtests: Fixed bench-memcpy-random: buf1: mprotect failed +- aarch64: Added Vector Length Set test helper script +- aarch64: define BTI_C and BTI_J macros as NOP unless HAVE_AARCH64_BTI +- config: Added HAVE_AARCH64_SVE_ASM for aarch64 +- tst-mallinfo2.c: Use correct multiple for total variable + +* Wed May 26 2021 Florian Weimer - 2.33.9000-10 +- nptl: Install SIGSETXID handler with SA_ONSTACK [BZ #27914] + +* Tue May 25 2021 Florian Weimer - 2.33.9000-9 +- Auto-sync with upstream branch master, + commit ac0353af81a23535f517586a5d04427120a157ac. +- This removes libpthread as a separate shared object. New programs + will depend on the GLIBC_2.34 symbol version. Upstream development + brings in the following noteworthy bug fixes: +- ppc64le: scv ABI error handling fails to check IS_ERR_VALUE (#1962971) +- CVE-2021-27645 glibc: Use-after-free in addgetnetgrentX function in + netgroupcache.c (#1932590) +- Linking the main program with jemalloc causes sysconf to deadlock in + audit mode (#1909920) + +* Fri May 21 2021 Florian Weimer - 2.33.9000-8 +- Switch back to a unified glibc-headers package for downstream (#1940686) + +* Fri May 21 2021 Florian Weimer - 2.33.9000-7 +- aarch64: Enable optional memory tagging support + +* Tue May 11 2021 Florian Weimer - 2.33.9000-6 +- Use distribution mechanism for debuginfo (#1661510, #1886295, #1905611) + +* Thu May 6 2021 Florian Weimer - 2.33.9000-5 +- Build locales in parallel again + +* Tue May 4 2021 Florian Weimer - 2.33.9000-4 +- Various changes to get glibc building again, using selected upstream + backports. +- Re-enable -Werror by default. +- This release introduces __libc_start_main@@GLIBC_2.34, so binaries + are not compatible with glibc 2.33. Building binaries against this + glibc version is not recommended because of the partial libpthread + transition. +- glibc-upstream-amx-detection.patch: Fix build failure after GCC 11.1 update. +- glibc-upstream-malloc-test-hang.patch: Avoid test hang due to + annobin/binutils bug (#1951492) + +* Wed Mar 03 2021 Arjun Shankar - 2.33.9000-3 +- Drop glibc-rh819430.patch; fixed upstream. +- Auto-sync with upstream branch master, + commit f01a61e13872109b3b233158ab664364bd1879bc: +- i386: Regenerate ulps +- x86: Add CPU-specific diagnostics to ld.so --list-diagnostics +- x86: Automate generation of PREFERRED_FEATURE_INDEX_1 bitfield +- ld.so: Implement the --list-diagnostics option +- powerpc: Update libm-test-ulps +- tst: Add test for utimes +- tst: Add test for utime +- tst: Add test for futimens +- nptl: __libc_cleanup_push/__libc_cleanup_pop require -fexceptions +- elf: Build __dl_iterate_phdr with unwinding support [BZ #27498] +- nptl: Use for accessing the libgcc_s unwinder +- Implement _Unwind_Resume in libc on top of +- Move sysdeps/gnu/unwind-resume.c to sysdeps/generic/unwind-resume.c +- __frame_state_for: Use for unwinder access +- sparc: Implement backtrace on top +- m68k: Implement backtrace on top of +- i386: Implement backtrace on top of +- arm: Implement backtrace on top of +- backtrace: Implement on top of +- Implement for dynamically loading the libgcc_s unwinder +- Correct buffer end pointer in IO_wdefault_doallocate (BZ #26874) +- aarch64: update ulps. +- Add inputs that generate larger error bounds +- Reduce the statically linked startup code [BZ #23323] +- posix: Falling back to non wide mode in case of encoding error [BZ #14185] +- nptl: Move elision implementations into libc +- NEWS: Add missing bug closures +- added rt to malloc/Depend [BZ #27132] +- x86: Use x86/nptl/pthreaddef.h +- nptl: Move futex-internal into libc +- nptl: Move lowlevellock into libc [BZ #15648] +- nptl: Move futex-internal.c into main nptl directory +- nptl: Reformat Versions +- nptl: Split libpthread-routines into one routine per line +- x86: Remove unused variables for raw cache sizes from cacheinfo.h +- Use Linux 5.11 in build-many-glibcs.py. +- : Correct x86_cpu_TBM +- x86_64/clone.S: Upate comments +- i386/clone.S: Remove redundant EBX load +- aarch64: Remove the unused __read_tp symbol +- build-many-glibcs.py: Use make -O for more consistent log output + +* Sun Feb 21 2021 Carlos O'Donell - 2.33.9000-2 +- Auto-sync with upstream branch master, + commit e9e7f24543e6d1b0a31641f144697e261df6ccd7: +- configure: Replace obsolete AC_TRY_LINK with AC_LINK_IFELSE +- configure: Remove obsolete AC_CHECK_TOOL_PREFIX +- configure: Replace obsoleted AC_HELP_STRING with AS_HELP_STRING +- Update syscall lists for Linux 5.11. +- Correct hppa EFD_NONBLOCK, IN_NONBLOCK, SFD_NONBLOCK and TFD_NONBLOCK defines. +- string: Work around GCC PR 98512 in rawmemchr +- tst: time: Provide Y2038 tests for mktime (tst-mktime4.c) +- tst: Provide test for difftime +- tst: Provide test for ctime +- tst: Provide test for sched_rr_get_interval +- S390: Add new hwcap values. +- aarch64: Fix sys/ptrace.h if linux headers are included +- elf: Do not copy vDSO soname when setting up link map +- x86: Remove the extra space between "# endif" +- hurd: Fix fstatfs build failure +- linux: Remove stat-check.c +- linux: Remove overflow.h +- linux: Consolidate internal_statvfs +- linux: Consolidate statvfs implementations +- linux: Consolidate fstatvfs implementations +- linux: Consolidate statfs implementations +- linux: Consolidate fstatfs implementations +- linux: Set LFS statfs as default +- linux: Set default kernel_stat.h to LFS +- linux: Fix STATFS_IS_STATFS64 definition + +* Fri Feb 12 2021 Florian Weimer - 2.33.9000-1 +- Auto-sync with upstream branch master, + commit 228f30ab4724d4087d5f52018873fde22efea6e2: +- tunables: Disallow negative values for some tunables +- x86: Use SIZE_MAX instead of (long int)-1 for tunable range value +- tunables: Simplify TUNABLE_SET interface +- setrlimit/getrlimit: Use __nonnull to avoid null pointer +- benchtests: Updated json bench-variant attribute +- regex: stop using alloca +- regexec: remove alloca usage in build_trtable +- regex: remove alloca usage on regex set_regs +- malloc: Sync dynarray with gnulib +- misc: Sync cdefs.h with gnulib +- linux: Fix __sem_check_add_mapping search_sem +- linux: Fix __sem_check_add_mapping name length +- Add more ptrace constants for AArch64 and PowerPC. +- strchr: Add additional benchmarks and tests +- x86-64: Refactor and improve performance of strchr-avx2.S +- pthread: Remove alloca usage from __sem_check_add_mapping +- pthread: Refactor semaphore code +- linux: Require /dev/shm as the shared memory file system +- sunrpc: Fix typo in xdr_string comment +- tst: Provide test for ppoll +- tst: Provide test for timerfd related functions +- x86: Add PTWRITE feature detection [BZ #27346] +- nsswitch: return result when nss database is locked [BZ #27343] +- printf: Add smoke tests for long double +- Add NT_ARM_TAGGED_ADDR_CTRL from Linux 5.10 to elf.h. +- argp: Avoid undefined behaviour when invoking qsort(). +- argp: Improve comments. +- argp: Don't pass invalid arguments to isspace, isalnum, isalpha, isdigit. +- argp: Don't rely on undefined behaviour of _tolower(). +- argp: fix pointer-subtraction bug +- Use binutils 2.36 branch in build-many-glibcs.py. +- manual: Correct description of ENTRY [BZ #17183] +- nptl: Remove private futex optimization [BZ #27304] +- stdio-common: Add a few double formatting tests [BZ #27245] +- posix/tst-rfc3484: Fix compile failure linking to local __stat64 +- i686: Regenerate ULPs +- tst-rtld-list-tunables.sh: Unset glibc tunables +- linux: Remove shmmax check from tst-sysvshm-linux +- x86: Adding an upper bound for Enhanced REP MOVSB. +- Fix version.h for glibc 2.34 development +- Add MS_NOSYMFOLLOW from Linux 5.10 to . +- Move _SC_MINSIGSTKSZ/_SC_SIGSTKSZ entry in NEWS +- libSegFault: Fix printing signal number [BZ #27249] +- hurd TIOCFLUSH: fix fixing argument +- sysconf: Add _SC_MINSIGSTKSZ/_SC_SIGSTKSZ [BZ #20305] +- hurd TIOCFLUSH: Cope BSD 4.1 semantic +- tst-mallinfo2.c: Remove useless trailing semicolon for macro +- elf: Replace a --defsym trick with an object file to be compatible with LLD +- Open master branch for glibc 2.34 development +- Prepare for glibc 2.33 release +- Update NEWS with bugs +- Update translations +- NEWS: Fix typo in CVE-2021-3326 entry +- elf: Fix tests that rely on ld.so.cache for cross-compiling +- NEWS: Mention CVE-2021-3326 (iconv assertion with ISO-20220-JP-3) +- NEWS: Add entry for glibc-hwcaps and deprecate legacy hwcaps +- x86: Properly set usable CET feature bits [BZ #26625] +- Update translations +- Update libc.pot for 2.33 release +- Update ia64 libm-test-ulps +- sh: Update libm-tests-ulps +- ia64: Fix brk call on statup +- Update sparc libm-test-ulps +- Update alpha libm-test-ulps +- powerpc64: Workaround sigtramp vdso return call +- Fix nss/tst-reload2 for systems without PATH_MAX +- nsswitch: do not reload if "/" changes +- elf: Limit tst-prelink-cmp target archs +- CVE-2021-3326: gconv: Fix assertion failure in ISO-2022-JP-3 module (#1921917) + +* Wed Jan 27 2021 Arjun Shankar - 2.32.9000-29 +- Auto-sync with upstream branch master, + commit df359a25ba6f6bda06104229fbfe284c1fb30915: +- Revert "Make libc symbols hidden in static PIE" [BZ #27237] +- benchtests: Do not build bench-timing-type with MODULE_NAME=libc +- aarch64: Fix the list of tested IFUNC variants [BZ #26818] +- Update INSTALL with package versions that are known to work +- aarch64: Move and update the definition of MTE_ENABLED +- Fix misplaced const +- Update C-SKY libm-test-ulps +- manual: Correct argument order in mount examples [BZ #27207] +- linux: mips: Fix getdents64 fallback on mips64-n32 +- x86: Properly match CPU features in /proc/cpuinfo [BZ #27222] +- x86-64: Update tst-glibc-hwcaps-2.c for x86-64 baseline +- powerpc64: Select POWER9 machine for the scv instruction +- x86: Check ifunc resolver with CPU_FEATURE_USABLE [BZ #27072] +- Revert "linux: Move {f}xstat{at} to compat symbols" for static build +- aarch64: revert memcpy optimze for kunpeng to avoid performance degradation +- Make libc symbols hidden in static PIE +- csu: Move static pie self relocation later [BZ #27072] +- Use hidden visibility for early static PIE code +- csu: Avoid weak ref for __ehdr_start in static PIE +- configure: Check for static PIE support +- elf: Avoid RELATIVE relocs in __tunables_init +- elf: Make the tunable struct definition internal only +- : Remove the C preprocessor magic +- posix: Fix fnmatch.c on bootstrap +- stdlib: Add testcase for BZ #26241 +- posix: Fix regex_internal.h on bootstrap +- Use in __libc_init_secure +- elf: Avoid RELATIVE relocation for _dl_sysinfo +- libmvec: Add extra-test-objs to test-extras +- Hurd: Add rtld-strncpy-c.c +- Update MIPS libm-test-ulps. +- Update arm libm-test-ulps. +- Update powerpc-nofpu libm-test-ulps. +- Update hppa libm-test-ulps +- ARC: nofpu: Regenerate ulps +- ld.so: Add --list-tunables to print tunable values +- math/test-tgmath2: Fix fabs failure when no long double +- x86: Move x86 processor cache info to cpu_features +- Fix x86 build with --enable-tunable=no +- ifuncmain6pie: Remove the circular IFUNC dependency [BZ #20019] + +* Tue Jan 26 2021 Fedora Release Engineering - 2.32.9000-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Jan 23 2021 Arjun Shankar - 2.32.9000-27 +- Introduce new glibc-doc.noarch subpackage (#1346925) +- Move the reference manual info pages from glibc-devel to glibc-doc +- Move debugger interface documentation from glibc to glibc-doc +- Remove unnecessary README, INSTALL, NEWS files from glibc +- Remove unnecessary README.timezone and gai.conf files from glibc-common + +* Thu Jan 14 2021 Arjun Shankar - 2.32.9000-26 +- Deprecate nscd (#1905135) +- https://fedoraproject.org/wiki/Changes/DeprecateNSCD + +* Wed Jan 13 2021 Carlos O'Donell - 2.32.9000-25 +- Auto-sync with upstream branch master, + commit cf1290064598def8dfeddec3d86d98495aee1fba: +- Use the right argument code in unnormal tests +- ldconfig/x86: Store ISA level in cache and aux cache +- elf: work around a gcc bug in elf_get_dynamic_info +- x86: Set header.feature_1 in TCB for always-on CET [BZ #27177] +- posix: consume less entropy on tempname +- Makerules: Do not require startup files for format.lds probe object +- install: Replace scripts/output-format.sed with objdump -f [BZ #26559] +- math: Add BZ#18980 fix back on dbl-64 cosh +- posix: Sync tempname with gnulib [BZ #26648] +- posix: Fix return value of system if shell can not be executed [BZ #27053] +- support: Add xchmod wrapper +- Update STATX_ATTR_DAX value from Linux 5.10. +- riscv: Initialize $gp before resolving the IRELATIVE relocation +- riscv: support GNU indirect function +- posix: Correct attribute access mode on readlinkat [BZ #27024]. +- Add xfchmod to libsupport +- Add xchdir to libsupport. +- POSIX locale: Fix typo in comment +- ARC: Regenerate ulps +- mntent: Use __putc_unlocked instead of fputc_unlocked +- aarch64: define PI_STATIC_AND_HIDDEN +- Update NEWS for CVE-2019-25013. +- x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] +- Remove dbl-64/wordsize-64 (part 2) +- Remove dbl-64/wordsize-64 +- Add SEGV_MTEAERR and SEGV_MTESERR from Linux 5.10. +- support: Add support_small_thread_stack_size +- stdlib: Sync canonicalize with gnulib [BZ #10635] [BZ #26592] [BZ #26341] [BZ #24970] +- malloc: Add scratch_buffer_dupfree +- Import filename.h from gnulib +- Import idx.h from gnulib +- alpha: Provide wait4 for static library [BZ #27150] +- aarch64: push the set of rules before falling into slow path +- nptl: Fix comment typo in pthread_cond_wait.c +- x86: Check IFUNC definition in unrelocated executable [BZ #20019] +- hurd: Fix mmap(!MAP_FIXED) on bogus address + +* Mon Jan 04 2021 Florian Weimer - 2.32.9000-24 +- Drop glibc-fedora-__libc_multiple_libcs.patch. Replaced by upstream's + __libc_initial flag. +- Adjust glibc-rh819430.patch to upstream's gnulib merge of fnmatch. +- Disable -Werror again due to GCC PR98512. +- Auto-sync with upstream branch master, + commit 3ec5d83d2a237d39e7fd6ef7a0bc8ac4c171a4a5: +- x86-64: Avoid rep movsb with short distance [BZ #27130] +- aarch64: fix stack missing after sp is updated +- nptl: Remove set*id, set*gid files which are not built +- Drop nan-pseudo-number.h usage from tests +- posix: Sync fnmatch with gnulib +- Sync flexmember.h with gnulib +- Sync intprops.h with gnulib +- posix: Sync glob code with gnulib +- posix: Sync regex code with gnulib +- Move generic nan-pseudo-number.h to ldbl-96 +- Sync FDL from https://www.gnu.org/licenses/fdl-1.3.texi +- Sync move-if-change from Gnulib +- Update automatically-generated copyright dates +- Update copyright dates not handled by scripts/update-copyrights. +- Update copyright dates with scripts/update-copyrights +- aarch64: use PTR_ARG and SIZE_ARG instead of DELOUSE +- nonstring: Enable __FORTIFY_LEVEL=3 +- string: Enable __FORTIFY_LEVEL=3 +- Introduce _FORTIFY_SOURCE=3 +- Warn on unsupported fortification levels +- powerpc: Use scv instruction on clone when available +- powerpc: Runtime selection between sc and scv for syscalls +- malloc: preserve errno on mcheck hooks [BZ #17924] +- x86 long double: Add tests for pseudo normal numbers +- x86 long double: Consider pseudo numbers as signaling +- io: Remove xmknod{at} implementations +- io: Remove xstat implementations +- free: preserve errno [BZ#17924] +- hurd: Accept including hurd/version.h +- hurd: Add WSTOPPED/WCONTINUED/WEXITED/WNOWAIT support [BZ #23091] +- support: Make support_process_state_wait wait less +- hurd: set sigaction for signal preemptors in arch-independent file +- hurd: Fix spawni SPAWN_XFLAGS_TRY_SHELL with empty argv +- hurd: Try shell in posix_spawn* only in compat mode +- Remove _ISOMAC check from +- x86: Remove the duplicated CPU_FEATURE_CPU_P +- Partially revert 681900d29683722b1cb0a8e565a0585846ec5a61 +- x86 long double: Support pseudo numbers in isnanl +- x86 long double: Support pseudo numbers in fpclassifyl +- MTE: Do not pad size in realloc_check +- tests-mcheck: New variable to run tests with MALLOC_CHECK_=3 +- elf: Account for glibc-hwcaps/ prefix in _dl_important_hwcaps +- misc: Use __ferror_unlocked instead of ferror +- s390x: Regenerate ulps +- powerpc: Regenerate ulps +- addmntent: Remove unbounded alloca usage from getmntent [BZ#27083] +- : Add Intel LAM support +- i386: Regenerate ulps +- aarch64: update ulps. +- aarch64: Add aarch64-specific files for memory tagging support +- aarch64: Add sysv specific enabling code for memory tagging +- linux: Add compatibility definitions to sys/prctl.h for MTE +- malloc: Basic support for memory tagging in the malloc() family +- elf: Add a tunable to control use of tagged memory +- config: Allow memory tagging to be enabled when configuring glibc +- alpha: Remove anonymous union in struct stat [BZ #27042] +- add inputs to auto-libm-test-in yielding larger errors (binary64, x86_64) +- m68k: fix clobbering a5 in setjmp() [BZ #24202] +- iconv add iconv_close before the function returned with bad value. +- iconv: use iconv_close after iconv_open +- Fix buffer overrun in EUC-KR conversion module (bz #24973) +- hurd: Make trampoline fill siginfo ss_sp from sc_uesp +- Hurd: make sigstates hold a reference on thread ports +- profil-counter: Add missing SIGINFO case +- hurd: implement SA_SIGINFO signal handlers. +- hurd: Fix ELF_MACHINE_USER_ADDRESS_MASK value +- hurd: Note when the vm_map kernel bug was fixed +- hurd: Also turn KERN_INVALID_ADDRESS to EINVAL +- ieee754: Remove unused __sin32 and __cos32 +- ieee754: Remove slow paths from asin and acos +- getenv: Move call to strlen to the branch it's used in. +- Update kernel version to 5.10 in tst-mman-consts.py. +- s390x: Require GCC 7.1 or later to build glibc. +- malloc: Use __libc_initial to detect an inner libc +- Replace __libc_multiple_libcs with __libc_initial flag +- {nptl,htl}/semaphoreP.h: clean up +- htl: Get sem_open/sem_close/sem_unlink support [BZ #25524] +- pthread: Move semaphore initialization for open to semaphoreP.h +- Mark __libc_freeres_fn as used [BZ #27002] +- Update syscall lists for Linux 5.10. +- htl: Add pshared semaphore support +- hurd: Add LLL_PRIVATE and LLL_SHARED +- hurd: Add __libc_open and __libc_close +- htl: Add futex-internal.h +- hurd: Add __lll_abstimed_wait_intr +- hurd: make lll_* take a variable instead of a ptr +- hurd: Rename LLL_INITIALIZER to LLL_LOCK_INITIALIZER +- Use Linux 5.10 in build-many-glibcs.py. + +* Wed Dec 16 2020 DJ Delorie - 2.32.9000-23 +- Fix conditionals for _enable_debug_packages and benchtests [BZ #1902514] + +* Tue Dec 15 2020 Patsy Griffin - 2.32.9000-22 +- Auto-sync with upstream branch master, + commit 4d0985543f479a6f421d4d8a9e0d1dc71c9c2c53. +- elf: Record libc.so link map when it is the main program (bug 20972) +- Use GMP 6.2.1 in build-many-glibcs.py. +- aarch64: remove the strlen_asimd symbol +- aarch64: fix static PIE start code for BTI [BZ #27068] +- elf: Fix failure handling in _dl_map_object_from_fd +- elf: inline lose for error handling +- Remove strtoimax, strtoumax, wcstoimax, wcstoumax inlines +- nsswitch: handle missing actions properly +- x86: Remove the default REP MOVSB threshold tunable value [BZ #27061] +- elf.h: Remove SHF_GNU_BUILD_NOTE. +- elf.h: fix spelling typos in comments +- Fix spelling and grammar in several comments +- malloc: Detect infinite-loop in _int_free when freeing tcache [BZ#27052] +- elf: Fix dl-load.c +- elf: Include libc.so.6 as main program in dependency sort (bug 20972) +- support: Add support_slibdir_prefix variable +- aarch64: Use mmap to add PROT_BTI instead of mprotect [BZ #26831] +- elf: Pass the fd to note processing +- elf: Move note processing after l_phdr is updated +- aarch64: align address for BTI protection [BZ #26988] +- aarch64: Fix missing BTI protection from dependencies [BZ #26926] +- Fix linknamespace errors in nss_database.c if build with -Os. +- treewide: fix incorrect spelling of indices in comments +- linux: Consolidate brk implementation +- elf: Include in cache.c +- s390x: Add glibc-hwcaps support +- elf: Fix run-time dependencies of tst-dlopen-fail-2 +- Handle out-of-memory case in svc_tcp.c/svc_unix.c:rendezvous_request. +- elf: Fix incorrect comparison in sort_priorities_by_name +- S390: Derive float_t from FLT_EVAL_METHOD +- Fix parsing of /sys/devices/system/cpu/online (bug 25859) +- Make strtoimax, strtoumax, wcstoimax, wcstoumax into aliases +- Fixed typos in "NEWS for version 2.32" +- Add NEWS entry for CVE-2020-29562 (BZ #26923) +- iconv: Fix incorrect UCS4 inner loop bounds (BZ#26923) +- Drop glibc-rh1906066 and glibc-rh741105 patches fixed by sync. + +* Mon Dec 14 2020 Florian Weimer - 2.32.9000-21 +- Re-enable -Werror everywhere (#1888246) + +* Wed Dec 09 2020 DJ Delorie - 2.32.9000-20 +- nsswitch: handle missing actions properly (temporary fix for 1906066) + +* Mon Dec 07 2020 Arjun Shankar - 2.32.9000-19 +- Auto-sync with upstream branch master, + commit 088e9625378f25607acff3daf7a79cbdee497043: +- x86: Rename readelflib.c +- nsswitch: use new internal API (callers) +- nsswitch: user new internal API (tests) +- nsswitch: use new internal API (core) +- nss: Implement +- : New abstraction for combining NSS modules and NSS actions +- nss: Introduce +- Add scripts/move-symbol-to-libc.py + +* Fri Dec 04 2020 Arjun Shankar - 2.32.9000-18 +- Drop glibc-revert-fxstat-compat.patch; applied upstream. +- Drop glibc-revert-mknod-compat.patch; applied upstream. +- Auto-sync with upstream branch master, + commit 4c38c1a229bc3628269ad98bd7e8d31d118d91f6: +- powerpc64le: Add glibc-hwcaps support +- x86: Adjust tst-cpu-features-supports.c for GCC 11 +- x86: Set RDRAND usable if CPU supports RDRAND +- elf: Add missing header to elf/dl-hwcaps.h +- lowlevellock-futex: Remove not used macros +- futex: Remove not used futex_reltimed_wait{_cancelable} +- y2038: Convert gai_suspend to support 64 bit time +- symbols: Add defines for libanl's libanl_hidden_{def|proto} +- x86_64: Add glibc-hwcaps support +- elf: Add glibc-hwcaps subdirectory support to ld.so cache processing +- elf: Process glibc-hwcaps subdirectories in ldconfig +- elf: Implement tail merging of strings in ldconfig +- elf: Implement a string table for ldconfig, with tail merging +- elf: Add extension mechanism to ld.so.cache +- elf: Add endianness markup to ld.so.cache (bug 27008) +- elf: Add glibc-hwcaps support for LD_LIBRARY_PATH +- elf: Synchronize section header flags with binutils +- x86: Fix THREAD_SELF definition to avoid ld.so crash (bug 27004) +- htl: Add hidden def for __pthread_create/detach +- manual: Clarify File Access Modes section and add O_PATH +- htl: Add missing symbols +- Revert "linux: Move xmknod{at} to compat symbols" +- Revert "linux: Move {f}xstat{at} to compat symbols" +- elf.h: Fix spelling of EM_TILE64 comment +- nptl: Fix __futex_clocklock64 return error check [BZ #26964] +- powerpc64le: ifunc select *f128 routines in multiarch mode +- y2038: Convert aio_suspend to support 64 bit time +- Fix typo in NEWS file +- nptl: Add EOVERFLOW checks for futex calls +- nptl: Fix PTHREAD_PRIO_PROTECT timed lock +- sh: Add sh4 fpu Implies folder +- io: nftw/ftw: Fix stack overflow with large nopenfd [BZ #26353] +- elf: Introduce enum opt_format in the ldconfig implementation +- support: Add support_copy_file +- NEWS entry for commit b4f020c9b408fb3d1d3d4901c4a71839145f8791 +- timezone: Change zdump installation to bin directory +- nptl: Return EINVAL for invalid clock for pthread_clockjoin_np +- nptl: Return EINVAL for pthread_mutex_clocklock/PI with CLOCK_MONOTONIC [BZ #26801] +- nptl: Replace lll_futex_wake with futex-internal.h +- nptl: Replace lll_futex_supported_clockid with futex-internal.h +- nptl: Replace lll_futex_{timed_}wait by futex-internal.h +- nptl: Replace lll_timedwait with __futex_abstimed_wait64 +- nptl: Replace __futex_clocklock_wait64 with __futex_abstimed_wait64 +- nptl: Remove _futex_clock_wait_bitset64 +- nptl: Consolidate __futex_abstimed_wait_{cancelable}64 +- nptl: Extend __futex_abstimed_wait_cancelable64 comment +- nptl: Remove clockwait_tid +- nptl: Remove futex_wait_cancelable +- nptl: Remove unused internal futex functions +- Mark mtrace tests UNSUPPORTED if bug-ga2.mtrace or tst-leaks2.mtrace are missing +- elf: Fix uninitialized variable for _dl_write +- powerpc: Make PT_THREAD_POINTER available to assembly code +- Use libnss_files.so for tests posix/bug-ga2 and resolv/tst-leaks2 [BZ #26821] +- hurd report-wait: Fix stpcpy usage +- hurd S_msg_report_wait: Fix detecting fd ports +- hurd S_msg_report_wait: Fix reporting ports +- hurd: Fix strcpy calls +- hurd: Fix _S_msg_get/set_env_variable prototype +- hurd: Enable using ifunc +- Add {,sysdep-}ld-library-path make variable +- nptl: Move stack list variables into _rtld_global +- hurd: let _dl_argv and __libc_stack_end be relro +- hurd: Remove some remnants of cthreads +- nanosleep: Pass NULL when rem == NULL on ports with __TIMESIZE != 64 +- y2038: Convert thrd_sleep to support 64 bit time +- y2038: Convert mtx_timedlock to support 64 bit time +- y2038: Convert cnd_timedwait to support 64 bit time +- hurd: Drop CLOCK_MONOTONIC change which slipped in +- hurd: make ptsname fail with ENOTTY on non-master-pty +- mach: Add missing assert.h include +- hurd: break relocation loop between libc.so and lib{mach,hurd}user.so +- Remove obsolete defines for HPUX support from fcntl.h and update O_NONBLOCK. +- Remove tls.h inclusion from internal errno.h +- nptl: Eliminate and __is_smp +- powerpc: Eliminate UP macro conditionals +- x86: Remove UP macro. Define LOCK_PREFIX unconditionally. +- alpha: Remove UP preprocessor conditionals +- hurd: Make sure signals get started +- hurd: initialize libpthread before starting the signal thread +- hurd: Make _hurd_libc_proc_init idempotent +- powerpc: Add optimized stpncpy for POWER9 +- powerpc: Add optimized strncpy for POWER9 +- Don't use nested function in test-ffs +- Use __builtin___stpncpy_chk when available +- tests: Remove NULL check for an array +- hurd: Move {,f,l}xstat{,at} and xmknod{at} to compat symbols +- hurd: Notify the proc server later during initialization +- htl: Initialize later +- htl: Keep thread signals blocked during its initialization +- htl: Fix spurious symbols in namespaces +- Use O_CLOEXEC in sysconf [BZ #26791] +- struct _Unwind_Exception alignment should not depend on compiler flags +- hurd: keep only required PLTs in ld.so +- hurd: Add missing startup calls +- riscv: Get cache information through sysconf +- RISC-V: Add _dl_start_user. + +* Thu Nov 26 2020 Florian Weimer - 2.32.9000-17 +- s390x: Do not rewrite program interpreter symlink (make install is enough) + +* Tue Nov 10 2020 Carlos O'Donell - 2.32.9000-16 +- Remove the work around for systemd-nspawn (#1869030). + +* Mon Nov 09 2020 DJ Delorie - 2.32.9000-15 +- Auto-sync with upstream branch master, + commit 75a193b7611bade31a150dfcc528b973e3d46231. +- linux: Allow adjtime with NULL argument [BZ #26833] +- aarch64: Add unwind information to _start (bug 26853) +- bsd unlockpt: unlockpt needs to fail with EINVAL, not ENOTTY +- Rearrange bsd_getpt vs bsd_openpt and implement posix_openpt on BSD +- Remove __warndecl +- Remove __warn_memset_zero_len [BZ #25399] +- iconv: Accept redundant shift sequences in IBM1364 [BZ #26224] +- msg: Remove redundant #include header +- tst-setuid1-static-ENV: Add $(common-objpfx)nss [BZ #26820] + +* Tue Nov 03 2020 Patsy Griffin - 2.32.9000-14 +- Auto-sync with upstream branch master, + commit e156dabc766d6f6f99ce9402999eae380a3ec1f2. +- aarch64: Add variant PCS lazy binding test [BZ #26798] +- aarch64: Fix DT_AARCH64_VARIANT_PCS handling [BZ #26798] +- hurd: Correct 'ethenet' spelling +- Avoid -Wstringop-overflow warning in pthread_cleanup_push macros +- Disable spurious -Warray-bounds for ypclnt.c (bug 26687) +- Do not use array parameter to new_composite_name (bug 26726) +- Disable spurious -Wstringop-overflow for setjmp/longjmp (bug 26647) +- malloc debug: fix compile error when enable macro MALLOC_DEBUG > 1 +- tst-tcfree2: adjust coding style. +- elf: In ldconfig, extract the new_sub_entry function from search_dir +- Use MPC 1.2.1 in build-many-glibcs.py. +- Argument Syntax: Use "option", @option, and @command. +- elf: Unify old and new format cache handling code in ld.so +- x86: Restore processing of cache size tunables in init_cacheinfo +- Make elf.h header self contained. +- x86: Optimizing memcpy for AMD Zen architecture. +- Hurd: Fix ftime build +- Add IP_RECVERR_RFC4884 and IPV6_RECVERR_RFC4884 from Linux 5.9. +- misc: Add internal __getauxval2 function +- Remove NEWS entry about ftime removal +- time: Add 64-bit time_t support for ftime +- Reinstate ftime and add deprecate message on ftime usage +- Update kernel version to 5.9 in tst-mman-consts.py. +- Amend grammar and add a description +- Fix typo in NEWS file +- Remove timing related checks of time/tst-cpuclock1 +- Update syscall lists for Linux 5.9. +- Use Linux 5.9 in build-many-glibcs.py. +- Reword description of SXID_* tunable properties +- New benchtest: pthread locks +- y2038: nptl: Provide __futex_clock_wait_bitset64 to support 64 bit bitset +- C-SKY: Make dynamic linker's name compitable with the older gcc. +- Revert "C-SKY:Fix dynamic linker's name when mfloat-abi=softfp." +- Move vtimes to a compatibility symbol +- y2038: linux: Provide __time64 implementation +- rt: Fix typos in comments in +- C-SKY:Fix dynamic linker's name when mfloat-abi=softfp. +- Drop the glibc-revert-ftime-compat.patch. + +* Thu Oct 29 2020 DJ Delorie - 2.32.9000-13 +- Add BuildRequires for perl (malloc/mtrace) if running the testsuite. + +* Wed Oct 21 2020 Siddhesh Poyarekar - 2.32.9000-12 +- Revert __xstat64 symbol removal. +- Revert xmknod* symbol removal. +- Revert ftime symbol removal. + +* Sun Oct 18 2020 Patsy Griffin - 2.32.9000-11 +- Auto-sync with upstream branch master, + commit 0f09154c64005e78b61484ae87b5ea2028051ea0. +- x86: Initialize CPU info via IFUNC relocation [BZ 26203] +- Add NEWS entry for ftime compatibility move +- support: Add create_temp_file_in_dir +- linux: Add __readdir_unlocked +- linux: Simplify opendir buffer allocation +- linux: Move posix dir implementations to Linux +- linux: Add 64-bit time_t support for wait3 +- Move ftime to a compatibility symbol +- linux: Fix time64 support for futimesat +- linux: Use INTERNAL_SYSCALL on fstatat{64} +- shm tests: Append PID to names passed to shm_open [BZ #26737] +- sysvipc: Fix tst-sysvshm-linux on x32 +- x86/CET: Update vfork to prevent child return +- resolv: Serialize processing in resolv/tst-resolv-txnid-collision +- statfs: add missing f_flags assignment +- y2038: Remove not used __fstatat_time64 define +- y2038: nptl: Convert pthread_mutex_{clock|timed}lock to support 64 bit +- sysvipc: Return EINVAL for invalid shmctl commands +- sysvipc: Fix IPC_INFO and SHM_INFO handling [BZ #26636] +- AArch64: Use __memcpy_simd on Neoverse N2/V1 +- resolv: Handle transaction ID collisions in parallel queries (bug 26600) +- support: Provide a way to clear the RA bit in DNS server responses +- support: Provide a way to reorder responses within the DNS test server +- Add missing stat/mknod symbol on libc.abilist some ABIs +- manual: correct the spelling of "MALLOC_PERTURB_" [BZ #23015] +- manual: replace an obsolete collation example with a valid one +- rtld: fix typo in comment +- elf: Add missing header to elf/dl-usage.c +- hurd: support clock_gettime(CLOCK_PROCESS/THREAD_CPUTIME_ID) +- linux: Move xmknod{at} to compat symbols +- linux: Add {f}stat{at} y2038 support +- linux: Move {f}xstat{at} to compat symbols +- linux: Disentangle fstatat from fxstatat +- linux: Implement {l}fstat{at} in terms of fstatat +- linux: Move the struct stat{64} to struct_stat.h +- Remove mknod wrapper functions, move them to symbols +- Remove stat wrapper functions, move them to exported symbols +- : Add FSRCS/FSRS/FZLRM support +- : Add Intel HRESET support +- : Add AVX-VNNI support +- : Add AVX512_FP16 support +- : Add Intel UINTR support +- elf: Do not pass GLRO(dl_platform), GLRO(dl_platformlen) to _dl_important_hwcaps +- elf: Enhance ld.so --help to print HWCAP subdirectories +- elf: Add library search path information to ld.so --help +- sunrpc: Adjust RPC function declarations to match Sun's (bug 26686] +- Avoid GCC 11 -Warray-parameter warnings [BZ #26686]. +- elf: Make __rtld_env_path_list and __rtld_search_dirs global variables +- elf: Print the full name of the dynamic loader in the ld.so help message +- elf: Use the term "program interpreter" in the ld.so help message +- scripts/update-copyrights: Update csu/version.c, elf/dl-usage.c +- elf: Implement ld.so --version +- nptl: Add missing cancellation flags on lockf +- Update mips64 libm-test-ulps +- Update alpha libm-test-ulps +- elf: Implement ld.so --help +- elf: Record whether paths come from LD_LIBRARY_PATH or --library-path +- elf: Move ld.so error/help output to _dl_usage +- elf: Extract command-line/environment variables state from rtld.c + +* Wed Oct 14 2020 Florian Weimer - 2.32.9000-10 +- Disable -Werror on ELN (#1888246) + +* Wed Oct 14 2020 Florian Weimer - 2.32.9000-9 +- Make glibc.spec self-contained (#1887097) + +* Thu Oct 08 2020 Arjun Shankar - 2.32.9000-8 +- Drop glibc-fix-float128-benchtests.patch; applied upstream. +- Auto-sync with upstream branch master, + commit 72d36ffd7db55ae599f4c77feb0eae25a0f3714e: +- elf: Implement __rtld_malloc_is_complete +- __vfscanf_internal: fix aliasing violation (bug 26690) +- Revert "Fix missing redirects in testsuite targets" +- nptl: Add missing cancellation flags on futex_internal and pselect32 +- elf: Implement _dl_write +- elf: Do not search HWCAP subdirectories in statically linked binaries +- Linux: Require properly configured /dev/pts for PTYs +- Linux: unlockpt needs to fail with EINVAL, not ENOTTY (bug 26053) +- login/tst-grantpt: Convert to support framework, more error checking +- posix: Fix -Warray-bounds instances building timer_create [BZ #26687] +- Replace Minumum/minumum with Minimum/minimum +- Optimize scripts/merge-test-results.sh +- Fix GCC 11 -Warray-parameter warning for __sigsetjmp (bug 26647) +- manual: Fix typo +- y2038: nptl: Convert pthread_rwlock_{clock|timed}{rd|wr}lock to support 64 + bit time +- Y2038: nptl: Provide futex_abstimed_wait64 supporting 64 bit time +- sysvipc: Return EINVAL for invalid msgctl commands +- sysvipc: Fix IPC_INFO and MSG_INFO handling [BZ #26639] +- sysvipc: Return EINVAL for invalid semctl commands +- sysvipc: Fix SEM_STAT_ANY kernel argument pass [BZ #26637] +- aarch64: enforce >=64K guard size [BZ #26691] +- sysvipc: Fix semtimedop for Linux < 5.1 for 64-bit ABI +- nptl: futex: Move __NR_futex_time64 alias to beginning of futex-internal.h +- nptl: Provide proper spelling for 32 bit version of futex_abstimed_wait +- string: Fix strerrorname_np return value [BZ #26555] +- Set tunable value as well as min/max values +- ld.so: add an --argv0 option [BZ #16124] +- Reversing calculation of __x86_shared_non_temporal_threshold +- linux: Add time64 recvmmsg support +- linux: Add time64 support for nanosleep +- linux: Consolidate utimes +- linux: Use 64-bit time_t syscall on clock_getcputclockid +- linux: Add time64 sigtimedwait support +- linux: Add time64 select support +- nptl: Fix __futex_abstimed_wait_cancellable32 +- sysvipc: Fix semtimeop for !__ASSUME_DIRECT_SYSVIPC_SYSCALLS +- hurd: add ST_RELATIME +- intl: Handle translation output codesets with suffixes [BZ #26383] +- bench-strcmp.c: Add workloads on page boundary +- bench-strncmp.c: Add workloads on page boundary +- strcmp: Add a testcase for page boundary +- strncmp: Add a testcase for page boundary [BZ #25933] +- Set locale related environment variables in debugglibc.sh +- benchtests: Run _Float128 tests only on architectures that support it +- powerpc: Protect dl_powerpc_cpu_features on INIT_ARCH() [BZ #26615] +- x86: Harden printf against non-normal long double values (bug 26649) +- x86: Use one ldbl2mpn.c file for both i386 and x86_64 +- Define __THROW to noexcept for C++11 and later + +* Mon Sep 21 2020 Arjun Shankar - 2.32.9000-7 +- Adjust glibc-rh741105.patch. +- Add glibc-fix-float128-benchtests.patch to allow building on armv7hl. +- Auto-sync with upstream branch master, + commit cdf645427d176197b82f44308a5e131d69fb53ad: +- Update mallinfo2 ABI, and test +- Allow memset local PLT reference for RISC-V. +- powerpc: fix ifunc implementation list for POWER9 strlen and stpcpy +- nscd: bump GC cycle during cache pruning (bug 26130) +- x86: Use HAS_CPU_FEATURE with IBT and SHSTK [BZ #26625] +- : Add Intel Key Locker support +- Fix handling of collating symbols in fnmatch (bug 26620) +- pselect.c: Pass a pointer to SYSCALL_CANCEL [BZ #26606] +- y2038: nptl: Convert sem_{clock|timed}wait to support 64 bit time +- hurd: Add __x86_get_cpu_features to ld.abilist +- x86: Install [BZ #26124] +- linux: Add time64 pselect support +- linux: Add time64 semtimedop support +- linux: Add ppoll time64 optimization +- linux: Simplify clock_getres +- Update sparc libm-test-ulps +- Remove internal usage of extensible stat functions +- Linux: Consolidate xmknod +- linux: Consolidate fxstatat{64} +- linux: Consolidate fxstat{64} +- linux: Consolidate lxstat{64} +- linux: Consolidate xstat{64} +- linux: Define STAT64_IS_KERNEL_STAT64 +- linux: Always define STAT_IS_KERNEL_STAT +- Update powerpc libm-test-ulps +- benchtests: Add "workload" traces for sinf128 +- benchtests: Add "workload" traces for sinf +- benchtests: Add "workload" traces for sin +- benchtests: Add "workload" traces for powf128 +- benchtests: Add "workload" traces for pow +- benchtests: Add "workload" traces for expf128 +- benchtests: Add "workload" traces for exp +- nptl: futex: Provide correct indentation for part of + __futex_abstimed_wait_cancelable64 + +* Tue Sep 08 2020 DJ Delorie - 2.32.9000-6 +- Auto-sync with upstream branch master, + commit e74b61c09a2a2ab52153e731225ccba5078659b1. +- Disable -Wstringop-overread for some string tests +- string: Fix GCC 11 `-Werror=stringop-overread' error +- C11 threads: Fix inaccuracies in testsuite +- elf.h: Add aarch64 bti/pac dynamic tag constants +- x86: Set CPU usable feature bits conservatively [BZ #26552] + +* Wed Sep 02 2020 Patsy Griffin - 2.32.9000-5 +- Auto-sync with upstream branch master, + commit 86a912c8634f581ea42ec6973553dde7f058cfbf. +- Update i686 ulps. +- Use LFS readdir in generic POSIX getcwd [BZ# 22899] +- linux: Remove __ASSUME_ATFCTS +- Sync getcwd with gnulib +- x86-64: Fix FMA4 detection in ifunc [BZ #26534] +- y2038: nptl: Convert pthread_cond_{clock|timed}wait to support 64 bit time +- malloc: Fix mallinfo deprecation declaration +- x32: Add and regenerate arch-syscall.h +- Add mallinfo2 function that support sizes >= 4GB. +- Remove obsolete default/nss code +- AArch64: Improve backwards memmove performance +- Add RISC-V 32-bit target to build-many-glibcs.py +- Documentation for the RISC-V 32-bit port +- RISC-V: Build infrastructure for 32-bit port +- RISC-V: Add rv32 path to RTLDLIST in ldd +- riscv32: Specify the arch_minimum_kernel as 5.4 +- RISC-V: Fix llrint and llround missing exceptions on RV32 +- RISC-V: Add the RV32 libm-test-ulps +- RISC-V: Add 32-bit ABI lists +- RISC-V: Add hard float support for 32-bit CPUs +- RISC-V: Support the 32-bit ABI implementation +- RISC-V: Add arch-syscall.h for RV32 +- RISC-V: Add path of library directories for the 32-bit +- RISC-V: Support dynamic loader for the 32-bit +- RISC-V: Add support for 32-bit vDSO calls +- RISC-V: Use 64-bit-time syscall numbers with the 32-bit port +- RISC-V: Cleanup some of the sysdep.h code +- RISC-V: Use 64-bit time_t and off_t for RV32 and RV64 +- io/lockf: Include bits/types.h before __OFF_T_MATCHES_OFF64_T check +- elf/tst-libc_dlvsym: Add a TEST_COMPAT around some symbol tests +- hurd: define BSD 4.3 ioctls only under __USE_MISC +- string: test strncasecmp and strncpy near page boundaries +- linux: Simplify utimensat +- linux: Simplify timerfd_settime +- linux: Simplify timer_gettime +- linux: Simplify sched_rr_get_interval +- linux: Simplify ppoll +- linux: Simplify mq_timedsend +- linux: Simplify mq_timedreceive +- linux: Simplify clock_settime +- linux: Simplify clock_nanosleep +- linux: Simplify clock_gettime +- linux: Simplify clock_adjtime +- linux: Add helper function to optimize 64-bit time_t fallback support +- S390: Sync HWCAP names with kernel by adding aliases [BZ #25971] +- [vcstocl] Import ProjectQuirks from its own file +- build-many-glibcs.py: Add a s390x -O3 glibc variant. +- Fix namespace violation in stdio.h and sys/stat.h if build with optimization. [BZ #26376] +- Add C2x BOOL_MAX and BOOL_WIDTH to limits.h. +- Use MPC 1.2.0 in build-many-glibcs.py. +- Add new STATX_* constants from Linux 5.8 to bits/statx-generic.h. +- Correct locking and cancellation cleanup in syslog functions (bug 26100) + +* Thu Aug 20 2020 Carlos O'Donell - 2.32.9000-4 +- Support building glibc in a mock chroot using older systemd-nspawn (#1869030). + +* Tue Aug 18 2020 Carlos O'Donell - 2.32.9000-3 +- Suggest installing minimal localization e.g. C, POSIX, C.UTF-8. + +* Mon Aug 17 2020 DJ Delorie - 2.32.9000-2 +- Auto-sync with upstream branch master, + commit cb7e7a5ca1d6d25d59bc038bdc09630e507c41e5. +- nptl: Handle NULL abstime [BZ #26394] +- Update build-many-glibcs.py for binutils ia64 obsoletion. +- Update kernel version to 5.8 in tst-mman-consts.py. +- y2038: nptl: Convert pthread_{clock|timed}join_np to support 64 bit time +- aarch64: update ulps. + +* Wed Aug 12 2020 Patsy Griffin - 2.32.9000-1 +- Auto-sync with upstream branch master, + commit 0be0845b7a674dbfb996f66cd03d675f0f6028dc: +- S390: Regenerate ULPs. +- manual: Fix sigdescr_np and sigabbrev_np return type (BZ #26343) +- math: Update x86_64 ulps +- math: Regenerate auto-libm-test-out-j0 +- manual: Put the istrerrorname_np and strerrordesc_np return type in braces +- Linux: Use faccessat2 to implement faccessat (bug 18683) +- manual: Fix strerrorname_np and strerrordesc_np return type (BZ #26343) +- math: Fix inaccuracy of j0f for x >= 2^127 when sin(x)+cos(x) is tiny +- Update syscall lists for Linux 5.8. +- Use Linux 5.8 in build-many-glibcs.py. +- htl: Enable tst-cancelx?[45] +- tst-cancel4: Make blocking on write more portable +- hurd: Add missing hidden def +- hurd: Rework sbrk +- hurd: Implement basic sched_get/setscheduler +- x86: Rename Intel CPU feature names +- manual: Fix some @code/@var formatting glitches chapter Date And Time +- Copy regex_internal.h from Gnulib +- Copy regex BITSET_WORD_BITS porting from Gnulib +- Sync regex.h from Gnulib +- Sync mktime.c from Gnulib +- Sync intprops.h from Gnulib +- Open master branch for glibc 2.33 development. + +* Thu Aug 06 2020 Arjun Shankar - 2.32-1 +- Auto-sync with upstream branch release/2.32/master, + commit 3de512be7ea6053255afed6154db9ee31d4e557a: +- Prepare for glibc 2.32 release. +- Regenerate configure scripts. +- Update NEWS with bugs. +- Update translations. +- Don't mix linker error messages into edited scripts +- benchtests/README update. +- RISC-V: Update lp64d libm-test-ulps according to HiFive Unleashed +- aarch64: update NEWS about branch protection +- Add NEWS entry for CVE-2016-10228 (bug 19519) +- powerpc: Fix incorrect cache line size load in memset (bug 26332) +- Update Nios II libm-test-ulps file. + +* Fri Jul 31 2020 Patsy Griffin - 2.31.9000-24 +- Auto-sync with upstream branch master, + commit 7f1a08cff82255cd4252a2c75fd65b80a6a170bf. +- Move NEWS entry for CVE-2020-1751 to the 2.31 section +- NEWS: Deprecate weak libpthread symbols for single-threaded checks +- NEWS: Deprecate nss_hesiod +- nptl: Zero-extend arguments to SETXID syscalls [BZ #26248] +- Use binutils 2.35 branch in build-many-glibcs.py. +- aarch64: Use future HWCAP2_MTE in ifunc resolver +- Update x86-64 libm-test-ulps +- aarch64: Respect p_flags when protecting code with PROT_BTI +- Disable warnings due to deprecated libselinux symbols used by nss and nscd +- Regenerate INSTALL for ARC port updates. +- Update libc.pot for 2.32 release. +- powerpc: Fix POWER10 selection +- powerpc64le: guarantee a .gnu.attributes section [BZ #26220] + +* Wed Jul 29 2020 Florian Weimer - 2.31.9000-23 +- Inherit -mbranch-protection=standard from redhat-rpm-config (for aarch64) + +* Mon Jul 27 2020 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 22 2020 Carlos O'Donell - 2.31.9000-21 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Tue Jul 21 2020 Arjun Shankar - 2.31.9000-20 +- Add glibc-deprecated-selinux-makedb.patch and + glibc-deprecated-selinux-nscd.patch to work around libselinux API + deprecations. +- Drop glibc-rseq-disable.patch; rseq support removed upstream. (#1855729) +- Auto-sync with upstream branch master, + commit ec2f1fddf29053957d061dfe310f106388472a4f: +- libio: Remove __libc_readline_unlocked +- shadow: Implement fgetspent_r using __nss_fgetent_r +- pwd: Implement fgetpwent_r using __nss_fgetent_r +- gshadow: Implement fgetsgent_r using __nss_fgetent_r (bug 20338) +- grp: Implement fgetgrent_r using __nss_fgetent_r +- nss: Add __nss_fgetent_r +- libio: Add fseterr_unlocked for internal use +- nss_files: Use generic result pointer in parse_line +- nss_files: Consolidate line parse declarations in +- nss_compat: Do not use mmap to read database files (bug 26258) +- nss_files: Consolidate file opening in __nss_files_fopen +- Update powerpc-nofpu libm-test-ulps. +- Use MPFR 4.1.0 in build-many-glibcs.py. +- elf: Change TLS static surplus default back to 1664 +- hurd: Fix longjmp check for sigstate +- hurd: Fix longjmp early in initialization +- manual: New signal and errno string functions are AS-safe +- AArch64: Improve strlen_asimd performance (bug 25824) +- Move from sunrpc to inet +- en_US: Minimize changes to date_fmt (Bug 25923) +- Linux: Remove rseq support +- manual: Use Unicode instead HTML entities for characters (bug 19737) +- Add NEWS entry for CVE-2020-6096 (bug 25620) +- arm: remove string/tst-memmove-overflow XFAIL +- AArch64: Rename IS_ARES to IS_NEOVERSE_N1 +- AArch64: Add optimized Q-register memcpy +- AArch64: Align ENTRY to a cacheline +- Correct timespec implementation [BZ #26232] +- Remove --enable-obsolete-rpc configure flag +- hurd: Fix build-many-glibcs.py +- x86: Support usable check for all CPU features +- string: Make tst-strerror/tst-strsignal unsupported if msgfmt is not installed +- malloc: Deprecate more hook-related functionality +- elf: Support at least 32-byte alignment in static dlopen +- x86: Remove __ASSEMBLER__ check in init-arch.h +- x86: Remove the unused __x86_prefetchw +- Documentation for ARC port +- build-many-glibcs.py: Enable ARC builds +- ARC: Build Infrastructure +- ARC: ABI lists +- ARC: Linux Startup and Dynamic Loading +- ARC: Linux ABI +- ARC: Linux Syscall Interface +- ARC: hardware floating point support +- ARC: math soft float support +- ARC: Atomics and Locking primitives +- ARC: Thread Local Storage support +- ARC: startup and dynamic linking code +- ARC: ABI Implementation +- Fix time/tst-cpuclock1 intermitent failures +- powerpc64: Fix calls when r2 is not used [BZ #26173] +- Add NEWS entry for Update to Unicode 13.0.0 [BZ #25819] +- Update i686 libm-test-ulps +- Fix memory leak in __printf_fp_l (bug 26215). +- Fix double free in __printf_fp_l (bug 26214). +- linux: Fix syscall list generation instructions +- sysv: linux: Add 64-bit time_t variant for shmctl +- sysvipc: Remove the linux shm-pad.h file +- sysvipc: Split out linux struct shmid_ds +- sysv: linux: Add 64-bit time_t variant for msgctl +- sysvipc: Remove the linux msq-pad.h file +- sysvipc: Split out linux struct semid_ds +- sysv: linux: Add 64-bit time_t variant for semctl + +* Fri Jul 10 2020 Florian Weimer - 2.31.9000-19 +- Disable rseq registration by default to help Firefox (#1855729) + +* Thu Jul 09 2020 Florian Weimer - 2.31.9000-18 +- Auto-sync with upstream branch master, + commit ffb17e7ba3a5ba9632cee97330b325072fbe41dd: +- rtld: Avoid using up static TLS surplus for optimizations [BZ #25051] +- rtld: Account static TLS surplus for audit modules +- rtld: Add rtld.nns tunable for the number of supported namespaces +- Remove --enable-obsolete-nsl configure flag +- Move non-deprecated RPC-related functions from sunrpc to inet +- aarch64: add NEWS entry about branch protection support +- aarch64: redefine RETURN_ADDRESS to strip PAC +- aarch64: fix pac-ret support in _mcount +- aarch64: Add pac-ret support to assembly files +- aarch64: configure check for pac-ret code generation +- aarch64: ensure objects are BTI compatible +- aarch64: enable BTI at runtime +- aarch64: fix RTLD_START for BTI +- aarch64: fix swapcontext for BTI +- aarch64: Add BTI support to assembly files +- aarch64: Rename place holder .S files to .c +- aarch64: configure test for BTI support +- Rewrite abi-note.S in C. +- rtld: Clean up PT_NOTE and add PT_GNU_PROPERTY handling +- string: Move tst-strsignal tst-strerror to tests-container +- string: Fix prototype mismatch in sigabbrev_np, __sigdescr_np +- arm: CVE-2020-6096: Fix multiarch memcpy for negative length (#1820332) +- arm: CVE-2020-6096: fix memcpy and memmove for negative length (#1820332) +- sunrpc: Remove hidden aliases for global data symbols (bug 26210) +- hurd: Fix strerror not setting errno +- tst-strsignal: fix checking for RT signals support +- hurd: Evaluate fd before entering the critical section +- CVE-2016-10228: Rewrite iconv option parsing (#1428292) +- nss: Remove cryptographic key support from nss_files, nss_nis, nss_nisplus +- sunrpc: Do not export getrpcport by default +- sunrpc: Do not export key handling hooks by default +- sunrpc: Turn clnt_sperrno into a libc_hidden_nolink_sunrpc symbol +- string: Add strerrorname_np and strerrordesc_np +- string: Add sigabbrev_np and sigdescr_np +- string: Add strerror_l on test-strerror-errno +- string: Add strerror, strerror_r, and strerror_l test +- string: Add strsignal test +- string: Simplify strerror_r +- string: Use tls-internal on strerror_l +- string: Implement strerror in terms of strerror_l +- string: Remove old TLS usage on strsignal +- linux: Fix __NSIG_WORDS and add __NSIG_BYTES +- signal: Move sys_errlist to a compat symbol +- signal: Move sys_siglist to a compat symbol +- signal: Add signum-{generic,arch}.h +- Remove most vfprintf width/precision-dependent allocations (bug 14231, bug 26211). +- elf: Do not signal LA_ACT_CONSISTENT for an empty namespace [BZ #26076] +- Fix stringop-overflow errors from gcc 10 in iconv. +- x86: Add thresholds for "rep movsb/stosb" to tunables +- Use C2x return value from getpayload of non-NaN (bug 26073). +- x86: Detect Extended Feature Disable (XFD) +- x86: Correct bit_cpu_CLFSH [BZ #26208] +- manual: Document __libc_single_threaded +- Add the __libc_single_threaded variable +- Linux: rseq registration tests +- Linux: Use rseq in sched_getcpu if available +- Linux: Perform rseq registration at C startup and thread creation +- tst-cancel4: deal with ENOSYS errors +- manual: Show copyright information not just in the printed manual + + +* Thu Jul 02 2020 Carlos O'Donell - 2.31.9000-17 +- Auto-sync with upstream branch master, + commit c6aac3bf3663709cdefde5f5d5e9e875d607be5e. +- Fix typo in comment in bug 26137 fix. +- Fix strtod multiple-precision division bug (bug 26137). +- Linux: Fix UTC offset setting in settimeofday for __TIMESIZE != 64 +- random: range is not portably RAND_MAX [BZ #7003] +- Update kernel version to 5.7 in tst-mman-consts.py. +- powerpc: Add support for POWER10 +- hurd: Simplify usleep timeout computation +- htl: Enable cancel*16 an cancel*20 tests +- hurd: Add remaining cancelation points +- hurd: fix usleep(ULONG_MAX) +- hurd: Make fcntl(F_SETLKW*) cancellation points +- hurd: make wait4 a cancellation point +- hurd: Fix port definition in HURD_PORT_USE_CANCEL +- hurd: make close a cancellation point +- hurd: make open and openat cancellation points +- hurd: clean fd and port on thread cancel +- htl: Move cleanup handling to non-private libc-lock +- htl: Fix includes for lockfile +- htl: avoid cancelling threads inside critical sections +- tst-cancel4-common.c: fix calling socketpair +- x86: Detect Intel Advanced Matrix Extensions +- Set width of JUNGSEONG/JONGSEONG characters from UD7B0 to UD7FB to 0 [BZ #26120] +- S390: Optimize __memset_z196. +- S390: Optimize __memcpy_z196. +- elf: Include (for size_t), in +- nptl: Don't madvise user provided stack +- S390: Regenerate ULPs. +- htl: Add wrapper header for with hidden __sem_post +- elf: Include in because bool is used +- htl: Fix case when sem_*wait is canceled while holding a token +- htl: Make sem_*wait cancellations points +- htl: Simplify non-cancel path of __pthread_cond_timedwait_internal +- htl: Enable tst-cancel25 test +- powerpc: Add new hwcap values +- aarch64: MTE compatible strncmp +- aarch64: MTE compatible strcmp +- aarch64: MTE compatible strrchr +- aarch64: MTE compatible memrchr +- aarch64: MTE compatible memchr +- aarch64: MTE compatible strcpy +- Add MREMAP_DONTUNMAP from Linux 5.7 +- x86: Update CPU feature detection [BZ #26149] + +* Mon Jun 22 2020 DJ Delorie - 2.31.9000-16 +- Auto-sync with upstream branch master, + commit ea04f0213135b13d80f568ca2c4127c2ec112537. +- aarch64: Remove fpu Makefile +- m68k: Use sqrt{f} builtin for coldfire +- arm: Use sqrt{f} builtin +- riscv: Use sqrt{f} builtin +- s390: Use sqrt{f} builtin +- sparc: Use sqrt{f} builtin +- mips: Use sqrt{f} builtin +- alpha: Use builtin sqrt{f} +- i386: Use builtin sqrtl +- x86_64: Use builtin sqrt{f,l} +- powerpc: Use sqrt{f} builtin +- s390x: Use fma{f} builtin +- aarch64: Use math-use-builtins for ceil{f} +- math: Decompose math-use-builtins.h +- hurd: Add mremap +- ia64: Use generic exp10f +- New exp10f version without SVID compat wrapper +- i386: Use generic exp10f +- math: Optimized generic exp10f with wrappers +- benchtests: Add exp10f benchmark + +* Fri Jun 19 2020 Patsy Franklin - 2.31.9000-15 +- Auto-sync with upstream branch master, + commit 27f8864bd41f0f1b61e8e947d9a030b1a0d23df9. +- x86: Update F16C detection [BZ #26133] +- Fix avx2 strncmp offset compare condition check [BZ #25933] +- nptl: Remove now-spurious tst-cancelx9 references +- x86_64: Use %xmmN with vpxor to clear a vector register +- x86: Correct bit_cpu_CLFLUSHOPT [BZ #26128] +- powerpc64le: refactor e_sqrtf128.c +- Update syscall-names.list for Linux 5.7. +- ieee754/dbl-64: Reduce the scope of temporary storage variables +- manual: Add pthread_attr_setsigmask_np, pthread_attr_getsigmask_np +- ld.so: Check for new cache format first and enhance corruption check +- hurd: Fix __writev_nocancel_nostatus +- hurd: Make send* cancellation points +- htl: Enable more cancellation tests +- hurd: Make write and pwrite64 cancellation points +- htl: Fix cleanup support for IO locking +- htl: Move cleanup stack to variable shared between libc and pthread +- htl: initialize first and prevent from unloading +- htl: Add noreturn attribute on __pthread_exit forward +- hurd: Make recv* cancellation points +- powerpc: Automatic CPU detection in preconfigure +- Use Linux 5.7 in build-many-glibcs.py. +- htl: Enable more cancel tests +- htl: Fix linking static tests by factorizing the symbols list +- Add "%d" support to _dl_debug_vdprintf +- aarch64: MTE compatible strlen +- aarch64: MTE compatible strchr +- aarch64: MTE compatible strchrnul +- AArch64: Merge Falkor memcpy and memmove implementations +- hurd: document that gcc&gdb look at the trampoline code +- pthread: Move back linking rules to nptl and htl +- htl: Enable more tests +- htl: Fix registration of atfork handlers in modules +- htl: Fix tls initialization for already-created threads +- hurd: Make read and pread64 cancellable +- hurd: Fix unwinding over interruptible RPC +- htl: Enable but XFAIL tst-flock2, tst-signal1, tst-signal2 +- hurd: XFAIL more tests that require setpshared support +- hurd: Briefly document in xfails the topics of the bugzilla entries +- htl: Enable more tests +- htl: Add sem_clockwait support +- htl: fix register-atfork ordering +- hurd: Fix hang in _hurd_raise_signal from pthread_kill +- hurd: Reject raising invalid signals +- hurd: fix clearing SS_ONSTACK when longjmp-ing from sighandler +- hurd: Add pointer guard support +- hurd: Add stack guard support +- dl-runtime: reloc_{offset,index} now functions arch overide'able +- powerpc64le: add optimized strlen for P9 +- powerpc64le: use common fmaf128 implementation + +* Fri Jun 05 2020 Patsy Griffin - 2.31.9000-14 +- Auto-sync with upstream branch master, + commit e52434a2e4d1105272daaef87678da950fbec73f. +- benchtests: Restore the clock_gettime option +- Update HP_TIMING_NOW for _ISOMAC in sysdeps/generic/hp-timing.h +- Replace val with __val in TUNABLE_SET_VAL_IF_VALID_RANGE +- support: Fix detecting hole support on >2KB-block filesystems +- powerpc: Fix powerpc64le due a7a3435c9a +- manual/jobs.texi: remove unused var from example code +- powerpc/fpu: use generic fma functions +- aarch/fpu: use generic builtins based math functions +- ieee754: provide gcc builtins based generic fma functions +- ieee754: provide gcc builtins based generic sqrt functions +- Linux: Use __pthread_attr_setsigmask_internal for timer helper thread +- nptl: Add pthread_attr_setsigmask_np, pthread_attr_getsigmask_np +- nptl: Make pthread_attr_t dynamically extensible +- nptl: Destroy the default thread attribute as part of freeres +- nptl: Change type of __default_pthread_attr +- nptl: Use __pthread_attr_setaffinity_np in pthread_getattr_np +- nptl: Use __pthread_getattr_default_np in pthread_create +- nptl: Add internal alias __pthread_getattr_default_np +- htl: Fix gsync_wait symbol exposition +- htl: Make pthread_cond_destroy wait for threads to be woken +- htl: Enable more cond tests +- tst-cond11: Fix build with _SC_MONOTONIC_CLOCK > 0 +- mbstowcs: Document, test, and fix null pointer dst semantics (Bug 25219) +- build: Use FAIL_EXIT1 () on failure to exec child [BZ #23990] +- manual: Fix backtraces code example [BZ #10441] +- hurd: Fix fexecve +- i386: Remove unused file sysdeps/unix/i386/sysdep.S +- hurd: fix ptsname error when called on a non-tty +- hurd: Fix fdopendir checking for directory type +- i386: Remove NO_TLS_DIRECT_SEG_REFS handling +- Hurd: Move internals into wrapper header +- Hurd: Use __sigmask in favor of deprecated sigmask +- hurd: Fix pselect atomicity +- elf: Remove extra hwcap mechanism from ldconfig +- elf: Do not read hwcaps from the vDSO in ld.so +- linux: Use internal DIR locks when accessing filepos on telldir +- Update i386 libm-test-ulps +- htl: Add clock variants +- signal: Deprecate additional legacy signal handling functions +- elf: Turn _dl_printf, _dl_error_printf, _dl_fatal_printf into functions +- x86: Update Intel Atom processor family optimization +- elf.h: add aarch64 property definitions +- elf.h: Add PT_GNU_PROPERTY +- : Add libpthread hidden alias support +- nptl: Use __pthread_attr_copy in pthread_setattr_default_np +- nptl: Use __pthread_attr_copy in pthread_getattr_default_np (bug 25999) +- nptl: Add __pthread_attr_copy for copying pthread_attr_t objects +- nptl: Make __pthread_attr_init, __pthread_attr_destroy available internally +- nptl: Move pthread_gettattr_np into libc +- nptl: Move pthread_getaffinity_np into libc +- nptl: Move pthread_attr_setaffinity_np into libc +- nptl: Replace some stubs with the Linux implementation +- Linux: Add missing handling of tai field to __ntp_gettime64 +- Mention GCC 10 attribute access. +- y2038: Replace __clock_gettime with __clock_gettime64 +- manual: Add missing section and node for clockid_t wait functions +- y2038: linux: Provide __ntp_gettimex64 implementation +- y2038: linux: Provide __ntp_gettime64 implementation +- y2038: Provide conversion helpers for struct __ntptimeval64 +- y2038: Introduce struct __ntptimeval64 - new internal glibc type +- y2038: linux: Provide __adjtime64 implementation +- y2038: linux: Provide ___adjtimex64 implementation +- y2038: linux: Provide __clock_adjtime64 implementation +- ldconfig: Default to the new format for ld.so.cache +- nss_compat: internal_end*ent may clobber errno, hiding ERANGE [BZ #25976] +- powerpc: Optimized rawmemchr for POWER9 +- x86: Add --enable-cet=permissive +- Remove NO_CTORS_DTORS_SECTIONS macro +- elf: Assert that objects are relocated before their constructors run +- powerpc: Optimized stpcpy for POWER9 +- powerpc: Optimized strcpy for POWER9 +- x86: Move CET control to _dl_x86_feature_control [BZ #25887] +- sunrpc/tst-udp-*: Fix timeout value +- Linux: Remove remnants of the getcpu cache +- Update timezone code from tzcode 2020a +- aarch64: fix strcpy and strnlen for big-endian [BZ #25824] +- locale: Add transliteration for Geresh, Gershayim (U+05F3, U+05F4) +- string: Fix string/tst-memmove-overflow to compile with GCC 7 +- Add arch-syscall.h dependency for generating sysd-syscalls file +- arm: XFAIL string/tst-memmove-overflow due to bug 25620 +- elf: Remove redundant add_to_global_resize_failure call from dl_open_args +- string: Add string/tst-memmove-overflow, a test case for bug 25620 +- support: Add support_blob_repeat_allocate_shared +- nptl: wait for pending setxid request also in detached thread (bug 25942) +- aarch64: Accept PLT calls to __getauxval within libc.so +- Use unsigned constants for ICMP6 filters [BZ #22489] +- Linux: Enhance glibcsyscalls.py to support listing system calls + +* Mon May 11 2020 DJ Delorie - 2.31.9000-13 +- Auto-sync with upstream branch master, + commit 978e8ac39f8ba2d694031e521511da1ae803ccfc. +- Suppress GCC 10 true positive warnings [BZ #25967] +- POWER: Add context-synchronizing instructions to pkey_write [BZ #25954] +- hurd: Add missing sigstate members initialization +- x86-64: Use RDX_LP on __x86_shared_non_temporal_threshold [BZ #25966] +- linux: Remove assembly umount2 implementation +- signal: Use for sigemptyset, sigfillset +- ckb_IQ, or_IN locales: Add missing reorder-end keywords +- semaphore: consolidate arch headers into a generic one +- Use GCC 10 branch in build-many-glibcs.py. +- Document the internal _ and N_ macros +- y2038: Provide conversion helpers for struct __timex64 +- y2038: Introduce struct __timex64 - new internal glibc type +- y2038: include: Move struct __timeval64 definition to a separate file +- y2038: nscd: Modify nscd_helper to use __clock_gettime64 +- y2038: inet: Convert inet deadline to support 64 bit time +- y2038: hurd: Provide __clock_gettime64 function +- y2038: Export __clock_gettime64 to be usable in other libraries +- manual: Document the O_NOFOLLOW open flag +- powerpc64le/power9: guard power9 strcmp against rtld usage [BZ# 25905] +- float128: use builtin_signbitf128 always +- improve out-of-bounds checking with GCC 10 attribute access [BZ #25219] +- nios2: delete sysdeps/unix/sysv/linux/nios2/kernel-features.h +- powerpc: Rename argN to _argN in LOADARGS_N [BZ #25902] +- locale/tst-localedef-path-norm: Don't create $(complocaledir) +- support: Set errno before testing it. +- localedef: Add tests-container test for --no-hard-links. +- test-container: Support $(complocaledir) and mkdirp. +- i386: Remove unused variable in sysdeps/x86/cacheinfo.c +- Add a C wrapper for prctl [BZ #25896] +- powerpc64le: Enable support for IEEE long double +- powerpc64le: blacklist broken GCC compilers (e.g GCC 7.5.0) +- powerpc64le: bump binutils version requirement to >= 2.26 +- powerpc64le: raise GCC requirement to 7.4 for long double transition +- Rename __LONG_DOUBLE_USES_FLOAT128 to __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI +- ldbl-128ibm-compat: workaround GCC 9 C++ PR90731 +- x86: Add the test case of __get_cpu_features support for Zhaoxin processors +- x86: Add cache information support for Zhaoxin processors +- x86: Add CPU Vendor ID detection support for Zhaoxin processors +- Update translations +- Add C wrappers for process_vm_readv/process_vm_writev [BZ #25810] +- generic/typesizes.h: Add support for 32-bit arches with 64-bit types +- semctl: Remove the sem-pad.h file +- bits/sem.h: Split out struct semid_ds +- Mark unsigned long arguments with U in more syscalls [BZ #25810] +- elf: Add initial flag argument to __libc_early_init +- Add SYSCALL_ULONG_ARG_[12] to pass long to syscall [BZ #25810] +- Makeconfig: Use $(error ...) to output error message +- manual: Fix typos in the fexecve description +- misc: Remove sstk from the autogenerated system call list +- Remove unused floating-point configuration from gmp-impl.h. +- support: Implement key create/delete +- nptl/tst-setuid1-static: Improve isolation from system objects +- Increase the timeout of locale/tst-localedef-path-norm +- Use 2020 as copyright year. +- misc: Turn sstk into a compat symbol +- manual: Document the fexecve function +- nptl: Start new threads with all signals blocked [BZ #25098] +- localedef: Add verbose messages for failure paths. +- Remove most gmp-mparam.h headers. +- elf: Implement __libc_early_init +- elf: Introduce +- Add a syscall test for [BZ #25810] +- elf: Support lld-style link map for librtld.map +- signal: Only handle on NSIG signals on signal functions (BZ #25657) +- linux: Use pthread_sigmask on sigprocmask +- ia64: Remove sigprocmask/sigblock objects from libpthread +- nptl: Move pthread_sigmask implementation to libc +- Bug 25819: Update to Unicode 13.0.0 + +* Wed Apr 29 2020 Florian Weimer - 2.31.9000-12 +- nss_db.x86_64 should install nss_db.i686 if glibc.i686 is installed (#1807821) +- Likewise for nss_hesiod. + +* Mon Apr 27 2020 Florian Weimer - 2.31.9000-11 +- Introduce glibc-headers-x86, glibc-headers-s390 packages (#1828332) +- Remove the glibc-headers package + +* Mon Apr 20 2020 DJ Delorie - 2.31.9000-10 +- Auto-sync with upstream branch master, + commit 0798b8ecc8da8667362496c1217d18635106c609. +- ARC: Update syscall-names.list for ARC specific syscalls +- Revert "x86_64: Add SSE sfp-exceptions" +- provide y2038 safe socket constants for default/asm-generic ABI +- x86_64: Add SSE sfp-exceptions +- Remove __NO_MATH_INLINES +- i686: Add INTERNAL_SYSCALL_NCS 6 argument support +- Reset converter state after second wchar_t output (Bug 25734) +- Fix typo in posix/tst-fnmatch.input (Bug 25790) + +* Wed Apr 15 2020 Patsy Griffin - 2.31.9000-9 +- Auto-sync with upstream branch master, + commit 076f09afbac1aa57756faa7a8feadb7936a724e4. +- Linux: Remove and the sysctl function +- posix: Add wait4 test case +- linux: wait4: Fix incorrect return value comparison +- hurd: add mach_print function +- x32: Properly pass long to syscall [BZ #25810] +- Add GRND_INSECURE from Linux 5.6 to sys/random.h +- Update kernel version to 5.6 in tst-mman-consts.py. + +* Wed Apr 15 2020 Florian Weimer - 2.31.9000-8 +- nsswitch.conf: don't add sss to shadow line + +* Wed Apr 08 2020 Carlos O'Donell - 2.31.9000-7 +- Auto-sync with upstream branch master, + commit b1caa144c74678097cada5a54eda2996bb459d8f. +- Update mips libm-test-ulps +- Update alpha libm-test-ulps +- Update ia64 libm-test-ulps +- Update sparc libm-test-ulps +- Update arm libm-test-ulps +- Update aarch64 libm-test-ulps +- Updates to the shn_MM locale [BZ #25532] +- powerpc: Update ULPs and xfail more ibm128 outputs +- i386: Remove build support for GCC older than GCC 6 +- oc_FR locale: Fix spelling of April (bug 25639) +- Update hppa libm-test-ulps +- y2038: linux: Provide __mq_timedreceive_time64 implementation +- y2038: linux: Provide __mq_timedsend_time64 implementation +- y2038: include: Move struct __timespec64 definition to a separate file +- malloc: ensure set_max_fast never stores zero [BZ #25733] +- powerpc64le: enforce non-specific long double in .gnu.attributes section +- powerpc64le: workaround ieee long double / _Float128 stdc++ bug +- powerpc64le: Enforce -mabi=ibmlongdouble when -mfloat128 used +- powerpc64le/multiarch: don't generate strong aliases for fmaf128-ppc64 +- ldbl-128ibm: simplify iscanonical.h +- i386: Disable check_consistency for GCC 5 and above [BZ #25788] +- Add IPPROTO_ETHERNET and IPPROTO_MPTCP from Linux 5.6 to netinet/in.h. +- Update syscall lists for Linux 5.6. +- elf: Implement DT_AUDIT, DT_DEPAUDIT support [BZ #24943] +- elf: Simplify handling of lists of audit strings +- support: Change xgetline to return 0 on EOF +- nptl: Remove x86_64 cancellation assembly implementations [BZ #25765] +- aarch64: update bits/hwcap.h +- Add tests for Safe-Linking +- S390: Regenerate ULPs. +- sysv/alpha: Use generic __timeval32 and helpers +- linux: Use long time_t for wait4/getrusage +- resource: Add a __rusage64 struct +- linux: Use long time_t __getitimer/__setitimer +- sysv: Define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 +- math: Add inputs that yield larger errors for float type (x86_64) + +* Tue Mar 31 2020 DJ Delorie - 2.31.9000-6 +- Auto-sync with upstream branch master, + commit 49c3c37651e2d2ec4ff8ce21252bbbc08a9d6639. +- Fix alignment bug in Safe-Linking +- Typo fixes and CR cleanup in Safe-Linking +- Use Linux 5.6 and GMP 6.2.0 in build-many-glibcs.py. +- Add new file missed in previous hppa commit. +- powerpc: Add support for fmaf128() in hardware +- Fix data race in setting function descriptors during lazy binding on hppa. +- sparc: Move __fenv_{ld,st}fsr to fenv-private.h +- x86: Remove feraiseexcept optimization +- math: Remove fenvinline.h +- hurd: Make O_TRUNC update mtime/ctime +- Add Safe-Linking to fastbins and tcache +- Add benchtests for roundeven and roundevenf. +- time: Add a __itimerval64 struct +- time: Add a timeval with a 32-bit tv_sec and tv_usec +- sysv/linux: Rename alpha functions to be alpha specific +- ARC: add definitions to elf/elf.h +- powerpc64: apply -mabi=ibmlongdouble to special files +- powerpc64le: add -mno-gnu-attribute to *f128 objects and difftime +- Makeconfig: sandwich gnulib-tests between libc/ld linking of tests +- powerpc64le: Ensure correct ldouble compiler flags are used +- Fix tests which expose ldbl -> _Float128 redirects +- ldbl-128ibm-compat: PLT redirects for using ldbl redirects internally + +* Wed Mar 25 2020 Patsy Franklin - 2.31.9000-5 +- Auto-sync with upstream branch master, + commit 4eda036f5b897fa8bc20ddd2099b5a6ed4239dc9. +- stdlib: Move tst-system to tests-container +- support/shell-container.c: Add builtin kill +- support/shell-container.c: Add builtin exit +- support/shell-container.c: Return 127 if execve fails +- Add NEWS entry for CVE-2020-1751 (bug 25423) +- posix: Fix system error return value [BZ #25715] +- y2038: fix: Add missing libc_hidden_def attribute for some syscall wrappers +- Extended Char Intro: Use getwc in example (Bug 25626) +- stdio: Add tests for printf multibyte convertion leak [BZ#25691] +- stdio: Remove memory leak from multibyte convertion [BZ#25691] +- Add NEWS entry for CVE-2020-1752 (bug 25414) +- math: Remove inline math tests +- Remove __LIBC_INTERNAL_MATH_INLINES +- math: Remove mathinline +- m68k: Remove mathinline.h +- oc_FR locale: Fix spelling of Thursday (bug 25639) +- x86: Remove ARCH_CET_LEGACY_BITMAP [BZ #25397] +- Fix build with GCC 10 when long double = double. +- nscd/cachedumper.c : fix whitespace +- Fix nscd/cachedumper.c compile errors +- manual: Fix inconsistent declaration of wcsrchr [BZ #24655] +- nscd: add cache dumper + +* Fri Mar 13 2020 Patsy Franklin - 2.31.9000-4 +- Auto-sync with upstream branch master, + commit 2de7fe62534b7a6461c633114f03e9dff394f5f7. +- parse_tunables: Fix typo in comment +- ldconfig: trace origin paths with -v +- test-container: print errno when execvp fails +- [AArch64] Improve integer memcpy +- Add NEWS entry for CVE-2020-10029 (bug 25487) +- gcc PR 89877: miscompilation due to missing cc clobber in longlong.h macros +- mips: Fix wrong INTERNAL_SYSCALL_ERROR_P check from bc2eb9321e +- elf: Fix wrong indentation from commit eb447b7b4b +- y2038: linux: Provide __futimesat64 implementation +- y2038: linux: Provide __lutimes64 implementation +- y2038: linux: Provide __futimes64 implementation +- y2038: fix: Add missing libc_hidden_def for __futimens64 +- sparc: Move sigreturn stub to assembly +- ldbl-128ibm: Let long double files have specific compiler flags +- ldbl-128ibm-compat: Add tests for IBM long double functions +- powerpc: Fix feraiseexcept and feclearexcept macros +- arm: Fix softp-fp Implies (BZ #25635) +- Remove reference of --without-fp on configure +- linux/sysipc: Include linux/posix_types.h for __kernel_mode_t +- Improve IFUNC check [BZ #25506] +- linux: Clear mode_t padding bits (BZ#25623) +- linux: Remove aarch64 ipc_priv.h +- Linux: Use __fstatat64 in fchmodat implementation +- Linux: Use AT_FDCWD in utime, utimes when calling utimensat +- S390: Remove backchain-based fallback and use generic backtrace.c. +- manual: Fix wrong declaration of wcschr [BZ #24654] +- manual: Fix typo in parse_printf_format example [BZ #24638] + +* Thu Mar 5 2020 Florian Weimer - 2.31.9000-3 +- Emergency patch for broken utimes/utime functions + +* Tue Mar 03 2020 Patsy Franklin - 2.31.9000-2 +- Auto-sync with upstream branch master, + commit 78c9d0c6efabe2067ef7f93cd36325f54c60adc2. +- Update translations +- Convert Python scripts to Python 3 +- alpha: Do not build with -fpic +- y2038: linux: Provide __utime64 implementation +- y2038: linux: Provide __utimes64 implementation +- y2038: Introduce struct __utimbuf64 - new internal glibc type +- microblaze: vfork is always available +- m68k: getpagesize syscall number is always available +- Linux: epoll_pwait syscall number is always available +- x86_64: Do not define __NR_semtimedop in +- ia64: Do not define __NR_semtimedop in +- Linux: open_by_handle_at syscall number is always available +- Linux: set_robust_list syscall number is always available +- Linux: pciconfig_iobase syscall number is always available on alpha +- Linux: getdents64 syscall number is always available on MIPS +- Linux: Clean up preadv2, pwritev2 system call names +- Linux: exit_group syscall number is always available +- Linux: set_tid_address syscall number is always available +- Linux: pkey_mprotect syscall number is always available +- Linux: rt_sigqueueinfo syscall number is always available +- Linux: getrandom syscall number is always available +- Linux: Clean up preadv, pwritev system call names +- Linux: Clean up pread64/pwrite64 system call names +- Linux: sigaltstack syscall number is always available +- Linux: sched_getaffinity syscall number is always available +- Linux: sched_setaffinity syscall number is always available +- Linux: statx syscall number is always available +- Linux: mq_* syscall numbers are always available +- Linux: mlock2 syscall number is always available +- Linux: copy_file_range syscall number is always available +- Linux: renameat2 syscall number is always available +- build-many-glibcs.py: Add list-compilers, list-glibcs commands +- build-many-glibcs.py: Add --shallow option +- Fixed typo in run_command_array() in support/shell-container.c +- Add missing libc_hidden_def for __utimensat64 +- elf: Add elf/check-wx-segment, a test for the presence of WX segments +- i386: Use comdat instead of .gnu.linkonce for i386 setup pic register (BZ #20543) +- ldbl-128ibm-compat: link tst-ldbl-efgcvt against loader too +- ldbl-128ibm-compat: enforce ibm128 on compat tests +- ldbl-128ibm-compat: Provide nexttoward functions +- ldbl-128ibm-compat: Provide a significand implementation +- ldbl-128ibm-compat: Redirect complex math functions +- ldbl-128ibm-compat: Redirect long double functions to f128/ieee128 functions +- posix: Remove posix waitid +- posix: Refactor tst-waitid (BZ #14666) +- support: Add support_process_state_wait +- malloc/tst-mallocfork2: Kill lingering process for unexpected failures + +* Wed Feb 26 2020 Patsy Franklin - 2.31.9000-1 +- Auto-sync with upstream branch master, + commit 758599bc9dcc5764e862bd9e1613c5d1e6efc5d3. +- elf: Apply attribute_relro to pointers in elf/dl-minimal.c +- powerpc: Refactor fenvinline.h +- nss_nis: Use NSS_DECLARE_MODULE_FUNCTIONS +- csu: Use ELF constructor instead of _init in libc.so +- ldbl-128ibm: make ieee754.h work with IEEE 128 long double +- ldbl-128ibm-compat: fixup subdir location of several funcs +- ldbl-128ibm-compat: enforce correct abi flags on internal file +- ldbl-128ibm-compat: Provide ieee128 symbols to narrow functions +- Undefine redirections after long double definition on __LDBL_COMPAT [BZ #23294] +- nios2: Fix Linux kABI for syscall return +- Fix use-after-free in glob when expanding ~user (bug 25414) +- nptl: Move pthread_setschedparam implementation into libc +- nptl: Move pthread_getschedparam implementation into libc +- Add hidden prototypes for __sched_getparam, __sched_getscheduler +- nptl: Move pthread_cond_init implementation into libc +- nptl: Move pthread_cond_destroy implementation into libc +- nptl: Move pthread_condattr_init implementation into libc +- nptl: Move pthread_condattr_destroy implementation into libc +- nptl: Move pthread_attr_setscope implementation into libc +- nptl: Move pthread_attr_getscope implementation into libc +- nptl: Move pthread_attr_setschedpolicy implementation into libc +- nptl: Move pthread_attr_getschedpolicy implementation into libc +- nptl: Sort routines list in Makefile alphabetically +- nptl: Use .NOTPARALLEL in Makefile only if actually running tests +- Block all signals on timer_create thread (BZ#10815) +- Fix tst-pkey expectations on pkey_get [BZ #23202] +- y2038: linux: Provide __gettimeofday64 implementation +- Linux: Work around kernel bugs in chmod on /proc/self/fd paths [BZ #14578] +- Introduce and ELF_INITFINI for all architectures +- mips: Fix bracktrace result for signal frames +- Move implementation of into a C file +- : Add type safety and port to Hurd +- Prepare redirections for IEEE long double on powerpc64le +- conform/conformtest.py: Extend tokenizer to cover character constants +- stdlib: Reduce namespace pollution in +- x86: Avoid single-argument _Static_assert in +- x86 tls: Use _Static_assert for TLS access size assertion +- htl: Link internal htl tests against libpthread +- pthread: Fix building tst-robust8 with nptl +- pthread: Move robust mutex tests from nptl to sysdeps/pthread +- htl: Remove stub warning for pthread_mutexattr_setpshared +- htl: Add missing functions and defines for robust mutexes +- htl: Only check pthread_self coherency when DEBUG is set +- hurd: Add THREAD_GET/SETMEM/_NC +- hurd tls: update comment about fields at the end of tcbhead +- ld.so: Do not export free/calloc/malloc/realloc functions [BZ #25486] +- Remove weak declaration of free from +- elf: Extract _dl_sym_post, _dl_sym_find_caller_map from elf/dl-sym.c +- elf: Introduce the rtld-stubbed-symbols makefile variable +- arm: fix use of INTERNAL_SYSCALL_CALL +- linux: Remove INTERNAL_SYSCALL_DECL +- nptl: Remove ununsed pthread-errnos.h rule +- linux: Consolidate INLINE_SYSCALL +- s390: Consolidate Linux syscall definition +- riscv: Avoid clobbering register parameters in syscall +- microblaze: Avoid clobbering register parameters in syscall +- nios2: Use Linux kABI for syscall return +- mips: Use Linux kABI for syscall return +- mips64: Consolidate Linux sysdep.h +- ia64: Use Linux kABI for syscall return +- alpha: Refactor syscall and Use Linux kABI for syscall return +- sparc: Avoid clobbering register parameters in syscall +- sparc: Use Linux kABI for syscall return +- powerpc: Use Linux kABI for syscall return +- powerpc: Consolidate Linux syscall definition +- i386: Enable CET support in ucontext functions +- tst-clone3: Use __NR_futex_time64 if we don't have __NR_futex +- powerpc64: Add memory protection key support [BZ #23202] +- ldbl-128ibm-compat: Provide a scalb implementation +- Add a generic scalb implementation +- Adjust thresholds in Bessel function implementations (bug 14469). +- resolv: Fix ABA race in /etc/resolv.conf change detection [BZ #25420] +- resolv: Enhance __resolv_conf_load to capture file change data +- resolv: Fix file handle leak in __resolv_conf_load [BZ #25429] +- resolv: Use in __resolv_conf_get_current +- Add STATX_ATTR_VERITY from Linux 5.5 to bits/statx-generic.h. +- Use gcc -finput-charset=ascii for check-installed-headers. +- math/test-sinl-pseudo: Use stack protector only if available +- alpha: Fix static gettimeofday symbol +- nss_nisplus: Use NSS_DECLARE_MODULE_FUNCTIONS +- nss_dns: Use NSS_DECLARE_MODULE_FUNCTIONS +- nss_files: Use NSS_DECLARE_MODULE_FUNCTIONS +- nss_db: Use NSS_DECLARE_MODULE_FUNCTIONS +- nss_compat: Use NSS_DECLARE_MODULE_FUNCTIONS +- nss_hesiod: Use NSS_DECLARE_MODULE_FUNCTIONS +- nss: Add function types and NSS_DECLARE_MODULE_FUNCTIONS macro to +- nss_compat: Do not use nss_* names for function pointers +- Avoid ldbl-96 stack corruption from range reduction of pseudo-zero (bug 25487). +- mips: Fix argument passing for inlined syscalls on Linux [BZ #25523] +- mips: Use 'long int' and 'long long int' in linux syscall code +- alpha: Use generic gettimeofday implementation +- sunrpc: Properly clean up if tst-udp-timeout fails +- elf: avoid stack allocation in dl_open_worker +- elf: avoid redundant sort in dlopen +- elf: Allow dlopen of filter object to work [BZ #16272] +- Update translations +- Rename RWF_WRITE_LIFE_NOT_SET to RWH_WRITE_LIFE_NOT_SET following Linux 5.5. +- S390: Fix non-ascii character in fenv.h. +- io: Add io/tst-lchmod covering lchmod and fchmodat +- Linux: Emulate fchmodat with AT_SYMLINK_NOFOLLOW using O_PATH [BZ #14578] +- io: Implement lchmod using fchmodat [BZ #14578] +- Add internal header file +- elf.h: Add R_RISCV_IRELATIVE +- Fix typo in the name for Wednesday in Kurdish [BZ #9809] +- debug: Add missing locale dependencies of fortify tests +- htl C11 threads: Avoid pthread_ symbols visibility in static library +- hurd: Add __pthread_spin_wait and use it +- ldbl-128ibm-compat: set PRINTF_CHK flag in {,v}sprintf_chk +- Use --disable-gdbserver in build-many-glibcs.py. +- Improve random memcpy benchmark +- nptl: update default pthread-offsets.h +- nptl: add missing pthread-offsets.h +- htl: Avoid a local plt for pthread_self +- pthread: Move some join tests from nptl to sysdeps/pthread +- htl: Make joining self return EDEADLK +- pthread: Move most barrier tests from nptl to sysdeps/pthread +- htl: Fix barrier_wait with one thread +- pthread: Move most sem tests from nptl to sysdeps/pthread +- htl: Make sem_wait/sem_timedwait interruptible +- htl: Make sem_open return ENOSYS +- htl: Add support for semaphore maximum value +- pthread: Move key tests from nptl to sysdeps/pthread +- hurd: Make nanosleep a cancellation point +- htl: Add support for libc cancellation points +- htl: clean __pthread_get_cleanup_stack hidden proto +- htl: XFAIL rwlock tests which need pshared support +- pthread: Move some rwlock tests from nptl to sysdeps/pthread +- pthread: Move most once tests from nptl to sysdeps/pthread +- htl: support cancellation during pthread_once +- pthread: Move most cond tests from nptl to sysdeps/pthread +- htl: make pthread_cond_destroy return EBUSY on waiters +- htl: Report missing mutex lock on pthread_cond_*wait +- htl: Fix linking static testcases +- htl: Move __register_atfork from forward to own file +- pthread: Move some attr tests from nptl to sysdeps/pthread +- htl: Fix default guard size +- pthread: Move most mutex tests from nptl to sysdeps/pthread +- pthread: Move spin tests from nptl to sysdeps/pthread +- htl: make pthread_spin_lock really spin +- htl: Avoid check-installed-headers looking at inlines +- htl: Do not put spin_lock inlines in public headers +- pthread: Move basic tests from nptl to sysdeps/pthread +- htl: Fix calling pthread_exit in the child of a fork +- x86: Remove and use the generic version +- C11 threads: Move implementation to sysdeps/pthread +- htl: Add C11 threads types definitions +- C11 threads: make thrd_join more portable +- C11 threads: Fix thrd_t / pthread_t compatibility assertion +- C11 threads: do not require PTHREAD_DESTRUCTOR_ITERATIONS +- nptl: Move nptl-specific types to separate header +- htl: Make __PTHREAD_ONCE_INIT more flexible +- htl: Add support for C11 threads behavior +- htl: Add missing internal functions declarations +- htl: Rename _pthread_mutex_init/destroy to __pthread_mutex_init/destroy +- htl: Move internal mutex/rwlock symbols to GLIBC_PRIVATE +- Linux: Add io/tst-o_path-locks test +- support: Add the xlstat function +- htl: Remove duplicate files +- htl: Remove unused files +- resolv: Fix CNAME chaining in resolv/tst-resolv-ai_idn-common.c +- Remove a comment claiming that sin/cos round correctly. +- y2038: linux: Provide __settimeofday64 implementation +- y2038: Provide conversion helpers for struct __timeval64 +- y2038: alpha: Rename valid_timeval64_to_timeval to valid_timeval_to_timeval32 +- y2038: alpha: Rename valid_timeval_to_timeval64 to valid_timeval32_to_timeval +- y2038: Introduce struct __timeval64 - new internal glibc type +- y2038: Define __suseconds64_t type to be used with struct __timeval64 +- Update kernel version to 5.5 in tst-mman-consts.py. +- Update syscall lists for Linux 5.5. +- NEWS: Set fill-column hint to 72 +- y2038: linux: Provide __timespec_get64 implementation +- Use binutils 2.34 branch in build-many-glibcs.py. +- Run nptl/tst-pthread-getattr in a container +- test-container: add exec, cwd +- Use Linux 5.5 in build-many-glibcs.py. +- rt: avoid PLT setup in timer_[sg]ettime +- Update or_IN collation [BZ #22525] +- Fix ckb_IQ [BZ #9809] +- Add new locale: ckb_IQ (Kurdish/Sorani spoken in Iraq) [BZ #9809] +- list-fixed-bugs.py: Wrap at 72 chars +- y2038: linux: Provide __sched_rr_get_interval64 implementation +- y2038: linux: Provide __timerfd_settime64 implementation +- y2038: linux: Provide __timerfd_gettime64 implementation +- i386: Remove _exit.S +- i386: Use ENTRY/END in assembly codes +- i386-mcount.S: Add _CET_ENDBR to _mcount and __fentry__ +- i386/sub_n.S: Add a missing _CET_ENDBR to indirect jump target +- i386: Don't unnecessarily save and restore EAX, ECX and EDX [BZ# 25262] +- x86: Don't make 2 calls to dlerror () in a row +- Open master for 2.32 development + +* Mon Feb 03 2020 DJ Delorie - 2.31-1 +- Auto-sync with upstream branch release/2.31/master, + commit 9ea3686266dca3f004ba874745a4087a89682617. +- glibc 2.31 release +- Generate ChangeLog.old/ChangeLog.20 for 2.31 +- Add bugs fixed in 2.31 in NEWS +- Update newest tested versions of dependencies in install.texi +- Add more contributors to the manual +- Add note to NEWS about kernel headers dependency on risc-v +- Add Portuguese (Portugal) translation +- Add NEWS entry about 64-bit time_t syscall use on 32-bit targets +- nptl: Avoid using PTHREAD_MUTEX_DEFAULT in macro definition [BZ #25271] + +* Thu Jan 30 2020 Patsy Franklin - 2.30.9000-33 +- Auto-sync with upstream branch master, + commit 352bb99754ae7c83ff1b974f9c52244e974c9410. +- Build raise with -fasynchronous-unwind-tables. +- Fix locale/tst-locale-locpath cross-testing when sshd sets LANG. +- Fix elf/tst-rtld-preload cross-testing. +- Fix cross-testing of tst-ifunc-fault-* tests. +- gitlog-to-changelog: Drop scripts in favour of gnulib version +- Add NEWS entry about the change in handling of PT_GNU_STACK on MIPS +- Fix array overflow in backtrace on PowerPC (bug 25423) +- getaddrinfo: Fix resource leak after strdup failure in gethosts (swbz#25425) + +* Tue Jan 28 2020 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Jan 20 2020 Patsy Franklin - 2.30.9000-31 +- Auto-sync with upstream branch master, + commit 92ce43eef7ac844782d50a8015d977d216fbadec. +- Run bench-timing-type with newly built libc. +- Get rid of Werror=maybe-uninitialized in res_send.c. +- translations: Update translations +- translations: Trim po files using msgattrib +- Update translations +- translations: Run msgmerge when downloading translations +- Fix maybe-uninitialized error on powerpc +- powerpc32: Fix syntax error in __GLRO macro +- Remove incorrect alloc_size attribute from pvalloc (swbz#25401) + +* Fri Jan 17 2020 Florian Weimer - 2.30.9000-30 +- Auto-sync with upstream branch master, + commit 70ba28f7ab2923d4e36ffc9d5d2e32357353b25c: +- Fix tst-pkey.c pkey_alloc return checks and manual +- powerpc: Move cache line size to rtld_global_ro +- powerpc: Initialize rtld_global_ro for static dlopen (swbz#20802) +- Revert outdated translations +- vcs-to-changelog: Add quirk for __nonnull +- elf: Add elf/tst-dlopenfail-2 (swbz#25396, #1395758) +- Clear GL(dl_initfirst) when freeing its link_map (swbz#25396, #1395758) +- Update Translations +- Fix "elf: Add tst-ldconfig-ld_so_conf-update test" on 32bit. +- elf: Add tst-ldconfig-ld_so_conf-update test +- sl_SI locale: Use "." as the thousands separator (swbz#25233) + +* Mon Jan 06 2020 Arjun Shankar - 2.30.9000-29 +- Auto-sync with upstream branch master, + commit cbce69e70dc4b04fefcc7257e593733b8b03856c: +- Multiple locales: Add date_fmt (bug 24054) +- Update libc.pot for 2.31 release +- Add libm_alias_finite for _finite symbols +- Linux: Fix clock_nanosleep time64 check +- linux: Fix vDSO macros build with time64 interfaces +- x86: Make x32 use x86 time implementation +- Remove vDSO support from make-syscall.sh +- linux: Update x86 vDSO symbols +- linux: Update mips vDSO symbols +- linux: Consolidate Linux gettimeofday +- linux: Consolidate time implementation +- elf: Enable relro for static build +- elf: Move vDSO setup to rtld (BZ#24967) +- linux: Add support for clock_gettime64 vDSO +- linux: Optimize fallback 32-bit clock_gettime +- linux: Enable vDSO clock_gettime64 for i386 +- linux: Enable vDSO clock_gettime64 for arm +- linux: Enable vDSO clock_gettime64 for mips +- linux: Add support for clock_getres64 vDSO +- linux: Optimize fallback 32-bit clock_getres +- htl: Use dso_handle.h +- htl: Drop common tcbhead_t definition +- htl: Move pthread_atfork to libc_nonshared.a +- htl: Add __errno_location and __h_errno_location +- hurd: Fix message reception for timer_thread + +* Thu Jan 02 2020 Florian Weimer - 2.30.9000-28 +- Auto-sync with upstream branch master, + commit cc47d5c5f53f6d845ac54698ae8929af15662c44: +- Linux: Use built-in system call tables +- lv_LV locale: Correct the time part of d_t_fmt (swbz#25324) +- km_KH locale: Use "%M" instead of "m" in d_t_fmt (swbz#25323) +- ldbl-128ibm-compat: Do not mix -mabi=*longdouble and -mlong-double-128 +- ldbl-128ibm-compat: Compiler flags for stdio functions +- Do not redirect calls to __GI_* symbols, when redirecting to *ieee128 +- aarch64: add default memcpy version for kunpeng920 +- aarch64: ifunc rename for kunpeng +- aarch64: Modify error-shown comments for strcpy +- linux: Consolidate sigprocmask +- Fix return code for __libc_signal_* functions +- nptl: Remove duplicate internal __SIZEOF_PTHREAD_MUTEX_T (swbz#25241) + +* Thu Dec 26 2019 Carlos O'Donell - 2.30.9000-27 +- Auto-sync with upstream branch master, + commit b8c210bcc74840d24c61d39bde15bea9daf3e271. +- mnw_MM, my_MM, and shn_MM locales: Do not use %Op +- Avoid compat symbols for totalorder in powerpc64le IEEE long double +- ldbl-128ibm-compat: Add *cvt functions +- Refactor *cvt functions implementation (2/2) +- Refactor *cvt functions implementation (1/2) +- Add exception-based flags for wait4 +- aarch64: Optimized memset for Kunpeng processor. +- aarch64: Optimized strlen for strlen_asimd +- aarch64: Add Huawei Kunpeng to tunable cpu list +- aarch64: Optimized implementation of memrchr +- aarch64: Optimized implementation of strnlen +- aarch64: Optimized implementation of strcpy +- aarch64: Optimized implementation of memcmp +- Consolidate wait3 implementations +- Implement waitpid in terms of wait4 +- linux: Use waitid on wait4 if __NR_wait4 is not defined +- Implement wait in terms of waitpid +- nptl: Move waitpid implementation to libc +- nptl: Move wait implementation to libc +- Remove __waitpid_nocancel +- Fix test isolation for elf/tst-ifunc-fault-lazy, elf/tst-ifunc-fault-bindnow +- Fix __libc_signal_block_all on sparc64 +- powerpc: Do not run IFUNC resolvers for LD_DEBUG=unused [BZ #24214] + +* Thu Dec 19 2019 Patsy Franklin - 2.30.9000-26 +- Auto-sync with upstream branch master, + commit 3dcad8158f43d71d5b8f6f317f82952ddf3468f3. +- hurd: Do not make sigprocmask available in ld.so +- build-many-glibcs.py: Do not build C++ PCHs by default +- hurd: Make getrandom honour GRND_NONBLOCK +- tunables: report sbrk() failure +- build-many-glibcs.py: Add mipsisa64r6el-linux-gnu target +- mips: Do not include hi and lo in __SYSCALL_CLOBBERS for R6 +- ldbl-128ibm-compat: Add ISO C99 versions of scanf functions +- ldbl-128ibm-compat: Fix selection of GNU and ISO C99 scanf +- hurd: Fix local PLT +- dlopen: Do not block signals +- dlopen: Rework handling of pending NODELETE status +- dlopen: Fix issues related to NODELETE handling and relocations +- hurd: Fix __close_nocancel_nostatus availability +- hurd: add getrandom and getentropy implementations +- hurd: Implement __close_nocancel_nostatus +- manual: clarify fopen with the x flag +- S390: Use sysdeps/ieee754/dbl-64/wordsize-64 on s390x. +- S390: Implement roundtoint and converttoint and define TOINT_INTRINSICS. +- S390: Implement math-barriers math_opt_barrier and math_force_eval. +- S390: Use libc_fe* macros in fe* functions. +- S390: Implement libc_fe* macros. +- S390: Use convert-to-fixed instruction for llround functions. +- S390: Use convert-to-fixed instruction for lround functions. +- S390: Use convert-to-fixed instruction for llrint functions. +- S390: Use convert-to-fixed instruction for lrint functions. +- S390: Use load-fp-integer instruction for roundeven functions. +- Adjust s_copysignl.c regarding code style. +- Adjust s_ceilf.c and s_ceill.c regarding code style. +- Adjust s_floorf.c and s_floorl.c regarding code style. +- Adjust s_rintf.c and s_rintl.c regarding code style. +- Adjust s_nearbyintf.c and s_nearbyintl.c regarding code style. +- Use GCC builtins for copysign functions if desired. +- Use GCC builtins for round functions if desired. +- Use GCC builtins for trunc functions if desired. +- Use GCC builtins for ceil functions if desired. +- Use GCC builtins for floor functions if desired. +- Use GCC builtins for rint functions if desired. +- Use GCC builtins for nearbyint functions if desired. +- Always use wordsize-64 version of s_round.c. +- Always use wordsize-64 version of s_trunc.c. +- Always use wordsize-64 version of s_ceil.c. +- Always use wordsize-64 version of s_floor.c. +- Always use wordsize-64 version of s_rint.c. +- Always use wordsize-64 version of s_nearbyint.c. +- ldconfig: Do not print a warning for a missing ld.so.conf file +- hurd: Fix using altstack while in an RPC call to be aborted +- Fix failure when CFLAGS contains -DNDEBUG (Bug 25251) + +* Mon Dec 09 2019 DJ Delorie - 2.30.9000-25 +- Auto-sync with upstream branch master, + commit 0487ebed2278b20971af4cabf186fd3681adccf0. +- nptl: Add more missing placeholder abi symbol from nanosleep move +- sysdeps/riscv/start.S: rename .Lload_gp to load_gp (bug 24376) +- y2038: linux: Provide __timer_settime64 implementation +- y2038: linux: Provide __timer_gettime64 implementation +- timer: Decouple x86_64 specific timer_settime from generic Linux implementation +- timer: Decouple x86_64 specific timer_gettime from generic Linux implementation +- time: Introduce glibc's internal struct __itimerspec64 +- Correct range checking in mallopt/mxfast/tcache [BZ #25194] +- misc/test-errno-linux: Handle EINVAL from quotactl +- : Define __CORRECT_ISO_CPP_STRING_H_PROTO for Clang [BZ #25232] +- build-many-glibcs.py: Move sparcv8 to extra_glibcs + +* Thu Dec 5 2019 Florian Weimer - 2.30.9000-24 +- Upstream patches for fallout from dlopen NODELETE changes (#1778344, #1778366) + +* Wed Dec 04 2019 Patsy Franklin - 2.30.9000-23 +- Auto-sync with upstream branch master, + commit ec138c67cbda8b5826a0a2a7ba456408117996dc. +- sysdeps: Add clock_gettime64 vDSO +- Do not use ld.so to open statically linked programs in debugglibc.sh +- Attach to test in container from debugglibc.sh +- Expand $(as-needed) and $(no-as-needed) throughout the build system +- x86: Assume --enable-cet if GCC defaults to CET [BZ #25225] +- ldbl-128ibm-compat: Add tests for strfroml, strtold, and wcstold +- ldbl-128ibm-compat: Add tests for strfmon and strfmon_l +- ldbl-128ibm-compat: Add strfmon_l with IEEE long double format +- ldbl-128ibm-compat: Replace http with https in new files +- elf: Do not run IFUNC resolvers for LD_DEBUG=unused [BZ #24214] +- elf/tst-dlopenfail: Disable --no-as-needed for tst-dlopenfailmod1.so +- hurd: Fix ld.so __access override from libc +- hurd: Fix ld.so __getcwd override from libc +- hurd: Make __sigprocmask GLIBC_PRIVATE +- hurd: Fix renameat2 error +- hurd: make strerror(0) coherent with other ports +- hurd: Fix ld.so link +- Update kernel version to 5.4 in tst-mman-consts.py. +- Update SOMAXCONN value from Linux 5.4. +- Update syscall-names.list for Linux 5.4. +- Fix syntax error in build-many-glibcs.py. +- Define MADV_COLD and MADV_PAGEOUT from Linux 5.4. + +* Mon Dec 2 2019 Florian Weimer - 2.30.9000-22 +- dlopen: Remove incorrect assert in activate_nodelete (#1778344) + +* Thu Nov 28 2019 Florian Weimer - 2.30.9000-21 +- Auto-sync with upstream branch master, + commit e37c2cf299b61ce18f62852f6c5624c27829b610: +- Move _dl_open_check to its original place in dl_open_worker +- Block signals during the initial part of dlopen +- Remove all loaded objects if dlopen fails, ignoring NODELETE (#1395758) +- Avoid late dlopen failure due to scope, TLS slotinfo updates (swbz#25112) +- Avoid late failure in dlopen in global scope update (swbz#25112) +- Lazy binding failures during dlopen/dlclose must be fatal (swbz#24304) +- resolv: Implement trust-ad option for /etc/resolv.conf (#1164339) +- dlsym: Do not determine caller link map if not needed +- libio: Disable vtable validation for pre-2.1 interposed handles (swbz#25203) +- ldbl-128ibm-compat: Add syslog functions +- ldbl-128ibm-compat: Add obstack printing functions +- ldbl-128ibm-compat: Reuse tests for err.h and error.h functions +- ldbl-128ibm-compat: Add error.h functions +- ldbl-128ibm-compat: Add err.h functions +- ldbl-128ibm-compat: Add argp_error and argp_failure +- sparc: Use atomic compiler builtins on sparc +- Remove 32 bit sparc v7 support + +* Wed Nov 27 2019 Arjun Shankar - 2.30.9000-20 +- Auto-sync with upstream branch master, + commit bfdb731438206b0f70fe7afa890681155c30b419: +- rtld: Check __libc_enable_secure for LD_PREFER_MAP_32BIT_EXEC (CVE-2019-19126) +- Introduce DL_LOOKUP_FOR_RELOCATE flag for _dl_lookup_symbol_x +- Enable inlining issignalingf within glibc +- Don't use a custom wrapper macro around __has_include (bug 25189). +- Remove duplicate inline implementation of issignalingf +- misc: Set generic pselect as ENOSYS +- Use DEPRECATED_SCANF macro for remaining C99-compliant scanf functions +- ldbl-128ibm-compat: Add regular/wide character printing printing functions +- ldbl-128ibm-compat: Test double values and positional arguments +- ldbl-128ibm-compat: Add regular/wide character scanning functions +- arm: Fix armv7 selection after 'Split BE/LE abilist' +- Use Linux 5.4 in build-many-glibcs.py. +- sysdeps/posix: Simplify if expression in getaddrinfo +- sysdeps/posix/getaddrinfo: Return early on invalid address family +- ru_UA locale: use copy "ru_RU" in LC_TIME (bug 25044) +- locale: Greek -> ASCII transliteration table [BZ #12031] +- nptl: Cleanup mutex internal offset tests +- nptl: Add tests for internal pthread_rwlock_t offsets +- nptl: Remove rwlock elision definitions +- nptl: Add struct_mutex.h and struct_rwlock.h +- nptl: Add default pthreadtypes-arch.h and pthread-offsets.h +- Compile elf/rtld.c with -fno-tree-loop-distribute-patterns. +- nptl: Fix __PTHREAD_MUTEX_INITIALIZER for !__PTHREAD_MUTEX_HAVE_PREV +- S390: Fix handling of needles crossing a page in strstr z15 ifunc [BZ #25226] + +* Mon Nov 18 2019 Patsy Griffin - 2.30.9000-19 +- Auto-sync with upstream branch master, + commit 2a764c6ee848dfe92cb2921ed3b14085f15d9e79. +- Enhance _dl_catch_exception to allow disabling exception handling +- hurd: Suppress GCC 10 -Warray-bounds warning in init-first.c [BZ #25097] +- linux: Add comment on affinity set sizes to tst-skeleton-affinity.c +- Avoid zero-length array at the end of struct link_map [BZ #25097] +- Introduce link_map_audit_state accessor function +- Properly initialize audit cookie for the dynamic loader [BZ #25157] +- nios2: Work around backend bug triggered by csu/libc-tls.c (GCC PR 92499) +- Redefine _IO_iconv_t to store a single gconv step pointer [BZ #25097] +- Add new script for plotting string benchmark JSON output +- support: Fix support_set_small_thread_stack_size to build on Hurd +- login: Use pread64 in utmp implementation +- Clarify purpose of assert in _dl_lookup_symbol_x +- aarch64: Increase small and medium cases for __memcpy_generic +- login: Introduce matches_last_entry to utmp processing + +* Tue Nov 12 2019 Arjun Shankar - 2.30.9000-18 +- Auto-sync with upstream branch master, + commit cba932a5a9e91cffd7f4172d7e91f9b2efb1f84b: +- nptl: Move nanosleep implementation to libc +- Refactor nanosleep in terms of clock_nanosleep +- nptl: Refactor thrd_sleep in terms of clock_nanosleep +- math: enhance the endloop condition of function handle_input_flag +- hurd: Remove lingering references to the time function +- hurd: Use __clock_gettime in _hurd_select +- login: Remove double-assignment of fl.l_whence in try_file_lock +- nptl: Add missing placeholder abi symbol from nanosleep move +- login: Acquire write lock early in pututline [BZ #24882] +- Remove hppa pthreadP.h +- sysdeps/clock_nanosleep: Use clock_nanosleep_time64 if avaliable +- Fix array bounds violation in regex matcher (bug 25149) +- support: Add support_set_small_thread_stack_size +- linux: Reduce stack size for nptl/tst-thread-affinity-pthread +- y2038: linux: Provide __ppoll64 implementation +- Declare asctime_r, ctime_r, gmtime_r, localtime_r for C2X. +- support: Add xsetlocale function +- libio/tst-fopenloc: Use xsetlocale, xfopen, and xfclose +- Fix clock_nanosleep when interrupted by a signal +- slotinfo in struct dtv_slotinfo_list should be flexible array [BZ #25097] + +* Wed Nov 06 2019 Patsy Franklin - 2.30.9000-17 +- Auto-sync with upstream branch master, + commit 2a0356e1191804d57005e1cfe2a72f019b7a8cce. +- posix: Sync regex with gnulib +- Add mnw language code [BZ #25139] +- Add new locale: mnw_MM (Mon language spoken in Myanmar) [BZ #25139] +- S390: Fp comparison are now raising FE_INVALID with gcc 10. +- linux: pselect: Remove CALL_PSELECT6 macro +- Fix run-one-test so that it runs elf tests +- nptl: Fix niggles with pthread_clockjoin_np +- hppa: Align __clone stack argument to 8 bytes (Bug 25066) +- y2038: linux: Provide __futimens64 implementation +- y2038: linux: Provide __utimensat64 implementation +- nptl: Add pthread_timedjoin_np, pthread_clockjoin_np NULL timeout test +- nptl: Add pthread_clockjoin_np +- manual: Add documentation for pthread_tryjoin_np and pthread_timedjoin_np +- nptl: Convert tst-join3 to use libsupport +- Sync time/mktime.c with gnulib +- Sync timespec-{add,sub} with gnulib +- Sync intprops.h with gnulib +- Refactor adjtimex based on clock_adjtime +- Refactor PI mutexes internal definitions +- Remove pause and nanosleep not cancel wrappers +- nptl: Replace non cancellable pause/nanosleep with futex +- Consolidate lowlevellock-futex.h +- Consolidate futex-internal.h +- Base max_fast on alignment, not width, of bins (Bug 24903) +- Revise the documentation of simple calendar time. +- Make second argument of gettimeofday as 'void *' +- Use clock_gettime to implement gettimeofday. +- Use clock_gettime to implement timespec_get. +- Consolidate and deprecate ftime +- Change most internal uses of time to __clock_gettime. +- Use clock_gettime to implement time. +- Use clock_settime to implement settimeofday. +- Use clock_settime to implement stime; withdraw stime. +- Change most internal uses of __gettimeofday to __clock_gettime. +- Linux/Alpha: don't use timeval32 system calls. +- resolv/tst-idna_name_classify: Isolate from system libraries +- hurd: Support for file record locking +- Comment out initgroups from example nsswitch.conf (Bug 25146) + +* Mon Oct 28 2019 DJ Delorie - 2.30.9000-16 +- Auto-sync with upstream branch master, + commit 177a3d48a1c74d7b2cd6bfd48901519d25a5ecad. +- y2038: linux: Provide __clock_getres64 implementation +- time: Introduce function to check correctness of nanoseconds value +- Add Transliterations for Unicode Misc. Mathematical Symbols-A/B [BZ #23132] +- Install charmaps uncompressed in testroot +- Add wait-for-debugger test harness hooks +- Define __STATFS_MATCHES_STATFS64 +- hurd: Fix build after __pread64 usage in the dynamic loader +- sysdeps/stat: Handle 64-bit ino_t types on 32-bit hosts +- S390: Remove not needed stack frame in syscall function. + +* Fri Oct 25 2019 DJ Delorie - 2.30.9000-15 +- Add *.mo files to all-langpacks (#1624528) + +* Thu Oct 24 2019 DJ Delorie - 2.30.9000-14 +- Add Requires on basesystem for main package (#1757267) +- Add Requires on coreutils for glibc-headers (uses rm) + +* Wed Oct 23 2019 Arjun Shankar - 2.30.9000-13 +- Auto-sync with upstream branch master, + commit 7db1fe38de21831d53ceab9ae83493d8d1aec601: +- Include explicitly in Linux clock_settime.c +- Remove math-finite.h +- Remove finite-math tests +- Remove x64 _finite tests and references +- Fix testroot.pristine creation copying dynamic linker + +* Fri Oct 18 2019 Patsy Franklin - 2.30.9000-12 +- Auto-sync with upstream branch master, + commit ef21bd2d8c6805c0c186a01f7c5039189f51b8c4. +- loadarchive: guard against locale-archive corruption (Bug #25115) +- Undo accidental commit to ChangeLog.19. +- nptl: Document AS-safe functions in cancellation.c. +- elf: Use nocancel pread64() instead of lseek()+read() +- Add nocancel version of pread64() +- Add run-one-test convenience target and makefile help text +- Update sysvipc kernel-features.h files for Linux 5.1 +- S390: Add new s390 platform z15. +- nptl: SIGCANCEL, SIGTIMER, SIGSETXID are always defined +- nptl/tst-cancel25 needs to be an internal test +- Remove libc_hidden_def from __semtimedop stub +- sysvipc: Implement semop based on semtimedop +- ipc: Refactor sysvipc internal definitions +- Rename and split elf/tst-dlopen-aout collection of tests +- dlfcn: Remove remnants of caller sensitivity from dlinfo +- ldconfig: handle .dynstr located in separate segment (bug 25087) +- ldd: Print "not a dynamic executable" on standard error [BZ #24150] +- Add PTRACE_GET_SYSCALL_INFO from Linux 5.3 to sys/ptrace.h. +- Move ChangeLog to ChangeLog.old/ChangeLog.19 +- manual: Remove warning in the documentation of the abort function +- sysvipc: Set ipc_perm mode as mode_t (BZ#18231) +- Simplify note processing +- syscall-names.list: fix typos in comment +- y2038: linux: Provide __clock_settime64 implementation +- posix: Use posix_spawn for wordexp +- mips: Do not malloc on getdents64 fallback +- sparc: Assume GOTDATA support in the toolchain +- : Remove wrong comment about getdents64 declaration +- ChangeLog: Remove leading spaces before tabs and trailing whitespace +- Make tst-strftime2 and tst-strftime3 depend on locale generation +- posix/tst-wordexp-nocmd: Fix diagnostics output in test +- wordexp: Split out command execution tests from posix/wordexp-test + +* Tue Oct 08 2019 Arjun Shankar - 2.30.9000-11 +- Adjust glibc-rh741105.patch. +- Auto-sync with upstream branch master, + commit ca602c1536ce2777f95c07525f3c42d78812e665: +- Add TCP_TX_DELAY from Linux 5.3 to netinet/tcp.h +- [powerpc] fenv_private.h clean up +- [powerpc] libc_feupdateenv_test: optimize FPSCR access +- [powerpc] __fesetround_inline optimizations +- [powerpc] Rename fegetenv_status to fegetenv_control +- [powerpc] libc_feholdsetround_noex_ppc_ctx: optimize FPSCR write +- [powerpc] Rename fesetenv_mode to fesetenv_control +- Add helper script for glibc debugging +- Update bits/mman.h constants and tst-mman-consts.py for Linux 5.3. +- y2038: Provide conversion helpers for struct __timespec64 +- Use binutils 2.33 branch in build-many-glibcs.py. +- Sync "language", "lang_name", "territory", "country_name" with CLDR/langtable +- Split up endian.h to minimize exposure of BYTE_ORDER. +- time: Add padding for the timespec if required +- Enable passing arguments to the inferior in debugglibc.sh +- [powerpc] No need to enter "Ignore Exceptions Mode" +- Y2038: Include proper header to provide support for struct timeval on HURD +- Disable warnings in string/tester.c at top level. +- string/endian.h: Restore the __USE_MISC conditionals +- Disable -Wmaybe-uninitialized for total_deadline in sunrpc/clnt_udp.c. +- ChangeLog update from my last commit +- nptl: Move pthread_attr_setinheritsched implementation into libc. +- elf: Never use the file ID of the main executable [BZ #24900] +- elf: Assign TLS modid later during dlopen [BZ #24930] +- nptl: Move pthread_attr_getschedparam implementation into libc +- riscv: Remove support for variable page sizes +- nptl: Move pthread_attr_setschedparam implementation into libc + +* Fri Sep 27 2019 Zbigniew Jędrzejewski-Szmek - 2.30.9000-10 +- Use full locale names in langpack descriptions (#1651375) + +* Thu Sep 26 2019 Patsy Franklin - 2.30.9000-9 +- Auto-sync with upstream branch master, + commit 464cd3a9d5f505d92bae9a941bb75b0d91ac14ee. +- y2038: Introduce struct __timespec64 - new internal glibc type +- auto-changelog: Remove latin1 from codecs +- Set the expects flags to clock_nanosleep +- Fix tst-sigcontext-get_pc rule name from a43565ac447b1 +- inet/net-internal.h: Fix uninitalised clntudp_call() variable +- Fix vDSO initialization on arm and mips +- Script to generate ChangeLog-like output from git log +- [powerpc] SET_RESTORE_ROUND optimizations and bug fix +- Fix building support_ptrace.c on i686-gnu. +- S390: Use _HP_TIMING_S390_H instead of _HP_TIMING_H. +- Update syscall-names.list for Linux 5.3. +- Use Linux 5.3 in build-many-glibcs.py. +- S390: Add support for HP_TIMING_NOW. +- Fix RISC-V vfork build with Linux 5.3 kernel headers. +- Add UNSUPPORTED check in elf/tst-pldd. +- sparc64: Use linux generic time implementation +- mips: Consolidate INTERNAL_VSYSCALL_CALL +- powerpc: Simplify vsyscall internal macros +- Refactor vDSO initialization code +- Remove PREPARE_VERSION and PREPARE_VERSION_KNOW +- Fix small error in HP_TIMING_PRINT trailing null char setting + +* Mon Sep 16 2019 Parag Nemade - 2.30.9000-8 +- Change Supplements "langpacks-" to "langpacks-core-" (#1729992) + +* Mon Sep 16 2019 DJ Delorie - 2.30.9000-7 +- Auto-sync with upstream branch master, + commit 1a6566094d3097f4a3037ab5555cddc6cb11c3a3. +- alpha: force old OSF1 syscalls for getegid, geteuid and getppid [BZ #24986] +- Fix http: URL in 'configure' +- Regenerate charmap-kw.h, locfile-kw.h +- Fix three GNU license URLs, along with trailing-newline issues. +- Prefer https to http for gnu.org and fsf.org URLs + +* Fri Sep 06 2019 Patsy Franklin - 2.30.9000-6 +- Auto-sync with upstream branch master, + commit 1b7f04070bd94f259e2ed24d6fb76309d64fb164. +- locale: Avoid zero-length array in _nl_category_names [BZ #24962] +- math: Replace const attribute with pure in totalorder* functions +- y2038: Introduce the __ASSUME_TIME64_SYSCALLS define +- Finish move of clock_* functions to libc. [BZ #24959] +- Update Alpha libm-test-ulps +- localedef: Use initializer for flexible array member [BZ #24950] +- Add misc/tst-mntent-autofs, testing autofs "ignore" filtering +- Use autofs "ignore" mount hint in getmntent_r/getmntent +- hurd: Fix build +- Use generic memset/memcpy/memmove in benchtests +- nptl: Move pthread_attr_getinheritsched implementation into libc +- hurd: Fix SS_ONSTACK support +- hurd: Remove optimizing anonymous maps as __vm_allocate. +- hurd: Fix poll and select POSIX compliancy details about errors +- hurd: Fix timeout handling in _hurd_select +- hurd getcwd: Allow unknown root directory +- hurd: Fix implementation of setitimer. +- hurd: Fix _hurd_select for single fd sets +- MIPS support for GNU hash +- sh: Split BE/LE abilist +- microblaze: Split BE/LE abilist +- arm: Split BE/LE abilist +- Correct the spelling of more contributors +- Fix posix/tst-regex by using UTF-8 and own test input +- [powerpc] fegetenv_status: simplify instruction generation +- [powerpc] fesetenv: optimize FPSCR access +- [powerpc] SET_RESTORE_ROUND improvements +- [powerpc] fe{en,dis}ableexcept, fesetmode: optimize FPSCR accesses +- [powerpc] fe{en,dis}ableexcept optimize bit translations +- misc: Use allocate_once in getmntent +- nptl: Move pthread_attr_setdetachstate implementation into libc +- login: pututxline could fail to overwrite existing entries [BZ #24902] +- Fix posix/tst-regex by using a dedicated input-file. + +* Tue Aug 27 2019 DJ Delorie - 2.30.9000-5 +- Move makedb from glibc-common to nss_db (#1704334) + +* Mon Aug 26 2019 DJ Delorie - 2.30.9000-4 +- Auto-sync with upstream branch master, + commit 1bced8cadc82077f0201801239e89eb24b68e9aa. +- Don't put non-ASCII into installed headers +- Fix spellings of contributor names in comments and doc +- [MIPS] Raise highest supported EI_ABIVERSION value [SWBZ #24916] +- mips: Force RWX stack for hard-float builds that can run on pre-4.8 kernels +- linux: Make profil_counter a compat_symbol (SWBZ#17726) +- Refactor sigcontextinfo.h +- Add RTLD_SINGLE_THREAD_P on generic single-thread.h +- Chinese locales: Set first_weekday to 2 (swbug 24682). +- powerpc: Fix typos and field name in comments +- Mark IDN tests unsupported with libidn2 before 2.0.5. +- Document strftime %Ob and %OB as C2X features. +- Remove dead regex code +- Fix bad pointer / leak in regex code +- Don't use the argument to time. +- Add tgmath.h macros for narrowing functions. +- Update i386 libm-test-ulps + +* Mon Aug 19 2019 Carlos O'Donell - 2.30.9000-3 +- Drop glibc-fedora-nscd-warnings.patch; applied upstream. +- Drop Source7: nsswitch.conf; applying patch to upstream. +- Add glibc-fedora-nsswitch.patch for Fedora customizations. +- Auto-sync with upstream branch master, + commit d34d4c80226b3f5a1b51a8e5b005a52fba07d7ba: +- Do not print backtraces on fatal glibc errors. +- elf: Self-dlopen failure with explict loader invocation (swbz#24900) +- login: Add nonstring attributes to struct utmp, struct utmpx (swbz#24899) +- login: Use struct flock64 in utmp (swbz#24880) +- login: Disarm timer after utmp lock acquisition (swbz#24879) + +* Fri Aug 16 2019 Carlos O'Donell - 2.30.9000-2 +- Fix C.UTF-8 to use full code ranges. + +* Thu Aug 15 2019 Florian Weimer - 2.30.9000-1 +- Auto-sync with upstream branch master, + commit 341da5b4b6253de9a7581a066f33f89cacb44dec. + +* Fri Aug 02 2019 Florian Weimer - 2.30-1 +- Drop glibc-rh1734680.patch, applied upstream. +- Auto-sync with upstream branch release/2.30/master, + commit be9a328c93834648e0bec106a1f86357d1a8c7e1: +- malloc: Remove unwanted leading whitespace in malloc_info (swbz#24867) +- glibc 2.30 release +- iconv: Revert steps array reference counting changes (#1734680) +- Restore r31 setting in powerpc32 swapcontext + +* Wed Jul 31 2019 Florian Weimer - 2.29.9000-37 +- Fix memory leak in iconv_open (#1734680) + +* Tue Jul 30 2019 Florian Weimer - 2.29.9000-36 +- Drop glibc-rh1732406.patch, fix for the regression applied upstream. +- Auto-sync with upstream branch master, + commit 8a814e20d443adc460a1030fa1a66aa9ae817483: +- nptl: Use uintptr_t for address diagnostic in nptl/tst-pthread-getattr +- Linux: Move getdents64 to +- test-container: Install with $(sorted-subdirs) (swbz#24794) +- gconv: Check reference count in __gconv_release_cache (#1732406) +- x86-64: Compile branred.c with -mprefer-vector-width=128 (swbz#24603) +- build-many-glibcs.py: Use Linux 5.2 by default +- Linux: Use in-tree copy of SO_ constants for !__USE_MISC (swbz#24532) +- test-container: Avoid copying unintended system libraries + +* Thu Jul 25 2019 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Jul 23 2019 Florian Weimer - 2.29.9000-34 +- Revert libio change that causes crashes (#1732406) + +* Mon Jul 22 2019 DJ Delorie - 2.29.9000-33 +- Auto-sync with upstream branch master, + commit dcf36bcad3f283f77893d3b157ef7bb2c99419f2. +- Add NEWS entry about the new AArch64 IFUNC resolver call ABI +- locale/C-translit.h.in: Cyrillic -> ASCII transliteration [BZ #2872] +- Linux: Update syscall-names.list to Linux 5.2 + +* Thu Jul 18 2019 DJ Delorie - 2.29.9000-32 +- Auto-sync with upstream branch master, + commit 3556658c5b8765480711b265abc901c67d5fc060. +- Regenerate po/libc.pot for 2.30 release. +- nptl: Add POSIX-proposed _clock functions to hppa pthread.h +- nptl: Remove unnecessary forwarding of pthread_cond_clockwait from libc +- Afar locales: Months and days updated from CLDR (bug 21897). +- nl_BE locale: Use "copy "nl_NL"" in LC_NAME (bug 23996). +- nl_BE and nl_NL locales: Dutch salutations (bug 23996). +- ga_IE and en_IE locales: Revert first_weekday removal (bug 24200). +- nptl: Remove futex_supports_exact_relative_timeouts +- Update NEWS for new _clockwait and _clocklock functions +- nptl: Add POSIX-proposed pthread_mutex_clocklock +- nptl: Rename lll_timedlock to lll_clocklock and add clockid parameter +- nptl: Add POSIX-proposed pthread_rwlock_clockrdlock & pthread_rwlock_clockwrlock +- nptl: pthread_rwlock: Move timeout validation into _full functions +- nptl: Add POSIX-proposed pthread_cond_clockwait +- nptl: Add POSIX-proposed sem_clockwait +- nptl: Add clockid parameter to futex timed wait calls +- posix: Fix large mmap64 offset for mips64n32 (BZ#24699) +- nss_db: fix endent wrt NULL mappings [BZ #24695] [BZ #24696] + +* Wed Jul 10 2019 Carlos O'Donell - 2.29.9000-31 +- Auto-sync with upstream branch master, + commit 30ba0375464f34e4bf8129f3d3dc14d0c09add17. +- Don't declare __malloc_check_init in (bug 23352) +- nftw: fill in stat buf for dangling links [BZ #23501] +- dl-vdso: Add LINUX_4 HASH CODE to support nds32 vdso mechanism +- riscv: restore ABI compatibility (bug 24484) +- aarch64: new ifunc resolver ABI +- nptl: Remove vfork IFUNC-based forwarder from libpthread [BZ #20188] +- malloc: Add nptl, htl dependency for the subdirectory [BZ #24757] +- Call _dl_open_check after relocation [BZ #24259] +- Linux: Use mmap instead of malloc in dirent/tst-getdents64 +- ld.so: Support moving versioned symbols between sonames [BZ #24741] +- io: Remove copy_file_range emulation [BZ #24744] +- Linux: Adjust gedents64 buffer size to int range [BZ #24740] +- powerpc: Use generic e_expf +- Linux: Add nds32 specific syscalls to syscall-names.list +- szl_PL locale: Fix a typo in the previous commit (bug 24652). + * Mon Jun 24 2019 DJ Delorie - 2.29.9000-30 - Auto-sync with upstream branch master, commit 2bd81b60d6ffdf7e0d22006d69f4b812b1c80513. diff --git a/glibc-upstream-2.34-108.patch b/glibc-upstream-2.34-108.patch new file mode 100644 index 0000000..e4186ee --- /dev/null +++ b/glibc-upstream-2.34-108.patch @@ -0,0 +1,32 @@ +commit 0351c75c5f94134fcec0e778e8cf86d149f8bbfb +Author: Adhemerval Zanella +Date: Thu Feb 3 16:52:52 2022 -0300 + + linux: Fix missing __convert_scm_timestamps (BZ #28860) + + Commit 948ce73b31 made recvmsg/recvmmsg to always call + __convert_scm_timestamps for 64 bit time_t symbol, so adjust it to + always build it for __TIMESIZE != 64. + + It fixes build for architecture with 32 bit time_t support when + configured with minimum kernel of 5.1. + + (cherry-picked from 798d716df71fb23dc89d1d5dba1fc26a1b5c0024) + +diff --git a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c +index 5d3c4199e0b32944..953ce97bd2e03849 100644 +--- a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c ++++ b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c +@@ -16,9 +16,10 @@ + License along with the GNU C Library; if not, see + . */ + +-#include ++#include ++#include + +-#ifndef __ASSUME_TIME64_SYSCALLS ++#if __TIMESIZE != 64 + # include + # include + # include diff --git a/glibc-upstream-2.34-110.patch b/glibc-upstream-2.34-110.patch new file mode 100644 index 0000000..cd9bc09 --- /dev/null +++ b/glibc-upstream-2.34-110.patch @@ -0,0 +1,192 @@ +commit 007e054d786be340699c634e3a3b30ab1fde1a7a +Author: Dmitry V. Levin +Date: Sat Feb 5 08:00:00 2022 +0000 + + linux: fix accuracy of get_nprocs and get_nprocs_conf [BZ #28865] + + get_nprocs() and get_nprocs_conf() use various methods to obtain an + accurate number of processors. Re-introduce __get_nprocs_sched() as + a source of information, and fix the order in which these methods are + used to return the most accurate information. The primary source of + information used in both functions remains unchanged. + + This also changes __get_nprocs_sched() error return value from 2 to 0, + but all its users are already prepared to handle that. + + Old fallback order: + get_nprocs: + /sys/devices/system/cpu/online -> /proc/stat -> 2 + get_nprocs_conf: + /sys/devices/system/cpu/ -> /proc/stat -> 2 + + New fallback order: + get_nprocs: + /sys/devices/system/cpu/online -> /proc/stat -> sched_getaffinity -> 2 + get_nprocs_conf: + /sys/devices/system/cpu/ -> /proc/stat -> sched_getaffinity -> 2 + + Fixes: 342298278e ("linux: Revert the use of sched_getaffinity on get_nproc") + Closes: BZ #28865 + Reviewed-by: Adhemerval Zanella + + (cherry picked from commit e1d32b836410767270a3adf1f82b1a47e6e4cd51) + +diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c +index 7babd947aa902e77..327802b14c7326a3 100644 +--- a/sysdeps/unix/sysv/linux/getsysstats.c ++++ b/sysdeps/unix/sysv/linux/getsysstats.c +@@ -51,9 +51,8 @@ __get_nprocs_sched (void) + is an arbitrary values assuming such systems should be rare and there + is no offline cpus. */ + return max_num_cpus; +- /* Some other error. 2 is conservative (not a uniprocessor system, so +- atomics are needed). */ +- return 2; ++ /* Some other error. */ ++ return 0; + } + + static char * +@@ -109,22 +108,19 @@ next_line (int fd, char *const buffer, char **cp, char **re, + } + + static int +-get_nproc_stat (char *buffer, size_t buffer_size) ++get_nproc_stat (void) + { ++ enum { buffer_size = 1024 }; ++ char buffer[buffer_size]; + char *buffer_end = buffer + buffer_size; + char *cp = buffer_end; + char *re = buffer_end; +- +- /* Default to an SMP system in case we cannot obtain an accurate +- number. */ +- int result = 2; ++ int result = 0; + + const int flags = O_RDONLY | O_CLOEXEC; + int fd = __open_nocancel ("/proc/stat", flags); + if (fd != -1) + { +- result = 0; +- + char *l; + while ((l = next_line (fd, buffer, &cp, &re, buffer_end)) != NULL) + /* The current format of /proc/stat has all the cpu* entries +@@ -140,8 +136,8 @@ get_nproc_stat (char *buffer, size_t buffer_size) + return result; + } + +-int +-__get_nprocs (void) ++static int ++get_nprocs_cpu_online (void) + { + enum { buffer_size = 1024 }; + char buffer[buffer_size]; +@@ -180,7 +176,8 @@ __get_nprocs (void) + } + } + +- result += m - n + 1; ++ if (m >= n) ++ result += m - n + 1; + + l = endp; + if (l < re && *l == ',') +@@ -189,28 +186,18 @@ __get_nprocs (void) + while (l < re && *l != '\n'); + + __close_nocancel_nostatus (fd); +- +- if (result > 0) +- return result; + } + +- return get_nproc_stat (buffer, buffer_size); ++ return result; + } +-libc_hidden_def (__get_nprocs) +-weak_alias (__get_nprocs, get_nprocs) +- + +-/* On some architectures it is possible to distinguish between configured +- and active cpus. */ +-int +-__get_nprocs_conf (void) ++static int ++get_nprocs_cpu (void) + { +- /* Try to use the sysfs filesystem. It has actual information about +- online processors. */ ++ int count = 0; + DIR *dir = __opendir ("/sys/devices/system/cpu"); + if (dir != NULL) + { +- int count = 0; + struct dirent64 *d; + + while ((d = __readdir64 (dir)) != NULL) +@@ -225,12 +212,57 @@ __get_nprocs_conf (void) + + __closedir (dir); + +- return count; + } ++ return count; ++} + +- enum { buffer_size = 1024 }; +- char buffer[buffer_size]; +- return get_nproc_stat (buffer, buffer_size); ++static int ++get_nprocs_fallback (void) ++{ ++ int result; ++ ++ /* Try /proc/stat first. */ ++ result = get_nproc_stat (); ++ if (result != 0) ++ return result; ++ ++ /* Try sched_getaffinity. */ ++ result = __get_nprocs_sched (); ++ if (result != 0) ++ return result; ++ ++ /* We failed to obtain an accurate number. Be conservative: return ++ the smallest number meaning that this is not a uniprocessor system, ++ so atomics are needed. */ ++ return 2; ++} ++ ++int ++__get_nprocs (void) ++{ ++ /* Try /sys/devices/system/cpu/online first. */ ++ int result = get_nprocs_cpu_online (); ++ if (result != 0) ++ return result; ++ ++ /* Fall back to /proc/stat and sched_getaffinity. */ ++ return get_nprocs_fallback (); ++} ++libc_hidden_def (__get_nprocs) ++weak_alias (__get_nprocs, get_nprocs) ++ ++/* On some architectures it is possible to distinguish between configured ++ and active cpus. */ ++int ++__get_nprocs_conf (void) ++{ ++ /* Try /sys/devices/system/cpu/ first. */ ++ int result = get_nprocs_cpu (); ++ if (result != 0) ++ return result; ++ ++ /* Fall back to /proc/stat and sched_getaffinity. */ ++ return get_nprocs_fallback (); + } + libc_hidden_def (__get_nprocs_conf) + weak_alias (__get_nprocs_conf, get_nprocs_conf) diff --git a/glibc-upstream-2.34-111.patch b/glibc-upstream-2.34-111.patch new file mode 100644 index 0000000..cf08e56 --- /dev/null +++ b/glibc-upstream-2.34-111.patch @@ -0,0 +1,60 @@ +commit 04d60ce0f21ffe2a4add148cb37a1942dbad64e2 +Author: H.J. Lu +Date: Thu Feb 17 08:10:35 2022 -0800 + + string: Add a testcase for wcsncmp with SIZE_MAX [BZ #28755] + + Verify that wcsncmp (L("abc"), L("abd"), SIZE_MAX) == 0. The new test + fails without + + commit ddf0992cf57a93200e0c782e2a94d0733a5a0b87 + Author: Noah Goldstein + Date: Sun Jan 9 16:02:21 2022 -0600 + + x86: Fix __wcsncmp_avx2 in strcmp-avx2.S [BZ# 28755] + + and + + commit 7e08db3359c86c94918feb33a1182cd0ff3bb10b + Author: Noah Goldstein + Date: Sun Jan 9 16:02:28 2022 -0600 + + x86: Fix __wcsncmp_evex in strcmp-evex.S [BZ# 28755] + + This is for BZ #28755. + + Reviewed-by: Sunil K Pandey + + (cherry picked from commit aa5a720056d37cf24924c138a3dbe6dace98e97c) + +diff --git a/string/test-strncmp.c b/string/test-strncmp.c +index 10b34de8d2acb2a1..97e831d88fd24316 100644 +--- a/string/test-strncmp.c ++++ b/string/test-strncmp.c +@@ -435,6 +435,18 @@ check3 (void) + } + } + ++static void ++check4 (void) ++{ ++ const CHAR *s1 = L ("abc"); ++ CHAR *s2 = STRDUP (s1); ++ ++ FOR_EACH_IMPL (impl, 0) ++ check_result (impl, s1, s2, SIZE_MAX, 0); ++ ++ free (s2); ++} ++ + int + test_main (void) + { +@@ -445,6 +457,7 @@ test_main (void) + check1 (); + check2 (); + check3 (); ++ check4 (); + + printf ("%23s", ""); + FOR_EACH_IMPL (impl, 0) diff --git a/glibc-upstream-2.34-112.patch b/glibc-upstream-2.34-112.patch new file mode 100644 index 0000000..d6a677a --- /dev/null +++ b/glibc-upstream-2.34-112.patch @@ -0,0 +1,120 @@ +commit 38e0d2479413ccdbc02b4c9e9e246eca31e956c9 +Author: Noah Goldstein +Date: Tue Feb 15 08:18:15 2022 -0600 + + x86: Fallback {str|wcs}cmp RTM in the ncmp overflow case [BZ #28896] + + In the overflow fallback strncmp-avx2-rtm and wcsncmp-avx2-rtm would + call strcmp-avx2 and wcscmp-avx2 respectively. This would have + not checks around vzeroupper and would trigger spurious + aborts. This commit fixes that. + + test-strcmp, test-strncmp, test-wcscmp, and test-wcsncmp all pass on + AVX2 machines with and without RTM. + + Co-authored-by: H.J. Lu + + (cherry picked from commit c6272098323153db373f2986c67786ea8c85f1cf) + +diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile +index 36ca1a7126047b86..af934d6ccf1fa337 100644 +--- a/sysdeps/x86/Makefile ++++ b/sysdeps/x86/Makefile +@@ -105,7 +105,7 @@ CFLAGS-tst-memset-rtm.c += -mrtm + CFLAGS-tst-strchr-rtm.c += -mrtm + CFLAGS-tst-strcpy-rtm.c += -mrtm + CFLAGS-tst-strlen-rtm.c += -mrtm +-CFLAGS-tst-strncmp-rtm.c += -mrtm ++CFLAGS-tst-strncmp-rtm.c += -mrtm -Wno-error + CFLAGS-tst-strrchr-rtm.c += -mrtm + endif + +diff --git a/sysdeps/x86/tst-strncmp-rtm.c b/sysdeps/x86/tst-strncmp-rtm.c +index 236ad951b5b59cd1..4d0004b58aae428d 100644 +--- a/sysdeps/x86/tst-strncmp-rtm.c ++++ b/sysdeps/x86/tst-strncmp-rtm.c +@@ -16,6 +16,7 @@ + License along with the GNU C Library; if not, see + . */ + ++#include + #include + + #define LOOP 3000 +@@ -45,8 +46,22 @@ function (void) + return 1; + } + ++__attribute__ ((noinline, noclone)) ++static int ++function_overflow (void) ++{ ++ if (strncmp (string1, string2, SIZE_MAX) == 0) ++ return 0; ++ else ++ return 1; ++} ++ + static int + do_test (void) + { +- return do_test_1 ("strncmp", LOOP, prepare, function); ++ int status = do_test_1 ("strncmp", LOOP, prepare, function); ++ if (status != EXIT_SUCCESS) ++ return status; ++ status = do_test_1 ("strncmp", LOOP, prepare, function_overflow); ++ return status; + } +diff --git a/sysdeps/x86_64/multiarch/strcmp-avx2.S b/sysdeps/x86_64/multiarch/strcmp-avx2.S +index 3dfcb1bf803cf9ec..fa70c994fc25dfd8 100644 +--- a/sysdeps/x86_64/multiarch/strcmp-avx2.S ++++ b/sysdeps/x86_64/multiarch/strcmp-avx2.S +@@ -95,7 +95,7 @@ ENTRY (STRCMP) + length to bound a valid memory region. In these cases just use + 'wcscmp'. */ + shrq $56, %rcx +- jnz __wcscmp_avx2 ++ jnz OVERFLOW_STRCMP + # endif + /* Convert units: from wide to byte char. */ + shl $2, %RDX_LP +diff --git a/sysdeps/x86_64/multiarch/strncmp-avx2-rtm.S b/sysdeps/x86_64/multiarch/strncmp-avx2-rtm.S +index 37d1224bb9b7056b..68bad365ba728eec 100644 +--- a/sysdeps/x86_64/multiarch/strncmp-avx2-rtm.S ++++ b/sysdeps/x86_64/multiarch/strncmp-avx2-rtm.S +@@ -1,3 +1,4 @@ + #define STRCMP __strncmp_avx2_rtm + #define USE_AS_STRNCMP 1 ++#define OVERFLOW_STRCMP __strcmp_avx2_rtm + #include "strcmp-avx2-rtm.S" +diff --git a/sysdeps/x86_64/multiarch/strncmp-avx2.S b/sysdeps/x86_64/multiarch/strncmp-avx2.S +index 1678bcc235a4bc6a..f138e9f1fdcf277c 100644 +--- a/sysdeps/x86_64/multiarch/strncmp-avx2.S ++++ b/sysdeps/x86_64/multiarch/strncmp-avx2.S +@@ -1,3 +1,4 @@ + #define STRCMP __strncmp_avx2 + #define USE_AS_STRNCMP 1 ++#define OVERFLOW_STRCMP __strcmp_avx2 + #include "strcmp-avx2.S" +diff --git a/sysdeps/x86_64/multiarch/wcsncmp-avx2-rtm.S b/sysdeps/x86_64/multiarch/wcsncmp-avx2-rtm.S +index 4e88c70cc696b82d..f467582cbedd4535 100644 +--- a/sysdeps/x86_64/multiarch/wcsncmp-avx2-rtm.S ++++ b/sysdeps/x86_64/multiarch/wcsncmp-avx2-rtm.S +@@ -1,5 +1,5 @@ + #define STRCMP __wcsncmp_avx2_rtm + #define USE_AS_STRNCMP 1 + #define USE_AS_WCSCMP 1 +- ++#define OVERFLOW_STRCMP __wcscmp_avx2_rtm + #include "strcmp-avx2-rtm.S" +diff --git a/sysdeps/x86_64/multiarch/wcsncmp-avx2.S b/sysdeps/x86_64/multiarch/wcsncmp-avx2.S +index 4fa1de4d3f1f97ff..e9ede522b8bde27d 100644 +--- a/sysdeps/x86_64/multiarch/wcsncmp-avx2.S ++++ b/sysdeps/x86_64/multiarch/wcsncmp-avx2.S +@@ -1,5 +1,5 @@ + #define STRCMP __wcsncmp_avx2 + #define USE_AS_STRNCMP 1 + #define USE_AS_WCSCMP 1 +- ++#define OVERFLOW_STRCMP __wcscmp_avx2 + #include "strcmp-avx2.S" diff --git a/glibc-upstream-2.34-113.patch b/glibc-upstream-2.34-113.patch new file mode 100644 index 0000000..e83d23c --- /dev/null +++ b/glibc-upstream-2.34-113.patch @@ -0,0 +1,139 @@ +commit d093b677c36ef4b360bf30483b68b95d9f0ad1d2 +Author: Noah Goldstein +Date: Fri Feb 18 14:19:15 2022 -0600 + + x86: Test wcscmp RTM in the wcsncmp overflow case [BZ #28896] + + In the overflow fallback strncmp-avx2-rtm and wcsncmp-avx2-rtm would + call strcmp-avx2 and wcscmp-avx2 respectively. This would have + not checks around vzeroupper and would trigger spurious + aborts. This commit fixes that. + + test-strcmp, test-strncmp, test-wcscmp, and test-wcsncmp all pass on + AVX2 machines with and without RTM. + Reviewed-by: H.J. Lu + + (cherry picked from commit 7835d611af0854e69a0c71e3806f8fe379282d6f) + +diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile +index af934d6ccf1fa337..cd94e683afd5b4a4 100644 +--- a/sysdeps/x86/Makefile ++++ b/sysdeps/x86/Makefile +@@ -95,7 +95,9 @@ tests += \ + tst-strcpy-rtm \ + tst-strlen-rtm \ + tst-strncmp-rtm \ +- tst-strrchr-rtm ++ tst-strrchr-rtm \ ++ tst-wcsncmp-rtm \ ++# tests + + CFLAGS-tst-memchr-rtm.c += -mrtm + CFLAGS-tst-memcmp-rtm.c += -mrtm +@@ -107,6 +109,7 @@ CFLAGS-tst-strcpy-rtm.c += -mrtm + CFLAGS-tst-strlen-rtm.c += -mrtm + CFLAGS-tst-strncmp-rtm.c += -mrtm -Wno-error + CFLAGS-tst-strrchr-rtm.c += -mrtm ++CFLAGS-tst-wcsncmp-rtm.c += -mrtm -Wno-error + endif + + ifneq ($(enable-cet),no) +diff --git a/sysdeps/x86/tst-strncmp-rtm.c b/sysdeps/x86/tst-strncmp-rtm.c +index 4d0004b58aae428d..4e9f094f39c72f67 100644 +--- a/sysdeps/x86/tst-strncmp-rtm.c ++++ b/sysdeps/x86/tst-strncmp-rtm.c +@@ -19,18 +19,32 @@ + #include + #include + ++#ifdef WIDE ++# define CHAR wchar_t ++# define MEMSET wmemset ++# define STRNCMP wcsncmp ++# define TEST_NAME wcsncmp ++#else /* !WIDE */ ++# define CHAR char ++# define MEMSET memset ++# define STRNCMP strncmp ++# define TEST_NAME strncmp ++#endif /* !WIDE */ ++ ++ ++ + #define LOOP 3000 + #define STRING_SIZE 1024 +-char string1[STRING_SIZE]; +-char string2[STRING_SIZE]; ++CHAR string1[STRING_SIZE]; ++CHAR string2[STRING_SIZE]; + + __attribute__ ((noinline, noclone)) + static int + prepare (void) + { +- memset (string1, 'a', STRING_SIZE - 1); +- memset (string2, 'a', STRING_SIZE - 1); +- if (strncmp (string1, string2, STRING_SIZE) == 0) ++ MEMSET (string1, 'a', STRING_SIZE - 1); ++ MEMSET (string2, 'a', STRING_SIZE - 1); ++ if (STRNCMP (string1, string2, STRING_SIZE) == 0) + return EXIT_SUCCESS; + else + return EXIT_FAILURE; +@@ -40,7 +54,7 @@ __attribute__ ((noinline, noclone)) + static int + function (void) + { +- if (strncmp (string1, string2, STRING_SIZE) == 0) ++ if (STRNCMP (string1, string2, STRING_SIZE) == 0) + return 0; + else + return 1; +@@ -50,7 +64,7 @@ __attribute__ ((noinline, noclone)) + static int + function_overflow (void) + { +- if (strncmp (string1, string2, SIZE_MAX) == 0) ++ if (STRNCMP (string1, string2, SIZE_MAX) == 0) + return 0; + else + return 1; +@@ -59,9 +73,9 @@ function_overflow (void) + static int + do_test (void) + { +- int status = do_test_1 ("strncmp", LOOP, prepare, function); ++ int status = do_test_1 (TEST_NAME, LOOP, prepare, function); + if (status != EXIT_SUCCESS) + return status; +- status = do_test_1 ("strncmp", LOOP, prepare, function_overflow); ++ status = do_test_1 (TEST_NAME, LOOP, prepare, function_overflow); + return status; + } +diff --git a/sysdeps/x86/tst-wcsncmp-rtm.c b/sysdeps/x86/tst-wcsncmp-rtm.c +new file mode 100644 +index 0000000000000000..bad3b863782c5e56 +--- /dev/null ++++ b/sysdeps/x86/tst-wcsncmp-rtm.c +@@ -0,0 +1,21 @@ ++/* Test case for wcsncmp inside a transactionally executing RTM region. ++ Copyright (C) 2022 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define WIDE 1 ++#include ++#include "tst-strncmp-rtm.c" diff --git a/glibc-upstream-2.34-114.patch b/glibc-upstream-2.34-114.patch new file mode 100644 index 0000000..863b88c --- /dev/null +++ b/glibc-upstream-2.34-114.patch @@ -0,0 +1,32 @@ +commit 15b00d2af0e56dcc8c244a36d6872d301b0c7185 +Author: Noah Goldstein +Date: Fri Feb 18 17:00:25 2022 -0600 + + x86: Fix TEST_NAME to make it a string in tst-strncmp-rtm.c + + Previously TEST_NAME was passing a function pointer. This didn't fail + because of the -Wno-error flag (to allow for overflow sizes passed + to strncmp/wcsncmp) + + Reviewed-by: H.J. Lu + (cherry picked from commit b98d0bbf747f39770e0caba7e984ce9f8f900330) + +diff --git a/sysdeps/x86/tst-strncmp-rtm.c b/sysdeps/x86/tst-strncmp-rtm.c +index 4e9f094f39c72f67..aef9866cf2fbe774 100644 +--- a/sysdeps/x86/tst-strncmp-rtm.c ++++ b/sysdeps/x86/tst-strncmp-rtm.c +@@ -23,12 +23,12 @@ + # define CHAR wchar_t + # define MEMSET wmemset + # define STRNCMP wcsncmp +-# define TEST_NAME wcsncmp ++# define TEST_NAME "wcsncmp" + #else /* !WIDE */ + # define CHAR char + # define MEMSET memset + # define STRNCMP strncmp +-# define TEST_NAME strncmp ++# define TEST_NAME "strncmp" + #endif /* !WIDE */ + + diff --git a/glibc-upstream-2.34-117.patch b/glibc-upstream-2.34-117.patch new file mode 100644 index 0000000..62b8f3b --- /dev/null +++ b/glibc-upstream-2.34-117.patch @@ -0,0 +1,104 @@ +commit 3be79b72d556e3ac37075ad6b99eb5eac18e1402 +Author: John David Anglin +Date: Sun Mar 6 15:56:57 2022 +0000 + + Fix elf/tst-audit2 on hppa + + The test elf/tst-audit2 fails on hppa with a segmentation fault in the + long branch stub used to call malloc from calloc. This occurs because + the test is not a PIC executable and calloc is called from the dynamic + linker before the dp register is initialized in _dl_start_user. + + The fix is to move the dp register initialization into + elf_machine_runtime_setup. Since the address of $global$ can't be + loaded directly, we continue to use the DT_PLTGOT value from the + the main_map to initialize dp. Since l_main_map is not available + in v2.34 and earlier, we use a new function, elf_machine_main_map, + to find the main map. + +diff --git a/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h +index f048fd20728ccde6..24f0f47d8f1e25cd 100644 +--- a/sysdeps/hppa/dl-machine.h ++++ b/sysdeps/hppa/dl-machine.h +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -159,6 +160,24 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc, + return (struct fdesc) { value.ip + reloc->r_addend, value.gp }; + } + ++static inline struct link_map * ++elf_machine_main_map (void) ++{ ++ struct link_map *main_map; ++ ++#if defined SHARED && IS_IN (rtld) ++ asm ( ++" bl 1f,%0\n" ++" addil L'_rtld_local - ($PIC_pcrel$0 - 1),%0\n" ++"1: ldw R'_rtld_local - ($PIC_pcrel$0 - 5)(%%r1),%0\n" ++ : "=r" (main_map) : : "r1"); ++#else ++ main_map = NULL; ++#endif ++ ++ return main_map; ++} ++ + /* Set up the loaded object described by L so its unrelocated PLT + entries will jump to the on-demand fixup code in dl-runtime.c. */ + +@@ -174,6 +193,15 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) + Elf32_Addr i[2]; + } sig = {{0x00,0xc0,0xff,0xee, 0xde,0xad,0xbe,0xef}}; + ++ /* Initialize dp register for main executable. */ ++ if (l == elf_machine_main_map ()) ++ { ++ register Elf32_Addr dp asm ("%r27"); ++ ++ dp = D_PTR (l, l_info[DT_PLTGOT]); ++ asm volatile ("" : : "r" (dp)); ++ } ++ + /* If we don't have a PLT we can just skip all this... */ + if (__builtin_expect (l->l_info[DT_JMPREL] == NULL,0)) + return lazy; +@@ -336,16 +364,6 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) + its return value is the user program's entry point. */ + + #define RTLD_START \ +-/* Set up dp for any non-PIC lib constructors that may be called. */ \ +-static struct link_map * __attribute__((used)) \ +-set_dp (struct link_map *map) \ +-{ \ +- register Elf32_Addr dp asm ("%r27"); \ +- dp = D_PTR (map, l_info[DT_PLTGOT]); \ +- asm volatile ("" : : "r" (dp)); \ +- return map; \ +-} \ +- \ + asm ( \ + " .text\n" \ + " .globl _start\n" \ +@@ -445,14 +463,11 @@ asm ( \ + " stw %r24,-44(%sp)\n" \ + \ + ".Lnofix:\n" \ ++ /* Call _dl_init(main_map, argc, argv, envp). */ \ + " addil LT'_rtld_local,%r19\n" \ + " ldw RT'_rtld_local(%r1),%r26\n" \ +-" bl set_dp, %r2\n" \ + " ldw 0(%r26),%r26\n" \ + \ +- /* Call _dl_init(_dl_loaded, argc, argv, envp). */ \ +-" copy %r28,%r26\n" \ +- \ + /* envp = argv + argc + 1 */ \ + " sh2add %r25,%r24,%r23\n" \ + " bl _dl_init,%r2\n" \ diff --git a/glibc-upstream-2.34-118.patch b/glibc-upstream-2.34-118.patch new file mode 100644 index 0000000..b2b028e --- /dev/null +++ b/glibc-upstream-2.34-118.patch @@ -0,0 +1,146 @@ +commit c6f9085ee4e913a0b8260340ac7b75c426b780ce +Author: John David Anglin +Date: Fri Feb 18 20:38:25 2022 +0000 + + hppa: Fix swapcontext + + This change fixes the failure of stdlib/tst-setcontext2 and + stdlib/tst-setcontext7 on hppa. The implementation of swapcontext + in C is broken. C saves the return pointer (rp) and any non + call-clobbered registers (in this case r3, r4 and r5) on the + stack. However, the setcontext call in swapcontext pops the + stack and subsequent calls clobber the saved registers. When + the context in oucp is restored, both tests fault. + + Here we rewrite swapcontext in assembly code to avoid using + the stack for register values that need to be used after + restoration. The getcontext and setcontext routines are + revised to save and restore register ret1 for normal returns. + We copy the oucp pointer to ret1. This allows access to + the old context after calling getcontext and setcontext. + + (cherry picked from commit 71b108d7eb33b2bf3e61d5e92d2a47f74c1f7d96) + +diff --git a/sysdeps/unix/sysv/linux/hppa/getcontext.S b/sysdeps/unix/sysv/linux/hppa/getcontext.S +index 1405b42819c38993..c8b690aab8ecc47c 100644 +--- a/sysdeps/unix/sysv/linux/hppa/getcontext.S ++++ b/sysdeps/unix/sysv/linux/hppa/getcontext.S +@@ -138,6 +138,8 @@ ENTRY(__getcontext) + stw %r19, -32(%sp) + .cfi_offset 19, 32 + #endif ++ stw %ret1, -60(%sp) ++ .cfi_offset 29, 4 + + /* Set up the trampoline registers. + r20, r23, r24, r25, r26 and r2 are clobbered +@@ -168,6 +170,7 @@ ENTRY(__getcontext) + #ifdef PIC + ldw -32(%sp), %r19 + #endif ++ ldw -60(%sp), %ret1 + bv %r0(%r2) + ldwm -64(%sp), %r4 + END(__getcontext) +diff --git a/sysdeps/unix/sysv/linux/hppa/setcontext.S b/sysdeps/unix/sysv/linux/hppa/setcontext.S +index 8fc5f5e56cb31f51..e1ae3aefcaac198d 100644 +--- a/sysdeps/unix/sysv/linux/hppa/setcontext.S ++++ b/sysdeps/unix/sysv/linux/hppa/setcontext.S +@@ -34,6 +34,8 @@ ENTRY(__setcontext) + stw %r19, -32(%sp) + .cfi_offset 19, 32 + #endif ++ stw %ret1, -60(%sp) ++ .cfi_offset 29, 4 + + /* Save ucp. */ + copy %r26, %r3 +@@ -155,6 +157,7 @@ ENTRY(__setcontext) + #ifdef PIC + ldw -32(%r30), %r19 + #endif ++ ldw -60(%r30), %ret1 + bv %r0(%r2) + ldwm -64(%r30), %r3 + L(pseudo_end): +diff --git a/sysdeps/unix/sysv/linux/hppa/swapcontext.c b/sysdeps/unix/sysv/linux/hppa/swapcontext.c +index f9a8207543c164cb..562f00ff0546177d 100644 +--- a/sysdeps/unix/sysv/linux/hppa/swapcontext.c ++++ b/sysdeps/unix/sysv/linux/hppa/swapcontext.c +@@ -18,6 +18,7 @@ + . */ + + #include ++#include "ucontext_i.h" + + extern int __getcontext (ucontext_t *ucp); + extern int __setcontext (const ucontext_t *ucp); +@@ -25,17 +26,61 @@ extern int __setcontext (const ucontext_t *ucp); + int + __swapcontext (ucontext_t *oucp, const ucontext_t *ucp) + { ++ /* Save ucp in stack argument slot. */ ++ asm ("stw %r25,-40(%sp)"); ++ asm (".cfi_offset 25, -40"); ++ ++ /* Save rp for debugger. */ ++ asm ("stw %rp,-20(%sp)"); ++ asm (".cfi_offset 2, -20"); ++ ++ /* Copy rp to ret0 (r28). */ ++ asm ("copy %rp,%ret0"); ++ ++ /* Create a frame. */ ++ asm ("ldo 64(%sp),%sp"); ++ asm (".cfi_def_cfa_offset -64"); ++ + /* Save the current machine context to oucp. */ +- __getcontext (oucp); ++ asm ("bl __getcontext,%rp"); ++ ++ /* Copy oucp to register ret1 (r29). __getcontext saves and restores it ++ on a normal return. It is restored from oR29 on reactivation. */ ++ asm ("copy %r26,%ret1"); ++ ++ /* Pop frame. */ ++ asm ("ldo -64(%sp),%sp"); ++ asm (".cfi_def_cfa_offset 0"); ++ ++ /* Load return pointer from oR28. */ ++ asm ("ldw %0(%%ret1),%%rp" : : "i" (oR28)); ++ ++ /* Return if error. */ ++ asm ("or,= %r0,%ret0,%r0"); ++ asm ("bv,n %r0(%rp)"); ++ ++ /* Load sc_sar flag. */ ++ asm ("ldw %0(%%ret1),%%r20" : : "i" (oSAR)); ++ ++ /* Return if oucp context has been reactivated. */ ++ asm ("or,= %r0,%r20,%r0"); ++ asm ("bv,n %r0(%rp)"); ++ ++ /* Mark sc_sar flag. */ ++ asm ("1: ldi 1,%r20"); ++ asm ("stw %%r20,%0(%%ret1)" : : "i" (oSAR)); ++ ++ /* Activate the machine context in ucp. */ ++ asm ("bl __setcontext,%rp"); ++ asm ("ldw -40(%sp),%r26"); + +- /* mark sc_sar flag to skip the setcontext call on reactivation. */ +- if (oucp->uc_mcontext.sc_sar == 0) { +- oucp->uc_mcontext.sc_sar++; ++ /* Load return pointer. */ ++ asm ("ldw %0(%%ret1),%%rp" : : "i" (oR28)); + +- /* Restore the machine context in ucp. */ +- __setcontext (ucp); +- } ++ /* A successful call to setcontext does not return. */ ++ asm ("bv,n %r0(%rp)"); + ++ /* Make gcc happy. */ + return 0; + } + diff --git a/glibc-upstream-2.34-119.patch b/glibc-upstream-2.34-119.patch new file mode 100644 index 0000000..cc25de7 --- /dev/null +++ b/glibc-upstream-2.34-119.patch @@ -0,0 +1,177 @@ +commit f610d2935f041c5f41ddcb96924ea42ca2fb5ea5 +Author: John David Anglin +Date: Tue Feb 22 17:28:46 2022 +0000 + + hppa: Revise gettext trampoline design + + The current getcontext return trampoline is overly complex and it + unnecessarily clobbers several registers. By saving the context + pointer (r26) in the context, __getcontext_ret can restore any + registers not restored by setcontext. This allows getcontext to + save and restore the entire register context present when getcontext + is entered. We use the unused oR0 context slot for the return + from __getcontext_ret. + + While this is not directly useful in C, it can be exploited in + assembly code. Registers r20, r23, r24 and r25 are not clobbered + in the call path to getcontext. This allows a small simplification + of swapcontext. + + It also allows saving and restoring the 6-bit SAR register in the + LSB of the oSAR context slot. The getcontext flag value can be + stored in the MSB of the oSAR slot. + + (cherry picked from commit 9e7e5fda38471e00d1190479ea91d7b08ae3e304) + +diff --git a/sysdeps/unix/sysv/linux/hppa/getcontext.S b/sysdeps/unix/sysv/linux/hppa/getcontext.S +index c8b690aab8ecc47c..4f2e2587d60effc8 100644 +--- a/sysdeps/unix/sysv/linux/hppa/getcontext.S ++++ b/sysdeps/unix/sysv/linux/hppa/getcontext.S +@@ -22,22 +22,28 @@ + #include "ucontext_i.h" + + +- /* Trampoline function. Non-standard calling ABI. */ ++ /* Trampoline function. Non-standard calling ABI. */ + /* Can not use ENTRY(__getcontext_ret) here. */ + .type __getcontext_ret, @function + .hidden __getcontext_ret + __getcontext_ret: + .proc + .callinfo FRAME=0,NO_CALLS +- /* r26-r23 contain original r3-r6, but because setcontext +- does not reload r3-r6 (it's using them as temporaries) +- we must save them elsewhere and swap them back in. */ +- copy %r23, %r3 +- copy %r24, %r4 +- copy %r25, %r5 +- copy %r26, %r6 +- /* r20 contains original return pointer. */ +- bv 0(%r20) ++ /* Because setcontext does not reload r3-r6 (it's using them ++ as temporaries), we must load them ourself. */ ++ ldw oR3(%r26), %r3 ++ ldw oR4(%r26), %r4 ++ ldw oR5(%r26), %r5 ++ ldw oR6(%r26), %r6 ++ ++ /* Also reload registers clobbered by $$dyncall. */ ++ ldw oR21(%r26), %r21 ++ ldw oR22(%r26), %r22 ++ ldw oR31(%r26), %r31 ++ ++ /* oR0 contains original return pointer. */ ++ ldw oR0(%r26), %rp ++ bv 0(%rp) + copy %r0, %ret0 + .procend + .size __getcontext_ret, .-__getcontext_ret +@@ -65,13 +71,13 @@ ENTRY(__getcontext) + stw %r17, oR17(%r26) + stw %r18, oR18(%r26) + stw %r19, oR19(%r26) +- /* stw %r20, oR20(%r26) - used for trampoline. */ ++ stw %r20, oR20(%r26) + stw %r21, oR21(%r26) + stw %r22, oR22(%r26) +- /* stw %r23, oR23(%r26) - used for trampoline. */ +- /* stw %r24, oR24(%r26) - used for trampoline. */ +- /* stw %r25, oR25(%r26) - used for trampoline. */ +- /* stw %r26, oR26(%r26) - used for trampoline. */ ++ stw %r23, oR23(%r26) ++ stw %r24, oR24(%r26) ++ stw %r25, oR25(%r26) ++ stw %r26, oR26(%r26) + stw %r27, oR27(%r26) + stw %r28, oR28(%r26) + stw %r29, oR29(%r26) +@@ -90,7 +96,10 @@ ENTRY(__getcontext) + stw %r0, oIASQ1(%r26) + stw %r0, oIAOQ0(%r26) + stw %r0, oIAOQ1(%r26) +- stw %r0, oSAR(%r26) /* used as flag in swapcontext(). */ ++ ++ /* Save SAR register. */ ++ mfctl %sar, %r1 ++ stw %r1, oSAR(%r26) /* MSB used as flag in swapcontext(). */ + + + /* Store floating-point regs. */ +@@ -142,13 +151,8 @@ ENTRY(__getcontext) + .cfi_offset 29, 4 + + /* Set up the trampoline registers. +- r20, r23, r24, r25, r26 and r2 are clobbered +- by call to getcontext() anyway. Reuse them. */ +- stw %r2, oR20(%r26) +- stw %r3, oR23(%r26) +- stw %r4, oR24(%r26) +- stw %r5, oR25(%r26) +- stw %r6, oR26(%r26) ++ Use oR0 context slot to save return value. */ ++ stw %r2, oR0(%r26) + #ifdef PIC + addil LT%__getcontext_ret, %r19 + ldw RT%__getcontext_ret(%r1), %r1 +diff --git a/sysdeps/unix/sysv/linux/hppa/setcontext.S b/sysdeps/unix/sysv/linux/hppa/setcontext.S +index e1ae3aefcaac198d..616405b80c61d531 100644 +--- a/sysdeps/unix/sysv/linux/hppa/setcontext.S ++++ b/sysdeps/unix/sysv/linux/hppa/setcontext.S +@@ -76,7 +76,7 @@ ENTRY(__setcontext) + ldw oR18(%r3), %r18 + ldw oR19(%r3), %r19 + ldw oR20(%r3), %r20 +- ldw oR21(%r3), %r21 ++ ldw oR21(%r3), %r21 /* maybe clobbered by dyncall */ + /* ldw oR22(%r3), %r22 - dyncall arg. */ + ldw oR23(%r3), %r23 + ldw oR24(%r3), %r24 +@@ -88,6 +88,10 @@ ENTRY(__setcontext) + ldw oR30(%r3), %sp + /* ldw oR31(%r3), %r31 - dyncall scratch register */ + ++ /* Restore SAR register. */ ++ ldw oSAR(%r3), %r22 ++ mtsar %r22 ++ + /* Restore floating-point registers. */ + ldo oFPREGS31(%r3), %r22 + fldds 0(%r22), %fr31 +diff --git a/sysdeps/unix/sysv/linux/hppa/swapcontext.c b/sysdeps/unix/sysv/linux/hppa/swapcontext.c +index 562f00ff0546177d..1664f68c7b9982e8 100644 +--- a/sysdeps/unix/sysv/linux/hppa/swapcontext.c ++++ b/sysdeps/unix/sysv/linux/hppa/swapcontext.c +@@ -26,10 +26,6 @@ extern int __setcontext (const ucontext_t *ucp); + int + __swapcontext (ucontext_t *oucp, const ucontext_t *ucp) + { +- /* Save ucp in stack argument slot. */ +- asm ("stw %r25,-40(%sp)"); +- asm (".cfi_offset 25, -40"); +- + /* Save rp for debugger. */ + asm ("stw %rp,-20(%sp)"); + asm (".cfi_offset 2, -20"); +@@ -60,7 +56,7 @@ __swapcontext (ucontext_t *oucp, const ucontext_t *ucp) + asm ("bv,n %r0(%rp)"); + + /* Load sc_sar flag. */ +- asm ("ldw %0(%%ret1),%%r20" : : "i" (oSAR)); ++ asm ("ldb %0(%%ret1),%%r20" : : "i" (oSAR)); + + /* Return if oucp context has been reactivated. */ + asm ("or,= %r0,%r20,%r0"); +@@ -68,11 +64,11 @@ __swapcontext (ucontext_t *oucp, const ucontext_t *ucp) + + /* Mark sc_sar flag. */ + asm ("1: ldi 1,%r20"); +- asm ("stw %%r20,%0(%%ret1)" : : "i" (oSAR)); ++ asm ("stb %%r20,%0(%%ret1)" : : "i" (oSAR)); + + /* Activate the machine context in ucp. */ + asm ("bl __setcontext,%rp"); +- asm ("ldw -40(%sp),%r26"); ++ asm ("ldw %0(%%ret1),%%r26" : : "i" (oR25)); + + /* Load return pointer. */ + asm ("ldw %0(%%ret1),%%rp" : : "i" (oR28)); diff --git a/glibc-upstream-2.34-120.patch b/glibc-upstream-2.34-120.patch new file mode 100644 index 0000000..2fe0c55 --- /dev/null +++ b/glibc-upstream-2.34-120.patch @@ -0,0 +1,27 @@ +commit 40fc6a74ee3dd600c84d311d91cbb16962f11a71 +Author: John David Anglin +Date: Mon Feb 28 15:47:38 2022 +0000 + + nptl: Fix cleanups for stack grows up [BZ# 28899] + + _STACK_GROWS_DOWN is defined to 0 when the stack grows up. The + code in unwind.c used `#ifdef _STACK_GROWS_DOWN' to selct the + stack grows down define for FRAME_LEFT. As a result, the + _STACK_GROWS_DOWN define was always selected and cleanups were + incorrectly sequenced when the stack grows up. + + (cherry picked from commit 2bbc694df279020a6620096d31c1e05c93966f9b) + +diff --git a/nptl/unwind.c b/nptl/unwind.c +index f50997f728ccde0d..404fab46d00e9f10 100644 +--- a/nptl/unwind.c ++++ b/nptl/unwind.c +@@ -27,7 +27,7 @@ + #include + #include + +-#ifdef _STACK_GROWS_DOWN ++#if _STACK_GROWS_DOWN + # define FRAME_LEFT(frame, other, adj) \ + ((uintptr_t) frame - adj >= (uintptr_t) other - adj) + #elif _STACK_GROWS_UP diff --git a/glibc-upstream-2.34-121.patch b/glibc-upstream-2.34-121.patch new file mode 100644 index 0000000..3f74efd --- /dev/null +++ b/glibc-upstream-2.34-121.patch @@ -0,0 +1,122 @@ +commit 6c9c2307657529e52c5fa7037618835f2a50b916 +Author: John David Anglin +Date: Sun Mar 6 16:04:32 2022 +0000 + + hppa: Fix warnings from _dl_lookup_address + + This change fixes two warnings from _dl_lookup_address. + + The first warning comes from dropping the volatile keyword from + desc in the call to _dl_read_access_allowed. We now have a full + atomic barrier between loading desc[0] and the access check, so + desc no longer needs to be declared as volatile. + + The second warning comes from the implicit declaration of + _dl_fix_reloc_arg. This is fixed by including dl-runtime.h and + declaring _dl_fix_reloc_arg in dl-runtime.h. + +diff --git a/sysdeps/hppa/dl-fptr.c b/sysdeps/hppa/dl-fptr.c +index 62ef68b62bd601f4..cd4f77c0ecfd376f 100644 +--- a/sysdeps/hppa/dl-fptr.c ++++ b/sysdeps/hppa/dl-fptr.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -351,21 +352,20 @@ _dl_lookup_address (const void *address) + { + ElfW(Addr) addr = (ElfW(Addr)) address; + ElfW(Word) reloc_arg; +- volatile unsigned int *desc; +- unsigned int *gptr; ++ unsigned int *desc, *gptr; + + /* Return ADDR if the least-significant two bits of ADDR are not consistent + with ADDR being a linker defined function pointer. The normal value for + a code address in a backtrace is 3. */ +- if (((unsigned int) addr & 3) != 2) ++ if (((uintptr_t) addr & 3) != 2) + return addr; + + /* Handle special case where ADDR points to page 0. */ +- if ((unsigned int) addr < 4096) ++ if ((uintptr_t) addr < 4096) + return addr; + + /* Clear least-significant two bits from descriptor address. */ +- desc = (unsigned int *) ((unsigned int) addr & ~3); ++ desc = (unsigned int *) ((uintptr_t) addr & ~3); + if (!_dl_read_access_allowed (desc)) + return addr; + +@@ -376,7 +376,7 @@ _dl_lookup_address (const void *address) + /* Then load first word of candidate descriptor. It should be a pointer + with word alignment and point to memory that can be read. */ + gptr = (unsigned int *) desc[0]; +- if (((unsigned int) gptr & 3) != 0 ++ if (((uintptr_t) gptr & 3) != 0 + || !_dl_read_access_allowed (gptr)) + return addr; + +@@ -400,10 +400,11 @@ _dl_lookup_address (const void *address) + + /* If gp has been resolved, we need to hunt for relocation offset. */ + if (!(reloc_arg & PA_GP_RELOC)) +- reloc_arg = _dl_fix_reloc_arg (addr, l); ++ reloc_arg = _dl_fix_reloc_arg ((struct fdesc *) addr, l); + + _dl_fixup (l, reloc_arg); + } + + return (ElfW(Addr)) desc[0]; + } ++rtld_hidden_def (_dl_lookup_address) +diff --git a/sysdeps/hppa/dl-lookupcfg.h b/sysdeps/hppa/dl-lookupcfg.h +index a9a927f26c6fec09..2f6991aa16e87a00 100644 +--- a/sysdeps/hppa/dl-lookupcfg.h ++++ b/sysdeps/hppa/dl-lookupcfg.h +@@ -30,6 +30,7 @@ rtld_hidden_proto (_dl_symbol_address) + #define DL_SYMBOL_ADDRESS(map, ref) _dl_symbol_address(map, ref) + + Elf32_Addr _dl_lookup_address (const void *address); ++rtld_hidden_proto (_dl_lookup_address) + + #define DL_LOOKUP_ADDRESS(addr) _dl_lookup_address ((const void *) addr) + +diff --git a/sysdeps/hppa/dl-runtime.c b/sysdeps/hppa/dl-runtime.c +index e7fbb7417d866bb0..a71b5b2013abf723 100644 +--- a/sysdeps/hppa/dl-runtime.c ++++ b/sysdeps/hppa/dl-runtime.c +@@ -25,8 +25,7 @@ + return that to the caller. The caller will continue on to call + _dl_fixup with the relocation offset. */ + +-ElfW(Word) +-attribute_hidden __attribute ((noinline)) ARCH_FIXUP_ATTRIBUTE ++ElfW(Word) __attribute ((noinline)) ARCH_FIXUP_ATTRIBUTE + _dl_fix_reloc_arg (struct fdesc *fptr, struct link_map *l) + { + Elf32_Addr l_addr, iplt, jmprel, end_jmprel, r_type; +@@ -52,3 +51,4 @@ _dl_fix_reloc_arg (struct fdesc *fptr, struct link_map *l) + ABORT_INSTRUCTION; + return 0; + } ++rtld_hidden_def (_dl_fix_reloc_arg) +diff --git a/sysdeps/hppa/dl-runtime.h b/sysdeps/hppa/dl-runtime.h +index 5d6ee53b076d5e0e..9913539b5f0e7435 100644 +--- a/sysdeps/hppa/dl-runtime.h ++++ b/sysdeps/hppa/dl-runtime.h +@@ -17,6 +17,9 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + ++ElfW(Word) _dl_fix_reloc_arg (struct fdesc *, struct link_map *); ++rtld_hidden_proto (_dl_fix_reloc_arg) ++ + /* Clear PA_GP_RELOC bit in relocation offset. */ + static inline uintptr_t + reloc_offset (uintptr_t plt0, uintptr_t pltn) diff --git a/glibc-upstream-2.34-122.patch b/glibc-upstream-2.34-122.patch new file mode 100644 index 0000000..e628384 --- /dev/null +++ b/glibc-upstream-2.34-122.patch @@ -0,0 +1,26 @@ +commit b5032c3d37aa614644c7afbad33bb8226a52e6da +Author: Florian Weimer +Date: Mon Feb 28 11:50:41 2022 +0100 + + io: Add fsync call in tst-stat + + io/tst-stat and io/tst-stat-lfs fail sporadically on the Fedora + builders, and this change hopefully helps to avoid the issue. + + (cherry picked from commit ae132284092edc5885315b44cd17d5ea91177e49) + +diff --git a/io/tst-stat.c b/io/tst-stat.c +index 82e965de6ad87f61..be20cf16d70d05cc 100644 +--- a/io/tst-stat.c ++++ b/io/tst-stat.c +@@ -69,6 +69,10 @@ do_test (void) + TEST_VERIFY_EXIT (fd >= 0); + support_write_file_string (path, "abc"); + ++ /* This should help to prevent delayed allocation, which may result ++ in a spurious stx_blocks/st_blocks difference. */ ++ fsync (fd); ++ + bool check_ns = support_stat_nanoseconds (path); + if (!check_ns) + printf ("warning: timestamp with nanoseconds not supported\n"); diff --git a/glibc-upstream-2.34-123.patch b/glibc-upstream-2.34-123.patch new file mode 100644 index 0000000..22b1d2a --- /dev/null +++ b/glibc-upstream-2.34-123.patch @@ -0,0 +1,56 @@ +commit b53f0c11de409b04560a70570178d1a9d03d5860 +Author: Florian Weimer +Date: Fri Mar 11 08:23:56 2022 +0100 + + nss: Do not mention NSS test modules in + + They are not actually installed. Use the nss_files version instead + in nss/Makefile, similar to how __nss_shlib_revision is derived + from LIBNSS_FILES_SO. + + Reviewed-by: Carlos O'Donell + (cherry picked from commit aefc79ab5ad4bb9feea2876720cec70dca7cd8ed) + +diff --git a/nss/Makefile b/nss/Makefile +index bccf9f2806c15651..e223243d9d62041c 100644 +--- a/nss/Makefile ++++ b/nss/Makefile +@@ -171,17 +171,14 @@ $(objpfx)/libnss_test1.so: $(objpfx)nss_test1.os $(link-libc-deps) + $(objpfx)/libnss_test2.so: $(objpfx)nss_test2.os $(link-libc-deps) + $(build-module) + $(objpfx)nss_test2.os : nss_test1.c +-ifdef libnss_test1.so-version +-$(objpfx)/libnss_test1.so$(libnss_test1.so-version): $(objpfx)/libnss_test1.so ++# Use the nss_files suffix for these objects as well. ++$(objpfx)/libnss_test1.so$(libnss_files.so-version): $(objpfx)/libnss_test1.so + $(make-link) +-endif +-ifdef libnss_test2.so-version +-$(objpfx)/libnss_test2.so$(libnss_test2.so-version): $(objpfx)/libnss_test2.so ++$(objpfx)/libnss_test2.so$(libnss_files.so-version): $(objpfx)/libnss_test2.so + $(make-link) +-endif + $(patsubst %,$(objpfx)%.out,$(tests) $(tests-container)) : \ +- $(objpfx)/libnss_test1.so$(libnss_test1.so-version) \ +- $(objpfx)/libnss_test2.so$(libnss_test2.so-version) ++ $(objpfx)/libnss_test1.so$(libnss_files.so-version) \ ++ $(objpfx)/libnss_test2.so$(libnss_files.so-version) + + ifeq (yes,$(have-thread-library)) + $(objpfx)tst-cancel-getpwuid_r: $(shared-thread-library) +diff --git a/shlib-versions b/shlib-versions +index df6603e6992b8382..b87ab50c59af1bfd 100644 +--- a/shlib-versions ++++ b/shlib-versions +@@ -47,11 +47,6 @@ libnss_ldap=2 + libnss_hesiod=2 + libnss_db=2 + +-# Tests for NSS. They must have the same NSS_SHLIB_REVISION number as +-# the rest. +-libnss_test1=2 +-libnss_test2=2 +- + # Version for libnsl with YP and NIS+ functions. + libnsl=1 + diff --git a/glibc-upstream-2.34-124.patch b/glibc-upstream-2.34-124.patch new file mode 100644 index 0000000..0ee2830 --- /dev/null +++ b/glibc-upstream-2.34-124.patch @@ -0,0 +1,224 @@ +commit 54b12733959238204d7b0e46e69fc7f7d8890b20 +Author: Florian Weimer +Date: Fri Mar 11 08:23:56 2022 +0100 + + nss: Protect against errno changes in function lookup (bug 28953) + + dlopen may clobber errno. The nss_test_errno module uses an ELF + constructor to achieve that, but there could be internal errors + during dlopen that cause this, too. Therefore, the NSS framework + has to guard against such errno clobbers. + + __nss_module_get_function is currently the only function that calls + __nss_module_load, so it is sufficient to save and restore errno + around this call. + + Reviewed-by: Carlos O'Donell + (cherry picked from commit 9bdf92c79d63b42f931101bb6df87129c408b0c4) + +diff --git a/nss/Makefile b/nss/Makefile +index e223243d9d62041c..716bc8f6ef5276b0 100644 +--- a/nss/Makefile ++++ b/nss/Makefile +@@ -60,7 +60,8 @@ tests = test-netdb test-digits-dots tst-nss-getpwent bug17079 \ + tst-nss-test1 \ + tst-nss-test2 \ + tst-nss-test4 \ +- tst-nss-test5 ++ tst-nss-test5 \ ++ tst-nss-test_errno + xtests = bug-erange + + tests-container = \ +@@ -132,7 +133,7 @@ libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes)) + ifeq ($(build-static-nss),yes) + tests-static += tst-nss-static + endif +-extra-test-objs += nss_test1.os nss_test2.os ++extra-test-objs += nss_test1.os nss_test2.os nss_test_errno.os + + include ../Rules + +@@ -166,19 +167,26 @@ rtld-tests-LDFLAGS += -Wl,--dynamic-list=nss_test.ver + + libof-nss_test1 = extramodules + libof-nss_test2 = extramodules ++libof-nss_test_errno = extramodules + $(objpfx)/libnss_test1.so: $(objpfx)nss_test1.os $(link-libc-deps) + $(build-module) + $(objpfx)/libnss_test2.so: $(objpfx)nss_test2.os $(link-libc-deps) + $(build-module) ++$(objpfx)/libnss_test_errno.so: $(objpfx)nss_test_errno.os $(link-libc-deps) ++ $(build-module) + $(objpfx)nss_test2.os : nss_test1.c + # Use the nss_files suffix for these objects as well. + $(objpfx)/libnss_test1.so$(libnss_files.so-version): $(objpfx)/libnss_test1.so + $(make-link) + $(objpfx)/libnss_test2.so$(libnss_files.so-version): $(objpfx)/libnss_test2.so + $(make-link) ++$(objpfx)/libnss_test_errno.so$(libnss_files.so-version): \ ++ $(objpfx)/libnss_test_errno.so ++ $(make-link) + $(patsubst %,$(objpfx)%.out,$(tests) $(tests-container)) : \ + $(objpfx)/libnss_test1.so$(libnss_files.so-version) \ +- $(objpfx)/libnss_test2.so$(libnss_files.so-version) ++ $(objpfx)/libnss_test2.so$(libnss_files.so-version) \ ++ $(objpfx)/libnss_test_errno.so$(libnss_files.so-version) + + ifeq (yes,$(have-thread-library)) + $(objpfx)tst-cancel-getpwuid_r: $(shared-thread-library) +diff --git a/nss/nss_module.c b/nss/nss_module.c +index b28cb94a6a0aeb41..3a4a464256121e41 100644 +--- a/nss/nss_module.c ++++ b/nss/nss_module.c +@@ -330,8 +330,18 @@ name_search (const void *left, const void *right) + void * + __nss_module_get_function (struct nss_module *module, const char *name) + { ++ /* A successful dlopen might clobber errno. */ ++ int saved_errno = errno; ++ + if (!__nss_module_load (module)) +- return NULL; ++ { ++ /* Reporting module load failure is currently inaccurate. See ++ bug 22041. Not changing errno is the conservative choice. */ ++ __set_errno (saved_errno); ++ return NULL; ++ } ++ ++ __set_errno (saved_errno); + + function_name *name_entry = bsearch (name, nss_function_name_array, + array_length (nss_function_name_array), +diff --git a/nss/nss_test_errno.c b/nss/nss_test_errno.c +new file mode 100644 +index 0000000000000000..680f8a07b97fe263 +--- /dev/null ++++ b/nss/nss_test_errno.c +@@ -0,0 +1,58 @@ ++/* NSS service provider with errno clobber. ++ Copyright (C) 2022 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++/* Catch misnamed and functions. */ ++#pragma GCC diagnostic error "-Wmissing-prototypes" ++NSS_DECLARE_MODULE_FUNCTIONS (test_errno) ++ ++static void __attribute__ ((constructor)) ++init (void) ++{ ++ /* An arbitrary error code which is otherwise not used. */ ++ errno = ELIBBAD; ++} ++ ++/* Lookup functions for pwd follow that do not return any data. */ ++ ++/* Catch misnamed function definitions. */ ++ ++enum nss_status ++_nss_test_errno_setpwent (int stayopen) ++{ ++ setenv ("_nss_test_errno_setpwent", "yes", 1); ++ return NSS_STATUS_SUCCESS; ++} ++ ++enum nss_status ++_nss_test_errno_getpwent_r (struct passwd *result, ++ char *buffer, size_t size, int *errnop) ++{ ++ setenv ("_nss_test_errno_getpwent_r", "yes", 1); ++ return NSS_STATUS_NOTFOUND; ++} ++ ++enum nss_status ++_nss_test_errno_endpwent (void) ++{ ++ setenv ("_nss_test_errno_endpwent", "yes", 1); ++ return NSS_STATUS_SUCCESS; ++} +diff --git a/nss/tst-nss-test_errno.c b/nss/tst-nss-test_errno.c +new file mode 100644 +index 0000000000000000..d2c42dd363a38b0e +--- /dev/null ++++ b/nss/tst-nss-test_errno.c +@@ -0,0 +1,61 @@ ++/* getpwent failure when dlopen clobbers errno (bug 28953). ++ Copyright (C) 2022 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ __nss_configure_lookup ("passwd", "files test_errno"); ++ ++ errno = 0; ++ setpwent (); ++ TEST_COMPARE (errno, 0); ++ ++ bool root_seen = false; ++ while (true) ++ { ++ errno = 0; ++ struct passwd *e = getpwent (); ++ if (e == NULL) ++ break; ++ if (strcmp (e->pw_name, "root")) ++ root_seen = true; ++ } ++ ++ TEST_COMPARE (errno, 0); ++ TEST_VERIFY (root_seen); ++ ++ errno = 0; ++ endpwent (); ++ TEST_COMPARE (errno, 0); ++ ++ TEST_COMPARE_STRING (getenv ("_nss_test_errno_setpwent"), "yes"); ++ TEST_COMPARE_STRING (getenv ("_nss_test_errno_getpwent_r"), "yes"); ++ TEST_COMPARE_STRING (getenv ("_nss_test_errno_endpwent"), "yes"); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-upstream-2.34-125.patch b/glibc-upstream-2.34-125.patch new file mode 100644 index 0000000..208da9b --- /dev/null +++ b/glibc-upstream-2.34-125.patch @@ -0,0 +1,345 @@ +commit c82bdf033f93a710044e25f721340c26e89a3769 +Author: Siddhesh Poyarekar +Date: Tue Oct 12 12:29:13 2021 +0530 + + Don't add access size hints to fortifiable functions + + In the context of a function definition, the size hints imply that the + size of an object pointed to by one parameter is another parameter. + This doesn't make sense for the fortified versions of the functions + since that's the bit it's trying to validate. + + This is harmless with __builtin_object_size since it has fairly simple + semantics when it comes to objects passed as function parameters. + With __builtin_dynamic_object_size we could (as my patchset for gcc[1] + already does) use the access attribute to determine the object size in + the general case but it misleads the fortified functions. + + Basically the problem occurs when access attributes are present on + regular functions that have inline fortified definitions to generate + _chk variants; the attributes get inherited by these definitions, + causing problems when analyzing them. For example with poll(fds, nfds, + timeout), nfds is hinted using the __attr_access as being the size of + fds. + + Now, when analyzing the inline function definition in bits/poll2.h, the + compiler sees that nfds is the size of fds and tries to use that + information in the function body. In _FORTIFY_SOURCE=3 case, where the + object size could be a non-constant expression, this information results + in the conclusion that nfds is the size of fds, which defeats the + purpose of the implementation because we're trying to check here if nfds + does indeed represent the size of fds. Hence for this case, it is best + to not have the access attribute. + + With the attributes gone, the expression evaluation should get delayed + until the function is actually inlined into its destinations. + + Disable the access attribute for fortified function inline functions + when building at _FORTIFY_SOURCE=3 to make this work better. The + access attributes remain for the _chk variants since they can be used + by the compiler to warn when the caller is passing invalid arguments. + + [1] https://gcc.gnu.org/pipermail/gcc-patches/2021-October/581125.html + + Signed-off-by: Siddhesh Poyarekar + (cherry picked from commit e938c02748402c50f60ba0eb983273e7b52937d1) + +diff --git a/io/bits/poll2.h b/io/bits/poll2.h +index a623678c09f9f04f..be74d020f2e0e434 100644 +--- a/io/bits/poll2.h ++++ b/io/bits/poll2.h +@@ -33,7 +33,7 @@ extern int __REDIRECT (__poll_chk_warn, (struct pollfd *__fds, nfds_t __nfds, + __poll_chk) + __warnattr ("poll called with fds buffer too small file nfds entries"); + +-__fortify_function __attr_access ((__write_only__, 1, 2)) int ++__fortify_function __fortified_attr_access (__write_only__, 1, 2) int + poll (struct pollfd *__fds, nfds_t __nfds, int __timeout) + { + if (__glibc_objsize (__fds) != (__SIZE_TYPE__) -1) +@@ -64,7 +64,7 @@ extern int __REDIRECT (__ppoll_chk_warn, (struct pollfd *__fds, nfds_t __nfds, + __ppoll_chk) + __warnattr ("ppoll called with fds buffer too small file nfds entries"); + +-__fortify_function __attr_access ((__write_only__, 1, 2)) int ++__fortify_function __fortified_attr_access (__write_only__, 1, 2) int + ppoll (struct pollfd *__fds, nfds_t __nfds, const struct timespec *__timeout, + const __sigset_t *__ss) + { +diff --git a/io/sys/poll.h b/io/sys/poll.h +index e640efb2bce7ea67..751c7f5f72db8be2 100644 +--- a/io/sys/poll.h ++++ b/io/sys/poll.h +@@ -52,7 +52,7 @@ __BEGIN_DECLS + This function is a cancellation point and therefore not marked with + __THROW. */ + extern int poll (struct pollfd *__fds, nfds_t __nfds, int __timeout) +- __attr_access ((__write_only__, 1, 2)); ++ __fortified_attr_access (__write_only__, 1, 2); + + #ifdef __USE_GNU + /* Like poll, but before waiting the threads signal mask is replaced +@@ -64,7 +64,7 @@ extern int poll (struct pollfd *__fds, nfds_t __nfds, int __timeout) + extern int ppoll (struct pollfd *__fds, nfds_t __nfds, + const struct timespec *__timeout, + const __sigset_t *__ss) +- __attr_access ((__write_only__, 1, 2)); ++ __fortified_attr_access (__write_only__, 1, 2); + + # ifdef __USE_TIME_BITS64 + # ifdef __REDIRECT +@@ -72,7 +72,7 @@ extern int __REDIRECT (ppoll, (struct pollfd *__fds, nfds_t __nfds, + const struct timespec *__timeout, + const __sigset_t *__ss), + __ppoll64) +- __attr_access ((__write_only__, 1, 2)); ++ __fortified_attr_access (__write_only__, 1, 2); + # else + # define ppoll __ppoll64 + # endif +diff --git a/libio/bits/stdio2.h b/libio/bits/stdio2.h +index 3f0cab1254b02c43..4f016a563857a137 100644 +--- a/libio/bits/stdio2.h ++++ b/libio/bits/stdio2.h +@@ -258,7 +258,7 @@ extern char *__REDIRECT (__fgets_chk_warn, + __wur __warnattr ("fgets called with bigger size than length " + "of destination buffer"); + +-__fortify_function __wur __attr_access ((__write_only__, 1, 2)) char * ++__fortify_function __wur __fortified_attr_access (__write_only__, 1, 2) char * + fgets (char *__restrict __s, int __n, FILE *__restrict __stream) + { + if (__glibc_objsize (__s) != (size_t) -1) +@@ -320,7 +320,7 @@ extern char *__REDIRECT (__fgets_unlocked_chk_warn, + __wur __warnattr ("fgets_unlocked called with bigger size than length " + "of destination buffer"); + +-__fortify_function __wur __attr_access ((__write_only__, 1, 2)) char * ++__fortify_function __wur __fortified_attr_access (__write_only__, 1, 2) char * + fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) + { + if (__glibc_objsize (__s) != (size_t) -1) +diff --git a/libio/stdio.h b/libio/stdio.h +index 497da016ffa2e230..abefe640e52d18d5 100644 +--- a/libio/stdio.h ++++ b/libio/stdio.h +@@ -584,7 +584,7 @@ extern int putw (int __w, FILE *__stream); + This function is a possible cancellation point and therefore not + marked with __THROW. */ + extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) +- __wur __attr_access ((__write_only__, 1, 2)); ++ __wur __fortified_attr_access (__write_only__, 1, 2); + + #if __GLIBC_USE (DEPRECATED_GETS) + /* Get a newline-terminated string from stdin, removing the newline. +@@ -608,7 +608,7 @@ extern char *gets (char *__s) __wur __attribute_deprecated__; + therefore not marked with __THROW. */ + extern char *fgets_unlocked (char *__restrict __s, int __n, + FILE *__restrict __stream) __wur +- __attr_access ((__write_only__, 1, 2)); ++ __fortified_attr_access (__write_only__, 1, 2); + #endif + + +diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h +index e490fc1aebeadc3d..cd836441a9807d6a 100644 +--- a/misc/sys/cdefs.h ++++ b/misc/sys/cdefs.h +@@ -603,12 +603,22 @@ _Static_assert (0, "IEEE 128-bits long double requires redirection on this platf + size-index is not provided: + access (access-mode, [, ]) */ + # define __attr_access(x) __attribute__ ((__access__ x)) ++/* For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may ++ use the access attribute to get object sizes from function definition ++ arguments, so we can't use them on functions we fortify. Drop the object ++ size hints for such functions. */ ++# if __USE_FORTIFY_LEVEL == 3 ++# define __fortified_attr_access(a, o, s) __attribute__ ((__access__ (a, o))) ++# else ++# define __fortified_attr_access(a, o, s) __attr_access ((a, o, s)) ++# endif + # if __GNUC_PREREQ (11, 0) + # define __attr_access_none(argno) __attribute__ ((__access__ (__none__, argno))) + # else + # define __attr_access_none(argno) + # endif + #else ++# define __fortified_attr_access(a, o, s) + # define __attr_access(x) + # define __attr_access_none(argno) + #endif +diff --git a/posix/unistd.h b/posix/unistd.h +index 8224c5fbc956306f..7a61ff5e868c3456 100644 +--- a/posix/unistd.h ++++ b/posix/unistd.h +@@ -369,7 +369,7 @@ extern void closefrom (int __lowfd) __THROW; + This function is a cancellation point and therefore not marked with + __THROW. */ + extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur +- __attr_access ((__write_only__, 2, 3)); ++ __fortified_attr_access (__write_only__, 2, 3); + + /* Write N bytes of BUF to FD. Return the number written, or -1. + +@@ -388,7 +388,7 @@ extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur + __THROW. */ + extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, + __off_t __offset) __wur +- __attr_access ((__write_only__, 2, 3)); ++ __fortified_attr_access (__write_only__, 2, 3); + + /* Write N bytes of BUF to FD at the given position OFFSET without + changing the file pointer. Return the number written, or -1. +@@ -404,7 +404,7 @@ extern ssize_t pwrite (int __fd, const void *__buf, size_t __n, + extern ssize_t __REDIRECT (pread, (int __fd, void *__buf, size_t __nbytes, + __off64_t __offset), + pread64) __wur +- __attr_access ((__write_only__, 2, 3)); ++ __fortified_attr_access (__write_only__, 2, 3); + extern ssize_t __REDIRECT (pwrite, (int __fd, const void *__buf, + size_t __nbytes, __off64_t __offset), + pwrite64) __wur +@@ -421,7 +421,7 @@ extern ssize_t __REDIRECT (pwrite, (int __fd, const void *__buf, + or 0 for EOF. */ + extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, + __off64_t __offset) __wur +- __attr_access ((__write_only__, 2, 3)); ++ __fortified_attr_access (__write_only__, 2, 3); + /* Write N bytes of BUF to FD at the given position OFFSET without + changing the file pointer. Return the number written, or -1. */ + extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n, +@@ -642,7 +642,7 @@ extern long int sysconf (int __name) __THROW; + #ifdef __USE_POSIX2 + /* Get the value of the string-valued system variable NAME. */ + extern size_t confstr (int __name, char *__buf, size_t __len) __THROW +- __attr_access ((__write_only__, 2, 3)); ++ __fortified_attr_access (__write_only__, 2, 3); + #endif + + +@@ -709,7 +709,7 @@ extern __gid_t getegid (void) __THROW; + the calling process is in. Otherwise, fill in the group IDs + of its supplementary groups in LIST and return the number written. */ + extern int getgroups (int __size, __gid_t __list[]) __THROW __wur +- __attr_access ((__write_only__, 2, 1)); ++ __fortified_attr_access (__write_only__, 2, 1); + #ifdef __USE_GNU + /* Return nonzero iff the calling process is in group GID. */ + extern int group_member (__gid_t __gid) __THROW; +@@ -801,7 +801,8 @@ extern char *ttyname (int __fd) __THROW; + /* Store at most BUFLEN characters of the pathname of the terminal FD is + open on in BUF. Return 0 on success, otherwise an error number. */ + extern int ttyname_r (int __fd, char *__buf, size_t __buflen) +- __THROW __nonnull ((2)) __wur __attr_access ((__write_only__, 2, 3)); ++ __THROW __nonnull ((2)) __wur ++ __fortified_attr_access (__write_only__, 2, 3); + + /* Return 1 if FD is a valid descriptor associated + with a terminal, zero if not. */ +@@ -836,7 +837,8 @@ extern int symlink (const char *__from, const char *__to) + Returns the number of characters read, or -1 for errors. */ + extern ssize_t readlink (const char *__restrict __path, + char *__restrict __buf, size_t __len) +- __THROW __nonnull ((1, 2)) __wur __attr_access ((__write_only__, 2, 3)); ++ __THROW __nonnull ((1, 2)) __wur ++ __fortified_attr_access (__write_only__, 2, 3); + + #endif /* Use POSIX.1-2001. */ + +@@ -848,7 +850,8 @@ extern int symlinkat (const char *__from, int __tofd, + /* Like readlink but a relative PATH is interpreted relative to FD. */ + extern ssize_t readlinkat (int __fd, const char *__restrict __path, + char *__restrict __buf, size_t __len) +- __THROW __nonnull ((2, 3)) __wur __attr_access ((__write_only__, 3, 4)); ++ __THROW __nonnull ((2, 3)) __wur ++ __fortified_attr_access (__write_only__, 3, 4); + #endif + + /* Remove the link NAME. */ +@@ -884,7 +887,7 @@ extern char *getlogin (void); + This function is a possible cancellation point and therefore not + marked with __THROW. */ + extern int getlogin_r (char *__name, size_t __name_len) __nonnull ((1)) +- __attr_access ((__write_only__, 1, 2)); ++ __fortified_attr_access (__write_only__, 1, 2); + #endif + + #ifdef __USE_MISC +@@ -906,7 +909,7 @@ extern int setlogin (const char *__name) __THROW __nonnull ((1)); + The result is null-terminated if LEN is large enough for the full + name and the terminator. */ + extern int gethostname (char *__name, size_t __len) __THROW __nonnull ((1)) +- __attr_access ((__write_only__, 1, 2)); ++ __fortified_attr_access (__write_only__, 1, 2); + #endif + + +@@ -925,7 +928,8 @@ extern int sethostid (long int __id) __THROW __wur; + Called just like `gethostname' and `sethostname'. + The NIS domain name is usually the empty string when not using NIS. */ + extern int getdomainname (char *__name, size_t __len) +- __THROW __nonnull ((1)) __wur __attr_access ((__write_only__, 1, 2)); ++ __THROW __nonnull ((1)) __wur ++ __fortified_attr_access (__write_only__, 1, 2); + extern int setdomainname (const char *__name, size_t __len) + __THROW __nonnull ((1)) __wur __attr_access ((__read_only__, 1, 2)); + +diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h +index 0481c1235514f6e7..74c00eee73e4009d 100644 +--- a/stdlib/stdlib.h ++++ b/stdlib/stdlib.h +@@ -943,7 +943,8 @@ extern size_t mbstowcs (wchar_t *__restrict __pwcs, + extern size_t wcstombs (char *__restrict __s, + const wchar_t *__restrict __pwcs, size_t __n) + __THROW +- __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2)); ++ __fortified_attr_access (__write_only__, 1, 3) ++ __attr_access ((__read_only__, 2)); + + #ifdef __USE_MISC + /* Determine whether the string value of RESPONSE matches the affirmation +@@ -997,7 +998,7 @@ extern char *ptsname (int __fd) __THROW __wur; + terminal associated with the master FD is open on in BUF. + Return 0 on success, otherwise an error number. */ + extern int ptsname_r (int __fd, char *__buf, size_t __buflen) +- __THROW __nonnull ((2)) __attr_access ((__write_only__, 2, 3)); ++ __THROW __nonnull ((2)) __fortified_attr_access (__write_only__, 2, 3); + + /* Open a master pseudo terminal and return its file descriptor. */ + extern int getpt (void); +diff --git a/string/bits/string_fortified.h b/string/bits/string_fortified.h +index 67ae2c6b50435368..5731274848260ad2 100644 +--- a/string/bits/string_fortified.h ++++ b/string/bits/string_fortified.h +@@ -64,7 +64,7 @@ __NTH (memset (void *__dest, int __ch, size_t __len)) + # include + + void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) +- __THROW __nonnull ((1)) __attr_access ((__write_only__, 1, 2)); ++ __THROW __nonnull ((1)) __fortified_attr_access (__write_only__, 1, 2); + + __fortify_function void + __NTH (explicit_bzero (void *__dest, size_t __len)) +@@ -106,7 +106,8 @@ __NTH (stpncpy (char *__dest, const char *__src, size_t __n)) + #else + extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, + size_t __destlen) __THROW +- __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2)); ++ __fortified_attr_access ((__write_only__, 1, 3)) ++ __attr_access ((__read_only__, 2)); + extern char *__REDIRECT_NTH (__stpncpy_alias, (char *__dest, const char *__src, + size_t __n), stpncpy); + +diff --git a/string/string.h b/string/string.h +index 04e1b7067dc31d3c..8dcafb4ac4952853 100644 +--- a/string/string.h ++++ b/string/string.h +@@ -448,7 +448,7 @@ extern char *strerror_l (int __errnum, locale_t __l) __THROW; + /* Set N bytes of S to 0. The compiler will not delete a call to this + function, even if S is dead after the call. */ + extern void explicit_bzero (void *__s, size_t __n) __THROW __nonnull ((1)) +- __attr_access ((__write_only__, 1, 2)); ++ __fortified_attr_access (__write_only__, 1, 2); + + /* Return the next DELIM-delimited token from *STRINGP, + terminating it with a '\0', and update *STRINGP to point past it. */ diff --git a/glibc-upstream-2.34-126.patch b/glibc-upstream-2.34-126.patch new file mode 100644 index 0000000..93d236d --- /dev/null +++ b/glibc-upstream-2.34-126.patch @@ -0,0 +1,1038 @@ +commit 0e6ebf06e43e879d9efa2a1c79b2a55f81653663 +Author: Siddhesh Poyarekar +Date: Wed Oct 20 18:12:41 2021 +0530 + + Make sure that the fortified function conditionals are constant + + In _FORTIFY_SOURCE=3, the size expression may be non-constant, + resulting in branches in the inline functions remaining intact and + causing a tiny overhead. Clang (and in future, gcc) make sure that + the -1 case is always safe, i.e. any comparison of the generated + expression with (size_t)-1 is always false so that bit is taken care + of. The rest is avoidable since we want the _chk variant whenever we + have a size expression and it's not -1. + + Rework the conditionals in a uniform way to clearly indicate two + conditions at compile time: + + - Either the size is unknown (-1) or we know at compile time that the + operation length is less than the object size. We can call the + original function in this case. It could be that either the length, + object size or both are non-constant, but the compiler, through + range analysis, is able to fold the *comparison* to a constant. + + - The size and length are known and the compiler can see at compile + time that operation length > object size. This is valid grounds for + a warning at compile time, followed by emitting the _chk variant. + + For everything else, emit the _chk variant. + + This simplifies most of the fortified function implementations and at + the same time, ensures that only one call from _chk or the regular + function is emitted. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Adhemerval Zanella + (cherry picked from commit a643f60c53876be0d57b4b7373770e6cb356fd13) + +diff --git a/io/bits/poll2.h b/io/bits/poll2.h +index be74d020f2e0e434..91cdcaf66a427cea 100644 +--- a/io/bits/poll2.h ++++ b/io/bits/poll2.h +@@ -36,16 +36,9 @@ extern int __REDIRECT (__poll_chk_warn, (struct pollfd *__fds, nfds_t __nfds, + __fortify_function __fortified_attr_access (__write_only__, 1, 2) int + poll (struct pollfd *__fds, nfds_t __nfds, int __timeout) + { +- if (__glibc_objsize (__fds) != (__SIZE_TYPE__) -1) +- { +- if (! __builtin_constant_p (__nfds)) +- return __poll_chk (__fds, __nfds, __timeout, __glibc_objsize (__fds)); +- else if (__glibc_objsize (__fds) / sizeof (*__fds) < __nfds) +- return __poll_chk_warn (__fds, __nfds, __timeout, +- __glibc_objsize (__fds)); +- } +- +- return __poll_alias (__fds, __nfds, __timeout); ++ return __glibc_fortify (poll, __nfds, sizeof (*__fds), ++ __glibc_objsize (__fds), ++ __fds, __nfds, __timeout); + } + + +@@ -68,17 +61,9 @@ __fortify_function __fortified_attr_access (__write_only__, 1, 2) int + ppoll (struct pollfd *__fds, nfds_t __nfds, const struct timespec *__timeout, + const __sigset_t *__ss) + { +- if (__glibc_objsize (__fds) != (__SIZE_TYPE__) -1) +- { +- if (! __builtin_constant_p (__nfds)) +- return __ppoll_chk (__fds, __nfds, __timeout, __ss, +- __glibc_objsize (__fds)); +- else if (__glibc_objsize (__fds) / sizeof (*__fds) < __nfds) +- return __ppoll_chk_warn (__fds, __nfds, __timeout, __ss, +- __glibc_objsize (__fds)); +- } +- +- return __ppoll_alias (__fds, __nfds, __timeout, __ss); ++ return __glibc_fortify (ppoll, __nfds, sizeof (*__fds), ++ __glibc_objsize (__fds), ++ __fds, __nfds, __timeout, __ss); + } + #endif + +diff --git a/libio/bits/stdio2.h b/libio/bits/stdio2.h +index 4f016a563857a137..40ff16b01b4f4876 100644 +--- a/libio/bits/stdio2.h ++++ b/libio/bits/stdio2.h +@@ -261,15 +261,12 @@ extern char *__REDIRECT (__fgets_chk_warn, + __fortify_function __wur __fortified_attr_access (__write_only__, 1, 2) char * + fgets (char *__restrict __s, int __n, FILE *__restrict __stream) + { +- if (__glibc_objsize (__s) != (size_t) -1) +- { +- if (!__builtin_constant_p (__n) || __n <= 0) +- return __fgets_chk (__s, __glibc_objsize (__s), __n, __stream); +- +- if ((size_t) __n > __glibc_objsize (__s)) +- return __fgets_chk_warn (__s, __glibc_objsize (__s), __n, __stream); +- } +- return __fgets_alias (__s, __n, __stream); ++ size_t sz = __glibc_objsize (__s); ++ if (__glibc_safe_or_unknown_len (__n, sizeof (char), sz)) ++ return __fgets_alias (__s, __n, __stream); ++ if (__glibc_unsafe_len (__n, sizeof (char), sz)) ++ return __fgets_chk_warn (__s, sz, __n, __stream); ++ return __fgets_chk (__s, sz, __n, __stream); + } + + extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, +@@ -291,19 +288,12 @@ __fortify_function __wur size_t + fread (void *__restrict __ptr, size_t __size, size_t __n, + FILE *__restrict __stream) + { +- if (__glibc_objsize0 (__ptr) != (size_t) -1) +- { +- if (!__builtin_constant_p (__size) +- || !__builtin_constant_p (__n) +- || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) +- return __fread_chk (__ptr, __glibc_objsize0 (__ptr), __size, __n, +- __stream); +- +- if (__size * __n > __glibc_objsize0 (__ptr)) +- return __fread_chk_warn (__ptr, __glibc_objsize0 (__ptr), __size, __n, +- __stream); +- } +- return __fread_alias (__ptr, __size, __n, __stream); ++ size_t sz = __glibc_objsize0 (__ptr); ++ if (__glibc_safe_or_unknown_len (__n, __size, sz)) ++ return __fread_alias (__ptr, __size, __n, __stream); ++ if (__glibc_unsafe_len (__n, __size, sz)) ++ return __fread_chk_warn (__ptr, sz, __size, __n, __stream); ++ return __fread_chk (__ptr, sz, __size, __n, __stream); + } + + #ifdef __USE_GNU +@@ -323,17 +313,12 @@ extern char *__REDIRECT (__fgets_unlocked_chk_warn, + __fortify_function __wur __fortified_attr_access (__write_only__, 1, 2) char * + fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) + { +- if (__glibc_objsize (__s) != (size_t) -1) +- { +- if (!__builtin_constant_p (__n) || __n <= 0) +- return __fgets_unlocked_chk (__s, __glibc_objsize (__s), __n, +- __stream); +- +- if ((size_t) __n > __glibc_objsize (__s)) +- return __fgets_unlocked_chk_warn (__s, __glibc_objsize (__s), __n, +- __stream); +- } +- return __fgets_unlocked_alias (__s, __n, __stream); ++ size_t sz = __glibc_objsize (__s); ++ if (__glibc_safe_or_unknown_len (__n, sizeof (char), sz)) ++ return __fgets_unlocked_alias (__s, __n, __stream); ++ if (__glibc_unsafe_len (__n, sizeof (char), sz)) ++ return __fgets_unlocked_chk_warn (__s, sz, __n, __stream); ++ return __fgets_unlocked_chk (__s, sz, __n, __stream); + } + #endif + +@@ -358,41 +343,36 @@ __fortify_function __wur size_t + fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, + FILE *__restrict __stream) + { +- if (__glibc_objsize0 (__ptr) != (size_t) -1) ++ size_t sz = __glibc_objsize0 (__ptr); ++ if (__glibc_safe_or_unknown_len (__n, __size, sz)) + { +- if (!__builtin_constant_p (__size) +- || !__builtin_constant_p (__n) +- || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) +- return __fread_unlocked_chk (__ptr, __glibc_objsize0 (__ptr), __size, +- __n, __stream); +- +- if (__size * __n > __glibc_objsize0 (__ptr)) +- return __fread_unlocked_chk_warn (__ptr, __glibc_objsize0 (__ptr), +- __size, __n, __stream); +- } +- + # ifdef __USE_EXTERN_INLINES +- if (__builtin_constant_p (__size) +- && __builtin_constant_p (__n) +- && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) +- && __size * __n <= 8) +- { +- size_t __cnt = __size * __n; +- char *__cptr = (char *) __ptr; +- if (__cnt == 0) +- return 0; +- +- for (; __cnt > 0; --__cnt) ++ if (__builtin_constant_p (__size) ++ && __builtin_constant_p (__n) ++ && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) ++ && __size * __n <= 8) + { +- int __c = getc_unlocked (__stream); +- if (__c == EOF) +- break; +- *__cptr++ = __c; ++ size_t __cnt = __size * __n; ++ char *__cptr = (char *) __ptr; ++ if (__cnt == 0) ++ return 0; ++ ++ for (; __cnt > 0; --__cnt) ++ { ++ int __c = getc_unlocked (__stream); ++ if (__c == EOF) ++ break; ++ *__cptr++ = __c; ++ } ++ return (__cptr - (char *) __ptr) / __size; + } +- return (__cptr - (char *) __ptr) / __size; +- } + # endif +- return __fread_unlocked_alias (__ptr, __size, __n, __stream); ++ return __fread_unlocked_alias (__ptr, __size, __n, __stream); ++ } ++ if (__glibc_unsafe_len (__n, __size, sz)) ++ return __fread_unlocked_chk_warn (__ptr, sz, __size, __n, __stream); ++ return __fread_unlocked_chk (__ptr, sz, __size, __n, __stream); ++ + } + #endif + +diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h +index cd836441a9807d6a..4825ff0351c1e5d4 100644 +--- a/misc/sys/cdefs.h ++++ b/misc/sys/cdefs.h +@@ -150,6 +150,53 @@ + # define __glibc_objsize(__o) __bos (__o) + #endif + ++/* Compile time conditions to choose between the regular, _chk and _chk_warn ++ variants. These conditions should get evaluated to constant and optimized ++ away. */ ++ ++#define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s)) ++#define __glibc_unsigned_or_positive(__l) \ ++ ((__typeof (__l)) 0 < (__typeof (__l)) -1 \ ++ || (__builtin_constant_p (__l) && (__l) > 0)) ++ ++/* Length is known to be safe at compile time if the __L * __S <= __OBJSZ ++ condition can be folded to a constant and if it is true. The -1 check is ++ redundant because since it implies that __glibc_safe_len_cond is true. */ ++#define __glibc_safe_or_unknown_len(__l, __s, __osz) \ ++ (__glibc_unsigned_or_positive (__l) \ ++ && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ ++ __s, __osz)) \ ++ && __glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz)) ++ ++/* Conversely, we know at compile time that the length is safe if the ++ __L * __S <= __OBJSZ condition can be folded to a constant and if it is ++ false. */ ++#define __glibc_unsafe_len(__l, __s, __osz) \ ++ (__glibc_unsigned_or_positive (__l) \ ++ && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ ++ __s, __osz)) \ ++ && !__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz)) ++ ++/* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be ++ declared. */ ++ ++#define __glibc_fortify(f, __l, __s, __osz, ...) \ ++ (__glibc_safe_or_unknown_len (__l, __s, __osz) \ ++ ? __ ## f ## _alias (__VA_ARGS__) \ ++ : (__glibc_unsafe_len (__l, __s, __osz) \ ++ ? __ ## f ## _chk_warn (__VA_ARGS__, __osz) \ ++ : __ ## f ## _chk (__VA_ARGS__, __osz))) \ ++ ++/* Fortify function f, where object size argument passed to f is the number of ++ elements and not total size. */ ++ ++#define __glibc_fortify_n(f, __l, __s, __osz, ...) \ ++ (__glibc_safe_or_unknown_len (__l, __s, __osz) \ ++ ? __ ## f ## _alias (__VA_ARGS__) \ ++ : (__glibc_unsafe_len (__l, __s, __osz) \ ++ ? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \ ++ : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \ ++ + #if __GNUC_PREREQ (4,3) + # define __warnattr(msg) __attribute__((__warning__ (msg))) + # define __errordecl(name, msg) \ +diff --git a/posix/bits/unistd.h b/posix/bits/unistd.h +index 622adeb2b28ed298..697dcbbf7b4b26f6 100644 +--- a/posix/bits/unistd.h ++++ b/posix/bits/unistd.h +@@ -35,16 +35,9 @@ extern ssize_t __REDIRECT (__read_chk_warn, + __fortify_function __wur ssize_t + read (int __fd, void *__buf, size_t __nbytes) + { +- if (__glibc_objsize0 (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__nbytes)) +- return __read_chk (__fd, __buf, __nbytes, __glibc_objsize0 (__buf)); +- +- if (__nbytes > __glibc_objsize0 (__buf)) +- return __read_chk_warn (__fd, __buf, __nbytes, +- __glibc_objsize0 (__buf)); +- } +- return __read_alias (__fd, __buf, __nbytes); ++ return __glibc_fortify (read, __nbytes, sizeof (char), ++ __glibc_objsize0 (__buf), ++ __fd, __buf, __nbytes); + } + + #ifdef __USE_UNIX98 +@@ -78,34 +71,17 @@ extern ssize_t __REDIRECT (__pread64_chk_warn, + __fortify_function __wur ssize_t + pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) + { +- if (__glibc_objsize0 (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__nbytes)) +- return __pread_chk (__fd, __buf, __nbytes, __offset, +- __glibc_objsize0 (__buf)); +- +- if ( __nbytes > __glibc_objsize0 (__buf)) +- return __pread_chk_warn (__fd, __buf, __nbytes, __offset, +- __glibc_objsize0 (__buf)); +- } +- return __pread_alias (__fd, __buf, __nbytes, __offset); ++ return __glibc_fortify (pread, __nbytes, sizeof (char), ++ __glibc_objsize0 (__buf), ++ __fd, __buf, __nbytes, __offset); + } + # else + __fortify_function __wur ssize_t + pread (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) + { +- if (__glibc_objsize0 (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__nbytes)) +- return __pread64_chk (__fd, __buf, __nbytes, __offset, +- __glibc_objsize0 (__buf)); +- +- if ( __nbytes > __glibc_objsize0 (__buf)) +- return __pread64_chk_warn (__fd, __buf, __nbytes, __offset, +- __glibc_objsize0 (__buf)); +- } +- +- return __pread64_alias (__fd, __buf, __nbytes, __offset); ++ return __glibc_fortify (pread64, __nbytes, sizeof (char), ++ __glibc_objsize0 (__buf), ++ __fd, __buf, __nbytes, __offset); + } + # endif + +@@ -113,18 +89,9 @@ pread (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) + __fortify_function __wur ssize_t + pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) + { +- if (__glibc_objsize0 (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__nbytes)) +- return __pread64_chk (__fd, __buf, __nbytes, __offset, +- __glibc_objsize0 (__buf)); +- +- if ( __nbytes > __glibc_objsize0 (__buf)) +- return __pread64_chk_warn (__fd, __buf, __nbytes, __offset, +- __glibc_objsize0 (__buf)); +- } +- +- return __pread64_alias (__fd, __buf, __nbytes, __offset); ++ return __glibc_fortify (pread64, __nbytes, sizeof (char), ++ __glibc_objsize0 (__buf), ++ __fd, __buf, __nbytes, __offset); + } + # endif + #endif +@@ -149,16 +116,9 @@ __fortify_function __nonnull ((1, 2)) __wur ssize_t + __NTH (readlink (const char *__restrict __path, char *__restrict __buf, + size_t __len)) + { +- if (__glibc_objsize (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__len)) +- return __readlink_chk (__path, __buf, __len, __glibc_objsize (__buf)); +- +- if ( __len > __glibc_objsize (__buf)) +- return __readlink_chk_warn (__path, __buf, __len, +- __glibc_objsize (__buf)); +- } +- return __readlink_alias (__path, __buf, __len); ++ return __glibc_fortify (readlink, __len, sizeof (char), ++ __glibc_objsize (__buf), ++ __path, __buf, __len); + } + #endif + +@@ -184,17 +144,9 @@ __fortify_function __nonnull ((2, 3)) __wur ssize_t + __NTH (readlinkat (int __fd, const char *__restrict __path, + char *__restrict __buf, size_t __len)) + { +- if (__glibc_objsize (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__len)) +- return __readlinkat_chk (__fd, __path, __buf, __len, +- __glibc_objsize (__buf)); +- +- if (__len > __glibc_objsize (__buf)) +- return __readlinkat_chk_warn (__fd, __path, __buf, __len, +- __glibc_objsize (__buf)); +- } +- return __readlinkat_alias (__fd, __path, __buf, __len); ++ return __glibc_fortify (readlinkat, __len, sizeof (char), ++ __glibc_objsize (__buf), ++ __fd, __path, __buf, __len); + } + #endif + +@@ -211,15 +163,9 @@ extern char *__REDIRECT_NTH (__getcwd_chk_warn, + __fortify_function __wur char * + __NTH (getcwd (char *__buf, size_t __size)) + { +- if (__glibc_objsize (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__size)) +- return __getcwd_chk (__buf, __size, __glibc_objsize (__buf)); +- +- if (__size > __glibc_objsize (__buf)) +- return __getcwd_chk_warn (__buf, __size, __glibc_objsize (__buf)); +- } +- return __getcwd_alias (__buf, __size); ++ return __glibc_fortify (getcwd, __size, sizeof (char), ++ __glibc_objsize (__buf), ++ __buf, __size); + } + + #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED +@@ -253,16 +199,9 @@ extern size_t __REDIRECT_NTH (__confstr_chk_warn, + __fortify_function size_t + __NTH (confstr (int __name, char *__buf, size_t __len)) + { +- if (__glibc_objsize (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__len)) +- return __confstr_chk (__name, __buf, __len, __glibc_objsize (__buf)); +- +- if (__glibc_objsize (__buf) < __len) +- return __confstr_chk_warn (__name, __buf, __len, +- __glibc_objsize (__buf)); +- } +- return __confstr_alias (__name, __buf, __len); ++ return __glibc_fortify (confstr, __len, sizeof (char), ++ __glibc_objsize (__buf), ++ __name, __buf, __len); + } + + +@@ -279,15 +218,9 @@ extern int __REDIRECT_NTH (__getgroups_chk_warn, + __fortify_function int + __NTH (getgroups (int __size, __gid_t __list[])) + { +- if (__glibc_objsize (__list) != (size_t) -1) +- { +- if (!__builtin_constant_p (__size) || __size < 0) +- return __getgroups_chk (__size, __list, __glibc_objsize (__list)); +- +- if (__size * sizeof (__gid_t) > __glibc_objsize (__list)) +- return __getgroups_chk_warn (__size, __list, __glibc_objsize (__list)); +- } +- return __getgroups_alias (__size, __list); ++ return __glibc_fortify (getgroups, __size, sizeof (__gid_t), ++ __glibc_objsize (__list), ++ __size, __list); + } + + +@@ -306,17 +239,9 @@ extern int __REDIRECT_NTH (__ttyname_r_chk_warn, + __fortify_function int + __NTH (ttyname_r (int __fd, char *__buf, size_t __buflen)) + { +- if (__glibc_objsize (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__buflen)) +- return __ttyname_r_chk (__fd, __buf, __buflen, +- __glibc_objsize (__buf)); +- +- if (__buflen > __glibc_objsize (__buf)) +- return __ttyname_r_chk_warn (__fd, __buf, __buflen, +- __glibc_objsize (__buf)); +- } +- return __ttyname_r_alias (__fd, __buf, __buflen); ++ return __glibc_fortify (ttyname_r, __buflen, sizeof (char), ++ __glibc_objsize (__buf), ++ __fd, __buf, __buflen); + } + + +@@ -334,16 +259,9 @@ extern int __REDIRECT (__getlogin_r_chk_warn, + __fortify_function int + getlogin_r (char *__buf, size_t __buflen) + { +- if (__glibc_objsize (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__buflen)) +- return __getlogin_r_chk (__buf, __buflen, __glibc_objsize (__buf)); +- +- if (__buflen > __glibc_objsize (__buf)) +- return __getlogin_r_chk_warn (__buf, __buflen, +- __glibc_objsize (__buf)); +- } +- return __getlogin_r_alias (__buf, __buflen); ++ return __glibc_fortify (getlogin_r, __buflen, sizeof (char), ++ __glibc_objsize (__buf), ++ __buf, __buflen); + } + #endif + +@@ -363,16 +281,9 @@ extern int __REDIRECT_NTH (__gethostname_chk_warn, + __fortify_function int + __NTH (gethostname (char *__buf, size_t __buflen)) + { +- if (__glibc_objsize (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__buflen)) +- return __gethostname_chk (__buf, __buflen, __glibc_objsize (__buf)); +- +- if (__buflen > __glibc_objsize (__buf)) +- return __gethostname_chk_warn (__buf, __buflen, +- __glibc_objsize (__buf)); +- } +- return __gethostname_alias (__buf, __buflen); ++ return __glibc_fortify (gethostname, __buflen, sizeof (char), ++ __glibc_objsize (__buf), ++ __buf, __buflen); + } + #endif + +@@ -394,15 +305,8 @@ extern int __REDIRECT_NTH (__getdomainname_chk_warn, + __fortify_function int + __NTH (getdomainname (char *__buf, size_t __buflen)) + { +- if (__glibc_objsize (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__buflen)) +- return __getdomainname_chk (__buf, __buflen, __glibc_objsize (__buf)); +- +- if (__buflen > __glibc_objsize (__buf)) +- return __getdomainname_chk_warn (__buf, __buflen, +- __glibc_objsize (__buf)); +- } +- return __getdomainname_alias (__buf, __buflen); ++ return __glibc_fortify (getdomainname, __buflen, sizeof (char), ++ __glibc_objsize (__buf), ++ __buf, __buflen); + } + #endif +diff --git a/socket/bits/socket2.h b/socket/bits/socket2.h +index 9c8ac69624ea4f78..b28cde55f3fd9c16 100644 +--- a/socket/bits/socket2.h ++++ b/socket/bits/socket2.h +@@ -33,17 +33,12 @@ extern ssize_t __REDIRECT (__recv_chk_warn, + __fortify_function ssize_t + recv (int __fd, void *__buf, size_t __n, int __flags) + { +- if (__glibc_objsize0 (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__n)) +- return __recv_chk (__fd, __buf, __n, __glibc_objsize0 (__buf), +- __flags); +- +- if (__n > __glibc_objsize0 (__buf)) +- return __recv_chk_warn (__fd, __buf, __n, __glibc_objsize0 (__buf), +- __flags); +- } +- return __recv_alias (__fd, __buf, __n, __flags); ++ size_t sz = __glibc_objsize0 (__buf); ++ if (__glibc_safe_or_unknown_len (__n, sizeof (char), sz)) ++ return __recv_alias (__fd, __buf, __n, __flags); ++ if (__glibc_unsafe_len (__n, sizeof (char), sz)) ++ return __recv_chk_warn (__fd, __buf, __n, sz, __flags); ++ return __recv_chk (__fd, __buf, __n, sz, __flags); + } + + extern ssize_t __recvfrom_chk (int __fd, void *__restrict __buf, size_t __n, +@@ -66,14 +61,11 @@ __fortify_function ssize_t + recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags, + __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len) + { +- if (__glibc_objsize0 (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__n)) +- return __recvfrom_chk (__fd, __buf, __n, __glibc_objsize0 (__buf), +- __flags, __addr, __addr_len); +- if (__n > __glibc_objsize0 (__buf)) +- return __recvfrom_chk_warn (__fd, __buf, __n, __glibc_objsize0 (__buf), +- __flags, __addr, __addr_len); +- } +- return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len); ++ size_t sz = __glibc_objsize0 (__buf); ++ if (__glibc_safe_or_unknown_len (__n, sizeof (char), sz)) ++ return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len); ++ if (__glibc_unsafe_len (__n, sizeof (char), sz)) ++ return __recvfrom_chk_warn (__fd, __buf, __n, sz, __flags, __addr, ++ __addr_len); ++ return __recvfrom_chk (__fd, __buf, __n, sz, __flags, __addr, __addr_len); + } +diff --git a/stdlib/bits/stdlib.h b/stdlib/bits/stdlib.h +index eae31b38f0475c2e..067115eeca123c6d 100644 +--- a/stdlib/bits/stdlib.h ++++ b/stdlib/bits/stdlib.h +@@ -36,17 +36,16 @@ extern char *__REDIRECT_NTH (__realpath_chk_warn, + __fortify_function __wur char * + __NTH (realpath (const char *__restrict __name, char *__restrict __resolved)) + { +- if (__glibc_objsize (__resolved) != (size_t) -1) +- { ++ size_t sz = __glibc_objsize (__resolved); ++ ++ if (sz == (size_t) -1) ++ return __realpath_alias (__name, __resolved); ++ + #if defined _LIBC_LIMITS_H_ && defined PATH_MAX +- if (__glibc_objsize (__resolved) < PATH_MAX) +- return __realpath_chk_warn (__name, __resolved, +- __glibc_objsize (__resolved)); ++ if (__glibc_unsafe_len (sz, sizeof (char), PATH_MAX)) ++ return __realpath_chk_warn (__name, __resolved, sz); + #endif +- return __realpath_chk (__name, __resolved, __glibc_objsize (__resolved)); +- } +- +- return __realpath_alias (__name, __resolved); ++ return __realpath_chk (__name, __resolved, sz); + } + + +@@ -65,16 +64,9 @@ extern int __REDIRECT_NTH (__ptsname_r_chk_warn, + __fortify_function int + __NTH (ptsname_r (int __fd, char *__buf, size_t __buflen)) + { +- if (__glibc_objsize (__buf) != (size_t) -1) +- { +- if (!__builtin_constant_p (__buflen)) +- return __ptsname_r_chk (__fd, __buf, __buflen, +- __glibc_objsize (__buf)); +- if (__buflen > __glibc_objsize (__buf)) +- return __ptsname_r_chk_warn (__fd, __buf, __buflen, +- __glibc_objsize (__buf)); +- } +- return __ptsname_r_alias (__fd, __buf, __buflen); ++ return __glibc_fortify (ptsname_r, __buflen, sizeof (char), ++ __glibc_objsize (__buf), ++ __fd, __buf, __buflen); + } + + +@@ -120,18 +112,9 @@ __fortify_function size_t + __NTH (mbstowcs (wchar_t *__restrict __dst, const char *__restrict __src, + size_t __len)) + { +- if (__glibc_objsize (__dst) != (size_t) -1) +- { +- if (!__builtin_constant_p (__len)) +- return __mbstowcs_chk (__dst, __src, __len, +- __glibc_objsize (__dst) / sizeof (wchar_t)); +- +- if (__len > __glibc_objsize (__dst) / sizeof (wchar_t)) +- return __mbstowcs_chk_warn (__dst, __src, __len, +- (__glibc_objsize (__dst) +- / sizeof (wchar_t))); +- } +- return __mbstowcs_alias (__dst, __src, __len); ++ return __glibc_fortify_n (mbstowcs, __len, sizeof (wchar_t), ++ __glibc_objsize (__dst), ++ __dst, __src, __len); + } + + +@@ -154,13 +137,7 @@ __fortify_function size_t + __NTH (wcstombs (char *__restrict __dst, const wchar_t *__restrict __src, + size_t __len)) + { +- if (__glibc_objsize (__dst) != (size_t) -1) +- { +- if (!__builtin_constant_p (__len)) +- return __wcstombs_chk (__dst, __src, __len, __glibc_objsize (__dst)); +- if (__len > __glibc_objsize (__dst)) +- return __wcstombs_chk_warn (__dst, __src, __len, +- __glibc_objsize (__dst)); +- } +- return __wcstombs_alias (__dst, __src, __len); ++ return __glibc_fortify (wcstombs, __len, sizeof (char), ++ __glibc_objsize (__dst), ++ __dst, __src, __len); + } +diff --git a/wcsmbs/bits/wchar2.h b/wcsmbs/bits/wchar2.h +index ea2518dc726aae52..26012ef9366c0b88 100644 +--- a/wcsmbs/bits/wchar2.h ++++ b/wcsmbs/bits/wchar2.h +@@ -39,17 +39,9 @@ __fortify_function wchar_t * + __NTH (wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, + size_t __n)) + { +- if (__glibc_objsize0 (__s1) != (size_t) -1) +- { +- if (!__builtin_constant_p (__n)) +- return __wmemcpy_chk (__s1, __s2, __n, +- __glibc_objsize0 (__s1) / sizeof (wchar_t)); +- +- if (__n > __glibc_objsize0 (__s1) / sizeof (wchar_t)) +- return __wmemcpy_chk_warn (__s1, __s2, __n, +- __glibc_objsize0 (__s1) / sizeof (wchar_t)); +- } +- return __wmemcpy_alias (__s1, __s2, __n); ++ return __glibc_fortify_n (wmemcpy, __n, sizeof (wchar_t), ++ __glibc_objsize0 (__s1), ++ __s1, __s2, __n); + } + + +@@ -67,18 +59,9 @@ extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn, + __fortify_function wchar_t * + __NTH (wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n)) + { +- if (__glibc_objsize0 (__s1) != (size_t) -1) +- { +- if (!__builtin_constant_p (__n)) +- return __wmemmove_chk (__s1, __s2, __n, +- __glibc_objsize0 (__s1) / sizeof (wchar_t)); +- +- if (__n > __glibc_objsize0 (__s1) / sizeof (wchar_t)) +- return __wmemmove_chk_warn (__s1, __s2, __n, +- (__glibc_objsize0 (__s1) +- / sizeof (wchar_t))); +- } +- return __wmemmove_alias (__s1, __s2, __n); ++ return __glibc_fortify_n (wmemmove, __n, sizeof (wchar_t), ++ __glibc_objsize0 (__s1), ++ __s1, __s2, __n); + } + + +@@ -101,18 +84,9 @@ __fortify_function wchar_t * + __NTH (wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, + size_t __n)) + { +- if (__glibc_objsize0 (__s1) != (size_t) -1) +- { +- if (!__builtin_constant_p (__n)) +- return __wmempcpy_chk (__s1, __s2, __n, +- __glibc_objsize0 (__s1) / sizeof (wchar_t)); +- +- if (__n > __glibc_objsize0 (__s1) / sizeof (wchar_t)) +- return __wmempcpy_chk_warn (__s1, __s2, __n, +- (__glibc_objsize0 (__s1) +- / sizeof (wchar_t))); +- } +- return __wmempcpy_alias (__s1, __s2, __n); ++ return __glibc_fortify_n (wmempcpy, __n, sizeof (wchar_t), ++ __glibc_objsize0 (__s1), ++ __s1, __s2, __n); + } + #endif + +@@ -130,17 +104,9 @@ extern wchar_t *__REDIRECT_NTH (__wmemset_chk_warn, + __fortify_function wchar_t * + __NTH (wmemset (wchar_t *__s, wchar_t __c, size_t __n)) + { +- if (__glibc_objsize0 (__s) != (size_t) -1) +- { +- if (!__builtin_constant_p (__n)) +- return __wmemset_chk (__s, __c, __n, +- __glibc_objsize0 (__s) / sizeof (wchar_t)); +- +- if (__n > __glibc_objsize0 (__s) / sizeof (wchar_t)) +- return __wmemset_chk_warn (__s, __c, __n, +- __glibc_objsize0 (__s) / sizeof (wchar_t)); +- } +- return __wmemset_alias (__s, __c, __n); ++ return __glibc_fortify_n (wmemset, __n, sizeof (wchar_t), ++ __glibc_objsize0 (__s), ++ __s, __c, __n); + } + + +@@ -154,9 +120,9 @@ extern wchar_t *__REDIRECT_NTH (__wcscpy_alias, + __fortify_function wchar_t * + __NTH (wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src)) + { +- if (__glibc_objsize (__dest) != (size_t) -1) +- return __wcscpy_chk (__dest, __src, +- __glibc_objsize (__dest) / sizeof (wchar_t)); ++ size_t sz = __glibc_objsize (__dest); ++ if (sz != (size_t) -1) ++ return __wcscpy_chk (__dest, __src, sz / sizeof (wchar_t)); + return __wcscpy_alias (__dest, __src); + } + +@@ -171,9 +137,9 @@ extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias, + __fortify_function wchar_t * + __NTH (wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src)) + { +- if (__glibc_objsize (__dest) != (size_t) -1) +- return __wcpcpy_chk (__dest, __src, +- __glibc_objsize (__dest) / sizeof (wchar_t)); ++ size_t sz = __glibc_objsize (__dest); ++ if (sz != (size_t) -1) ++ return __wcpcpy_chk (__dest, __src, sz / sizeof (wchar_t)); + return __wcpcpy_alias (__dest, __src); + } + +@@ -196,17 +162,9 @@ __fortify_function wchar_t * + __NTH (wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, + size_t __n)) + { +- if (__glibc_objsize (__dest) != (size_t) -1) +- { +- if (!__builtin_constant_p (__n)) +- return __wcsncpy_chk (__dest, __src, __n, +- __glibc_objsize (__dest) / sizeof (wchar_t)); +- if (__n > __glibc_objsize (__dest) / sizeof (wchar_t)) +- return __wcsncpy_chk_warn (__dest, __src, __n, +- (__glibc_objsize (__dest) +- / sizeof (wchar_t))); +- } +- return __wcsncpy_alias (__dest, __src, __n); ++ return __glibc_fortify_n (wcsncpy, __n, sizeof (wchar_t), ++ __glibc_objsize (__dest), ++ __dest, __src, __n); + } + + +@@ -228,17 +186,9 @@ __fortify_function wchar_t * + __NTH (wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, + size_t __n)) + { +- if (__glibc_objsize (__dest) != (size_t) -1) +- { +- if (!__builtin_constant_p (__n)) +- return __wcpncpy_chk (__dest, __src, __n, +- __glibc_objsize (__dest) / sizeof (wchar_t)); +- if (__n > __glibc_objsize (__dest) / sizeof (wchar_t)) +- return __wcpncpy_chk_warn (__dest, __src, __n, +- (__glibc_objsize (__dest) +- / sizeof (wchar_t))); +- } +- return __wcpncpy_alias (__dest, __src, __n); ++ return __glibc_fortify_n (wcpncpy, __n, sizeof (wchar_t), ++ __glibc_objsize (__dest), ++ __dest, __src, __n); + } + + +@@ -252,9 +202,9 @@ extern wchar_t *__REDIRECT_NTH (__wcscat_alias, + __fortify_function wchar_t * + __NTH (wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src)) + { +- if (__glibc_objsize (__dest) != (size_t) -1) +- return __wcscat_chk (__dest, __src, +- __glibc_objsize (__dest) / sizeof (wchar_t)); ++ size_t sz = __glibc_objsize (__dest); ++ if (sz != (size_t) -1) ++ return __wcscat_chk (__dest, __src, sz / sizeof (wchar_t)); + return __wcscat_alias (__dest, __src); + } + +@@ -271,9 +221,9 @@ __fortify_function wchar_t * + __NTH (wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src, + size_t __n)) + { +- if (__glibc_objsize (__dest) != (size_t) -1) +- return __wcsncat_chk (__dest, __src, __n, +- __glibc_objsize (__dest) / sizeof (wchar_t)); ++ size_t sz = __glibc_objsize (__dest); ++ if (sz != (size_t) -1) ++ return __wcsncat_chk (__dest, __src, __n, sz / sizeof (wchar_t)); + return __wcsncat_alias (__dest, __src, __n); + } + +@@ -293,10 +243,10 @@ __fortify_function int + __NTH (swprintf (wchar_t *__restrict __s, size_t __n, + const wchar_t *__restrict __fmt, ...)) + { +- if (__glibc_objsize (__s) != (size_t) -1 || __USE_FORTIFY_LEVEL > 1) ++ size_t sz = __glibc_objsize (__s); ++ if (sz != (size_t) -1 || __USE_FORTIFY_LEVEL > 1) + return __swprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, +- __glibc_objsize (__s) / sizeof (wchar_t), +- __fmt, __va_arg_pack ()); ++ sz / sizeof (wchar_t), __fmt, __va_arg_pack ()); + return __swprintf_alias (__s, __n, __fmt, __va_arg_pack ()); + } + #elif !defined __cplusplus +@@ -323,10 +273,10 @@ __fortify_function int + __NTH (vswprintf (wchar_t *__restrict __s, size_t __n, + const wchar_t *__restrict __fmt, __gnuc_va_list __ap)) + { +- if (__glibc_objsize (__s) != (size_t) -1 || __USE_FORTIFY_LEVEL > 1) ++ size_t sz = __glibc_objsize (__s); ++ if (sz != (size_t) -1 || __USE_FORTIFY_LEVEL > 1) + return __vswprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, +- __glibc_objsize (__s) / sizeof (wchar_t), __fmt, +- __ap); ++ sz / sizeof (wchar_t), __fmt, __ap); + return __vswprintf_alias (__s, __n, __fmt, __ap); + } + +@@ -392,18 +342,12 @@ extern wchar_t *__REDIRECT (__fgetws_chk_warn, + __fortify_function __wur wchar_t * + fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) + { +- if (__glibc_objsize (__s) != (size_t) -1) +- { +- if (!__builtin_constant_p (__n) || __n <= 0) +- return __fgetws_chk (__s, __glibc_objsize (__s) / sizeof (wchar_t), +- __n, __stream); +- +- if ((size_t) __n > __glibc_objsize (__s) / sizeof (wchar_t)) +- return __fgetws_chk_warn (__s, +- __glibc_objsize (__s) / sizeof (wchar_t), +- __n, __stream); +- } +- return __fgetws_alias (__s, __n, __stream); ++ size_t sz = __glibc_objsize (__s); ++ if (__glibc_safe_or_unknown_len (__n, sizeof (wchar_t), sz)) ++ return __fgetws_alias (__s, __n, __stream); ++ if (__glibc_unsafe_len (__n, sizeof (wchar_t), sz)) ++ return __fgetws_chk_warn (__s, sz / sizeof (wchar_t), __n, __stream); ++ return __fgetws_chk (__s, sz / sizeof (wchar_t), __n, __stream); + } + + #ifdef __USE_GNU +@@ -424,20 +368,13 @@ extern wchar_t *__REDIRECT (__fgetws_unlocked_chk_warn, + __fortify_function __wur wchar_t * + fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) + { +- if (__glibc_objsize (__s) != (size_t) -1) +- { +- if (!__builtin_constant_p (__n) || __n <= 0) +- return __fgetws_unlocked_chk (__s, +- __glibc_objsize (__s) / sizeof (wchar_t), +- __n, __stream); +- +- if ((size_t) __n > __glibc_objsize (__s) / sizeof (wchar_t)) +- return __fgetws_unlocked_chk_warn (__s, +- (__glibc_objsize (__s) +- / sizeof (wchar_t)), +- __n, __stream); +- } +- return __fgetws_unlocked_alias (__s, __n, __stream); ++ size_t sz = __glibc_objsize (__s); ++ if (__glibc_safe_or_unknown_len (__n, sizeof (wchar_t), sz)) ++ return __fgetws_unlocked_alias (__s, __n, __stream); ++ if (__glibc_unsafe_len (__n, sizeof (wchar_t), sz)) ++ return __fgetws_unlocked_chk_warn (__s, sz / sizeof (wchar_t), __n, ++ __stream); ++ return __fgetws_unlocked_chk (__s, sz / sizeof (wchar_t), __n, __stream); + } + #endif + +@@ -488,18 +425,9 @@ __fortify_function size_t + __NTH (mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, + size_t __len, mbstate_t *__restrict __ps)) + { +- if (__glibc_objsize (__dst) != (size_t) -1) +- { +- if (!__builtin_constant_p (__len)) +- return __mbsrtowcs_chk (__dst, __src, __len, __ps, +- __glibc_objsize (__dst) / sizeof (wchar_t)); +- +- if (__len > __glibc_objsize (__dst) / sizeof (wchar_t)) +- return __mbsrtowcs_chk_warn (__dst, __src, __len, __ps, +- (__glibc_objsize (__dst) +- / sizeof (wchar_t))); +- } +- return __mbsrtowcs_alias (__dst, __src, __len, __ps); ++ return __glibc_fortify_n (mbsrtowcs, __len, sizeof (wchar_t), ++ __glibc_objsize (__dst), ++ __dst, __src, __len, __ps); + } + + +@@ -523,17 +451,9 @@ __fortify_function size_t + __NTH (wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src, + size_t __len, mbstate_t *__restrict __ps)) + { +- if (__glibc_objsize (__dst) != (size_t) -1) +- { +- if (!__builtin_constant_p (__len)) +- return __wcsrtombs_chk (__dst, __src, __len, __ps, +- __glibc_objsize (__dst)); +- +- if (__len > __glibc_objsize (__dst)) +- return __wcsrtombs_chk_warn (__dst, __src, __len, __ps, +- __glibc_objsize (__dst)); +- } +- return __wcsrtombs_alias (__dst, __src, __len, __ps); ++ return __glibc_fortify (wcsrtombs, __len, sizeof (char), ++ __glibc_objsize (__dst), ++ __dst, __src, __len, __ps); + } + + +@@ -559,18 +479,9 @@ __fortify_function size_t + __NTH (mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, + size_t __nmc, size_t __len, mbstate_t *__restrict __ps)) + { +- if (__glibc_objsize (__dst) != (size_t) -1) +- { +- if (!__builtin_constant_p (__len)) +- return __mbsnrtowcs_chk (__dst, __src, __nmc, __len, __ps, +- __glibc_objsize (__dst) / sizeof (wchar_t)); +- +- if (__len > __glibc_objsize (__dst) / sizeof (wchar_t)) +- return __mbsnrtowcs_chk_warn (__dst, __src, __nmc, __len, __ps, +- (__glibc_objsize (__dst) +- / sizeof (wchar_t))); +- } +- return __mbsnrtowcs_alias (__dst, __src, __nmc, __len, __ps); ++ return __glibc_fortify_n (mbsnrtowcs, __len, sizeof (wchar_t), ++ __glibc_objsize (__dst), ++ __dst, __src, __nmc, __len, __ps); + } + + +@@ -596,16 +507,8 @@ __fortify_function size_t + __NTH (wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src, + size_t __nwc, size_t __len, mbstate_t *__restrict __ps)) + { +- if (__glibc_objsize (__dst) != (size_t) -1) +- { +- if (!__builtin_constant_p (__len)) +- return __wcsnrtombs_chk (__dst, __src, __nwc, __len, __ps, +- __glibc_objsize (__dst)); +- +- if (__len > __glibc_objsize (__dst)) +- return __wcsnrtombs_chk_warn (__dst, __src, __nwc, __len, __ps, +- __glibc_objsize (__dst)); +- } +- return __wcsnrtombs_alias (__dst, __src, __nwc, __len, __ps); ++ return __glibc_fortify (wcsnrtombs, __len, sizeof (char), ++ __glibc_objsize (__dst), ++ __dst, __src, __nwc, __len, __ps); + } + #endif diff --git a/glibc-upstream-2.34-127.patch b/glibc-upstream-2.34-127.patch new file mode 100644 index 0000000..488cc63 --- /dev/null +++ b/glibc-upstream-2.34-127.patch @@ -0,0 +1,358 @@ +commit 536910724d30a38eeecd14cdbe2c93c78ea67646 +Author: Siddhesh Poyarekar +Date: Wed Oct 20 18:13:05 2021 +0530 + + debug: Add tests for _FORTIFY_SOURCE=3 + + Add some testing coverage for _FORTIFY_SOURCE=3. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Adhemerval Zanella + (cherry picked from commit ad6f2a010c2ce759936de4747f6e0d53991912f8) + +diff --git a/debug/Makefile b/debug/Makefile +index 6893111cbfaa0900..357f888246061e15 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -120,6 +120,8 @@ CFLAGS-tst-chk3.c += -Wno-format -Wno-deprecated-declarations -Wno-error + CFLAGS-tst-chk4.cc += -Wno-format -Wno-deprecated-declarations -Wno-error + CFLAGS-tst-chk5.cc += -Wno-format -Wno-deprecated-declarations -Wno-error + CFLAGS-tst-chk6.cc += -Wno-format -Wno-deprecated-declarations -Wno-error ++CFLAGS-tst-chk7.c += -Wno-format -Wno-deprecated-declarations -Wno-error ++CFLAGS-tst-chk8.cc += -Wno-format -Wno-deprecated-declarations -Wno-error + CFLAGS-tst-lfschk1.c += -Wno-format -Wno-deprecated-declarations -Wno-error + CFLAGS-tst-lfschk2.c += -Wno-format -Wno-deprecated-declarations -Wno-error + CFLAGS-tst-lfschk3.c += -Wno-format -Wno-deprecated-declarations -Wno-error +@@ -129,6 +131,7 @@ CFLAGS-tst-lfschk6.cc += -Wno-format -Wno-deprecated-declarations -Wno-error + LDLIBS-tst-chk4 = -lstdc++ + LDLIBS-tst-chk5 = -lstdc++ + LDLIBS-tst-chk6 = -lstdc++ ++LDLIBS-tst-chk8 = -lstdc++ + LDLIBS-tst-lfschk4 = -lstdc++ + LDLIBS-tst-lfschk5 = -lstdc++ + LDLIBS-tst-lfschk6 = -lstdc++ +@@ -150,16 +153,16 @@ CFLAGS-tst-ssp-1.c += -fstack-protector-all + + tests = backtrace-tst tst-longjmp_chk tst-chk1 tst-chk2 tst-chk3 \ + tst-lfschk1 tst-lfschk2 tst-lfschk3 test-strcpy_chk test-stpcpy_chk \ +- tst-chk4 tst-chk5 tst-chk6 tst-lfschk4 tst-lfschk5 tst-lfschk6 \ +- tst-longjmp_chk2 tst-backtrace2 tst-backtrace3 tst-backtrace4 \ +- tst-backtrace5 tst-backtrace6 ++ tst-chk4 tst-chk5 tst-chk6 tst-chk7 tst-chk8 tst-lfschk4 tst-lfschk5 \ ++ tst-lfschk6 tst-longjmp_chk2 tst-backtrace2 tst-backtrace3 \ ++ tst-backtrace4 tst-backtrace5 tst-backtrace6 + + ifeq ($(have-ssp),yes) + tests += tst-ssp-1 + endif + + ifeq (,$(CXX)) +-tests-unsupported = tst-chk4 tst-chk5 tst-chk6 \ ++tests-unsupported = tst-chk4 tst-chk5 tst-chk6 tst-chk8 \ + tst-lfschk4 tst-lfschk5 tst-lfschk6 + endif + +@@ -193,6 +196,8 @@ $(objpfx)tst-chk3.out: $(gen-locales) + $(objpfx)tst-chk4.out: $(gen-locales) + $(objpfx)tst-chk5.out: $(gen-locales) + $(objpfx)tst-chk6.out: $(gen-locales) ++$(objpfx)tst-chk7.out: $(gen-locales) ++$(objpfx)tst-chk8.out: $(gen-locales) + $(objpfx)tst-lfschk1.out: $(gen-locales) + $(objpfx)tst-lfschk2.out: $(gen-locales) + $(objpfx)tst-lfschk3.out: $(gen-locales) +diff --git a/debug/tst-chk1.c b/debug/tst-chk1.c +index 6c1d32cc62c3a964..68ac00d1808382b8 100644 +--- a/debug/tst-chk1.c ++++ b/debug/tst-chk1.c +@@ -83,8 +83,14 @@ handler (int sig) + _exit (127); + } + ++#if __USE_FORTIFY_LEVEL == 3 ++volatile size_t buf_size = 10; ++#else + char buf[10]; + wchar_t wbuf[10]; ++#define buf_size sizeof (buf) ++#endif ++ + volatile size_t l0; + volatile char *p; + volatile wchar_t *wp; +@@ -123,6 +129,10 @@ int num2 = 987654; + static int + do_test (void) + { ++#if __USE_FORTIFY_LEVEL == 3 ++ char *buf = (char *) malloc (buf_size); ++ wchar_t *wbuf = (wchar_t *) malloc (buf_size * sizeof (wchar_t)); ++#endif + set_fortify_handler (handler); + + struct A { char buf1[9]; char buf2[1]; } a; +@@ -947,93 +957,93 @@ do_test (void) + + rewind (stdin); + +- if (fgets (buf, sizeof (buf), stdin) != buf ++ if (fgets (buf, buf_size, stdin) != buf + || memcmp (buf, "abcdefgh\n", 10)) + FAIL (); +- if (fgets (buf, sizeof (buf), stdin) != buf || memcmp (buf, "ABCDEFGHI", 10)) ++ if (fgets (buf, buf_size, stdin) != buf || memcmp (buf, "ABCDEFGHI", 10)) + FAIL (); + + rewind (stdin); + +- if (fgets (buf, l0 + sizeof (buf), stdin) != buf ++ if (fgets (buf, l0 + buf_size, stdin) != buf + || memcmp (buf, "abcdefgh\n", 10)) + FAIL (); + + #if __USE_FORTIFY_LEVEL >= 1 + CHK_FAIL_START +- if (fgets (buf, sizeof (buf) + 1, stdin) != buf) ++ if (fgets (buf, buf_size + 1, stdin) != buf) + FAIL (); + CHK_FAIL_END + + CHK_FAIL_START +- if (fgets (buf, l0 + sizeof (buf) + 1, stdin) != buf) ++ if (fgets (buf, l0 + buf_size + 1, stdin) != buf) + FAIL (); + CHK_FAIL_END + #endif + + rewind (stdin); + +- if (fgets_unlocked (buf, sizeof (buf), stdin) != buf ++ if (fgets_unlocked (buf, buf_size, stdin) != buf + || memcmp (buf, "abcdefgh\n", 10)) + FAIL (); +- if (fgets_unlocked (buf, sizeof (buf), stdin) != buf ++ if (fgets_unlocked (buf, buf_size, stdin) != buf + || memcmp (buf, "ABCDEFGHI", 10)) + FAIL (); + + rewind (stdin); + +- if (fgets_unlocked (buf, l0 + sizeof (buf), stdin) != buf ++ if (fgets_unlocked (buf, l0 + buf_size, stdin) != buf + || memcmp (buf, "abcdefgh\n", 10)) + FAIL (); + + #if __USE_FORTIFY_LEVEL >= 1 + CHK_FAIL_START +- if (fgets_unlocked (buf, sizeof (buf) + 1, stdin) != buf) ++ if (fgets_unlocked (buf, buf_size + 1, stdin) != buf) + FAIL (); + CHK_FAIL_END + + CHK_FAIL_START +- if (fgets_unlocked (buf, l0 + sizeof (buf) + 1, stdin) != buf) ++ if (fgets_unlocked (buf, l0 + buf_size + 1, stdin) != buf) + FAIL (); + CHK_FAIL_END + #endif + + rewind (stdin); + +- if (fread (buf, 1, sizeof (buf), stdin) != sizeof (buf) ++ if (fread (buf, 1, buf_size, stdin) != buf_size + || memcmp (buf, "abcdefgh\nA", 10)) + FAIL (); +- if (fread (buf, sizeof (buf), 1, stdin) != 1 ++ if (fread (buf, buf_size, 1, stdin) != 1 + || memcmp (buf, "BCDEFGHI\na", 10)) + FAIL (); + + rewind (stdin); + +- if (fread (buf, l0 + 1, sizeof (buf), stdin) != sizeof (buf) ++ if (fread (buf, l0 + 1, buf_size, stdin) != buf_size + || memcmp (buf, "abcdefgh\nA", 10)) + FAIL (); +- if (fread (buf, sizeof (buf), l0 + 1, stdin) != 1 ++ if (fread (buf, buf_size, l0 + 1, stdin) != 1 + || memcmp (buf, "BCDEFGHI\na", 10)) + FAIL (); + + #if __USE_FORTIFY_LEVEL >= 1 + CHK_FAIL_START +- if (fread (buf, 1, sizeof (buf) + 1, stdin) != sizeof (buf) + 1) ++ if (fread (buf, 1, buf_size + 1, stdin) != buf_size + 1) + FAIL (); + CHK_FAIL_END + + CHK_FAIL_START +- if (fread (buf, sizeof (buf) + 1, l0 + 1, stdin) != 1) ++ if (fread (buf, buf_size + 1, l0 + 1, stdin) != 1) + FAIL (); + CHK_FAIL_END + #endif + + rewind (stdin); + +- if (fread_unlocked (buf, 1, sizeof (buf), stdin) != sizeof (buf) ++ if (fread_unlocked (buf, 1, buf_size, stdin) != buf_size + || memcmp (buf, "abcdefgh\nA", 10)) + FAIL (); +- if (fread_unlocked (buf, sizeof (buf), 1, stdin) != 1 ++ if (fread_unlocked (buf, buf_size, 1, stdin) != 1 + || memcmp (buf, "BCDEFGHI\na", 10)) + FAIL (); + +@@ -1048,100 +1058,100 @@ do_test (void) + + rewind (stdin); + +- if (fread_unlocked (buf, l0 + 1, sizeof (buf), stdin) != sizeof (buf) ++ if (fread_unlocked (buf, l0 + 1, buf_size, stdin) != buf_size + || memcmp (buf, "abcdefgh\nA", 10)) + FAIL (); +- if (fread_unlocked (buf, sizeof (buf), l0 + 1, stdin) != 1 ++ if (fread_unlocked (buf, buf_size, l0 + 1, stdin) != 1 + || memcmp (buf, "BCDEFGHI\na", 10)) + FAIL (); + + #if __USE_FORTIFY_LEVEL >= 1 + CHK_FAIL_START +- if (fread_unlocked (buf, 1, sizeof (buf) + 1, stdin) != sizeof (buf) + 1) ++ if (fread_unlocked (buf, 1, buf_size + 1, stdin) != buf_size + 1) + FAIL (); + CHK_FAIL_END + + CHK_FAIL_START +- if (fread_unlocked (buf, sizeof (buf) + 1, l0 + 1, stdin) != 1) ++ if (fread_unlocked (buf, buf_size + 1, l0 + 1, stdin) != 1) + FAIL (); + CHK_FAIL_END + #endif + + lseek (fileno (stdin), 0, SEEK_SET); + +- if (read (fileno (stdin), buf, sizeof (buf) - 1) != sizeof (buf) - 1 ++ if (read (fileno (stdin), buf, buf_size - 1) != buf_size - 1 + || memcmp (buf, "abcdefgh\n", 9)) + FAIL (); +- if (read (fileno (stdin), buf, sizeof (buf) - 1) != sizeof (buf) - 1 ++ if (read (fileno (stdin), buf, buf_size - 1) != buf_size - 1 + || memcmp (buf, "ABCDEFGHI", 9)) + FAIL (); + + lseek (fileno (stdin), 0, SEEK_SET); + +- if (read (fileno (stdin), buf, l0 + sizeof (buf) - 1) != sizeof (buf) - 1 ++ if (read (fileno (stdin), buf, l0 + buf_size - 1) != buf_size - 1 + || memcmp (buf, "abcdefgh\n", 9)) + FAIL (); + + #if __USE_FORTIFY_LEVEL >= 1 + CHK_FAIL_START +- if (read (fileno (stdin), buf, sizeof (buf) + 1) != sizeof (buf) + 1) ++ if (read (fileno (stdin), buf, buf_size + 1) != buf_size + 1) + FAIL (); + CHK_FAIL_END + + CHK_FAIL_START +- if (read (fileno (stdin), buf, l0 + sizeof (buf) + 1) != sizeof (buf) + 1) ++ if (read (fileno (stdin), buf, l0 + buf_size + 1) != buf_size + 1) + FAIL (); + CHK_FAIL_END + #endif + +- if (pread (fileno (stdin), buf, sizeof (buf) - 1, sizeof (buf) - 2) +- != sizeof (buf) - 1 ++ if (pread (fileno (stdin), buf, buf_size - 1, buf_size - 2) ++ != buf_size - 1 + || memcmp (buf, "\nABCDEFGH", 9)) + FAIL (); +- if (pread (fileno (stdin), buf, sizeof (buf) - 1, 0) != sizeof (buf) - 1 ++ if (pread (fileno (stdin), buf, buf_size - 1, 0) != buf_size - 1 + || memcmp (buf, "abcdefgh\n", 9)) + FAIL (); +- if (pread (fileno (stdin), buf, l0 + sizeof (buf) - 1, sizeof (buf) - 3) +- != sizeof (buf) - 1 ++ if (pread (fileno (stdin), buf, l0 + buf_size - 1, buf_size - 3) ++ != buf_size - 1 + || memcmp (buf, "h\nABCDEFG", 9)) + FAIL (); + + #if __USE_FORTIFY_LEVEL >= 1 + CHK_FAIL_START +- if (pread (fileno (stdin), buf, sizeof (buf) + 1, 2 * sizeof (buf)) +- != sizeof (buf) + 1) ++ if (pread (fileno (stdin), buf, buf_size + 1, 2 * buf_size) ++ != buf_size + 1) + FAIL (); + CHK_FAIL_END + + CHK_FAIL_START +- if (pread (fileno (stdin), buf, l0 + sizeof (buf) + 1, 2 * sizeof (buf)) +- != sizeof (buf) + 1) ++ if (pread (fileno (stdin), buf, l0 + buf_size + 1, 2 * buf_size) ++ != buf_size + 1) + FAIL (); + CHK_FAIL_END + #endif + +- if (pread64 (fileno (stdin), buf, sizeof (buf) - 1, sizeof (buf) - 2) +- != sizeof (buf) - 1 ++ if (pread64 (fileno (stdin), buf, buf_size - 1, buf_size - 2) ++ != buf_size - 1 + || memcmp (buf, "\nABCDEFGH", 9)) + FAIL (); +- if (pread64 (fileno (stdin), buf, sizeof (buf) - 1, 0) != sizeof (buf) - 1 ++ if (pread64 (fileno (stdin), buf, buf_size - 1, 0) != buf_size - 1 + || memcmp (buf, "abcdefgh\n", 9)) + FAIL (); +- if (pread64 (fileno (stdin), buf, l0 + sizeof (buf) - 1, sizeof (buf) - 3) +- != sizeof (buf) - 1 ++ if (pread64 (fileno (stdin), buf, l0 + buf_size - 1, buf_size - 3) ++ != buf_size - 1 + || memcmp (buf, "h\nABCDEFG", 9)) + FAIL (); + + #if __USE_FORTIFY_LEVEL >= 1 + CHK_FAIL_START +- if (pread64 (fileno (stdin), buf, sizeof (buf) + 1, 2 * sizeof (buf)) +- != sizeof (buf) + 1) ++ if (pread64 (fileno (stdin), buf, buf_size + 1, 2 * buf_size) ++ != buf_size + 1) + FAIL (); + CHK_FAIL_END + + CHK_FAIL_START +- if (pread64 (fileno (stdin), buf, l0 + sizeof (buf) + 1, 2 * sizeof (buf)) +- != sizeof (buf) + 1) ++ if (pread64 (fileno (stdin), buf, l0 + buf_size + 1, 2 * buf_size) ++ != buf_size + 1) + FAIL (); + CHK_FAIL_END + #endif +@@ -1179,7 +1189,7 @@ do_test (void) + CHK_FAIL2_END + + CHK_FAIL2_START +- snprintf (buf, sizeof (buf), "%3$d\n", 1, 2, 3, 4); ++ snprintf (buf, buf_size, "%3$d\n", 1, 2, 3, 4); + CHK_FAIL2_END + + int sp[2]; +diff --git a/debug/tst-chk7.c b/debug/tst-chk7.c +new file mode 100644 +index 0000000000000000..2a7b32381268135c +--- /dev/null ++++ b/debug/tst-chk7.c +@@ -0,0 +1,2 @@ ++#define _FORTIFY_SOURCE 3 ++#include "tst-chk1.c" +diff --git a/debug/tst-chk8.cc b/debug/tst-chk8.cc +new file mode 100644 +index 0000000000000000..2a7b32381268135c +--- /dev/null ++++ b/debug/tst-chk8.cc +@@ -0,0 +1,2 @@ ++#define _FORTIFY_SOURCE 3 ++#include "tst-chk1.c" diff --git a/glibc-upstream-2.34-128.patch b/glibc-upstream-2.34-128.patch new file mode 100644 index 0000000..f08fa75 --- /dev/null +++ b/glibc-upstream-2.34-128.patch @@ -0,0 +1,24 @@ +commit 98ea9372cc8d60b12aa33e007fdd5f5fb042a651 +Author: Siddhesh Poyarekar +Date: Thu Dec 16 07:19:14 2021 +0530 + + __glibc_unsafe_len: Fix comment + + We know that the length is *unsafe*. + + Signed-off-by: Siddhesh Poyarekar + (cherry picked from commit ae23fa3e5fe24daf94fc7f8e5268bb8ceeda7477) + +diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h +index 4825ff0351c1e5d4..3bb9f38916e30295 100644 +--- a/misc/sys/cdefs.h ++++ b/misc/sys/cdefs.h +@@ -168,7 +168,7 @@ + __s, __osz)) \ + && __glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz)) + +-/* Conversely, we know at compile time that the length is safe if the ++/* Conversely, we know at compile time that the length is unsafe if the + __L * __S <= __OBJSZ condition can be folded to a constant and if it is + false. */ + #define __glibc_unsafe_len(__l, __s, __osz) \ diff --git a/glibc-upstream-2.34-129.patch b/glibc-upstream-2.34-129.patch new file mode 100644 index 0000000..507a5a5 --- /dev/null +++ b/glibc-upstream-2.34-129.patch @@ -0,0 +1,91 @@ +commit 10f7bdebe570e42d1f7a43de4f90eda8ccb4f0da +Author: Siddhesh Poyarekar +Date: Fri Dec 17 18:35:44 2021 +0530 + + fortify: Fix spurious warning with realpath + + The length and object size arguments were swapped around for realpath. + Also add a smoke test so that any changes in this area get caught in + future. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Adhemerval Zanella + (cherry picked from commit 2bbd07c715275eb6c616988925738a0517180d57) + +diff --git a/debug/Makefile b/debug/Makefile +index 357f888246061e15..bc37e466eed490fa 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -108,6 +108,7 @@ CFLAGS-tst-longjmp_chk2.c += -fexceptions -fasynchronous-unwind-tables + CPPFLAGS-tst-longjmp_chk2.c += -D_FORTIFY_SOURCE=1 + CFLAGS-tst-longjmp_chk3.c += -fexceptions -fasynchronous-unwind-tables + CPPFLAGS-tst-longjmp_chk3.c += -D_FORTIFY_SOURCE=1 ++CPPFLAGS-tst-realpath-chk.c += -D_FORTIFY_SOURCE=2 + + # We know these tests have problems with format strings, this is what + # we are testing. Disable that warning. They are also testing +@@ -155,7 +156,7 @@ tests = backtrace-tst tst-longjmp_chk tst-chk1 tst-chk2 tst-chk3 \ + tst-lfschk1 tst-lfschk2 tst-lfschk3 test-strcpy_chk test-stpcpy_chk \ + tst-chk4 tst-chk5 tst-chk6 tst-chk7 tst-chk8 tst-lfschk4 tst-lfschk5 \ + tst-lfschk6 tst-longjmp_chk2 tst-backtrace2 tst-backtrace3 \ +- tst-backtrace4 tst-backtrace5 tst-backtrace6 ++ tst-backtrace4 tst-backtrace5 tst-backtrace6 tst-realpath-chk + + ifeq ($(have-ssp),yes) + tests += tst-ssp-1 +diff --git a/debug/tst-realpath-chk.c b/debug/tst-realpath-chk.c +new file mode 100644 +index 0000000000000000..a8fcb327c43fb34d +--- /dev/null ++++ b/debug/tst-realpath-chk.c +@@ -0,0 +1,37 @@ ++/* Smoke test to verify that realpath does not cause spurious warnings. ++ Copyright The GNU Toolchain Authors. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++#include ++ ++static int ++do_test (void) ++{ ++#ifdef PATH_MAX ++ char buf[PATH_MAX + 1]; ++ char *res = realpath (".", buf); ++ TEST_VERIFY (res == buf); ++#endif ++ ++ return 0; ++} ++ ++#include +diff --git a/stdlib/bits/stdlib.h b/stdlib/bits/stdlib.h +index 067115eeca123c6d..ccacbdf76a08225a 100644 +--- a/stdlib/bits/stdlib.h ++++ b/stdlib/bits/stdlib.h +@@ -42,7 +42,7 @@ __NTH (realpath (const char *__restrict __name, char *__restrict __resolved)) + return __realpath_alias (__name, __resolved); + + #if defined _LIBC_LIMITS_H_ && defined PATH_MAX +- if (__glibc_unsafe_len (sz, sizeof (char), PATH_MAX)) ++ if (__glibc_unsafe_len (PATH_MAX, sizeof (char), sz)) + return __realpath_chk_warn (__name, __resolved, sz); + #endif + return __realpath_chk (__name, __resolved, sz); diff --git a/glibc-upstream-2.34-130.patch b/glibc-upstream-2.34-130.patch new file mode 100644 index 0000000..e114c75 --- /dev/null +++ b/glibc-upstream-2.34-130.patch @@ -0,0 +1,42 @@ +commit d6a58bd81d07322ff5da8f419d8620ef037b6a36 +Author: Siddhesh Poyarekar +Date: Wed Jan 12 18:46:28 2022 +0530 + + Enable _FORTIFY_SOURCE=3 for gcc 12 and above + + gcc 12 now has support for the __builtin_dynamic_object_size builtin. + Adapt the macro checks to enable _FORTIFY_SOURCE=3 on gcc 12 and above. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Adhemerval Zanella + (cherry picked from commit 86bf0feb0e3ec8e37872f72499d6ae33406561d7) + +diff --git a/include/features.h b/include/features.h +index d974eabfafc24ffb..933499bcff8f1449 100644 +--- a/include/features.h ++++ b/include/features.h +@@ -412,7 +412,9 @@ + # warning _FORTIFY_SOURCE requires compiling with optimization (-O) + # elif !__GNUC_PREREQ (4, 1) + # warning _FORTIFY_SOURCE requires GCC 4.1 or later +-# elif _FORTIFY_SOURCE > 2 && __glibc_clang_prereq (9, 0) ++# elif _FORTIFY_SOURCE > 2 && (__glibc_clang_prereq (9, 0) \ ++ || __GNUC_PREREQ (12, 0)) ++ + # if _FORTIFY_SOURCE > 3 + # warning _FORTIFY_SOURCE > 3 is treated like 3 on this platform + # endif +diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h +index 3bb9f38916e30295..515fb681a0547217 100644 +--- a/misc/sys/cdefs.h ++++ b/misc/sys/cdefs.h +@@ -142,7 +142,8 @@ + #define __bos0(ptr) __builtin_object_size (ptr, 0) + + /* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */ +-#if __USE_FORTIFY_LEVEL == 3 && __glibc_clang_prereq (9, 0) ++#if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \ ++ || __GNUC_PREREQ (12, 0)) + # define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0) + # define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1) + #else diff --git a/glibc-upstream-2.34-131.patch b/glibc-upstream-2.34-131.patch new file mode 100644 index 0000000..d2b1af9 --- /dev/null +++ b/glibc-upstream-2.34-131.patch @@ -0,0 +1,293 @@ +commit f8c2f620f1929ad78cb0a247601bec972f140c51 +Author: Siddhesh Poyarekar +Date: Wed Jan 12 23:34:23 2022 +0530 + + debug: Autogenerate _FORTIFY_SOURCE tests + + Rename debug/tst-chk1.c to debug/tst-fortify.c and add make hackery to + autogenerate tests with different macros enabled to build and run the + same test with different configurations as well as different + fortification levels. + + The change also ends up expanding the -lfs tests to include + _FORTIFY_SOURCE=3. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Adhemerval Zanella + (cherry picked from commit db27f1251b008280a29d540b4f8ab2a38a0d80af) + +diff --git a/Makerules b/Makerules +index 596fa68376f45298..7fbe85719aacc230 100644 +--- a/Makerules ++++ b/Makerules +@@ -424,6 +424,12 @@ $(objpfx)%$o: $(objpfx)%.c $(before-compile); $$(compile-command.c) + endef + object-suffixes-left := $(all-object-suffixes) + include $(o-iterator) ++ ++define o-iterator-doit ++$(objpfx)%$o: $(objpfx)%.cc $(before-compile); $$(compile-command.cc) ++endef ++object-suffixes-left := $(all-object-suffixes) ++include $(o-iterator) + endif + + # Generate .dT files as we compile. +diff --git a/debug/Makefile b/debug/Makefile +index bc37e466eed490fa..acc1b8f6ad029c62 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -1,4 +1,5 @@ +-# Copyright (C) 1998-2021 Free Software Foundation, Inc. ++# Copyright (C) 1998-2022 Free Software Foundation, Inc. ++# Copyright The GNU Toolchain Authors. + # This file is part of the GNU C Library. + + # The GNU C Library is free software; you can redistribute it and/or +@@ -110,32 +111,60 @@ CFLAGS-tst-longjmp_chk3.c += -fexceptions -fasynchronous-unwind-tables + CPPFLAGS-tst-longjmp_chk3.c += -D_FORTIFY_SOURCE=1 + CPPFLAGS-tst-realpath-chk.c += -D_FORTIFY_SOURCE=2 + ++# _FORTIFY_SOURCE tests. ++# Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and ++# preprocessor conditions based on tst-fortify.c. ++# ++# To add a new test condition, define a cflags-$(cond) make variable to set ++# CFLAGS for the file. ++ ++tests-all-chk = tst-fortify ++tests-c-chk = ++tests-cc-chk = ++ ++CFLAGS-tst-fortify.c += -Wno-format -Wno-deprecated-declarations -Wno-error ++ ++# No additional flags for the default tests. ++define cflags-default ++endef ++ ++define cflags-lfs ++CFLAGS-tst-fortify-$(1)-lfs-$(2).$(1) += -D_FILE_OFFSET_BITS=64 ++endef ++ + # We know these tests have problems with format strings, this is what + # we are testing. Disable that warning. They are also testing + # deprecated functions (notably gets) so disable that warning as well. + # And they also generate warnings from warning attributes, which + # cannot be disabled via pragmas, so require -Wno-error to be used. +-CFLAGS-tst-chk1.c += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-chk2.c += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-chk3.c += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-chk4.cc += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-chk5.cc += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-chk6.cc += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-chk7.c += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-chk8.cc += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-lfschk1.c += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-lfschk2.c += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-lfschk3.c += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-lfschk4.cc += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-lfschk5.cc += -Wno-format -Wno-deprecated-declarations -Wno-error +-CFLAGS-tst-lfschk6.cc += -Wno-format -Wno-deprecated-declarations -Wno-error +-LDLIBS-tst-chk4 = -lstdc++ +-LDLIBS-tst-chk5 = -lstdc++ +-LDLIBS-tst-chk6 = -lstdc++ +-LDLIBS-tst-chk8 = -lstdc++ +-LDLIBS-tst-lfschk4 = -lstdc++ +-LDLIBS-tst-lfschk5 = -lstdc++ +-LDLIBS-tst-lfschk6 = -lstdc++ ++define gen-chk-test ++tests-$(1)-chk += tst-fortify-$(1)-$(2)-$(3) ++CFLAGS-tst-fortify-$(1)-$(2)-$(3).$(1) += -D_FORTIFY_SOURCE=$(3) -Wno-format \ ++ -Wno-deprecated-declarations \ ++ -Wno-error ++$(eval $(call cflags-$(2),$(1),$(3))) ++$(objpfx)tst-fortify-$(1)-$(2)-$(3).$(1): tst-fortify.c Makefile ++ ( echo "/* Autogenerated from Makefile. */"; \ ++ echo ""; \ ++ echo "#include \"tst-fortify.c\"" ) > $$@.tmp ++ mv $$@.tmp $$@ ++endef ++ ++chk-extensions = c cc ++chk-types = default lfs ++chk-levels = 1 2 3 ++ ++$(foreach e,$(chk-extensions), \ ++ $(foreach t,$(chk-types), \ ++ $(foreach l,$(chk-levels), \ ++ $(eval $(call gen-chk-test,$(e),$(t),$(l)))))) ++ ++tests-all-chk += $(tests-c-chk) $(tests-cc-chk) ++ ++define link-cc ++LDLIBS-$(1) = -lstdc++ ++endef ++$(foreach t,$(tests-cc-chk), $(eval $(call link-cc,$(t)))) + + # backtrace_symbols only works if we link with -rdynamic. backtrace + # requires unwind tables on most architectures. +@@ -152,19 +181,25 @@ LDFLAGS-tst-backtrace6 = -rdynamic + + CFLAGS-tst-ssp-1.c += -fstack-protector-all + +-tests = backtrace-tst tst-longjmp_chk tst-chk1 tst-chk2 tst-chk3 \ +- tst-lfschk1 tst-lfschk2 tst-lfschk3 test-strcpy_chk test-stpcpy_chk \ +- tst-chk4 tst-chk5 tst-chk6 tst-chk7 tst-chk8 tst-lfschk4 tst-lfschk5 \ +- tst-lfschk6 tst-longjmp_chk2 tst-backtrace2 tst-backtrace3 \ +- tst-backtrace4 tst-backtrace5 tst-backtrace6 tst-realpath-chk ++tests = backtrace-tst \ ++ tst-longjmp_chk \ ++ test-strcpy_chk \ ++ test-stpcpy_chk \ ++ tst-longjmp_chk2 \ ++ tst-backtrace2 \ ++ tst-backtrace3 \ ++ tst-backtrace4 \ ++ tst-backtrace5 \ ++ tst-backtrace6 \ ++ tst-realpath-chk \ ++ $(tests-all-chk) + + ifeq ($(have-ssp),yes) + tests += tst-ssp-1 + endif + + ifeq (,$(CXX)) +-tests-unsupported = tst-chk4 tst-chk5 tst-chk6 tst-chk8 \ +- tst-lfschk4 tst-lfschk5 tst-lfschk6 ++tests-unsupported = $(tests-cc-chk) + endif + + extra-libs = libSegFault libpcprofile +@@ -191,20 +226,10 @@ ifeq ($(run-built-tests),yes) + LOCALES := de_DE.UTF-8 + include ../gen-locales.mk + +-$(objpfx)tst-chk1.out: $(gen-locales) +-$(objpfx)tst-chk2.out: $(gen-locales) +-$(objpfx)tst-chk3.out: $(gen-locales) +-$(objpfx)tst-chk4.out: $(gen-locales) +-$(objpfx)tst-chk5.out: $(gen-locales) +-$(objpfx)tst-chk6.out: $(gen-locales) +-$(objpfx)tst-chk7.out: $(gen-locales) +-$(objpfx)tst-chk8.out: $(gen-locales) +-$(objpfx)tst-lfschk1.out: $(gen-locales) +-$(objpfx)tst-lfschk2.out: $(gen-locales) +-$(objpfx)tst-lfschk3.out: $(gen-locales) +-$(objpfx)tst-lfschk4.out: $(gen-locales) +-$(objpfx)tst-lfschk5.out: $(gen-locales) +-$(objpfx)tst-lfschk6.out: $(gen-locales) ++define chk-gen-locales ++$(objpfx)$(1).out: $(gen-locales) ++endef ++$(foreach t, $(tests-all-chk), $(eval $(call chk-gen-locales,$(t)))) + endif + + sLIBdir := $(shell echo $(slibdir) | sed 's,lib\(\|64\)$$,\\\\$$LIB,') +diff --git a/debug/tst-chk2.c b/debug/tst-chk2.c +deleted file mode 100644 +index be37ce2d22f0760a..0000000000000000 +--- a/debug/tst-chk2.c ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define _FORTIFY_SOURCE 1 +-#include "tst-chk1.c" +diff --git a/debug/tst-chk3.c b/debug/tst-chk3.c +deleted file mode 100644 +index 38b8e4fb360ba722..0000000000000000 +--- a/debug/tst-chk3.c ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define _FORTIFY_SOURCE 2 +-#include "tst-chk1.c" +diff --git a/debug/tst-chk4.cc b/debug/tst-chk4.cc +deleted file mode 100644 +index c82e6aac86038791..0000000000000000 +--- a/debug/tst-chk4.cc ++++ /dev/null +@@ -1 +0,0 @@ +-#include "tst-chk1.c" +diff --git a/debug/tst-chk5.cc b/debug/tst-chk5.cc +deleted file mode 100644 +index be37ce2d22f0760a..0000000000000000 +--- a/debug/tst-chk5.cc ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define _FORTIFY_SOURCE 1 +-#include "tst-chk1.c" +diff --git a/debug/tst-chk6.cc b/debug/tst-chk6.cc +deleted file mode 100644 +index 38b8e4fb360ba722..0000000000000000 +--- a/debug/tst-chk6.cc ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define _FORTIFY_SOURCE 2 +-#include "tst-chk1.c" +diff --git a/debug/tst-chk7.c b/debug/tst-chk7.c +deleted file mode 100644 +index 2a7b32381268135c..0000000000000000 +--- a/debug/tst-chk7.c ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define _FORTIFY_SOURCE 3 +-#include "tst-chk1.c" +diff --git a/debug/tst-chk8.cc b/debug/tst-chk8.cc +deleted file mode 100644 +index 2a7b32381268135c..0000000000000000 +--- a/debug/tst-chk8.cc ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define _FORTIFY_SOURCE 3 +-#include "tst-chk1.c" +diff --git a/debug/tst-chk1.c b/debug/tst-fortify.c +similarity index 100% +rename from debug/tst-chk1.c +rename to debug/tst-fortify.c +diff --git a/debug/tst-lfschk1.c b/debug/tst-lfschk1.c +deleted file mode 100644 +index f3e6d47d5e4484c3..0000000000000000 +--- a/debug/tst-lfschk1.c ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define _FILE_OFFSET_BITS 64 +-#include "tst-chk1.c" +diff --git a/debug/tst-lfschk2.c b/debug/tst-lfschk2.c +deleted file mode 100644 +index 95d4db1d32d2eeb3..0000000000000000 +--- a/debug/tst-lfschk2.c ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define _FILE_OFFSET_BITS 64 +-#include "tst-chk2.c" +diff --git a/debug/tst-lfschk3.c b/debug/tst-lfschk3.c +deleted file mode 100644 +index 50a1ae1258f1553d..0000000000000000 +--- a/debug/tst-lfschk3.c ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define _FILE_OFFSET_BITS 64 +-#include "tst-chk3.c" +diff --git a/debug/tst-lfschk4.cc b/debug/tst-lfschk4.cc +deleted file mode 100644 +index f3e6d47d5e4484c3..0000000000000000 +--- a/debug/tst-lfschk4.cc ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define _FILE_OFFSET_BITS 64 +-#include "tst-chk1.c" +diff --git a/debug/tst-lfschk5.cc b/debug/tst-lfschk5.cc +deleted file mode 100644 +index 95d4db1d32d2eeb3..0000000000000000 +--- a/debug/tst-lfschk5.cc ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define _FILE_OFFSET_BITS 64 +-#include "tst-chk2.c" +diff --git a/debug/tst-lfschk6.cc b/debug/tst-lfschk6.cc +deleted file mode 100644 +index 50a1ae1258f1553d..0000000000000000 +--- a/debug/tst-lfschk6.cc ++++ /dev/null +@@ -1,2 +0,0 @@ +-#define _FILE_OFFSET_BITS 64 +-#include "tst-chk3.c" diff --git a/glibc-upstream-2.34-132.patch b/glibc-upstream-2.34-132.patch new file mode 100644 index 0000000..9da05ba --- /dev/null +++ b/glibc-upstream-2.34-132.patch @@ -0,0 +1,356 @@ +commit 224d8c1890b6c57c7e4e8ddbb792dd9552086704 +Author: Siddhesh Poyarekar +Date: Wed Jan 12 23:34:48 2022 +0530 + + debug: Synchronize feature guards in fortified functions [BZ #28746] + + Some functions (e.g. stpcpy, pread64, etc.) had moved to POSIX in the + main headers as they got incorporated into the standard, but their + fortified variants remained under __USE_GNU. As a result, these + functions did not get fortified when _GNU_SOURCE was not defined. + + Add test wrappers that check all functions tested in tst-chk0 at all + levels with _GNU_SOURCE undefined and then use the failures to (1) + exclude checks for _GNU_SOURCE functions in these tests and (2) Fix + feature macro guards in the fortified function headers so that they're + the same as the ones in the main headers. + + This fixes BZ #28746. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Adhemerval Zanella + (cherry picked from commit fcfc9086815bf0d277ad47a90ee3fda4c37acca8) + +diff --git a/debug/Makefile b/debug/Makefile +index acc1b8f6ad029c62..71248e0d457a5b12 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -132,6 +132,12 @@ define cflags-lfs + CFLAGS-tst-fortify-$(1)-lfs-$(2).$(1) += -D_FILE_OFFSET_BITS=64 + endef + ++define cflags-nongnu ++CFLAGS-tst-fortify-$(1)-nongnu-$(2).$(1) += -D_LARGEFILE64_SOURCE=1 ++endef ++ ++src-chk-nongnu = \#undef _GNU_SOURCE ++ + # We know these tests have problems with format strings, this is what + # we are testing. Disable that warning. They are also testing + # deprecated functions (notably gets) so disable that warning as well. +@@ -145,13 +151,13 @@ CFLAGS-tst-fortify-$(1)-$(2)-$(3).$(1) += -D_FORTIFY_SOURCE=$(3) -Wno-format \ + $(eval $(call cflags-$(2),$(1),$(3))) + $(objpfx)tst-fortify-$(1)-$(2)-$(3).$(1): tst-fortify.c Makefile + ( echo "/* Autogenerated from Makefile. */"; \ +- echo ""; \ ++ echo "$(src-chk-$(2))"; \ + echo "#include \"tst-fortify.c\"" ) > $$@.tmp + mv $$@.tmp $$@ + endef + + chk-extensions = c cc +-chk-types = default lfs ++chk-types = default lfs nongnu + chk-levels = 1 2 3 + + $(foreach e,$(chk-extensions), \ +diff --git a/debug/tst-fortify.c b/debug/tst-fortify.c +index 68ac00d1808382b8..8b5902423cf0ad88 100644 +--- a/debug/tst-fortify.c ++++ b/debug/tst-fortify.c +@@ -1,4 +1,5 @@ +-/* Copyright (C) 2004-2021 Free Software Foundation, Inc. ++/* Copyright (C) 2004-2022 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek , 2004. + +@@ -37,6 +38,17 @@ + #include + #include + ++#ifndef _GNU_SOURCE ++# define MEMPCPY memcpy ++# define WMEMPCPY wmemcpy ++# define MEMPCPY_RET(x) 0 ++# define WMEMPCPY_RET(x) 0 ++#else ++# define MEMPCPY mempcpy ++# define WMEMPCPY wmempcpy ++# define MEMPCPY_RET(x) __builtin_strlen (x) ++# define WMEMPCPY_RET(x) wcslen (x) ++#endif + + #define obstack_chunk_alloc malloc + #define obstack_chunk_free free +@@ -163,7 +175,7 @@ do_test (void) + if (memcmp (buf, "aabcdefghi", 10)) + FAIL (); + +- if (mempcpy (buf + 5, "abcde", 5) != buf + 10 ++ if (MEMPCPY (buf + 5, "abcde", 5) != buf + 5 + MEMPCPY_RET ("abcde") + || memcmp (buf, "aabcdabcde", 10)) + FAIL (); + +@@ -208,7 +220,7 @@ do_test (void) + if (memcmp (buf, "aabcdefghi", 10)) + FAIL (); + +- if (mempcpy (buf + 5, "abcde", l0 + 5) != buf + 10 ++ if (MEMPCPY (buf + 5, "abcde", l0 + 5) != buf + 5 + MEMPCPY_RET ("abcde") + || memcmp (buf, "aabcdabcde", 10)) + FAIL (); + +@@ -267,7 +279,8 @@ do_test (void) + if (memcmp (a.buf1, "aabcdefghi", 10)) + FAIL (); + +- if (mempcpy (a.buf1 + 5, "abcde", l0 + 5) != a.buf1 + 10 ++ if (MEMPCPY (a.buf1 + 5, "abcde", l0 + 5) ++ != a.buf1 + 5 + MEMPCPY_RET ("abcde") + || memcmp (a.buf1, "aabcdabcde", 10)) + FAIL (); + +@@ -348,6 +361,7 @@ do_test (void) + bcopy (buf + 1, buf + 2, l0 + 9); + CHK_FAIL_END + ++#ifdef _GNU_SOURCE + CHK_FAIL_START + p = (char *) mempcpy (buf + 6, "abcde", 5); + CHK_FAIL_END +@@ -355,6 +369,7 @@ do_test (void) + CHK_FAIL_START + p = (char *) mempcpy (buf + 6, "abcde", l0 + 5); + CHK_FAIL_END ++#endif + + CHK_FAIL_START + memset (buf + 9, 'j', 2); +@@ -465,6 +480,7 @@ do_test (void) + bcopy (a.buf1 + 1, a.buf1 + 2, l0 + 9); + CHK_FAIL_END + ++#ifdef _GNU_SOURCE + CHK_FAIL_START + p = (char *) mempcpy (a.buf1 + 6, "abcde", 5); + CHK_FAIL_END +@@ -472,6 +488,7 @@ do_test (void) + CHK_FAIL_START + p = (char *) mempcpy (a.buf1 + 6, "abcde", l0 + 5); + CHK_FAIL_END ++#endif + + CHK_FAIL_START + memset (a.buf1 + 9, 'j', 2); +@@ -551,7 +568,7 @@ do_test (void) + if (wmemcmp (wbuf, L"aabcdefghi", 10)) + FAIL (); + +- if (wmempcpy (wbuf + 5, L"abcde", 5) != wbuf + 10 ++ if (WMEMPCPY (wbuf + 5, L"abcde", 5) != wbuf + 5 + WMEMPCPY_RET (L"abcde") + || wmemcmp (wbuf, L"aabcdabcde", 10)) + FAIL (); + +@@ -584,7 +601,8 @@ do_test (void) + if (wmemcmp (wbuf, L"aabcdefghi", 10)) + FAIL (); + +- if (wmempcpy (wbuf + 5, L"abcde", l0 + 5) != wbuf + 10 ++ if (WMEMPCPY (wbuf + 5, L"abcde", l0 + 5) ++ != wbuf + 5 + WMEMPCPY_RET (L"abcde") + || wmemcmp (wbuf, L"aabcdabcde", 10)) + FAIL (); + +@@ -626,7 +644,8 @@ do_test (void) + if (wmemcmp (wa.buf1, L"aabcdefghi", 10)) + FAIL (); + +- if (wmempcpy (wa.buf1 + 5, L"abcde", l0 + 5) != wa.buf1 + 10 ++ if (WMEMPCPY (wa.buf1 + 5, L"abcde", l0 + 5) ++ != wa.buf1 + 5 + WMEMPCPY_RET (L"abcde") + || wmemcmp (wa.buf1, L"aabcdabcde", 10)) + FAIL (); + +@@ -695,6 +714,7 @@ do_test (void) + wmemmove (wbuf + 2, wbuf + 1, l0 + 9); + CHK_FAIL_END + ++#ifdef _GNU_SOURCE + CHK_FAIL_START + wp = wmempcpy (wbuf + 6, L"abcde", 5); + CHK_FAIL_END +@@ -702,6 +722,7 @@ do_test (void) + CHK_FAIL_START + wp = wmempcpy (wbuf + 6, L"abcde", l0 + 5); + CHK_FAIL_END ++#endif + + CHK_FAIL_START + wmemset (wbuf + 9, L'j', 2); +@@ -769,6 +790,7 @@ do_test (void) + wmemmove (wa.buf1 + 2, wa.buf1 + 1, l0 + 9); + CHK_FAIL_END + ++#ifdef _GNU_SOURCE + CHK_FAIL_START + wp = wmempcpy (wa.buf1 + 6, L"abcde", 5); + CHK_FAIL_END +@@ -776,6 +798,7 @@ do_test (void) + CHK_FAIL_START + wp = wmempcpy (wa.buf1 + 6, L"abcde", l0 + 5); + CHK_FAIL_END ++#endif + + CHK_FAIL_START + wmemset (wa.buf1 + 9, L'j', 2); +@@ -907,6 +930,7 @@ do_test (void) + if (fprintf (fp, buf2 + 4, str5) != 7) + FAIL (); + ++#ifdef _GNU_SOURCE + char *my_ptr = NULL; + strcpy (buf2 + 2, "%n%s%n"); + /* When the format string is writable and contains %n, +@@ -936,6 +960,7 @@ do_test (void) + if (obstack_printf (&obs, "%s%n%s%n", str4, &n1, str5, &n1) != 14) + FAIL (); + obstack_free (&obs, NULL); ++#endif + + if (freopen (temp_filename, "r", stdin) == NULL) + { +@@ -983,6 +1008,7 @@ do_test (void) + + rewind (stdin); + ++#ifdef _GNU_SOURCE + if (fgets_unlocked (buf, buf_size, stdin) != buf + || memcmp (buf, "abcdefgh\n", 10)) + FAIL (); +@@ -1009,6 +1035,7 @@ do_test (void) + #endif + + rewind (stdin); ++#endif + + if (fread (buf, 1, buf_size, stdin) != buf_size + || memcmp (buf, "abcdefgh\nA", 10)) +@@ -1579,7 +1606,10 @@ do_test (void) + ret = 1; + } + +- int fd = posix_openpt (O_RDWR); ++ int fd; ++ ++#ifdef _GNU_SOURCE ++ fd = posix_openpt (O_RDWR); + if (fd != -1) + { + char enough[1000]; +@@ -1595,6 +1625,7 @@ do_test (void) + #endif + close (fd); + } ++#endif + + #if PATH_MAX > 0 + confstr (_CS_GNU_LIBC_VERSION, largebuf, sizeof (largebuf)); +@@ -1712,8 +1743,9 @@ do_test (void) + poll (fds, l0 + 2, 0); + CHK_FAIL_END + #endif ++#ifdef _GNU_SOURCE + ppoll (fds, 1, NULL, NULL); +-#if __USE_FORTIFY_LEVEL >= 1 ++# if __USE_FORTIFY_LEVEL >= 1 + CHK_FAIL_START + ppoll (fds, 2, NULL, NULL); + CHK_FAIL_END +@@ -1721,6 +1753,7 @@ do_test (void) + CHK_FAIL_START + ppoll (fds, l0 + 2, NULL, NULL); + CHK_FAIL_END ++# endif + #endif + + return ret; +diff --git a/posix/bits/unistd.h b/posix/bits/unistd.h +index 697dcbbf7b4b26f6..1df7e5ceef3e1fd4 100644 +--- a/posix/bits/unistd.h ++++ b/posix/bits/unistd.h +@@ -40,7 +40,7 @@ read (int __fd, void *__buf, size_t __nbytes) + __fd, __buf, __nbytes); + } + +-#ifdef __USE_UNIX98 ++#if defined __USE_UNIX98 || defined __USE_XOPEN2K8 + extern ssize_t __pread_chk (int __fd, void *__buf, size_t __nbytes, + __off_t __offset, size_t __bufsize) + __wur __attr_access ((__write_only__, 2, 3)); +diff --git a/string/bits/string_fortified.h b/string/bits/string_fortified.h +index 5731274848260ad2..218006c9ba882d9c 100644 +--- a/string/bits/string_fortified.h ++++ b/string/bits/string_fortified.h +@@ -79,7 +79,7 @@ __NTH (strcpy (char *__restrict __dest, const char *__restrict __src)) + return __builtin___strcpy_chk (__dest, __src, __glibc_objsize (__dest)); + } + +-#ifdef __USE_GNU ++#ifdef __USE_XOPEN2K8 + __fortify_function char * + __NTH (stpcpy (char *__restrict __dest, const char *__restrict __src)) + { +@@ -96,14 +96,15 @@ __NTH (strncpy (char *__restrict __dest, const char *__restrict __src, + __glibc_objsize (__dest)); + } + +-#if __GNUC_PREREQ (4, 7) || __glibc_clang_prereq (2, 6) ++#ifdef __USE_XOPEN2K8 ++# if __GNUC_PREREQ (4, 7) || __glibc_clang_prereq (2, 6) + __fortify_function char * + __NTH (stpncpy (char *__dest, const char *__src, size_t __n)) + { + return __builtin___stpncpy_chk (__dest, __src, __n, + __glibc_objsize (__dest)); + } +-#else ++# else + extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n, + size_t __destlen) __THROW + __fortified_attr_access ((__write_only__, 1, 3)) +@@ -119,6 +120,7 @@ __NTH (stpncpy (char *__dest, const char *__src, size_t __n)) + return __stpncpy_chk (__dest, __src, __n, __bos (__dest)); + return __stpncpy_alias (__dest, __src, __n); + } ++# endif + #endif + + +diff --git a/support/xsignal.h b/support/xsignal.h +index 8ee1fa6b4dceeadf..692e0f2c4242d848 100644 +--- a/support/xsignal.h ++++ b/support/xsignal.h +@@ -28,7 +28,9 @@ __BEGIN_DECLS + terminate the process on error. */ + + void xraise (int sig); ++#ifdef _GNU_SOURCE + sighandler_t xsignal (int sig, sighandler_t handler); ++#endif + void xsigaction (int sig, const struct sigaction *newact, + struct sigaction *oldact); + +diff --git a/wcsmbs/bits/wchar2.h b/wcsmbs/bits/wchar2.h +index 26012ef9366c0b88..88c1fdfcd34292f4 100644 +--- a/wcsmbs/bits/wchar2.h ++++ b/wcsmbs/bits/wchar2.h +@@ -457,7 +457,7 @@ __NTH (wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src, + } + + +-#ifdef __USE_GNU ++#ifdef __USE_XOPEN2K8 + extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst, + const char **__restrict __src, size_t __nmc, + size_t __len, mbstate_t *__restrict __ps, diff --git a/glibc.spec b/glibc.spec index 81a2eb1..1db258f 100644 --- a/glibc.spec +++ b/glibc.spec @@ -148,7 +148,7 @@ end \ Summary: The GNU libc libraries Name: glibc Version: %{glibcversion} -Release: 28%{?dist} +Release: 29%{?dist} # In general, GPLv2+ is used by programs, LGPLv2+ is used for # libraries. @@ -378,6 +378,31 @@ Patch174: glibc-rh2058224-1.patch Patch175: glibc-rh2058224-2.patch Patch176: glibc-rh2058230.patch Patch177: glibc-rh2054789.patch +Patch178: glibc-upstream-2.34-108.patch +Patch179: glibc-upstream-2.34-110.patch +# glibc-2.34-109-gd64b08d5ba only changes NEWS. +Patch180: glibc-upstream-2.34-111.patch +Patch181: glibc-upstream-2.34-112.patch +Patch182: glibc-upstream-2.34-113.patch +Patch183: glibc-upstream-2.34-114.patch +Patch184: glibc-upstream-2.34-117.patch +Patch185: glibc-upstream-2.34-118.patch +Patch186: glibc-upstream-2.34-119.patch +# glibc-2.34-115-gd5d1c95aaf only changes NEWS. +# glibc-2.34-116-g852361b5a3 is glibc-rh2054789.patch. +Patch187: glibc-upstream-2.34-120.patch +Patch188: glibc-upstream-2.34-121.patch +Patch189: glibc-upstream-2.34-122.patch +Patch190: glibc-upstream-2.34-123.patch +Patch191: glibc-upstream-2.34-124.patch +Patch192: glibc-upstream-2.34-125.patch +Patch193: glibc-upstream-2.34-126.patch +Patch194: glibc-upstream-2.34-127.patch +Patch195: glibc-upstream-2.34-128.patch +Patch196: glibc-upstream-2.34-129.patch +Patch197: glibc-upstream-2.34-130.patch +Patch198: glibc-upstream-2.34-131.patch +Patch199: glibc-upstream-2.34-132.patch ############################################################################## # Continued list of core "glibc" package information: @@ -2434,6 +2459,35 @@ fi %files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared %changelog +* Tue Mar 15 2022 Florian Weimer - 2.34-29 +- Sync with upstream branch release/2.34/master, + commit 224d8c1890b6c57c7e4e8ddbb792dd9552086704: +- debug: Synchronize feature guards in fortified functions [BZ #28746] +- debug: Autogenerate _FORTIFY_SOURCE tests +- Enable _FORTIFY_SOURCE=3 for gcc 12 and above +- fortify: Fix spurious warning with realpath +- __glibc_unsafe_len: Fix comment +- debug: Add tests for _FORTIFY_SOURCE=3 +- Make sure that the fortified function conditionals are constant +- Don't add access size hints to fortifiable functions +- nss: Protect against errno changes in function lookup (bug 28953) +- nss: Do not mention NSS test modules in +- io: Add fsync call in tst-stat +- hppa: Fix warnings from _dl_lookup_address +- nptl: Fix cleanups for stack grows up [BZ# 28899] +- hppa: Revise gettext trampoline design +- hppa: Fix swapcontext +- Fix elf/tst-audit2 on hppa +- localedef: Handle symbolic links when generating locale-archive +- NEWS: Add a bug fix entry for BZ #28896 +- x86: Fix TEST_NAME to make it a string in tst-strncmp-rtm.c +- x86: Test wcscmp RTM in the wcsncmp overflow case [BZ #28896] +- x86: Fallback {str|wcs}cmp RTM in the ncmp overflow case [BZ #28896] +- string: Add a testcase for wcsncmp with SIZE_MAX [BZ #28755] +- linux: fix accuracy of get_nprocs and get_nprocs_conf [BZ #28865] +- Add reference to BZ#28860 on NEWS +- linux: Fix missing __convert_scm_timestamps (BZ #28860) + * Tue Mar 08 2022 Arjun Shankar - 2.34-28 - Reduce installed size of some langpacks by de-duplicating LC_CTYPE (#2054789) - Fix localedef so it can handle symbolic links when generating locale-archive. @@ -2643,2917 +2697,3 @@ fi - Update NEWS. - NEWS: Fix typos, grammar, and missing words - elf: Fix audit regression - -* Fri Jul 30 2021 Siddhesh Poyarekar - 2.33.9000-56 -- Port post scripts for gconv-extra to lua and drop dependency across - architectures for x86 multilib (#1988344). - -* Thu Jul 29 2021 Florian Weimer - 2.33.9000-55 -- Auto-sync with upstream branch master, - commit c37fc3ebf0607ce1953c565ffe56d56555eeb25e: -- Update libc.pot for 2.34 release. -- x86-64: Add Avoid_Short_Distance_REP_MOVSB -- Typo: Rename HAVE_CLONE3_WAPPER to HAVE_CLONE3_WRAPPER -- build-many-glibcs.py: Add x86_64-linux-gnu-minimal configuration -- tests: use xmalloc to allocate implementation array -- xmalloc: Fix warnings with gcc analyzer -- __cxa_thread_atexit_impl: Abort on allocation failure [BZ #18524] -- manual: Drop the .so suffix in libc_malloc_debug description -- hurd: _Fork: unlock malloc before calling fork child hooks - -* Tue Jul 27 2021 Florian Weimer - 2.33.9000-54 -- Revert to old C.UTF-8 locale - -* Mon Jul 26 2021 Siddhesh Poyarekar - 2.33.9000-53 -- Loosen dependency on glibc-gconv-extra (#1812191). - -* Mon Jul 26 2021 Florian Weimer - 2.33.9000-52 -- Switch to new version of C.UTF-8 locale - -* Mon Jul 26 2021 Florian Weimer - 2.33.9000-51 -- Auto-sync with upstream branch master, - commit ddcc612ce923038b867083a0c55d6e034951155a: -- Exclude static tests for mcheck and malloc-check -- i386: Regenerate ulps - -* Sat Jul 24 2021 Florian Weimer - 2.33.9000-50 -- Auto-sync with upstream branch master, - commit d34ed66f96fa9316654d7adb2afcce4be1d1c4f5: -- manual: Document unsupported cases for interposition -- x86: Install [BZ #27958] -- Fix build and tests with --disable-tunables - -* Sat Jul 24 2021 Florian Weimer - 2.33.9000-49 -- Remove both old and new library names in glibc-hwcaps removal (#1983677) - -* Fri Jul 23 2021 Florian Weimer - 2.33.9000-48 -- Auto-sync with upstream branch master, - commit 9a7ab0769b295cbf5232140401742a8f34bda3de: -- hurd: Fix glob lstat compatibility -- socket: Add time64 alias for setsockopt -- socket: Add time64 alias for getsockopt -- mcheck Fix malloc_usable_size [BZ #22057] -- Remove malloc hooks [BZ #23328] -- Move malloc_{g,s}et_state to libc_malloc_debug -- glibc.malloc.check: Wean away from malloc hooks -- mtrace: Wean away from malloc hooks -- Simplify __malloc_initialized -- mcheck: Wean away from malloc hooks [BZ #23489] -- Move malloc hooks into a compat DSO -- Remove __morecore and __default_morecore -- Remove __after_morecore_hook -- Make mcheck tests conditional on GLIBC_2.23 or earlier -- posix: Add sysconf(_SC_{MIN,}SIGSTKSZ) support -- malloc: Fix tst-mallocfork3-malloc-check link -- ARC: elf: make type safe -- ARC: fp: (micro)optimize FPU_STATUS read by eliding FWE bit clearing - -* Thu Jul 22 2021 Fedora Release Engineering - 2.33.9000-47 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jul 21 2021 Florian Weimer - 2.33.9000-46 -- Auto-sync with upstream branch master, - commit 77ede5f010f1b144e067ec035e422a13bb57c55d: -- socket: Add time64 alias for sendmsg -- socket: Add time64 alias for recvmsg -- socket: Add time64 alias for sendmmsg -- Linux: Add time64 alias for prctl -- io: Add time64 alias for fcntl -- misc: Add time64 alias for ioctl -- RISC-V: Update rv64 ULPs -- resolv: Do not install libnss_dns.a, libnss_dns.so -- hurd: Add support for spawn_do_closefrom -- elf: Fix tst-cpu-features-cpuinfo on some AMD systems (BZ #28090) -- i386: Add the clone3 wrapper - -* Mon Jul 19 2021 Florian Weimer - 2.33.9000-45 -- Remove glibc-hwcaps multilibs on upgrade (#1983677) - -* Mon Jul 19 2021 Florian Weimer - 2.33.9000-44 -- Auto-sync with upstream branch master, - commit ee5ed99922ca90bcea4a2f9a48a0c9ae4b534ece: -- nss: Directly load nss_dns, without going through dlsym/dlopen -- resolv: Move nss_dns into libc -- resolv: Move res_query functions into libc -- resolv: Move res_mkquery, res_nmkquery into libc -- resolv: Move res_send, res_nsend into libc -- resolv: Move res_hostalias into its own file, along with hostalias -- resolv: Move __res_context_hostalias into its own file and into libc -- resolv: Move res_queriesmatch to its own file and into libc -- resolv: Move res_nameinquery to its own file and into libc -- resolv: Move ns_samename into its own file, and into libc -- resolv: Move ns_makecanon into its own file, and into libc -- resolv: Move res_isourserver to its own file and reformat to GNU style -- resolv: Move __res_get_nsaddr to its own file and into libc -- resolv: Rename res_comp.c to res-name-checking.c and move into libc -- resolv: Move dn_skipname to its own file and into libc -- resolv: Move dn_comp to its own file and into libc -- resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget -- resolv: Move dn_expand to its own file and into libc -- resolv: Move ns_name_compress into its own file and into libc -- resolv: Move ns_name_pack into its own file and into libc -- resolv: Move ns_name_pton into its own file and into libc -- resolv: Move ns_name_uncompress into its own file and into libc -- resolv: Move ns_name_skip to its own file and into libc (bug 28091) -- resolv: Deprecate legacy interfaces in libresolv -- tst-safe-linking: make false positives even more improbable -- htl: Do not expose pthread hidden proto outside libpthread -- elf: Fix a wrong array access on tst-tls20 -- elf: Add -Wl,--no-as-needed for tst-tls-manydynamic*mod-dep-bad.so (BZ #28089) -- resolv: Move ns_name_unpack to its own file and into libc -- resolv: Remove unnecessary res_isourserver_p call from send_dg -- resolv: Move ns_name_ntop to its own file and into libc -- nss_dns: Do not use deprecated packet parsing functions -- resolv: Sort Makefile routines and Versions lexicographically -- socket: Add hidden prototype for setsockopt -- elf: Fix DTV gap reuse logic (BZ #27135) -- Fix linknamespace errors and local-plt-usages in nss_files. -- Add static tests for __clone_internal -- x86-64: Add the clone3 wrapper -- Add an internal wrapper for clone, clone2 and clone3 -- nss: Fix build error with --disable-nscd -- htl: Fix linking static examples against libpthread -- htl: Let libc call __pthread_mutex_{,try,un}lock -- posix: Ignore non opened files on tst-spawn5 -- mcheck: Align struct hdr to MALLOC_ALIGNMENT bytes [BZ #28068] - -* Thu Jul 15 2021 Siddhesh Poyarekar - 2.33.9000-43 -- Run postun only if the main gconv-modules configuration file exists. - (#1981013) -- Own %{libdir}/gconv/gconv-modules.d -- Rearrange file list command so that gconv-modules.cache is no longer - marked as %config - -* Tue Jul 13 2021 Florian Weimer - 2.33.9000-42 -- Perform systemd re-exec even if glibc.i686 is installed - -* Tue Jul 13 2021 Florian Weimer - 2.33.9000-41 -- Re-exec systemd on upgrades - -* Mon Jul 12 2021 Florian Weimer - 2.33.9000-40 -- Merge files NSS service module into libc. -- Restore vDSO acceleration for time functions on older kernels for i686. -- Auto-sync with upstream branch master, - commit 72e84d1db22203e01a43268de71ea8669eca2863: -- Linux: Use 32-bit vDSO for clock_gettime, gettimeofday, time (BZ# 28071) -- Reduce pollution due to dynamic PTHREAD_STACK_MIN -- Fix failing nss/tst-nss-files-hosts-long. -- nis: nis_local_group may read from __nisgroup[-1] (bug 28075) -- hurd _Fork: Drop duplicate malloc_fork_lock calls -- support: Replace _SC_MINSIGSTKSZ with _SC_SIGSTKSZ -- support: Replace MINSIGSTKSZ with sysconf (_SC_MINSIGSTKSZ) -- Define PTHREAD_STACK_MIN to sysconf(_SC_THREAD_STACK_MIN) -- Force building with -fno-common -- Add a generic malloc test for MALLOC_ALIGNMENT -- Properly run tst-spawn5 directly [BZ #28067] -- build-many-glibcs.py: Add glibcs-arm-linux-gnueabihf-thumb -- nptl: Use out-of-line wake function in __libc_lock_unlock slow path -- powerpc64le: Fix typo in configure -- powerpc64: Remove strcspn ifunc from the loader -- x86: Remove wcsnlen-sse4_1 from wcslen ifunc-impl-list [BZ #28064] -- x86-64: Test strlen and wcslen with 0 in the RSI register [BZ #28064] -- x86_64: Remove unneeded static PIE check for undefined weak diagnostic -- Add NT_ARM_PAC_ENABLED_KEYS to elf.h -- posix: Add posix_spawn_file_actions_addclosefrom_np -- io: Add closefrom [BZ #10353] -- linux: Add close_range -- support: Add support_stack_alloc -- _int_realloc is static -- Move mcheck symbol from stdlib to malloc -- nss: Do not install static linker input files for libnss_files -- elf/tests: Make thrlock and noload depend on libm -- Harden tcache double-free check -- nss: Access nss_files through direct references -- nss_files: Move into libc -- nss_files: Add generic code for set*ent, end*ent and file open -- nss_files: Allocate nscd file registration data on the heap -- libio: Replace internal _IO_getdelim symbol with __getdelim -- libio: Add hidden prototype for ungetc -- inet: Add hidden prototype for __inet_network -- Update MIPS libm-test-ulps -- Update powerpc-nofpu libm-test-ulps -- soft-fp: Add __extendhfsf2/__extendhfdf2, __truncsfhf2/__truncdfhf2, - __eqhf2/__nehf2 -- Update kernel version to 5.13 in tst-mman-consts.py -- tests-exclude-mcheck: Fix typo - -* Wed Jul 07 2021 Florian Weimer - 2.33.9000-39 -- Auto-sync with upstream branch master, - commit 7a5db2e82fbb6c3a6e3fdae02b7166c5d0e8c7a8: -- elf: Clean up GLIBC_PRIVATE exports of internal libdl symbols -- nptl: Reduce the GLIBC_PRIVATE ABI -- nptl: Remove GLIBC_2.34 versions of __pthread_mutex_lock, - __pthread_mutex_unlock -- nptl: Use internal low-level lock type for !IS_IN (libc) -- glibc.malloc.check: Fix nit in documentation -- Exclude tst-realloc from tests-mcheck -- linux: Fix setsockopt fallback -- linux: Use the expected size for SO_TIMESTAMP{NS} convertion -- linux: Consolidate Linux setsockopt implementation -- linux: Consolidate Linux getsockopt implementation -- manual: fix description for preadv() - -* Tue Jul 06 2021 Florian Weimer - 2.33.9000-38 -- Auto-sync with upstream branch master, - commit 832f50be6c9c010e46180d14126bbb81f35e808c: -- linux: Check for null value msghdr struct before use -- elf: Call free from base namespace on error in dl-libc.c [BZ #27646] - -* Mon Jul 05 2021 Florian Weimer - 2.33.9000-37 -- Move libanl.a into glibc-devel. -- Auto-sync with upstream branch master, - commit 91fb0f17a5779da6e7877eb74119a83dbe8bf167: -- hooks.c: Remove incorrect comment -- mtrace: Add attribute nocommon to mallwatch -- Move glibc.malloc.check implementation into its own file -- mtrace: Deprecate mallwatch and tr_break -- Drop source dependencies on hooks.c and arena.c -- malloc: Initiate tcache shutdown even without allocations [BZ #28028] -- Add mcheck tests to malloc -- iconvconfig: Use the public feof_unlocked -- resolv: Move libanl into libc (if libpthread is in libc) -- powerpc: optimize strcpy/stpcpy for POWER9/10 -- soft-fp: Add __extendhfxf2 and __truncxfhf2 -- x86: Check RTM_ALWAYS_ABORT for RTM [BZ #28033] -- Update syscall lists for Linux 5.13 -- s390: Fix MEMCHR_Z900_G5 ifunc-variant if n>=0x80000000 [BZ #28024] -- Fix extra PLT reference in libc.so due to __glob64_time64 if build with gcc 7.5 on 32bit. -- AArch64: Add hp-timing.h -- AArch64: Improve strnlen performance - -* Wed Jun 30 2021 Florian Weimer - 2.33.9000-36 -- Auto-sync with upstream branch master, - commit eb68d7d23cc411acdf68a60f194343a6774d6194: -- Linux: Avoid calling malloc indirectly from __get_nprocs (#1975693) -- Use Linux 5.13 in build-many-glibcs.py - -* Wed Jun 30 2021 Florian Weimer - 2.33.9000-35 -- Drop glibc-s390x-roundeven.patch, applied upstream. -- Move libutil.a into glibc-devel. -- Auto-sync with upstream branch master, - commit 734c60ebb607086ad6d67b2544d6b7baba72a652: -- login: Move libutil into libc -- login: Rework hidden prototypes for __setutent, __utmpname, __endutent -- login: Hidden prototypes for _getpt, __ptsname_r, grantpt, unlockpt -- nptl_db: Re-use the ELF-to-abilist converter for ABI checking -- Add RFC 8335 Definitions from Linux 5.13 -- nss: Fix NSS_DECLARE_MODULE_FUNCTIONS handling of _nss_*_endnetgrent -- s390x: Update math: redirect roundeven function -- posix: Add _Fork [BZ #4737] - -* Mon Jun 28 2021 Florian Weimer - 2.33.9000-34 -- Move librt.a to glibc-devel (#1977058) - -* Mon Jun 28 2021 Florian Weimer - 2.33.9000-33 -- Dropped patches glibc-nosymlink-*.patch, glibc-iconvconfig-corruption.patch, - glibc-libthread_db-dynsym-*.patch; applied upstream. -- Auto-sync with upstream branch master, - commit dd45734e322a03287d34d8af9b7da7b35cfddb8e: -- nptl: Add glibc.pthread.stack_cache_size tunable -- nptl: Export libthread_db-used symbols under GLIBC_PRIVATE -- nptl: Rename nptl_version to __nptl_version -- nptl_db: Clean up main/rtld variable handling -- arm: align stack in clone [BZ 28020] -- Linux: Cleanups after librt move -- Linux: Move timer_settime, __timer_settime64 from librt to libc -- Linux: Move timer_gettime, __timer_gettime64 from librt to libc -- Linux: Move timer_getoverrun from librt to libc -- Linux: Move timer_create, timer_delete from librt to libc -- Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h -- Install shared objects under their ABI names -- elf: Generalize name-based DSO recognition in ldconfig -- Makerules: Remove lib-version, $(subdir-version) -- nptl_db: Install libthread_db under a regular implementation name -- iconvconfig: Fix multiple issues -- wordexp: handle overflow in positional parameter number (bug 28011) -- Update math: redirect roundeven function -- Use GCC builtins for roundeven functions if desired. -- x86_64: roundeven with sse4.1 support -- math: redirect roundeven function - -* Mon Jun 28 2021 Florian Weimer - 2.33.9000-32 -- Switch to new version of libthread_db .dynsym patch - -* Mon Jun 28 2021 Florian Weimer - 2.33.9000-31 -- Further .symtab adjustment: Keep all __GI_* symbols (#1975895) - -* Mon Jun 28 2021 Florian Weimer - 2.33.9000-30 -- Keep most of .symtab in libc.so.6 (#1975895) - -* Sun Jun 27 2021 Florian Weimer - 2.33.9000-29 -- Apply emergency patch to fix iconvconfig corruption - -* Sun Jun 27 2021 Florian Weimer - 2.33.9000-28 -- Adjust glibc.req so that egrep does not cause eu-readelf to fail - -* Sun Jun 27 2021 Florian Weimer - 2.33.9000-27 -- Drop glibc-revert-dtv-gap-reuse.patch, applied upstream. -- Auto-sync with upstream branch master, - commit 2c16cb88a6e5ace0fb7cedca86860ea7bde522a7: -- Linux: Move timer helper routines from librt to libc -- Linux: Move mq_unlink from librt to libc -- Linux: Move mq_send, mq_timedsend, __mq_timedsend_time64 to libc -- Linux: Move mq_receive, mq_timedreceive, __mq_timedreceive_time64 to libc -- Linux: Move mq_open, __mq_open_2 from librt to libc -- Linux: Move mq_notify from librt to libc -- Linux: Move mq_getattr from librt to libc -- Linux: Move mq_setattr from librt to libc -- Linux: Move mq_close from librt to libc -- Linux: Move lio_listio, lio_listio64 from librt to libc -- rt: Rework lio_listio implementation -- Linux: Move aio_write, aio_write64 into libc -- Linux: Move aio_suspend, aio_suspend64, __aio_suspend_time64 to libc -- Linux: Move aio_return, aio_return64 into libc -- Linux: Move aio_read, aio_read64 into libc -- Linux: Move aio_fsync, aio_fsync64 into libc -- Linux: Move aio_error, aio_error64 into libc -- Linux: Move aio_cancel, aio_cancel64 into libc -- Linux: Move aio_init from librt into libc -- support: Fix xclone build failures on ia64 and hppa -- elf: Disable most of TLS modid gaps processing [BZ #27135] -- elf: Fix glibc-hwcaps priorities with cache flags mismatches [BZ #27046] -- * NEWS: Clarify _TIME_BITS change. -- x86: Remove unnecessary overflow check from wcsnlen-sse4_1.S -- String: Add three more overflow tests cases to test-strnlen.c -- Consolidate pthread_atfork -- posix: Do not clobber errno by atfork handlers -- posix: Consolidate fork implementation -- support: Add xclone -- x86: Fix tst-cpu-features-cpuinfo on Ryzen 9 (BZ #27873) -- x86: Copy IBT and SHSTK usable only if CET is enabled -- x86: Fix overflow bug in wcsnlen-sse4_1 and wcsnlen-avx2 [BZ #27974] -- x86: Fix overflow bug with wmemchr-sse2 and wmemchr-avx2 [BZ #27974] -- String: Add overflow tests for strnlen, memchr, and strncat [BZ #27974] -- x86-64: Add wcslen optimize for sse4.1 -- x86-64: Move strlen.S to multiarch/strlen-vec.S -- hurd: Fix build after 52a5fe70a2 -- nptl: Use SA_RESTART for SIGCANCEL handler -- doc: _TIME_BITS defaults may change -- More mcheck -> malloc-check refactoring -- Add NEWS item for gconv-modules.d change -- Handle DT_UNKNOWN in gconv-modules.d -- iconvconfig: Use common gconv module parsing function -- gconv_conf: Split out configuration file processing -- gconv_conf: Remove unused variables -- iconv: Remove alloca use in gconv-modules configuration parsing -- Remove unsused symbols from nptl/Versions -- linux: Only use 64-bit syscall if required for clock_nanosleep -- linux: Only use 64-bit syscall if required for internal futex -- linux: Only use 64-bit syscall if required for utimensat family -- linux: Only use 64-bit syscall if required for sigtimedwait -- linux: Only use 64-bit syscall if required for mq_timedsend -- linux: Only use 64-bit syscall if required for mq_timedreceive -- linux: Only use 64-bit syscall if required for timerfd_settime -- linux: Only use 64-bit syscall if required for semtimedop -- linux: timerfd_gettime minor cleanup -- linux: Remove time64-support -- linux: Remove supports_time64 () from clock_gettime -- linux: Remove supports_time64 () from clock_getres -- linux: Only use 64-bit syscall if required for select -- linux: Only use 64-bit syscall if required for pselect -- linux: Only use 64-bit syscall if required for ppoll -- support: Add support_create_timer -- Use 64 bit time_t stat internally -- malloc: Drop __malloc_initialized from Versions -- tst-mcheck: Rename to tst-malloc-check -- Add hidden prototypes for fsync, fdatasync -- nptl: Move pthreadP.h into sysdeps directory -- rt: Move generic implementation from sysdeps/pthread to rt -- rt: Move shm_unlink into libc -- rt: Move shm_open into libc -- rt: Replace generic stub of shm_unlink with the posix version -- rt: Replace generic stub of shm_open with the posix version -- Fix librt-routines-var issues for !PTHREAD_IN_LIBC -- rt: Lexicographically sort Versions file; librt-routines in Makefile -- elf: Use _dl_catch_error from base namespace in dl-libc.c [BZ #27646] -- Makeconfig: Fix time64-compat.mk target - -* Sun Jun 27 2021 Florian Weimer - 2.33.9000-26 -- Add automatic requires if building against glibc development snapshots - -* Thu Jun 24 2021 Carlos O'Donell - 2.33.9000-25 -- Fix thread local storage corruption (#1974970) - -* Tue Jun 22 2021 Siddhesh Poyarekar - 2.33.9000-24 -- Strengthen dependency on glibc-gconv-extra. - -* Fri Jun 18 2021 Florian Weimer - 2.33.9000-23 -- Make glibc-all-langpacks require glibc-gconv-extra in buildroots (#1973663) - -* Thu Jun 17 2021 Florian Weimer - 2.33.9000-22 -- Export libthread_db symbols under GLBIC_PRIVATE (#1965374) - -* Thu Jun 17 2021 Florian Weimer - 2.33.9000-21 -- Redo the crafted libc.so.6 symbol table for valgrind (#1965374) - -* Thu Jun 17 2021 Florian Weimer - 2.33.9000-20 -- Remove .symtab from libc.so.6 again (#1965374) - -* Thu Jun 17 2021 Florian Weimer - 2.33.9000-19 -- Drop glibc-rh697421.patch: The ISO-10646-UCS-2// alias for UTF-8 is incorrect - (#1972520) - -* Wed Jun 16 2021 Florian Weimer - 2.33.9000-18 -- Rebuild against rawhide gcc - -* Tue Jun 15 2021 Florian Weimer - 2.33.9000-17 -- Dropped glibc-gconv-modules-revert.patch, applied upstream. -- Auto-sync with upstream branch master, - commit aa9a7f629632c9180de89632d4f2c1e6039f7781: -- nptl: Export _pthread_cleanup_push, _pthread_cleanup_pop again -- s390x: Align child stack while clone. [BZ #27968] -- y2038: Add test coverage -- libsupport: Add 64-bit time_t support for stat functions -- libsupport: Add 64-bit time_t support for time functions -- io: Add ftw64 with 64-bit time_t support -- io: Add fts64 with 64-bit time_t support -- posix: Add glob64 with 64-bit time_t support -- y2038: Add support for 64-bit time on legacy ABIs -- time: Add 64-bit time support for getdate -- y2038: Add __USE_TIME_BITS64 support for socket-constants.h -- y2038: Use a common definition for shmid_ds -- y2038: Use a common definition for semid_ds -- y2038: Use a common definition for msqid_ds -- y2038: Use a common definition for stat -- y2038: linux: Add __USE_TIME_BITS64 support for struct timex -- y2038: Add __USE_TIME_BITS64 support for struct utimbuf -- y2038: Add __USE_TIME_BITS64 support for struct timespec -- y2038: Add __USE_TIME_BITS64 support for struct timeval -- y2038: Add __USE_TIME_BITS64 support for time_t -- linux: Add recvvmsg fallback for 64-bit time_t SO_TIMESTAMP{NS} -- linux: Add fallback for 64-bit time_t SO_TIMESTAMP{NS} -- linux: Add fallback for 64-bit time_t SO_{RCV,SND}TIMEO -- linux: s390: Add libanl.abilist in s390 and s390x -- linux: mips: Split libanl.abilist in n32 and n64 -- linux: mips: Split librt.abilist in n32 and n64 -- Reinstate gconv-modules as the default configuration file - -* Tue Jun 15 2021 Florian Weimer - 2.33.9000-16 -- Preserve some symbols in libc.so.6's symtab (#1965374) - -* Tue Jun 15 2021 Florian Weimer - 2.33.9000-15 -- Install shared objects under their ABI names, avoiding symlinks (#1652867) - -* Mon Jun 14 2021 Siddhesh Poyarekar - 2.33.9000-14 -- Add a conditional dependency for glibc-gconv-extra.i686 in x86_64. - -* Mon Jun 14 2021 Siddhesh Poyarekar - 2.33.9000-13 -- Auto-sync with upstream branch master, - commit ebae2f5a6f971a8f0b6c99e00f9c45ef7433924a. -- Revert gconv configuration file name to gconv-modules. - -* Thu Jun 03 2021 Florian Weimer - 2.33.9000-12 -- libdl is no longer a separate shared object. -- CVE-2021-33574: Use-after-free via mq_notify (#1965410) -- Auto-sync with upstream branch master, - commit 466c1ea15f461edb8e3ffaf5d86d708876343bbf: -- dlfcn: Rework static dlopen hooks -- dlfcn: Eliminate GLIBC_PRIVATE dependency from tststatic2 -- dlfcn: Cleanups after -ldl is no longer required -- dlfcn: Move dlopen into libc -- dlfcn: Move dlvsym into libc -- dlfcn: Move dlinfo into libc -- dlfcn: Move dladdr1 into libc -- dlfcn: Move dlmopen into libc -- dlfcn: Move dlsym into libc -- dlfcn: Move dladdr into libc -- dlfcn: Move dlclose into libc -- Improve test coverage of strlen function -- fix typo -- dlfcn: Move dlerror into libc -- Add libc ABI extension kludge for baseline-violating libdl symbols -- scripts/versions.awk: Add local: * to all version nodes -- Add missing symbols to Version files -- Fix use of __pthread_attr_copy in mq_notify (bug 27896) -- Use __pthread_attr_copy in mq_notify (bug 27896) -- Update floating-point feature test macro handling for C2X -- stdio-common: Remove _IO_vfwscanf -- aarch64: align stack in clone [BZ #27939] -- powerpc: Optimized memcmp for power10 -- x86-64: Align child stack to 16 bytes [BZ #27902] - -* Mon May 31 2021 Florian Weimer - 2.33.9000-11 -- glibc-sigsetxid-sa_onstack.patch was applied upstream -- Auto-sync with upstream branch master, - commit 271ec55d0ae795f03d92e3aa61bff69a31a19e3a: -- support: Do not build xpthread_attr_setaffinity_np for hurd -- nptl: Add pthread_attr_setaffinity_np failure test -- support: Add xpthread_attr_setaffinity_np wrapper -- nptl: Move createthread to pthread_create -- nptl: Move Linux createthread to nptl -- nptl: Install SIGSETXID handler with SA_ONSTACK [BZ #27914] -- aarch64: Added optimized memset for A64FX -- aarch64: Added optimized memcpy and memmove for A64FX -- benchtests: Fixed bench-memcpy-random: buf1: mprotect failed -- aarch64: Added Vector Length Set test helper script -- aarch64: define BTI_C and BTI_J macros as NOP unless HAVE_AARCH64_BTI -- config: Added HAVE_AARCH64_SVE_ASM for aarch64 -- tst-mallinfo2.c: Use correct multiple for total variable - -* Wed May 26 2021 Florian Weimer - 2.33.9000-10 -- nptl: Install SIGSETXID handler with SA_ONSTACK [BZ #27914] - -* Tue May 25 2021 Florian Weimer - 2.33.9000-9 -- Auto-sync with upstream branch master, - commit ac0353af81a23535f517586a5d04427120a157ac. -- This removes libpthread as a separate shared object. New programs - will depend on the GLIBC_2.34 symbol version. Upstream development - brings in the following noteworthy bug fixes: -- ppc64le: scv ABI error handling fails to check IS_ERR_VALUE (#1962971) -- CVE-2021-27645 glibc: Use-after-free in addgetnetgrentX function in - netgroupcache.c (#1932590) -- Linking the main program with jemalloc causes sysconf to deadlock in - audit mode (#1909920) - -* Fri May 21 2021 Florian Weimer - 2.33.9000-8 -- Switch back to a unified glibc-headers package for downstream (#1940686) - -* Fri May 21 2021 Florian Weimer - 2.33.9000-7 -- aarch64: Enable optional memory tagging support - -* Tue May 11 2021 Florian Weimer - 2.33.9000-6 -- Use distribution mechanism for debuginfo (#1661510, #1886295, #1905611) - -* Thu May 6 2021 Florian Weimer - 2.33.9000-5 -- Build locales in parallel again - -* Tue May 4 2021 Florian Weimer - 2.33.9000-4 -- Various changes to get glibc building again, using selected upstream - backports. -- Re-enable -Werror by default. -- This release introduces __libc_start_main@@GLIBC_2.34, so binaries - are not compatible with glibc 2.33. Building binaries against this - glibc version is not recommended because of the partial libpthread - transition. -- glibc-upstream-amx-detection.patch: Fix build failure after GCC 11.1 update. -- glibc-upstream-malloc-test-hang.patch: Avoid test hang due to - annobin/binutils bug (#1951492) - -* Wed Mar 03 2021 Arjun Shankar - 2.33.9000-3 -- Drop glibc-rh819430.patch; fixed upstream. -- Auto-sync with upstream branch master, - commit f01a61e13872109b3b233158ab664364bd1879bc: -- i386: Regenerate ulps -- x86: Add CPU-specific diagnostics to ld.so --list-diagnostics -- x86: Automate generation of PREFERRED_FEATURE_INDEX_1 bitfield -- ld.so: Implement the --list-diagnostics option -- powerpc: Update libm-test-ulps -- tst: Add test for utimes -- tst: Add test for utime -- tst: Add test for futimens -- nptl: __libc_cleanup_push/__libc_cleanup_pop require -fexceptions -- elf: Build __dl_iterate_phdr with unwinding support [BZ #27498] -- nptl: Use for accessing the libgcc_s unwinder -- Implement _Unwind_Resume in libc on top of -- Move sysdeps/gnu/unwind-resume.c to sysdeps/generic/unwind-resume.c -- __frame_state_for: Use for unwinder access -- sparc: Implement backtrace on top -- m68k: Implement backtrace on top of -- i386: Implement backtrace on top of -- arm: Implement backtrace on top of -- backtrace: Implement on top of -- Implement for dynamically loading the libgcc_s unwinder -- Correct buffer end pointer in IO_wdefault_doallocate (BZ #26874) -- aarch64: update ulps. -- Add inputs that generate larger error bounds -- Reduce the statically linked startup code [BZ #23323] -- posix: Falling back to non wide mode in case of encoding error [BZ #14185] -- nptl: Move elision implementations into libc -- NEWS: Add missing bug closures -- added rt to malloc/Depend [BZ #27132] -- x86: Use x86/nptl/pthreaddef.h -- nptl: Move futex-internal into libc -- nptl: Move lowlevellock into libc [BZ #15648] -- nptl: Move futex-internal.c into main nptl directory -- nptl: Reformat Versions -- nptl: Split libpthread-routines into one routine per line -- x86: Remove unused variables for raw cache sizes from cacheinfo.h -- Use Linux 5.11 in build-many-glibcs.py. -- : Correct x86_cpu_TBM -- x86_64/clone.S: Upate comments -- i386/clone.S: Remove redundant EBX load -- aarch64: Remove the unused __read_tp symbol -- build-many-glibcs.py: Use make -O for more consistent log output - -* Sun Feb 21 2021 Carlos O'Donell - 2.33.9000-2 -- Auto-sync with upstream branch master, - commit e9e7f24543e6d1b0a31641f144697e261df6ccd7: -- configure: Replace obsolete AC_TRY_LINK with AC_LINK_IFELSE -- configure: Remove obsolete AC_CHECK_TOOL_PREFIX -- configure: Replace obsoleted AC_HELP_STRING with AS_HELP_STRING -- Update syscall lists for Linux 5.11. -- Correct hppa EFD_NONBLOCK, IN_NONBLOCK, SFD_NONBLOCK and TFD_NONBLOCK defines. -- string: Work around GCC PR 98512 in rawmemchr -- tst: time: Provide Y2038 tests for mktime (tst-mktime4.c) -- tst: Provide test for difftime -- tst: Provide test for ctime -- tst: Provide test for sched_rr_get_interval -- S390: Add new hwcap values. -- aarch64: Fix sys/ptrace.h if linux headers are included -- elf: Do not copy vDSO soname when setting up link map -- x86: Remove the extra space between "# endif" -- hurd: Fix fstatfs build failure -- linux: Remove stat-check.c -- linux: Remove overflow.h -- linux: Consolidate internal_statvfs -- linux: Consolidate statvfs implementations -- linux: Consolidate fstatvfs implementations -- linux: Consolidate statfs implementations -- linux: Consolidate fstatfs implementations -- linux: Set LFS statfs as default -- linux: Set default kernel_stat.h to LFS -- linux: Fix STATFS_IS_STATFS64 definition - -* Fri Feb 12 2021 Florian Weimer - 2.33.9000-1 -- Auto-sync with upstream branch master, - commit 228f30ab4724d4087d5f52018873fde22efea6e2: -- tunables: Disallow negative values for some tunables -- x86: Use SIZE_MAX instead of (long int)-1 for tunable range value -- tunables: Simplify TUNABLE_SET interface -- setrlimit/getrlimit: Use __nonnull to avoid null pointer -- benchtests: Updated json bench-variant attribute -- regex: stop using alloca -- regexec: remove alloca usage in build_trtable -- regex: remove alloca usage on regex set_regs -- malloc: Sync dynarray with gnulib -- misc: Sync cdefs.h with gnulib -- linux: Fix __sem_check_add_mapping search_sem -- linux: Fix __sem_check_add_mapping name length -- Add more ptrace constants for AArch64 and PowerPC. -- strchr: Add additional benchmarks and tests -- x86-64: Refactor and improve performance of strchr-avx2.S -- pthread: Remove alloca usage from __sem_check_add_mapping -- pthread: Refactor semaphore code -- linux: Require /dev/shm as the shared memory file system -- sunrpc: Fix typo in xdr_string comment -- tst: Provide test for ppoll -- tst: Provide test for timerfd related functions -- x86: Add PTWRITE feature detection [BZ #27346] -- nsswitch: return result when nss database is locked [BZ #27343] -- printf: Add smoke tests for long double -- Add NT_ARM_TAGGED_ADDR_CTRL from Linux 5.10 to elf.h. -- argp: Avoid undefined behaviour when invoking qsort(). -- argp: Improve comments. -- argp: Don't pass invalid arguments to isspace, isalnum, isalpha, isdigit. -- argp: Don't rely on undefined behaviour of _tolower(). -- argp: fix pointer-subtraction bug -- Use binutils 2.36 branch in build-many-glibcs.py. -- manual: Correct description of ENTRY [BZ #17183] -- nptl: Remove private futex optimization [BZ #27304] -- stdio-common: Add a few double formatting tests [BZ #27245] -- posix/tst-rfc3484: Fix compile failure linking to local __stat64 -- i686: Regenerate ULPs -- tst-rtld-list-tunables.sh: Unset glibc tunables -- linux: Remove shmmax check from tst-sysvshm-linux -- x86: Adding an upper bound for Enhanced REP MOVSB. -- Fix version.h for glibc 2.34 development -- Add MS_NOSYMFOLLOW from Linux 5.10 to . -- Move _SC_MINSIGSTKSZ/_SC_SIGSTKSZ entry in NEWS -- libSegFault: Fix printing signal number [BZ #27249] -- hurd TIOCFLUSH: fix fixing argument -- sysconf: Add _SC_MINSIGSTKSZ/_SC_SIGSTKSZ [BZ #20305] -- hurd TIOCFLUSH: Cope BSD 4.1 semantic -- tst-mallinfo2.c: Remove useless trailing semicolon for macro -- elf: Replace a --defsym trick with an object file to be compatible with LLD -- Open master branch for glibc 2.34 development -- Prepare for glibc 2.33 release -- Update NEWS with bugs -- Update translations -- NEWS: Fix typo in CVE-2021-3326 entry -- elf: Fix tests that rely on ld.so.cache for cross-compiling -- NEWS: Mention CVE-2021-3326 (iconv assertion with ISO-20220-JP-3) -- NEWS: Add entry for glibc-hwcaps and deprecate legacy hwcaps -- x86: Properly set usable CET feature bits [BZ #26625] -- Update translations -- Update libc.pot for 2.33 release -- Update ia64 libm-test-ulps -- sh: Update libm-tests-ulps -- ia64: Fix brk call on statup -- Update sparc libm-test-ulps -- Update alpha libm-test-ulps -- powerpc64: Workaround sigtramp vdso return call -- Fix nss/tst-reload2 for systems without PATH_MAX -- nsswitch: do not reload if "/" changes -- elf: Limit tst-prelink-cmp target archs -- CVE-2021-3326: gconv: Fix assertion failure in ISO-2022-JP-3 module (#1921917) - -* Wed Jan 27 2021 Arjun Shankar - 2.32.9000-29 -- Auto-sync with upstream branch master, - commit df359a25ba6f6bda06104229fbfe284c1fb30915: -- Revert "Make libc symbols hidden in static PIE" [BZ #27237] -- benchtests: Do not build bench-timing-type with MODULE_NAME=libc -- aarch64: Fix the list of tested IFUNC variants [BZ #26818] -- Update INSTALL with package versions that are known to work -- aarch64: Move and update the definition of MTE_ENABLED -- Fix misplaced const -- Update C-SKY libm-test-ulps -- manual: Correct argument order in mount examples [BZ #27207] -- linux: mips: Fix getdents64 fallback on mips64-n32 -- x86: Properly match CPU features in /proc/cpuinfo [BZ #27222] -- x86-64: Update tst-glibc-hwcaps-2.c for x86-64 baseline -- powerpc64: Select POWER9 machine for the scv instruction -- x86: Check ifunc resolver with CPU_FEATURE_USABLE [BZ #27072] -- Revert "linux: Move {f}xstat{at} to compat symbols" for static build -- aarch64: revert memcpy optimze for kunpeng to avoid performance degradation -- Make libc symbols hidden in static PIE -- csu: Move static pie self relocation later [BZ #27072] -- Use hidden visibility for early static PIE code -- csu: Avoid weak ref for __ehdr_start in static PIE -- configure: Check for static PIE support -- elf: Avoid RELATIVE relocs in __tunables_init -- elf: Make the tunable struct definition internal only -- : Remove the C preprocessor magic -- posix: Fix fnmatch.c on bootstrap -- stdlib: Add testcase for BZ #26241 -- posix: Fix regex_internal.h on bootstrap -- Use in __libc_init_secure -- elf: Avoid RELATIVE relocation for _dl_sysinfo -- libmvec: Add extra-test-objs to test-extras -- Hurd: Add rtld-strncpy-c.c -- Update MIPS libm-test-ulps. -- Update arm libm-test-ulps. -- Update powerpc-nofpu libm-test-ulps. -- Update hppa libm-test-ulps -- ARC: nofpu: Regenerate ulps -- ld.so: Add --list-tunables to print tunable values -- math/test-tgmath2: Fix fabs failure when no long double -- x86: Move x86 processor cache info to cpu_features -- Fix x86 build with --enable-tunable=no -- ifuncmain6pie: Remove the circular IFUNC dependency [BZ #20019] - -* Tue Jan 26 2021 Fedora Release Engineering - 2.32.9000-28 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Sat Jan 23 2021 Arjun Shankar - 2.32.9000-27 -- Introduce new glibc-doc.noarch subpackage (#1346925) -- Move the reference manual info pages from glibc-devel to glibc-doc -- Move debugger interface documentation from glibc to glibc-doc -- Remove unnecessary README, INSTALL, NEWS files from glibc -- Remove unnecessary README.timezone and gai.conf files from glibc-common - -* Thu Jan 14 2021 Arjun Shankar - 2.32.9000-26 -- Deprecate nscd (#1905135) -- https://fedoraproject.org/wiki/Changes/DeprecateNSCD - -* Wed Jan 13 2021 Carlos O'Donell - 2.32.9000-25 -- Auto-sync with upstream branch master, - commit cf1290064598def8dfeddec3d86d98495aee1fba: -- Use the right argument code in unnormal tests -- ldconfig/x86: Store ISA level in cache and aux cache -- elf: work around a gcc bug in elf_get_dynamic_info -- x86: Set header.feature_1 in TCB for always-on CET [BZ #27177] -- posix: consume less entropy on tempname -- Makerules: Do not require startup files for format.lds probe object -- install: Replace scripts/output-format.sed with objdump -f [BZ #26559] -- math: Add BZ#18980 fix back on dbl-64 cosh -- posix: Sync tempname with gnulib [BZ #26648] -- posix: Fix return value of system if shell can not be executed [BZ #27053] -- support: Add xchmod wrapper -- Update STATX_ATTR_DAX value from Linux 5.10. -- riscv: Initialize $gp before resolving the IRELATIVE relocation -- riscv: support GNU indirect function -- posix: Correct attribute access mode on readlinkat [BZ #27024]. -- Add xfchmod to libsupport -- Add xchdir to libsupport. -- POSIX locale: Fix typo in comment -- ARC: Regenerate ulps -- mntent: Use __putc_unlocked instead of fputc_unlocked -- aarch64: define PI_STATIC_AND_HIDDEN -- Update NEWS for CVE-2019-25013. -- x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker [BZ #26717] -- Remove dbl-64/wordsize-64 (part 2) -- Remove dbl-64/wordsize-64 -- Add SEGV_MTEAERR and SEGV_MTESERR from Linux 5.10. -- support: Add support_small_thread_stack_size -- stdlib: Sync canonicalize with gnulib [BZ #10635] [BZ #26592] [BZ #26341] [BZ #24970] -- malloc: Add scratch_buffer_dupfree -- Import filename.h from gnulib -- Import idx.h from gnulib -- alpha: Provide wait4 for static library [BZ #27150] -- aarch64: push the set of rules before falling into slow path -- nptl: Fix comment typo in pthread_cond_wait.c -- x86: Check IFUNC definition in unrelocated executable [BZ #20019] -- hurd: Fix mmap(!MAP_FIXED) on bogus address - -* Mon Jan 04 2021 Florian Weimer - 2.32.9000-24 -- Drop glibc-fedora-__libc_multiple_libcs.patch. Replaced by upstream's - __libc_initial flag. -- Adjust glibc-rh819430.patch to upstream's gnulib merge of fnmatch. -- Disable -Werror again due to GCC PR98512. -- Auto-sync with upstream branch master, - commit 3ec5d83d2a237d39e7fd6ef7a0bc8ac4c171a4a5: -- x86-64: Avoid rep movsb with short distance [BZ #27130] -- aarch64: fix stack missing after sp is updated -- nptl: Remove set*id, set*gid files which are not built -- Drop nan-pseudo-number.h usage from tests -- posix: Sync fnmatch with gnulib -- Sync flexmember.h with gnulib -- Sync intprops.h with gnulib -- posix: Sync glob code with gnulib -- posix: Sync regex code with gnulib -- Move generic nan-pseudo-number.h to ldbl-96 -- Sync FDL from https://www.gnu.org/licenses/fdl-1.3.texi -- Sync move-if-change from Gnulib -- Update automatically-generated copyright dates -- Update copyright dates not handled by scripts/update-copyrights. -- Update copyright dates with scripts/update-copyrights -- aarch64: use PTR_ARG and SIZE_ARG instead of DELOUSE -- nonstring: Enable __FORTIFY_LEVEL=3 -- string: Enable __FORTIFY_LEVEL=3 -- Introduce _FORTIFY_SOURCE=3 -- Warn on unsupported fortification levels -- powerpc: Use scv instruction on clone when available -- powerpc: Runtime selection between sc and scv for syscalls -- malloc: preserve errno on mcheck hooks [BZ #17924] -- x86 long double: Add tests for pseudo normal numbers -- x86 long double: Consider pseudo numbers as signaling -- io: Remove xmknod{at} implementations -- io: Remove xstat implementations -- free: preserve errno [BZ#17924] -- hurd: Accept including hurd/version.h -- hurd: Add WSTOPPED/WCONTINUED/WEXITED/WNOWAIT support [BZ #23091] -- support: Make support_process_state_wait wait less -- hurd: set sigaction for signal preemptors in arch-independent file -- hurd: Fix spawni SPAWN_XFLAGS_TRY_SHELL with empty argv -- hurd: Try shell in posix_spawn* only in compat mode -- Remove _ISOMAC check from -- x86: Remove the duplicated CPU_FEATURE_CPU_P -- Partially revert 681900d29683722b1cb0a8e565a0585846ec5a61 -- x86 long double: Support pseudo numbers in isnanl -- x86 long double: Support pseudo numbers in fpclassifyl -- MTE: Do not pad size in realloc_check -- tests-mcheck: New variable to run tests with MALLOC_CHECK_=3 -- elf: Account for glibc-hwcaps/ prefix in _dl_important_hwcaps -- misc: Use __ferror_unlocked instead of ferror -- s390x: Regenerate ulps -- powerpc: Regenerate ulps -- addmntent: Remove unbounded alloca usage from getmntent [BZ#27083] -- : Add Intel LAM support -- i386: Regenerate ulps -- aarch64: update ulps. -- aarch64: Add aarch64-specific files for memory tagging support -- aarch64: Add sysv specific enabling code for memory tagging -- linux: Add compatibility definitions to sys/prctl.h for MTE -- malloc: Basic support for memory tagging in the malloc() family -- elf: Add a tunable to control use of tagged memory -- config: Allow memory tagging to be enabled when configuring glibc -- alpha: Remove anonymous union in struct stat [BZ #27042] -- add inputs to auto-libm-test-in yielding larger errors (binary64, x86_64) -- m68k: fix clobbering a5 in setjmp() [BZ #24202] -- iconv add iconv_close before the function returned with bad value. -- iconv: use iconv_close after iconv_open -- Fix buffer overrun in EUC-KR conversion module (bz #24973) -- hurd: Make trampoline fill siginfo ss_sp from sc_uesp -- Hurd: make sigstates hold a reference on thread ports -- profil-counter: Add missing SIGINFO case -- hurd: implement SA_SIGINFO signal handlers. -- hurd: Fix ELF_MACHINE_USER_ADDRESS_MASK value -- hurd: Note when the vm_map kernel bug was fixed -- hurd: Also turn KERN_INVALID_ADDRESS to EINVAL -- ieee754: Remove unused __sin32 and __cos32 -- ieee754: Remove slow paths from asin and acos -- getenv: Move call to strlen to the branch it's used in. -- Update kernel version to 5.10 in tst-mman-consts.py. -- s390x: Require GCC 7.1 or later to build glibc. -- malloc: Use __libc_initial to detect an inner libc -- Replace __libc_multiple_libcs with __libc_initial flag -- {nptl,htl}/semaphoreP.h: clean up -- htl: Get sem_open/sem_close/sem_unlink support [BZ #25524] -- pthread: Move semaphore initialization for open to semaphoreP.h -- Mark __libc_freeres_fn as used [BZ #27002] -- Update syscall lists for Linux 5.10. -- htl: Add pshared semaphore support -- hurd: Add LLL_PRIVATE and LLL_SHARED -- hurd: Add __libc_open and __libc_close -- htl: Add futex-internal.h -- hurd: Add __lll_abstimed_wait_intr -- hurd: make lll_* take a variable instead of a ptr -- hurd: Rename LLL_INITIALIZER to LLL_LOCK_INITIALIZER -- Use Linux 5.10 in build-many-glibcs.py. - -* Wed Dec 16 2020 DJ Delorie - 2.32.9000-23 -- Fix conditionals for _enable_debug_packages and benchtests [BZ #1902514] - -* Tue Dec 15 2020 Patsy Griffin - 2.32.9000-22 -- Auto-sync with upstream branch master, - commit 4d0985543f479a6f421d4d8a9e0d1dc71c9c2c53. -- elf: Record libc.so link map when it is the main program (bug 20972) -- Use GMP 6.2.1 in build-many-glibcs.py. -- aarch64: remove the strlen_asimd symbol -- aarch64: fix static PIE start code for BTI [BZ #27068] -- elf: Fix failure handling in _dl_map_object_from_fd -- elf: inline lose for error handling -- Remove strtoimax, strtoumax, wcstoimax, wcstoumax inlines -- nsswitch: handle missing actions properly -- x86: Remove the default REP MOVSB threshold tunable value [BZ #27061] -- elf.h: Remove SHF_GNU_BUILD_NOTE. -- elf.h: fix spelling typos in comments -- Fix spelling and grammar in several comments -- malloc: Detect infinite-loop in _int_free when freeing tcache [BZ#27052] -- elf: Fix dl-load.c -- elf: Include libc.so.6 as main program in dependency sort (bug 20972) -- support: Add support_slibdir_prefix variable -- aarch64: Use mmap to add PROT_BTI instead of mprotect [BZ #26831] -- elf: Pass the fd to note processing -- elf: Move note processing after l_phdr is updated -- aarch64: align address for BTI protection [BZ #26988] -- aarch64: Fix missing BTI protection from dependencies [BZ #26926] -- Fix linknamespace errors in nss_database.c if build with -Os. -- treewide: fix incorrect spelling of indices in comments -- linux: Consolidate brk implementation -- elf: Include in cache.c -- s390x: Add glibc-hwcaps support -- elf: Fix run-time dependencies of tst-dlopen-fail-2 -- Handle out-of-memory case in svc_tcp.c/svc_unix.c:rendezvous_request. -- elf: Fix incorrect comparison in sort_priorities_by_name -- S390: Derive float_t from FLT_EVAL_METHOD -- Fix parsing of /sys/devices/system/cpu/online (bug 25859) -- Make strtoimax, strtoumax, wcstoimax, wcstoumax into aliases -- Fixed typos in "NEWS for version 2.32" -- Add NEWS entry for CVE-2020-29562 (BZ #26923) -- iconv: Fix incorrect UCS4 inner loop bounds (BZ#26923) -- Drop glibc-rh1906066 and glibc-rh741105 patches fixed by sync. - -* Mon Dec 14 2020 Florian Weimer - 2.32.9000-21 -- Re-enable -Werror everywhere (#1888246) - -* Wed Dec 09 2020 DJ Delorie - 2.32.9000-20 -- nsswitch: handle missing actions properly (temporary fix for 1906066) - -* Mon Dec 07 2020 Arjun Shankar - 2.32.9000-19 -- Auto-sync with upstream branch master, - commit 088e9625378f25607acff3daf7a79cbdee497043: -- x86: Rename readelflib.c -- nsswitch: use new internal API (callers) -- nsswitch: user new internal API (tests) -- nsswitch: use new internal API (core) -- nss: Implement -- : New abstraction for combining NSS modules and NSS actions -- nss: Introduce -- Add scripts/move-symbol-to-libc.py - -* Fri Dec 04 2020 Arjun Shankar - 2.32.9000-18 -- Drop glibc-revert-fxstat-compat.patch; applied upstream. -- Drop glibc-revert-mknod-compat.patch; applied upstream. -- Auto-sync with upstream branch master, - commit 4c38c1a229bc3628269ad98bd7e8d31d118d91f6: -- powerpc64le: Add glibc-hwcaps support -- x86: Adjust tst-cpu-features-supports.c for GCC 11 -- x86: Set RDRAND usable if CPU supports RDRAND -- elf: Add missing header to elf/dl-hwcaps.h -- lowlevellock-futex: Remove not used macros -- futex: Remove not used futex_reltimed_wait{_cancelable} -- y2038: Convert gai_suspend to support 64 bit time -- symbols: Add defines for libanl's libanl_hidden_{def|proto} -- x86_64: Add glibc-hwcaps support -- elf: Add glibc-hwcaps subdirectory support to ld.so cache processing -- elf: Process glibc-hwcaps subdirectories in ldconfig -- elf: Implement tail merging of strings in ldconfig -- elf: Implement a string table for ldconfig, with tail merging -- elf: Add extension mechanism to ld.so.cache -- elf: Add endianness markup to ld.so.cache (bug 27008) -- elf: Add glibc-hwcaps support for LD_LIBRARY_PATH -- elf: Synchronize section header flags with binutils -- x86: Fix THREAD_SELF definition to avoid ld.so crash (bug 27004) -- htl: Add hidden def for __pthread_create/detach -- manual: Clarify File Access Modes section and add O_PATH -- htl: Add missing symbols -- Revert "linux: Move xmknod{at} to compat symbols" -- Revert "linux: Move {f}xstat{at} to compat symbols" -- elf.h: Fix spelling of EM_TILE64 comment -- nptl: Fix __futex_clocklock64 return error check [BZ #26964] -- powerpc64le: ifunc select *f128 routines in multiarch mode -- y2038: Convert aio_suspend to support 64 bit time -- Fix typo in NEWS file -- nptl: Add EOVERFLOW checks for futex calls -- nptl: Fix PTHREAD_PRIO_PROTECT timed lock -- sh: Add sh4 fpu Implies folder -- io: nftw/ftw: Fix stack overflow with large nopenfd [BZ #26353] -- elf: Introduce enum opt_format in the ldconfig implementation -- support: Add support_copy_file -- NEWS entry for commit b4f020c9b408fb3d1d3d4901c4a71839145f8791 -- timezone: Change zdump installation to bin directory -- nptl: Return EINVAL for invalid clock for pthread_clockjoin_np -- nptl: Return EINVAL for pthread_mutex_clocklock/PI with CLOCK_MONOTONIC [BZ #26801] -- nptl: Replace lll_futex_wake with futex-internal.h -- nptl: Replace lll_futex_supported_clockid with futex-internal.h -- nptl: Replace lll_futex_{timed_}wait by futex-internal.h -- nptl: Replace lll_timedwait with __futex_abstimed_wait64 -- nptl: Replace __futex_clocklock_wait64 with __futex_abstimed_wait64 -- nptl: Remove _futex_clock_wait_bitset64 -- nptl: Consolidate __futex_abstimed_wait_{cancelable}64 -- nptl: Extend __futex_abstimed_wait_cancelable64 comment -- nptl: Remove clockwait_tid -- nptl: Remove futex_wait_cancelable -- nptl: Remove unused internal futex functions -- Mark mtrace tests UNSUPPORTED if bug-ga2.mtrace or tst-leaks2.mtrace are missing -- elf: Fix uninitialized variable for _dl_write -- powerpc: Make PT_THREAD_POINTER available to assembly code -- Use libnss_files.so for tests posix/bug-ga2 and resolv/tst-leaks2 [BZ #26821] -- hurd report-wait: Fix stpcpy usage -- hurd S_msg_report_wait: Fix detecting fd ports -- hurd S_msg_report_wait: Fix reporting ports -- hurd: Fix strcpy calls -- hurd: Fix _S_msg_get/set_env_variable prototype -- hurd: Enable using ifunc -- Add {,sysdep-}ld-library-path make variable -- nptl: Move stack list variables into _rtld_global -- hurd: let _dl_argv and __libc_stack_end be relro -- hurd: Remove some remnants of cthreads -- nanosleep: Pass NULL when rem == NULL on ports with __TIMESIZE != 64 -- y2038: Convert thrd_sleep to support 64 bit time -- y2038: Convert mtx_timedlock to support 64 bit time -- y2038: Convert cnd_timedwait to support 64 bit time -- hurd: Drop CLOCK_MONOTONIC change which slipped in -- hurd: make ptsname fail with ENOTTY on non-master-pty -- mach: Add missing assert.h include -- hurd: break relocation loop between libc.so and lib{mach,hurd}user.so -- Remove obsolete defines for HPUX support from fcntl.h and update O_NONBLOCK. -- Remove tls.h inclusion from internal errno.h -- nptl: Eliminate and __is_smp -- powerpc: Eliminate UP macro conditionals -- x86: Remove UP macro. Define LOCK_PREFIX unconditionally. -- alpha: Remove UP preprocessor conditionals -- hurd: Make sure signals get started -- hurd: initialize libpthread before starting the signal thread -- hurd: Make _hurd_libc_proc_init idempotent -- powerpc: Add optimized stpncpy for POWER9 -- powerpc: Add optimized strncpy for POWER9 -- Don't use nested function in test-ffs -- Use __builtin___stpncpy_chk when available -- tests: Remove NULL check for an array -- hurd: Move {,f,l}xstat{,at} and xmknod{at} to compat symbols -- hurd: Notify the proc server later during initialization -- htl: Initialize later -- htl: Keep thread signals blocked during its initialization -- htl: Fix spurious symbols in namespaces -- Use O_CLOEXEC in sysconf [BZ #26791] -- struct _Unwind_Exception alignment should not depend on compiler flags -- hurd: keep only required PLTs in ld.so -- hurd: Add missing startup calls -- riscv: Get cache information through sysconf -- RISC-V: Add _dl_start_user. - -* Thu Nov 26 2020 Florian Weimer - 2.32.9000-17 -- s390x: Do not rewrite program interpreter symlink (make install is enough) - -* Tue Nov 10 2020 Carlos O'Donell - 2.32.9000-16 -- Remove the work around for systemd-nspawn (#1869030). - -* Mon Nov 09 2020 DJ Delorie - 2.32.9000-15 -- Auto-sync with upstream branch master, - commit 75a193b7611bade31a150dfcc528b973e3d46231. -- linux: Allow adjtime with NULL argument [BZ #26833] -- aarch64: Add unwind information to _start (bug 26853) -- bsd unlockpt: unlockpt needs to fail with EINVAL, not ENOTTY -- Rearrange bsd_getpt vs bsd_openpt and implement posix_openpt on BSD -- Remove __warndecl -- Remove __warn_memset_zero_len [BZ #25399] -- iconv: Accept redundant shift sequences in IBM1364 [BZ #26224] -- msg: Remove redundant #include header -- tst-setuid1-static-ENV: Add $(common-objpfx)nss [BZ #26820] - -* Tue Nov 03 2020 Patsy Griffin - 2.32.9000-14 -- Auto-sync with upstream branch master, - commit e156dabc766d6f6f99ce9402999eae380a3ec1f2. -- aarch64: Add variant PCS lazy binding test [BZ #26798] -- aarch64: Fix DT_AARCH64_VARIANT_PCS handling [BZ #26798] -- hurd: Correct 'ethenet' spelling -- Avoid -Wstringop-overflow warning in pthread_cleanup_push macros -- Disable spurious -Warray-bounds for ypclnt.c (bug 26687) -- Do not use array parameter to new_composite_name (bug 26726) -- Disable spurious -Wstringop-overflow for setjmp/longjmp (bug 26647) -- malloc debug: fix compile error when enable macro MALLOC_DEBUG > 1 -- tst-tcfree2: adjust coding style. -- elf: In ldconfig, extract the new_sub_entry function from search_dir -- Use MPC 1.2.1 in build-many-glibcs.py. -- Argument Syntax: Use "option", @option, and @command. -- elf: Unify old and new format cache handling code in ld.so -- x86: Restore processing of cache size tunables in init_cacheinfo -- Make elf.h header self contained. -- x86: Optimizing memcpy for AMD Zen architecture. -- Hurd: Fix ftime build -- Add IP_RECVERR_RFC4884 and IPV6_RECVERR_RFC4884 from Linux 5.9. -- misc: Add internal __getauxval2 function -- Remove NEWS entry about ftime removal -- time: Add 64-bit time_t support for ftime -- Reinstate ftime and add deprecate message on ftime usage -- Update kernel version to 5.9 in tst-mman-consts.py. -- Amend grammar and add a description -- Fix typo in NEWS file -- Remove timing related checks of time/tst-cpuclock1 -- Update syscall lists for Linux 5.9. -- Use Linux 5.9 in build-many-glibcs.py. -- Reword description of SXID_* tunable properties -- New benchtest: pthread locks -- y2038: nptl: Provide __futex_clock_wait_bitset64 to support 64 bit bitset -- C-SKY: Make dynamic linker's name compitable with the older gcc. -- Revert "C-SKY:Fix dynamic linker's name when mfloat-abi=softfp." -- Move vtimes to a compatibility symbol -- y2038: linux: Provide __time64 implementation -- rt: Fix typos in comments in -- C-SKY:Fix dynamic linker's name when mfloat-abi=softfp. -- Drop the glibc-revert-ftime-compat.patch. - -* Thu Oct 29 2020 DJ Delorie - 2.32.9000-13 -- Add BuildRequires for perl (malloc/mtrace) if running the testsuite. - -* Wed Oct 21 2020 Siddhesh Poyarekar - 2.32.9000-12 -- Revert __xstat64 symbol removal. -- Revert xmknod* symbol removal. -- Revert ftime symbol removal. - -* Sun Oct 18 2020 Patsy Griffin - 2.32.9000-11 -- Auto-sync with upstream branch master, - commit 0f09154c64005e78b61484ae87b5ea2028051ea0. -- x86: Initialize CPU info via IFUNC relocation [BZ 26203] -- Add NEWS entry for ftime compatibility move -- support: Add create_temp_file_in_dir -- linux: Add __readdir_unlocked -- linux: Simplify opendir buffer allocation -- linux: Move posix dir implementations to Linux -- linux: Add 64-bit time_t support for wait3 -- Move ftime to a compatibility symbol -- linux: Fix time64 support for futimesat -- linux: Use INTERNAL_SYSCALL on fstatat{64} -- shm tests: Append PID to names passed to shm_open [BZ #26737] -- sysvipc: Fix tst-sysvshm-linux on x32 -- x86/CET: Update vfork to prevent child return -- resolv: Serialize processing in resolv/tst-resolv-txnid-collision -- statfs: add missing f_flags assignment -- y2038: Remove not used __fstatat_time64 define -- y2038: nptl: Convert pthread_mutex_{clock|timed}lock to support 64 bit -- sysvipc: Return EINVAL for invalid shmctl commands -- sysvipc: Fix IPC_INFO and SHM_INFO handling [BZ #26636] -- AArch64: Use __memcpy_simd on Neoverse N2/V1 -- resolv: Handle transaction ID collisions in parallel queries (bug 26600) -- support: Provide a way to clear the RA bit in DNS server responses -- support: Provide a way to reorder responses within the DNS test server -- Add missing stat/mknod symbol on libc.abilist some ABIs -- manual: correct the spelling of "MALLOC_PERTURB_" [BZ #23015] -- manual: replace an obsolete collation example with a valid one -- rtld: fix typo in comment -- elf: Add missing header to elf/dl-usage.c -- hurd: support clock_gettime(CLOCK_PROCESS/THREAD_CPUTIME_ID) -- linux: Move xmknod{at} to compat symbols -- linux: Add {f}stat{at} y2038 support -- linux: Move {f}xstat{at} to compat symbols -- linux: Disentangle fstatat from fxstatat -- linux: Implement {l}fstat{at} in terms of fstatat -- linux: Move the struct stat{64} to struct_stat.h -- Remove mknod wrapper functions, move them to symbols -- Remove stat wrapper functions, move them to exported symbols -- : Add FSRCS/FSRS/FZLRM support -- : Add Intel HRESET support -- : Add AVX-VNNI support -- : Add AVX512_FP16 support -- : Add Intel UINTR support -- elf: Do not pass GLRO(dl_platform), GLRO(dl_platformlen) to _dl_important_hwcaps -- elf: Enhance ld.so --help to print HWCAP subdirectories -- elf: Add library search path information to ld.so --help -- sunrpc: Adjust RPC function declarations to match Sun's (bug 26686] -- Avoid GCC 11 -Warray-parameter warnings [BZ #26686]. -- elf: Make __rtld_env_path_list and __rtld_search_dirs global variables -- elf: Print the full name of the dynamic loader in the ld.so help message -- elf: Use the term "program interpreter" in the ld.so help message -- scripts/update-copyrights: Update csu/version.c, elf/dl-usage.c -- elf: Implement ld.so --version -- nptl: Add missing cancellation flags on lockf -- Update mips64 libm-test-ulps -- Update alpha libm-test-ulps -- elf: Implement ld.so --help -- elf: Record whether paths come from LD_LIBRARY_PATH or --library-path -- elf: Move ld.so error/help output to _dl_usage -- elf: Extract command-line/environment variables state from rtld.c - -* Wed Oct 14 2020 Florian Weimer - 2.32.9000-10 -- Disable -Werror on ELN (#1888246) - -* Wed Oct 14 2020 Florian Weimer - 2.32.9000-9 -- Make glibc.spec self-contained (#1887097) - -* Thu Oct 08 2020 Arjun Shankar - 2.32.9000-8 -- Drop glibc-fix-float128-benchtests.patch; applied upstream. -- Auto-sync with upstream branch master, - commit 72d36ffd7db55ae599f4c77feb0eae25a0f3714e: -- elf: Implement __rtld_malloc_is_complete -- __vfscanf_internal: fix aliasing violation (bug 26690) -- Revert "Fix missing redirects in testsuite targets" -- nptl: Add missing cancellation flags on futex_internal and pselect32 -- elf: Implement _dl_write -- elf: Do not search HWCAP subdirectories in statically linked binaries -- Linux: Require properly configured /dev/pts for PTYs -- Linux: unlockpt needs to fail with EINVAL, not ENOTTY (bug 26053) -- login/tst-grantpt: Convert to support framework, more error checking -- posix: Fix -Warray-bounds instances building timer_create [BZ #26687] -- Replace Minumum/minumum with Minimum/minimum -- Optimize scripts/merge-test-results.sh -- Fix GCC 11 -Warray-parameter warning for __sigsetjmp (bug 26647) -- manual: Fix typo -- y2038: nptl: Convert pthread_rwlock_{clock|timed}{rd|wr}lock to support 64 - bit time -- Y2038: nptl: Provide futex_abstimed_wait64 supporting 64 bit time -- sysvipc: Return EINVAL for invalid msgctl commands -- sysvipc: Fix IPC_INFO and MSG_INFO handling [BZ #26639] -- sysvipc: Return EINVAL for invalid semctl commands -- sysvipc: Fix SEM_STAT_ANY kernel argument pass [BZ #26637] -- aarch64: enforce >=64K guard size [BZ #26691] -- sysvipc: Fix semtimedop for Linux < 5.1 for 64-bit ABI -- nptl: futex: Move __NR_futex_time64 alias to beginning of futex-internal.h -- nptl: Provide proper spelling for 32 bit version of futex_abstimed_wait -- string: Fix strerrorname_np return value [BZ #26555] -- Set tunable value as well as min/max values -- ld.so: add an --argv0 option [BZ #16124] -- Reversing calculation of __x86_shared_non_temporal_threshold -- linux: Add time64 recvmmsg support -- linux: Add time64 support for nanosleep -- linux: Consolidate utimes -- linux: Use 64-bit time_t syscall on clock_getcputclockid -- linux: Add time64 sigtimedwait support -- linux: Add time64 select support -- nptl: Fix __futex_abstimed_wait_cancellable32 -- sysvipc: Fix semtimeop for !__ASSUME_DIRECT_SYSVIPC_SYSCALLS -- hurd: add ST_RELATIME -- intl: Handle translation output codesets with suffixes [BZ #26383] -- bench-strcmp.c: Add workloads on page boundary -- bench-strncmp.c: Add workloads on page boundary -- strcmp: Add a testcase for page boundary -- strncmp: Add a testcase for page boundary [BZ #25933] -- Set locale related environment variables in debugglibc.sh -- benchtests: Run _Float128 tests only on architectures that support it -- powerpc: Protect dl_powerpc_cpu_features on INIT_ARCH() [BZ #26615] -- x86: Harden printf against non-normal long double values (bug 26649) -- x86: Use one ldbl2mpn.c file for both i386 and x86_64 -- Define __THROW to noexcept for C++11 and later - -* Mon Sep 21 2020 Arjun Shankar - 2.32.9000-7 -- Adjust glibc-rh741105.patch. -- Add glibc-fix-float128-benchtests.patch to allow building on armv7hl. -- Auto-sync with upstream branch master, - commit cdf645427d176197b82f44308a5e131d69fb53ad: -- Update mallinfo2 ABI, and test -- Allow memset local PLT reference for RISC-V. -- powerpc: fix ifunc implementation list for POWER9 strlen and stpcpy -- nscd: bump GC cycle during cache pruning (bug 26130) -- x86: Use HAS_CPU_FEATURE with IBT and SHSTK [BZ #26625] -- : Add Intel Key Locker support -- Fix handling of collating symbols in fnmatch (bug 26620) -- pselect.c: Pass a pointer to SYSCALL_CANCEL [BZ #26606] -- y2038: nptl: Convert sem_{clock|timed}wait to support 64 bit time -- hurd: Add __x86_get_cpu_features to ld.abilist -- x86: Install [BZ #26124] -- linux: Add time64 pselect support -- linux: Add time64 semtimedop support -- linux: Add ppoll time64 optimization -- linux: Simplify clock_getres -- Update sparc libm-test-ulps -- Remove internal usage of extensible stat functions -- Linux: Consolidate xmknod -- linux: Consolidate fxstatat{64} -- linux: Consolidate fxstat{64} -- linux: Consolidate lxstat{64} -- linux: Consolidate xstat{64} -- linux: Define STAT64_IS_KERNEL_STAT64 -- linux: Always define STAT_IS_KERNEL_STAT -- Update powerpc libm-test-ulps -- benchtests: Add "workload" traces for sinf128 -- benchtests: Add "workload" traces for sinf -- benchtests: Add "workload" traces for sin -- benchtests: Add "workload" traces for powf128 -- benchtests: Add "workload" traces for pow -- benchtests: Add "workload" traces for expf128 -- benchtests: Add "workload" traces for exp -- nptl: futex: Provide correct indentation for part of - __futex_abstimed_wait_cancelable64 - -* Tue Sep 08 2020 DJ Delorie - 2.32.9000-6 -- Auto-sync with upstream branch master, - commit e74b61c09a2a2ab52153e731225ccba5078659b1. -- Disable -Wstringop-overread for some string tests -- string: Fix GCC 11 `-Werror=stringop-overread' error -- C11 threads: Fix inaccuracies in testsuite -- elf.h: Add aarch64 bti/pac dynamic tag constants -- x86: Set CPU usable feature bits conservatively [BZ #26552] - -* Wed Sep 02 2020 Patsy Griffin - 2.32.9000-5 -- Auto-sync with upstream branch master, - commit 86a912c8634f581ea42ec6973553dde7f058cfbf. -- Update i686 ulps. -- Use LFS readdir in generic POSIX getcwd [BZ# 22899] -- linux: Remove __ASSUME_ATFCTS -- Sync getcwd with gnulib -- x86-64: Fix FMA4 detection in ifunc [BZ #26534] -- y2038: nptl: Convert pthread_cond_{clock|timed}wait to support 64 bit time -- malloc: Fix mallinfo deprecation declaration -- x32: Add and regenerate arch-syscall.h -- Add mallinfo2 function that support sizes >= 4GB. -- Remove obsolete default/nss code -- AArch64: Improve backwards memmove performance -- Add RISC-V 32-bit target to build-many-glibcs.py -- Documentation for the RISC-V 32-bit port -- RISC-V: Build infrastructure for 32-bit port -- RISC-V: Add rv32 path to RTLDLIST in ldd -- riscv32: Specify the arch_minimum_kernel as 5.4 -- RISC-V: Fix llrint and llround missing exceptions on RV32 -- RISC-V: Add the RV32 libm-test-ulps -- RISC-V: Add 32-bit ABI lists -- RISC-V: Add hard float support for 32-bit CPUs -- RISC-V: Support the 32-bit ABI implementation -- RISC-V: Add arch-syscall.h for RV32 -- RISC-V: Add path of library directories for the 32-bit -- RISC-V: Support dynamic loader for the 32-bit -- RISC-V: Add support for 32-bit vDSO calls -- RISC-V: Use 64-bit-time syscall numbers with the 32-bit port -- RISC-V: Cleanup some of the sysdep.h code -- RISC-V: Use 64-bit time_t and off_t for RV32 and RV64 -- io/lockf: Include bits/types.h before __OFF_T_MATCHES_OFF64_T check -- elf/tst-libc_dlvsym: Add a TEST_COMPAT around some symbol tests -- hurd: define BSD 4.3 ioctls only under __USE_MISC -- string: test strncasecmp and strncpy near page boundaries -- linux: Simplify utimensat -- linux: Simplify timerfd_settime -- linux: Simplify timer_gettime -- linux: Simplify sched_rr_get_interval -- linux: Simplify ppoll -- linux: Simplify mq_timedsend -- linux: Simplify mq_timedreceive -- linux: Simplify clock_settime -- linux: Simplify clock_nanosleep -- linux: Simplify clock_gettime -- linux: Simplify clock_adjtime -- linux: Add helper function to optimize 64-bit time_t fallback support -- S390: Sync HWCAP names with kernel by adding aliases [BZ #25971] -- [vcstocl] Import ProjectQuirks from its own file -- build-many-glibcs.py: Add a s390x -O3 glibc variant. -- Fix namespace violation in stdio.h and sys/stat.h if build with optimization. [BZ #26376] -- Add C2x BOOL_MAX and BOOL_WIDTH to limits.h. -- Use MPC 1.2.0 in build-many-glibcs.py. -- Add new STATX_* constants from Linux 5.8 to bits/statx-generic.h. -- Correct locking and cancellation cleanup in syslog functions (bug 26100) - -* Thu Aug 20 2020 Carlos O'Donell - 2.32.9000-4 -- Support building glibc in a mock chroot using older systemd-nspawn (#1869030). - -* Tue Aug 18 2020 Carlos O'Donell - 2.32.9000-3 -- Suggest installing minimal localization e.g. C, POSIX, C.UTF-8. - -* Mon Aug 17 2020 DJ Delorie - 2.32.9000-2 -- Auto-sync with upstream branch master, - commit cb7e7a5ca1d6d25d59bc038bdc09630e507c41e5. -- nptl: Handle NULL abstime [BZ #26394] -- Update build-many-glibcs.py for binutils ia64 obsoletion. -- Update kernel version to 5.8 in tst-mman-consts.py. -- y2038: nptl: Convert pthread_{clock|timed}join_np to support 64 bit time -- aarch64: update ulps. - -* Wed Aug 12 2020 Patsy Griffin - 2.32.9000-1 -- Auto-sync with upstream branch master, - commit 0be0845b7a674dbfb996f66cd03d675f0f6028dc: -- S390: Regenerate ULPs. -- manual: Fix sigdescr_np and sigabbrev_np return type (BZ #26343) -- math: Update x86_64 ulps -- math: Regenerate auto-libm-test-out-j0 -- manual: Put the istrerrorname_np and strerrordesc_np return type in braces -- Linux: Use faccessat2 to implement faccessat (bug 18683) -- manual: Fix strerrorname_np and strerrordesc_np return type (BZ #26343) -- math: Fix inaccuracy of j0f for x >= 2^127 when sin(x)+cos(x) is tiny -- Update syscall lists for Linux 5.8. -- Use Linux 5.8 in build-many-glibcs.py. -- htl: Enable tst-cancelx?[45] -- tst-cancel4: Make blocking on write more portable -- hurd: Add missing hidden def -- hurd: Rework sbrk -- hurd: Implement basic sched_get/setscheduler -- x86: Rename Intel CPU feature names -- manual: Fix some @code/@var formatting glitches chapter Date And Time -- Copy regex_internal.h from Gnulib -- Copy regex BITSET_WORD_BITS porting from Gnulib -- Sync regex.h from Gnulib -- Sync mktime.c from Gnulib -- Sync intprops.h from Gnulib -- Open master branch for glibc 2.33 development. - -* Thu Aug 06 2020 Arjun Shankar - 2.32-1 -- Auto-sync with upstream branch release/2.32/master, - commit 3de512be7ea6053255afed6154db9ee31d4e557a: -- Prepare for glibc 2.32 release. -- Regenerate configure scripts. -- Update NEWS with bugs. -- Update translations. -- Don't mix linker error messages into edited scripts -- benchtests/README update. -- RISC-V: Update lp64d libm-test-ulps according to HiFive Unleashed -- aarch64: update NEWS about branch protection -- Add NEWS entry for CVE-2016-10228 (bug 19519) -- powerpc: Fix incorrect cache line size load in memset (bug 26332) -- Update Nios II libm-test-ulps file. - -* Fri Jul 31 2020 Patsy Griffin - 2.31.9000-24 -- Auto-sync with upstream branch master, - commit 7f1a08cff82255cd4252a2c75fd65b80a6a170bf. -- Move NEWS entry for CVE-2020-1751 to the 2.31 section -- NEWS: Deprecate weak libpthread symbols for single-threaded checks -- NEWS: Deprecate nss_hesiod -- nptl: Zero-extend arguments to SETXID syscalls [BZ #26248] -- Use binutils 2.35 branch in build-many-glibcs.py. -- aarch64: Use future HWCAP2_MTE in ifunc resolver -- Update x86-64 libm-test-ulps -- aarch64: Respect p_flags when protecting code with PROT_BTI -- Disable warnings due to deprecated libselinux symbols used by nss and nscd -- Regenerate INSTALL for ARC port updates. -- Update libc.pot for 2.32 release. -- powerpc: Fix POWER10 selection -- powerpc64le: guarantee a .gnu.attributes section [BZ #26220] - -* Wed Jul 29 2020 Florian Weimer - 2.31.9000-23 -- Inherit -mbranch-protection=standard from redhat-rpm-config (for aarch64) - -* Mon Jul 27 2020 Fedora Release Engineering -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jul 22 2020 Carlos O'Donell - 2.31.9000-21 -- Use make macros -- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro - -* Tue Jul 21 2020 Arjun Shankar - 2.31.9000-20 -- Add glibc-deprecated-selinux-makedb.patch and - glibc-deprecated-selinux-nscd.patch to work around libselinux API - deprecations. -- Drop glibc-rseq-disable.patch; rseq support removed upstream. (#1855729) -- Auto-sync with upstream branch master, - commit ec2f1fddf29053957d061dfe310f106388472a4f: -- libio: Remove __libc_readline_unlocked -- shadow: Implement fgetspent_r using __nss_fgetent_r -- pwd: Implement fgetpwent_r using __nss_fgetent_r -- gshadow: Implement fgetsgent_r using __nss_fgetent_r (bug 20338) -- grp: Implement fgetgrent_r using __nss_fgetent_r -- nss: Add __nss_fgetent_r -- libio: Add fseterr_unlocked for internal use -- nss_files: Use generic result pointer in parse_line -- nss_files: Consolidate line parse declarations in -- nss_compat: Do not use mmap to read database files (bug 26258) -- nss_files: Consolidate file opening in __nss_files_fopen -- Update powerpc-nofpu libm-test-ulps. -- Use MPFR 4.1.0 in build-many-glibcs.py. -- elf: Change TLS static surplus default back to 1664 -- hurd: Fix longjmp check for sigstate -- hurd: Fix longjmp early in initialization -- manual: New signal and errno string functions are AS-safe -- AArch64: Improve strlen_asimd performance (bug 25824) -- Move from sunrpc to inet -- en_US: Minimize changes to date_fmt (Bug 25923) -- Linux: Remove rseq support -- manual: Use Unicode instead HTML entities for characters (bug 19737) -- Add NEWS entry for CVE-2020-6096 (bug 25620) -- arm: remove string/tst-memmove-overflow XFAIL -- AArch64: Rename IS_ARES to IS_NEOVERSE_N1 -- AArch64: Add optimized Q-register memcpy -- AArch64: Align ENTRY to a cacheline -- Correct timespec implementation [BZ #26232] -- Remove --enable-obsolete-rpc configure flag -- hurd: Fix build-many-glibcs.py -- x86: Support usable check for all CPU features -- string: Make tst-strerror/tst-strsignal unsupported if msgfmt is not installed -- malloc: Deprecate more hook-related functionality -- elf: Support at least 32-byte alignment in static dlopen -- x86: Remove __ASSEMBLER__ check in init-arch.h -- x86: Remove the unused __x86_prefetchw -- Documentation for ARC port -- build-many-glibcs.py: Enable ARC builds -- ARC: Build Infrastructure -- ARC: ABI lists -- ARC: Linux Startup and Dynamic Loading -- ARC: Linux ABI -- ARC: Linux Syscall Interface -- ARC: hardware floating point support -- ARC: math soft float support -- ARC: Atomics and Locking primitives -- ARC: Thread Local Storage support -- ARC: startup and dynamic linking code -- ARC: ABI Implementation -- Fix time/tst-cpuclock1 intermitent failures -- powerpc64: Fix calls when r2 is not used [BZ #26173] -- Add NEWS entry for Update to Unicode 13.0.0 [BZ #25819] -- Update i686 libm-test-ulps -- Fix memory leak in __printf_fp_l (bug 26215). -- Fix double free in __printf_fp_l (bug 26214). -- linux: Fix syscall list generation instructions -- sysv: linux: Add 64-bit time_t variant for shmctl -- sysvipc: Remove the linux shm-pad.h file -- sysvipc: Split out linux struct shmid_ds -- sysv: linux: Add 64-bit time_t variant for msgctl -- sysvipc: Remove the linux msq-pad.h file -- sysvipc: Split out linux struct semid_ds -- sysv: linux: Add 64-bit time_t variant for semctl - -* Fri Jul 10 2020 Florian Weimer - 2.31.9000-19 -- Disable rseq registration by default to help Firefox (#1855729) - -* Thu Jul 09 2020 Florian Weimer - 2.31.9000-18 -- Auto-sync with upstream branch master, - commit ffb17e7ba3a5ba9632cee97330b325072fbe41dd: -- rtld: Avoid using up static TLS surplus for optimizations [BZ #25051] -- rtld: Account static TLS surplus for audit modules -- rtld: Add rtld.nns tunable for the number of supported namespaces -- Remove --enable-obsolete-nsl configure flag -- Move non-deprecated RPC-related functions from sunrpc to inet -- aarch64: add NEWS entry about branch protection support -- aarch64: redefine RETURN_ADDRESS to strip PAC -- aarch64: fix pac-ret support in _mcount -- aarch64: Add pac-ret support to assembly files -- aarch64: configure check for pac-ret code generation -- aarch64: ensure objects are BTI compatible -- aarch64: enable BTI at runtime -- aarch64: fix RTLD_START for BTI -- aarch64: fix swapcontext for BTI -- aarch64: Add BTI support to assembly files -- aarch64: Rename place holder .S files to .c -- aarch64: configure test for BTI support -- Rewrite abi-note.S in C. -- rtld: Clean up PT_NOTE and add PT_GNU_PROPERTY handling -- string: Move tst-strsignal tst-strerror to tests-container -- string: Fix prototype mismatch in sigabbrev_np, __sigdescr_np -- arm: CVE-2020-6096: Fix multiarch memcpy for negative length (#1820332) -- arm: CVE-2020-6096: fix memcpy and memmove for negative length (#1820332) -- sunrpc: Remove hidden aliases for global data symbols (bug 26210) -- hurd: Fix strerror not setting errno -- tst-strsignal: fix checking for RT signals support -- hurd: Evaluate fd before entering the critical section -- CVE-2016-10228: Rewrite iconv option parsing (#1428292) -- nss: Remove cryptographic key support from nss_files, nss_nis, nss_nisplus -- sunrpc: Do not export getrpcport by default -- sunrpc: Do not export key handling hooks by default -- sunrpc: Turn clnt_sperrno into a libc_hidden_nolink_sunrpc symbol -- string: Add strerrorname_np and strerrordesc_np -- string: Add sigabbrev_np and sigdescr_np -- string: Add strerror_l on test-strerror-errno -- string: Add strerror, strerror_r, and strerror_l test -- string: Add strsignal test -- string: Simplify strerror_r -- string: Use tls-internal on strerror_l -- string: Implement strerror in terms of strerror_l -- string: Remove old TLS usage on strsignal -- linux: Fix __NSIG_WORDS and add __NSIG_BYTES -- signal: Move sys_errlist to a compat symbol -- signal: Move sys_siglist to a compat symbol -- signal: Add signum-{generic,arch}.h -- Remove most vfprintf width/precision-dependent allocations (bug 14231, bug 26211). -- elf: Do not signal LA_ACT_CONSISTENT for an empty namespace [BZ #26076] -- Fix stringop-overflow errors from gcc 10 in iconv. -- x86: Add thresholds for "rep movsb/stosb" to tunables -- Use C2x return value from getpayload of non-NaN (bug 26073). -- x86: Detect Extended Feature Disable (XFD) -- x86: Correct bit_cpu_CLFSH [BZ #26208] -- manual: Document __libc_single_threaded -- Add the __libc_single_threaded variable -- Linux: rseq registration tests -- Linux: Use rseq in sched_getcpu if available -- Linux: Perform rseq registration at C startup and thread creation -- tst-cancel4: deal with ENOSYS errors -- manual: Show copyright information not just in the printed manual - - -* Thu Jul 02 2020 Carlos O'Donell - 2.31.9000-17 -- Auto-sync with upstream branch master, - commit c6aac3bf3663709cdefde5f5d5e9e875d607be5e. -- Fix typo in comment in bug 26137 fix. -- Fix strtod multiple-precision division bug (bug 26137). -- Linux: Fix UTC offset setting in settimeofday for __TIMESIZE != 64 -- random: range is not portably RAND_MAX [BZ #7003] -- Update kernel version to 5.7 in tst-mman-consts.py. -- powerpc: Add support for POWER10 -- hurd: Simplify usleep timeout computation -- htl: Enable cancel*16 an cancel*20 tests -- hurd: Add remaining cancelation points -- hurd: fix usleep(ULONG_MAX) -- hurd: Make fcntl(F_SETLKW*) cancellation points -- hurd: make wait4 a cancellation point -- hurd: Fix port definition in HURD_PORT_USE_CANCEL -- hurd: make close a cancellation point -- hurd: make open and openat cancellation points -- hurd: clean fd and port on thread cancel -- htl: Move cleanup handling to non-private libc-lock -- htl: Fix includes for lockfile -- htl: avoid cancelling threads inside critical sections -- tst-cancel4-common.c: fix calling socketpair -- x86: Detect Intel Advanced Matrix Extensions -- Set width of JUNGSEONG/JONGSEONG characters from UD7B0 to UD7FB to 0 [BZ #26120] -- S390: Optimize __memset_z196. -- S390: Optimize __memcpy_z196. -- elf: Include (for size_t), in -- nptl: Don't madvise user provided stack -- S390: Regenerate ULPs. -- htl: Add wrapper header for with hidden __sem_post -- elf: Include in because bool is used -- htl: Fix case when sem_*wait is canceled while holding a token -- htl: Make sem_*wait cancellations points -- htl: Simplify non-cancel path of __pthread_cond_timedwait_internal -- htl: Enable tst-cancel25 test -- powerpc: Add new hwcap values -- aarch64: MTE compatible strncmp -- aarch64: MTE compatible strcmp -- aarch64: MTE compatible strrchr -- aarch64: MTE compatible memrchr -- aarch64: MTE compatible memchr -- aarch64: MTE compatible strcpy -- Add MREMAP_DONTUNMAP from Linux 5.7 -- x86: Update CPU feature detection [BZ #26149] - -* Mon Jun 22 2020 DJ Delorie - 2.31.9000-16 -- Auto-sync with upstream branch master, - commit ea04f0213135b13d80f568ca2c4127c2ec112537. -- aarch64: Remove fpu Makefile -- m68k: Use sqrt{f} builtin for coldfire -- arm: Use sqrt{f} builtin -- riscv: Use sqrt{f} builtin -- s390: Use sqrt{f} builtin -- sparc: Use sqrt{f} builtin -- mips: Use sqrt{f} builtin -- alpha: Use builtin sqrt{f} -- i386: Use builtin sqrtl -- x86_64: Use builtin sqrt{f,l} -- powerpc: Use sqrt{f} builtin -- s390x: Use fma{f} builtin -- aarch64: Use math-use-builtins for ceil{f} -- math: Decompose math-use-builtins.h -- hurd: Add mremap -- ia64: Use generic exp10f -- New exp10f version without SVID compat wrapper -- i386: Use generic exp10f -- math: Optimized generic exp10f with wrappers -- benchtests: Add exp10f benchmark - -* Fri Jun 19 2020 Patsy Franklin - 2.31.9000-15 -- Auto-sync with upstream branch master, - commit 27f8864bd41f0f1b61e8e947d9a030b1a0d23df9. -- x86: Update F16C detection [BZ #26133] -- Fix avx2 strncmp offset compare condition check [BZ #25933] -- nptl: Remove now-spurious tst-cancelx9 references -- x86_64: Use %xmmN with vpxor to clear a vector register -- x86: Correct bit_cpu_CLFLUSHOPT [BZ #26128] -- powerpc64le: refactor e_sqrtf128.c -- Update syscall-names.list for Linux 5.7. -- ieee754/dbl-64: Reduce the scope of temporary storage variables -- manual: Add pthread_attr_setsigmask_np, pthread_attr_getsigmask_np -- ld.so: Check for new cache format first and enhance corruption check -- hurd: Fix __writev_nocancel_nostatus -- hurd: Make send* cancellation points -- htl: Enable more cancellation tests -- hurd: Make write and pwrite64 cancellation points -- htl: Fix cleanup support for IO locking -- htl: Move cleanup stack to variable shared between libc and pthread -- htl: initialize first and prevent from unloading -- htl: Add noreturn attribute on __pthread_exit forward -- hurd: Make recv* cancellation points -- powerpc: Automatic CPU detection in preconfigure -- Use Linux 5.7 in build-many-glibcs.py. -- htl: Enable more cancel tests -- htl: Fix linking static tests by factorizing the symbols list -- Add "%d" support to _dl_debug_vdprintf -- aarch64: MTE compatible strlen -- aarch64: MTE compatible strchr -- aarch64: MTE compatible strchrnul -- AArch64: Merge Falkor memcpy and memmove implementations -- hurd: document that gcc&gdb look at the trampoline code -- pthread: Move back linking rules to nptl and htl -- htl: Enable more tests -- htl: Fix registration of atfork handlers in modules -- htl: Fix tls initialization for already-created threads -- hurd: Make read and pread64 cancellable -- hurd: Fix unwinding over interruptible RPC -- htl: Enable but XFAIL tst-flock2, tst-signal1, tst-signal2 -- hurd: XFAIL more tests that require setpshared support -- hurd: Briefly document in xfails the topics of the bugzilla entries -- htl: Enable more tests -- htl: Add sem_clockwait support -- htl: fix register-atfork ordering -- hurd: Fix hang in _hurd_raise_signal from pthread_kill -- hurd: Reject raising invalid signals -- hurd: fix clearing SS_ONSTACK when longjmp-ing from sighandler -- hurd: Add pointer guard support -- hurd: Add stack guard support -- dl-runtime: reloc_{offset,index} now functions arch overide'able -- powerpc64le: add optimized strlen for P9 -- powerpc64le: use common fmaf128 implementation - -* Fri Jun 05 2020 Patsy Griffin - 2.31.9000-14 -- Auto-sync with upstream branch master, - commit e52434a2e4d1105272daaef87678da950fbec73f. -- benchtests: Restore the clock_gettime option -- Update HP_TIMING_NOW for _ISOMAC in sysdeps/generic/hp-timing.h -- Replace val with __val in TUNABLE_SET_VAL_IF_VALID_RANGE -- support: Fix detecting hole support on >2KB-block filesystems -- powerpc: Fix powerpc64le due a7a3435c9a -- manual/jobs.texi: remove unused var from example code -- powerpc/fpu: use generic fma functions -- aarch/fpu: use generic builtins based math functions -- ieee754: provide gcc builtins based generic fma functions -- ieee754: provide gcc builtins based generic sqrt functions -- Linux: Use __pthread_attr_setsigmask_internal for timer helper thread -- nptl: Add pthread_attr_setsigmask_np, pthread_attr_getsigmask_np -- nptl: Make pthread_attr_t dynamically extensible -- nptl: Destroy the default thread attribute as part of freeres -- nptl: Change type of __default_pthread_attr -- nptl: Use __pthread_attr_setaffinity_np in pthread_getattr_np -- nptl: Use __pthread_getattr_default_np in pthread_create -- nptl: Add internal alias __pthread_getattr_default_np -- htl: Fix gsync_wait symbol exposition -- htl: Make pthread_cond_destroy wait for threads to be woken -- htl: Enable more cond tests -- tst-cond11: Fix build with _SC_MONOTONIC_CLOCK > 0 -- mbstowcs: Document, test, and fix null pointer dst semantics (Bug 25219) -- build: Use FAIL_EXIT1 () on failure to exec child [BZ #23990] -- manual: Fix backtraces code example [BZ #10441] -- hurd: Fix fexecve -- i386: Remove unused file sysdeps/unix/i386/sysdep.S -- hurd: fix ptsname error when called on a non-tty -- hurd: Fix fdopendir checking for directory type -- i386: Remove NO_TLS_DIRECT_SEG_REFS handling -- Hurd: Move internals into wrapper header -- Hurd: Use __sigmask in favor of deprecated sigmask -- hurd: Fix pselect atomicity -- elf: Remove extra hwcap mechanism from ldconfig -- elf: Do not read hwcaps from the vDSO in ld.so -- linux: Use internal DIR locks when accessing filepos on telldir -- Update i386 libm-test-ulps -- htl: Add clock variants -- signal: Deprecate additional legacy signal handling functions -- elf: Turn _dl_printf, _dl_error_printf, _dl_fatal_printf into functions -- x86: Update Intel Atom processor family optimization -- elf.h: add aarch64 property definitions -- elf.h: Add PT_GNU_PROPERTY -- : Add libpthread hidden alias support -- nptl: Use __pthread_attr_copy in pthread_setattr_default_np -- nptl: Use __pthread_attr_copy in pthread_getattr_default_np (bug 25999) -- nptl: Add __pthread_attr_copy for copying pthread_attr_t objects -- nptl: Make __pthread_attr_init, __pthread_attr_destroy available internally -- nptl: Move pthread_gettattr_np into libc -- nptl: Move pthread_getaffinity_np into libc -- nptl: Move pthread_attr_setaffinity_np into libc -- nptl: Replace some stubs with the Linux implementation -- Linux: Add missing handling of tai field to __ntp_gettime64 -- Mention GCC 10 attribute access. -- y2038: Replace __clock_gettime with __clock_gettime64 -- manual: Add missing section and node for clockid_t wait functions -- y2038: linux: Provide __ntp_gettimex64 implementation -- y2038: linux: Provide __ntp_gettime64 implementation -- y2038: Provide conversion helpers for struct __ntptimeval64 -- y2038: Introduce struct __ntptimeval64 - new internal glibc type -- y2038: linux: Provide __adjtime64 implementation -- y2038: linux: Provide ___adjtimex64 implementation -- y2038: linux: Provide __clock_adjtime64 implementation -- ldconfig: Default to the new format for ld.so.cache -- nss_compat: internal_end*ent may clobber errno, hiding ERANGE [BZ #25976] -- powerpc: Optimized rawmemchr for POWER9 -- x86: Add --enable-cet=permissive -- Remove NO_CTORS_DTORS_SECTIONS macro -- elf: Assert that objects are relocated before their constructors run -- powerpc: Optimized stpcpy for POWER9 -- powerpc: Optimized strcpy for POWER9 -- x86: Move CET control to _dl_x86_feature_control [BZ #25887] -- sunrpc/tst-udp-*: Fix timeout value -- Linux: Remove remnants of the getcpu cache -- Update timezone code from tzcode 2020a -- aarch64: fix strcpy and strnlen for big-endian [BZ #25824] -- locale: Add transliteration for Geresh, Gershayim (U+05F3, U+05F4) -- string: Fix string/tst-memmove-overflow to compile with GCC 7 -- Add arch-syscall.h dependency for generating sysd-syscalls file -- arm: XFAIL string/tst-memmove-overflow due to bug 25620 -- elf: Remove redundant add_to_global_resize_failure call from dl_open_args -- string: Add string/tst-memmove-overflow, a test case for bug 25620 -- support: Add support_blob_repeat_allocate_shared -- nptl: wait for pending setxid request also in detached thread (bug 25942) -- aarch64: Accept PLT calls to __getauxval within libc.so -- Use unsigned constants for ICMP6 filters [BZ #22489] -- Linux: Enhance glibcsyscalls.py to support listing system calls - -* Mon May 11 2020 DJ Delorie - 2.31.9000-13 -- Auto-sync with upstream branch master, - commit 978e8ac39f8ba2d694031e521511da1ae803ccfc. -- Suppress GCC 10 true positive warnings [BZ #25967] -- POWER: Add context-synchronizing instructions to pkey_write [BZ #25954] -- hurd: Add missing sigstate members initialization -- x86-64: Use RDX_LP on __x86_shared_non_temporal_threshold [BZ #25966] -- linux: Remove assembly umount2 implementation -- signal: Use for sigemptyset, sigfillset -- ckb_IQ, or_IN locales: Add missing reorder-end keywords -- semaphore: consolidate arch headers into a generic one -- Use GCC 10 branch in build-many-glibcs.py. -- Document the internal _ and N_ macros -- y2038: Provide conversion helpers for struct __timex64 -- y2038: Introduce struct __timex64 - new internal glibc type -- y2038: include: Move struct __timeval64 definition to a separate file -- y2038: nscd: Modify nscd_helper to use __clock_gettime64 -- y2038: inet: Convert inet deadline to support 64 bit time -- y2038: hurd: Provide __clock_gettime64 function -- y2038: Export __clock_gettime64 to be usable in other libraries -- manual: Document the O_NOFOLLOW open flag -- powerpc64le/power9: guard power9 strcmp against rtld usage [BZ# 25905] -- float128: use builtin_signbitf128 always -- improve out-of-bounds checking with GCC 10 attribute access [BZ #25219] -- nios2: delete sysdeps/unix/sysv/linux/nios2/kernel-features.h -- powerpc: Rename argN to _argN in LOADARGS_N [BZ #25902] -- locale/tst-localedef-path-norm: Don't create $(complocaledir) -- support: Set errno before testing it. -- localedef: Add tests-container test for --no-hard-links. -- test-container: Support $(complocaledir) and mkdirp. -- i386: Remove unused variable in sysdeps/x86/cacheinfo.c -- Add a C wrapper for prctl [BZ #25896] -- powerpc64le: Enable support for IEEE long double -- powerpc64le: blacklist broken GCC compilers (e.g GCC 7.5.0) -- powerpc64le: bump binutils version requirement to >= 2.26 -- powerpc64le: raise GCC requirement to 7.4 for long double transition -- Rename __LONG_DOUBLE_USES_FLOAT128 to __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI -- ldbl-128ibm-compat: workaround GCC 9 C++ PR90731 -- x86: Add the test case of __get_cpu_features support for Zhaoxin processors -- x86: Add cache information support for Zhaoxin processors -- x86: Add CPU Vendor ID detection support for Zhaoxin processors -- Update translations -- Add C wrappers for process_vm_readv/process_vm_writev [BZ #25810] -- generic/typesizes.h: Add support for 32-bit arches with 64-bit types -- semctl: Remove the sem-pad.h file -- bits/sem.h: Split out struct semid_ds -- Mark unsigned long arguments with U in more syscalls [BZ #25810] -- elf: Add initial flag argument to __libc_early_init -- Add SYSCALL_ULONG_ARG_[12] to pass long to syscall [BZ #25810] -- Makeconfig: Use $(error ...) to output error message -- manual: Fix typos in the fexecve description -- misc: Remove sstk from the autogenerated system call list -- Remove unused floating-point configuration from gmp-impl.h. -- support: Implement key create/delete -- nptl/tst-setuid1-static: Improve isolation from system objects -- Increase the timeout of locale/tst-localedef-path-norm -- Use 2020 as copyright year. -- misc: Turn sstk into a compat symbol -- manual: Document the fexecve function -- nptl: Start new threads with all signals blocked [BZ #25098] -- localedef: Add verbose messages for failure paths. -- Remove most gmp-mparam.h headers. -- elf: Implement __libc_early_init -- elf: Introduce -- Add a syscall test for [BZ #25810] -- elf: Support lld-style link map for librtld.map -- signal: Only handle on NSIG signals on signal functions (BZ #25657) -- linux: Use pthread_sigmask on sigprocmask -- ia64: Remove sigprocmask/sigblock objects from libpthread -- nptl: Move pthread_sigmask implementation to libc -- Bug 25819: Update to Unicode 13.0.0 - -* Wed Apr 29 2020 Florian Weimer - 2.31.9000-12 -- nss_db.x86_64 should install nss_db.i686 if glibc.i686 is installed (#1807821) -- Likewise for nss_hesiod. - -* Mon Apr 27 2020 Florian Weimer - 2.31.9000-11 -- Introduce glibc-headers-x86, glibc-headers-s390 packages (#1828332) -- Remove the glibc-headers package - -* Mon Apr 20 2020 DJ Delorie - 2.31.9000-10 -- Auto-sync with upstream branch master, - commit 0798b8ecc8da8667362496c1217d18635106c609. -- ARC: Update syscall-names.list for ARC specific syscalls -- Revert "x86_64: Add SSE sfp-exceptions" -- provide y2038 safe socket constants for default/asm-generic ABI -- x86_64: Add SSE sfp-exceptions -- Remove __NO_MATH_INLINES -- i686: Add INTERNAL_SYSCALL_NCS 6 argument support -- Reset converter state after second wchar_t output (Bug 25734) -- Fix typo in posix/tst-fnmatch.input (Bug 25790) - -* Wed Apr 15 2020 Patsy Griffin - 2.31.9000-9 -- Auto-sync with upstream branch master, - commit 076f09afbac1aa57756faa7a8feadb7936a724e4. -- Linux: Remove and the sysctl function -- posix: Add wait4 test case -- linux: wait4: Fix incorrect return value comparison -- hurd: add mach_print function -- x32: Properly pass long to syscall [BZ #25810] -- Add GRND_INSECURE from Linux 5.6 to sys/random.h -- Update kernel version to 5.6 in tst-mman-consts.py. - -* Wed Apr 15 2020 Florian Weimer - 2.31.9000-8 -- nsswitch.conf: don't add sss to shadow line - -* Wed Apr 08 2020 Carlos O'Donell - 2.31.9000-7 -- Auto-sync with upstream branch master, - commit b1caa144c74678097cada5a54eda2996bb459d8f. -- Update mips libm-test-ulps -- Update alpha libm-test-ulps -- Update ia64 libm-test-ulps -- Update sparc libm-test-ulps -- Update arm libm-test-ulps -- Update aarch64 libm-test-ulps -- Updates to the shn_MM locale [BZ #25532] -- powerpc: Update ULPs and xfail more ibm128 outputs -- i386: Remove build support for GCC older than GCC 6 -- oc_FR locale: Fix spelling of April (bug 25639) -- Update hppa libm-test-ulps -- y2038: linux: Provide __mq_timedreceive_time64 implementation -- y2038: linux: Provide __mq_timedsend_time64 implementation -- y2038: include: Move struct __timespec64 definition to a separate file -- malloc: ensure set_max_fast never stores zero [BZ #25733] -- powerpc64le: enforce non-specific long double in .gnu.attributes section -- powerpc64le: workaround ieee long double / _Float128 stdc++ bug -- powerpc64le: Enforce -mabi=ibmlongdouble when -mfloat128 used -- powerpc64le/multiarch: don't generate strong aliases for fmaf128-ppc64 -- ldbl-128ibm: simplify iscanonical.h -- i386: Disable check_consistency for GCC 5 and above [BZ #25788] -- Add IPPROTO_ETHERNET and IPPROTO_MPTCP from Linux 5.6 to netinet/in.h. -- Update syscall lists for Linux 5.6. -- elf: Implement DT_AUDIT, DT_DEPAUDIT support [BZ #24943] -- elf: Simplify handling of lists of audit strings -- support: Change xgetline to return 0 on EOF -- nptl: Remove x86_64 cancellation assembly implementations [BZ #25765] -- aarch64: update bits/hwcap.h -- Add tests for Safe-Linking -- S390: Regenerate ULPs. -- sysv/alpha: Use generic __timeval32 and helpers -- linux: Use long time_t for wait4/getrusage -- resource: Add a __rusage64 struct -- linux: Use long time_t __getitimer/__setitimer -- sysv: Define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 -- math: Add inputs that yield larger errors for float type (x86_64) - -* Tue Mar 31 2020 DJ Delorie - 2.31.9000-6 -- Auto-sync with upstream branch master, - commit 49c3c37651e2d2ec4ff8ce21252bbbc08a9d6639. -- Fix alignment bug in Safe-Linking -- Typo fixes and CR cleanup in Safe-Linking -- Use Linux 5.6 and GMP 6.2.0 in build-many-glibcs.py. -- Add new file missed in previous hppa commit. -- powerpc: Add support for fmaf128() in hardware -- Fix data race in setting function descriptors during lazy binding on hppa. -- sparc: Move __fenv_{ld,st}fsr to fenv-private.h -- x86: Remove feraiseexcept optimization -- math: Remove fenvinline.h -- hurd: Make O_TRUNC update mtime/ctime -- Add Safe-Linking to fastbins and tcache -- Add benchtests for roundeven and roundevenf. -- time: Add a __itimerval64 struct -- time: Add a timeval with a 32-bit tv_sec and tv_usec -- sysv/linux: Rename alpha functions to be alpha specific -- ARC: add definitions to elf/elf.h -- powerpc64: apply -mabi=ibmlongdouble to special files -- powerpc64le: add -mno-gnu-attribute to *f128 objects and difftime -- Makeconfig: sandwich gnulib-tests between libc/ld linking of tests -- powerpc64le: Ensure correct ldouble compiler flags are used -- Fix tests which expose ldbl -> _Float128 redirects -- ldbl-128ibm-compat: PLT redirects for using ldbl redirects internally - -* Wed Mar 25 2020 Patsy Franklin - 2.31.9000-5 -- Auto-sync with upstream branch master, - commit 4eda036f5b897fa8bc20ddd2099b5a6ed4239dc9. -- stdlib: Move tst-system to tests-container -- support/shell-container.c: Add builtin kill -- support/shell-container.c: Add builtin exit -- support/shell-container.c: Return 127 if execve fails -- Add NEWS entry for CVE-2020-1751 (bug 25423) -- posix: Fix system error return value [BZ #25715] -- y2038: fix: Add missing libc_hidden_def attribute for some syscall wrappers -- Extended Char Intro: Use getwc in example (Bug 25626) -- stdio: Add tests for printf multibyte convertion leak [BZ#25691] -- stdio: Remove memory leak from multibyte convertion [BZ#25691] -- Add NEWS entry for CVE-2020-1752 (bug 25414) -- math: Remove inline math tests -- Remove __LIBC_INTERNAL_MATH_INLINES -- math: Remove mathinline -- m68k: Remove mathinline.h -- oc_FR locale: Fix spelling of Thursday (bug 25639) -- x86: Remove ARCH_CET_LEGACY_BITMAP [BZ #25397] -- Fix build with GCC 10 when long double = double. -- nscd/cachedumper.c : fix whitespace -- Fix nscd/cachedumper.c compile errors -- manual: Fix inconsistent declaration of wcsrchr [BZ #24655] -- nscd: add cache dumper - -* Fri Mar 13 2020 Patsy Franklin - 2.31.9000-4 -- Auto-sync with upstream branch master, - commit 2de7fe62534b7a6461c633114f03e9dff394f5f7. -- parse_tunables: Fix typo in comment -- ldconfig: trace origin paths with -v -- test-container: print errno when execvp fails -- [AArch64] Improve integer memcpy -- Add NEWS entry for CVE-2020-10029 (bug 25487) -- gcc PR 89877: miscompilation due to missing cc clobber in longlong.h macros -- mips: Fix wrong INTERNAL_SYSCALL_ERROR_P check from bc2eb9321e -- elf: Fix wrong indentation from commit eb447b7b4b -- y2038: linux: Provide __futimesat64 implementation -- y2038: linux: Provide __lutimes64 implementation -- y2038: linux: Provide __futimes64 implementation -- y2038: fix: Add missing libc_hidden_def for __futimens64 -- sparc: Move sigreturn stub to assembly -- ldbl-128ibm: Let long double files have specific compiler flags -- ldbl-128ibm-compat: Add tests for IBM long double functions -- powerpc: Fix feraiseexcept and feclearexcept macros -- arm: Fix softp-fp Implies (BZ #25635) -- Remove reference of --without-fp on configure -- linux/sysipc: Include linux/posix_types.h for __kernel_mode_t -- Improve IFUNC check [BZ #25506] -- linux: Clear mode_t padding bits (BZ#25623) -- linux: Remove aarch64 ipc_priv.h -- Linux: Use __fstatat64 in fchmodat implementation -- Linux: Use AT_FDCWD in utime, utimes when calling utimensat -- S390: Remove backchain-based fallback and use generic backtrace.c. -- manual: Fix wrong declaration of wcschr [BZ #24654] -- manual: Fix typo in parse_printf_format example [BZ #24638] - -* Thu Mar 5 2020 Florian Weimer - 2.31.9000-3 -- Emergency patch for broken utimes/utime functions - -* Tue Mar 03 2020 Patsy Franklin - 2.31.9000-2 -- Auto-sync with upstream branch master, - commit 78c9d0c6efabe2067ef7f93cd36325f54c60adc2. -- Update translations -- Convert Python scripts to Python 3 -- alpha: Do not build with -fpic -- y2038: linux: Provide __utime64 implementation -- y2038: linux: Provide __utimes64 implementation -- y2038: Introduce struct __utimbuf64 - new internal glibc type -- microblaze: vfork is always available -- m68k: getpagesize syscall number is always available -- Linux: epoll_pwait syscall number is always available -- x86_64: Do not define __NR_semtimedop in -- ia64: Do not define __NR_semtimedop in -- Linux: open_by_handle_at syscall number is always available -- Linux: set_robust_list syscall number is always available -- Linux: pciconfig_iobase syscall number is always available on alpha -- Linux: getdents64 syscall number is always available on MIPS -- Linux: Clean up preadv2, pwritev2 system call names -- Linux: exit_group syscall number is always available -- Linux: set_tid_address syscall number is always available -- Linux: pkey_mprotect syscall number is always available -- Linux: rt_sigqueueinfo syscall number is always available -- Linux: getrandom syscall number is always available -- Linux: Clean up preadv, pwritev system call names -- Linux: Clean up pread64/pwrite64 system call names -- Linux: sigaltstack syscall number is always available -- Linux: sched_getaffinity syscall number is always available -- Linux: sched_setaffinity syscall number is always available -- Linux: statx syscall number is always available -- Linux: mq_* syscall numbers are always available -- Linux: mlock2 syscall number is always available -- Linux: copy_file_range syscall number is always available -- Linux: renameat2 syscall number is always available -- build-many-glibcs.py: Add list-compilers, list-glibcs commands -- build-many-glibcs.py: Add --shallow option -- Fixed typo in run_command_array() in support/shell-container.c -- Add missing libc_hidden_def for __utimensat64 -- elf: Add elf/check-wx-segment, a test for the presence of WX segments -- i386: Use comdat instead of .gnu.linkonce for i386 setup pic register (BZ #20543) -- ldbl-128ibm-compat: link tst-ldbl-efgcvt against loader too -- ldbl-128ibm-compat: enforce ibm128 on compat tests -- ldbl-128ibm-compat: Provide nexttoward functions -- ldbl-128ibm-compat: Provide a significand implementation -- ldbl-128ibm-compat: Redirect complex math functions -- ldbl-128ibm-compat: Redirect long double functions to f128/ieee128 functions -- posix: Remove posix waitid -- posix: Refactor tst-waitid (BZ #14666) -- support: Add support_process_state_wait -- malloc/tst-mallocfork2: Kill lingering process for unexpected failures - -* Wed Feb 26 2020 Patsy Franklin - 2.31.9000-1 -- Auto-sync with upstream branch master, - commit 758599bc9dcc5764e862bd9e1613c5d1e6efc5d3. -- elf: Apply attribute_relro to pointers in elf/dl-minimal.c -- powerpc: Refactor fenvinline.h -- nss_nis: Use NSS_DECLARE_MODULE_FUNCTIONS -- csu: Use ELF constructor instead of _init in libc.so -- ldbl-128ibm: make ieee754.h work with IEEE 128 long double -- ldbl-128ibm-compat: fixup subdir location of several funcs -- ldbl-128ibm-compat: enforce correct abi flags on internal file -- ldbl-128ibm-compat: Provide ieee128 symbols to narrow functions -- Undefine redirections after long double definition on __LDBL_COMPAT [BZ #23294] -- nios2: Fix Linux kABI for syscall return -- Fix use-after-free in glob when expanding ~user (bug 25414) -- nptl: Move pthread_setschedparam implementation into libc -- nptl: Move pthread_getschedparam implementation into libc -- Add hidden prototypes for __sched_getparam, __sched_getscheduler -- nptl: Move pthread_cond_init implementation into libc -- nptl: Move pthread_cond_destroy implementation into libc -- nptl: Move pthread_condattr_init implementation into libc -- nptl: Move pthread_condattr_destroy implementation into libc -- nptl: Move pthread_attr_setscope implementation into libc -- nptl: Move pthread_attr_getscope implementation into libc -- nptl: Move pthread_attr_setschedpolicy implementation into libc -- nptl: Move pthread_attr_getschedpolicy implementation into libc -- nptl: Sort routines list in Makefile alphabetically -- nptl: Use .NOTPARALLEL in Makefile only if actually running tests -- Block all signals on timer_create thread (BZ#10815) -- Fix tst-pkey expectations on pkey_get [BZ #23202] -- y2038: linux: Provide __gettimeofday64 implementation -- Linux: Work around kernel bugs in chmod on /proc/self/fd paths [BZ #14578] -- Introduce and ELF_INITFINI for all architectures -- mips: Fix bracktrace result for signal frames -- Move implementation of into a C file -- : Add type safety and port to Hurd -- Prepare redirections for IEEE long double on powerpc64le -- conform/conformtest.py: Extend tokenizer to cover character constants -- stdlib: Reduce namespace pollution in -- x86: Avoid single-argument _Static_assert in -- x86 tls: Use _Static_assert for TLS access size assertion -- htl: Link internal htl tests against libpthread -- pthread: Fix building tst-robust8 with nptl -- pthread: Move robust mutex tests from nptl to sysdeps/pthread -- htl: Remove stub warning for pthread_mutexattr_setpshared -- htl: Add missing functions and defines for robust mutexes -- htl: Only check pthread_self coherency when DEBUG is set -- hurd: Add THREAD_GET/SETMEM/_NC -- hurd tls: update comment about fields at the end of tcbhead -- ld.so: Do not export free/calloc/malloc/realloc functions [BZ #25486] -- Remove weak declaration of free from -- elf: Extract _dl_sym_post, _dl_sym_find_caller_map from elf/dl-sym.c -- elf: Introduce the rtld-stubbed-symbols makefile variable -- arm: fix use of INTERNAL_SYSCALL_CALL -- linux: Remove INTERNAL_SYSCALL_DECL -- nptl: Remove ununsed pthread-errnos.h rule -- linux: Consolidate INLINE_SYSCALL -- s390: Consolidate Linux syscall definition -- riscv: Avoid clobbering register parameters in syscall -- microblaze: Avoid clobbering register parameters in syscall -- nios2: Use Linux kABI for syscall return -- mips: Use Linux kABI for syscall return -- mips64: Consolidate Linux sysdep.h -- ia64: Use Linux kABI for syscall return -- alpha: Refactor syscall and Use Linux kABI for syscall return -- sparc: Avoid clobbering register parameters in syscall -- sparc: Use Linux kABI for syscall return -- powerpc: Use Linux kABI for syscall return -- powerpc: Consolidate Linux syscall definition -- i386: Enable CET support in ucontext functions -- tst-clone3: Use __NR_futex_time64 if we don't have __NR_futex -- powerpc64: Add memory protection key support [BZ #23202] -- ldbl-128ibm-compat: Provide a scalb implementation -- Add a generic scalb implementation -- Adjust thresholds in Bessel function implementations (bug 14469). -- resolv: Fix ABA race in /etc/resolv.conf change detection [BZ #25420] -- resolv: Enhance __resolv_conf_load to capture file change data -- resolv: Fix file handle leak in __resolv_conf_load [BZ #25429] -- resolv: Use in __resolv_conf_get_current -- Add STATX_ATTR_VERITY from Linux 5.5 to bits/statx-generic.h. -- Use gcc -finput-charset=ascii for check-installed-headers. -- math/test-sinl-pseudo: Use stack protector only if available -- alpha: Fix static gettimeofday symbol -- nss_nisplus: Use NSS_DECLARE_MODULE_FUNCTIONS -- nss_dns: Use NSS_DECLARE_MODULE_FUNCTIONS -- nss_files: Use NSS_DECLARE_MODULE_FUNCTIONS -- nss_db: Use NSS_DECLARE_MODULE_FUNCTIONS -- nss_compat: Use NSS_DECLARE_MODULE_FUNCTIONS -- nss_hesiod: Use NSS_DECLARE_MODULE_FUNCTIONS -- nss: Add function types and NSS_DECLARE_MODULE_FUNCTIONS macro to -- nss_compat: Do not use nss_* names for function pointers -- Avoid ldbl-96 stack corruption from range reduction of pseudo-zero (bug 25487). -- mips: Fix argument passing for inlined syscalls on Linux [BZ #25523] -- mips: Use 'long int' and 'long long int' in linux syscall code -- alpha: Use generic gettimeofday implementation -- sunrpc: Properly clean up if tst-udp-timeout fails -- elf: avoid stack allocation in dl_open_worker -- elf: avoid redundant sort in dlopen -- elf: Allow dlopen of filter object to work [BZ #16272] -- Update translations -- Rename RWF_WRITE_LIFE_NOT_SET to RWH_WRITE_LIFE_NOT_SET following Linux 5.5. -- S390: Fix non-ascii character in fenv.h. -- io: Add io/tst-lchmod covering lchmod and fchmodat -- Linux: Emulate fchmodat with AT_SYMLINK_NOFOLLOW using O_PATH [BZ #14578] -- io: Implement lchmod using fchmodat [BZ #14578] -- Add internal header file -- elf.h: Add R_RISCV_IRELATIVE -- Fix typo in the name for Wednesday in Kurdish [BZ #9809] -- debug: Add missing locale dependencies of fortify tests -- htl C11 threads: Avoid pthread_ symbols visibility in static library -- hurd: Add __pthread_spin_wait and use it -- ldbl-128ibm-compat: set PRINTF_CHK flag in {,v}sprintf_chk -- Use --disable-gdbserver in build-many-glibcs.py. -- Improve random memcpy benchmark -- nptl: update default pthread-offsets.h -- nptl: add missing pthread-offsets.h -- htl: Avoid a local plt for pthread_self -- pthread: Move some join tests from nptl to sysdeps/pthread -- htl: Make joining self return EDEADLK -- pthread: Move most barrier tests from nptl to sysdeps/pthread -- htl: Fix barrier_wait with one thread -- pthread: Move most sem tests from nptl to sysdeps/pthread -- htl: Make sem_wait/sem_timedwait interruptible -- htl: Make sem_open return ENOSYS -- htl: Add support for semaphore maximum value -- pthread: Move key tests from nptl to sysdeps/pthread -- hurd: Make nanosleep a cancellation point -- htl: Add support for libc cancellation points -- htl: clean __pthread_get_cleanup_stack hidden proto -- htl: XFAIL rwlock tests which need pshared support -- pthread: Move some rwlock tests from nptl to sysdeps/pthread -- pthread: Move most once tests from nptl to sysdeps/pthread -- htl: support cancellation during pthread_once -- pthread: Move most cond tests from nptl to sysdeps/pthread -- htl: make pthread_cond_destroy return EBUSY on waiters -- htl: Report missing mutex lock on pthread_cond_*wait -- htl: Fix linking static testcases -- htl: Move __register_atfork from forward to own file -- pthread: Move some attr tests from nptl to sysdeps/pthread -- htl: Fix default guard size -- pthread: Move most mutex tests from nptl to sysdeps/pthread -- pthread: Move spin tests from nptl to sysdeps/pthread -- htl: make pthread_spin_lock really spin -- htl: Avoid check-installed-headers looking at inlines -- htl: Do not put spin_lock inlines in public headers -- pthread: Move basic tests from nptl to sysdeps/pthread -- htl: Fix calling pthread_exit in the child of a fork -- x86: Remove and use the generic version -- C11 threads: Move implementation to sysdeps/pthread -- htl: Add C11 threads types definitions -- C11 threads: make thrd_join more portable -- C11 threads: Fix thrd_t / pthread_t compatibility assertion -- C11 threads: do not require PTHREAD_DESTRUCTOR_ITERATIONS -- nptl: Move nptl-specific types to separate header -- htl: Make __PTHREAD_ONCE_INIT more flexible -- htl: Add support for C11 threads behavior -- htl: Add missing internal functions declarations -- htl: Rename _pthread_mutex_init/destroy to __pthread_mutex_init/destroy -- htl: Move internal mutex/rwlock symbols to GLIBC_PRIVATE -- Linux: Add io/tst-o_path-locks test -- support: Add the xlstat function -- htl: Remove duplicate files -- htl: Remove unused files -- resolv: Fix CNAME chaining in resolv/tst-resolv-ai_idn-common.c -- Remove a comment claiming that sin/cos round correctly. -- y2038: linux: Provide __settimeofday64 implementation -- y2038: Provide conversion helpers for struct __timeval64 -- y2038: alpha: Rename valid_timeval64_to_timeval to valid_timeval_to_timeval32 -- y2038: alpha: Rename valid_timeval_to_timeval64 to valid_timeval32_to_timeval -- y2038: Introduce struct __timeval64 - new internal glibc type -- y2038: Define __suseconds64_t type to be used with struct __timeval64 -- Update kernel version to 5.5 in tst-mman-consts.py. -- Update syscall lists for Linux 5.5. -- NEWS: Set fill-column hint to 72 -- y2038: linux: Provide __timespec_get64 implementation -- Use binutils 2.34 branch in build-many-glibcs.py. -- Run nptl/tst-pthread-getattr in a container -- test-container: add exec, cwd -- Use Linux 5.5 in build-many-glibcs.py. -- rt: avoid PLT setup in timer_[sg]ettime -- Update or_IN collation [BZ #22525] -- Fix ckb_IQ [BZ #9809] -- Add new locale: ckb_IQ (Kurdish/Sorani spoken in Iraq) [BZ #9809] -- list-fixed-bugs.py: Wrap at 72 chars -- y2038: linux: Provide __sched_rr_get_interval64 implementation -- y2038: linux: Provide __timerfd_settime64 implementation -- y2038: linux: Provide __timerfd_gettime64 implementation -- i386: Remove _exit.S -- i386: Use ENTRY/END in assembly codes -- i386-mcount.S: Add _CET_ENDBR to _mcount and __fentry__ -- i386/sub_n.S: Add a missing _CET_ENDBR to indirect jump target -- i386: Don't unnecessarily save and restore EAX, ECX and EDX [BZ# 25262] -- x86: Don't make 2 calls to dlerror () in a row -- Open master for 2.32 development - -* Mon Feb 03 2020 DJ Delorie - 2.31-1 -- Auto-sync with upstream branch release/2.31/master, - commit 9ea3686266dca3f004ba874745a4087a89682617. -- glibc 2.31 release -- Generate ChangeLog.old/ChangeLog.20 for 2.31 -- Add bugs fixed in 2.31 in NEWS -- Update newest tested versions of dependencies in install.texi -- Add more contributors to the manual -- Add note to NEWS about kernel headers dependency on risc-v -- Add Portuguese (Portugal) translation -- Add NEWS entry about 64-bit time_t syscall use on 32-bit targets -- nptl: Avoid using PTHREAD_MUTEX_DEFAULT in macro definition [BZ #25271] - -* Thu Jan 30 2020 Patsy Franklin - 2.30.9000-33 -- Auto-sync with upstream branch master, - commit 352bb99754ae7c83ff1b974f9c52244e974c9410. -- Build raise with -fasynchronous-unwind-tables. -- Fix locale/tst-locale-locpath cross-testing when sshd sets LANG. -- Fix elf/tst-rtld-preload cross-testing. -- Fix cross-testing of tst-ifunc-fault-* tests. -- gitlog-to-changelog: Drop scripts in favour of gnulib version -- Add NEWS entry about the change in handling of PT_GNU_STACK on MIPS -- Fix array overflow in backtrace on PowerPC (bug 25423) -- getaddrinfo: Fix resource leak after strdup failure in gethosts (swbz#25425) - -* Tue Jan 28 2020 Fedora Release Engineering -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Mon Jan 20 2020 Patsy Franklin - 2.30.9000-31 -- Auto-sync with upstream branch master, - commit 92ce43eef7ac844782d50a8015d977d216fbadec. -- Run bench-timing-type with newly built libc. -- Get rid of Werror=maybe-uninitialized in res_send.c. -- translations: Update translations -- translations: Trim po files using msgattrib -- Update translations -- translations: Run msgmerge when downloading translations -- Fix maybe-uninitialized error on powerpc -- powerpc32: Fix syntax error in __GLRO macro -- Remove incorrect alloc_size attribute from pvalloc (swbz#25401) - -* Fri Jan 17 2020 Florian Weimer - 2.30.9000-30 -- Auto-sync with upstream branch master, - commit 70ba28f7ab2923d4e36ffc9d5d2e32357353b25c: -- Fix tst-pkey.c pkey_alloc return checks and manual -- powerpc: Move cache line size to rtld_global_ro -- powerpc: Initialize rtld_global_ro for static dlopen (swbz#20802) -- Revert outdated translations -- vcs-to-changelog: Add quirk for __nonnull -- elf: Add elf/tst-dlopenfail-2 (swbz#25396, #1395758) -- Clear GL(dl_initfirst) when freeing its link_map (swbz#25396, #1395758) -- Update Translations -- Fix "elf: Add tst-ldconfig-ld_so_conf-update test" on 32bit. -- elf: Add tst-ldconfig-ld_so_conf-update test -- sl_SI locale: Use "." as the thousands separator (swbz#25233) - -* Mon Jan 06 2020 Arjun Shankar - 2.30.9000-29 -- Auto-sync with upstream branch master, - commit cbce69e70dc4b04fefcc7257e593733b8b03856c: -- Multiple locales: Add date_fmt (bug 24054) -- Update libc.pot for 2.31 release -- Add libm_alias_finite for _finite symbols -- Linux: Fix clock_nanosleep time64 check -- linux: Fix vDSO macros build with time64 interfaces -- x86: Make x32 use x86 time implementation -- Remove vDSO support from make-syscall.sh -- linux: Update x86 vDSO symbols -- linux: Update mips vDSO symbols -- linux: Consolidate Linux gettimeofday -- linux: Consolidate time implementation -- elf: Enable relro for static build -- elf: Move vDSO setup to rtld (BZ#24967) -- linux: Add support for clock_gettime64 vDSO -- linux: Optimize fallback 32-bit clock_gettime -- linux: Enable vDSO clock_gettime64 for i386 -- linux: Enable vDSO clock_gettime64 for arm -- linux: Enable vDSO clock_gettime64 for mips -- linux: Add support for clock_getres64 vDSO -- linux: Optimize fallback 32-bit clock_getres -- htl: Use dso_handle.h -- htl: Drop common tcbhead_t definition -- htl: Move pthread_atfork to libc_nonshared.a -- htl: Add __errno_location and __h_errno_location -- hurd: Fix message reception for timer_thread - -* Thu Jan 02 2020 Florian Weimer - 2.30.9000-28 -- Auto-sync with upstream branch master, - commit cc47d5c5f53f6d845ac54698ae8929af15662c44: -- Linux: Use built-in system call tables -- lv_LV locale: Correct the time part of d_t_fmt (swbz#25324) -- km_KH locale: Use "%M" instead of "m" in d_t_fmt (swbz#25323) -- ldbl-128ibm-compat: Do not mix -mabi=*longdouble and -mlong-double-128 -- ldbl-128ibm-compat: Compiler flags for stdio functions -- Do not redirect calls to __GI_* symbols, when redirecting to *ieee128 -- aarch64: add default memcpy version for kunpeng920 -- aarch64: ifunc rename for kunpeng -- aarch64: Modify error-shown comments for strcpy -- linux: Consolidate sigprocmask -- Fix return code for __libc_signal_* functions -- nptl: Remove duplicate internal __SIZEOF_PTHREAD_MUTEX_T (swbz#25241) - -* Thu Dec 26 2019 Carlos O'Donell - 2.30.9000-27 -- Auto-sync with upstream branch master, - commit b8c210bcc74840d24c61d39bde15bea9daf3e271. -- mnw_MM, my_MM, and shn_MM locales: Do not use %Op -- Avoid compat symbols for totalorder in powerpc64le IEEE long double -- ldbl-128ibm-compat: Add *cvt functions -- Refactor *cvt functions implementation (2/2) -- Refactor *cvt functions implementation (1/2) -- Add exception-based flags for wait4 -- aarch64: Optimized memset for Kunpeng processor. -- aarch64: Optimized strlen for strlen_asimd -- aarch64: Add Huawei Kunpeng to tunable cpu list -- aarch64: Optimized implementation of memrchr -- aarch64: Optimized implementation of strnlen -- aarch64: Optimized implementation of strcpy -- aarch64: Optimized implementation of memcmp -- Consolidate wait3 implementations -- Implement waitpid in terms of wait4 -- linux: Use waitid on wait4 if __NR_wait4 is not defined -- Implement wait in terms of waitpid -- nptl: Move waitpid implementation to libc -- nptl: Move wait implementation to libc -- Remove __waitpid_nocancel -- Fix test isolation for elf/tst-ifunc-fault-lazy, elf/tst-ifunc-fault-bindnow -- Fix __libc_signal_block_all on sparc64 -- powerpc: Do not run IFUNC resolvers for LD_DEBUG=unused [BZ #24214] - -* Thu Dec 19 2019 Patsy Franklin - 2.30.9000-26 -- Auto-sync with upstream branch master, - commit 3dcad8158f43d71d5b8f6f317f82952ddf3468f3. -- hurd: Do not make sigprocmask available in ld.so -- build-many-glibcs.py: Do not build C++ PCHs by default -- hurd: Make getrandom honour GRND_NONBLOCK -- tunables: report sbrk() failure -- build-many-glibcs.py: Add mipsisa64r6el-linux-gnu target -- mips: Do not include hi and lo in __SYSCALL_CLOBBERS for R6 -- ldbl-128ibm-compat: Add ISO C99 versions of scanf functions -- ldbl-128ibm-compat: Fix selection of GNU and ISO C99 scanf -- hurd: Fix local PLT -- dlopen: Do not block signals -- dlopen: Rework handling of pending NODELETE status -- dlopen: Fix issues related to NODELETE handling and relocations -- hurd: Fix __close_nocancel_nostatus availability -- hurd: add getrandom and getentropy implementations -- hurd: Implement __close_nocancel_nostatus -- manual: clarify fopen with the x flag -- S390: Use sysdeps/ieee754/dbl-64/wordsize-64 on s390x. -- S390: Implement roundtoint and converttoint and define TOINT_INTRINSICS. -- S390: Implement math-barriers math_opt_barrier and math_force_eval. -- S390: Use libc_fe* macros in fe* functions. -- S390: Implement libc_fe* macros. -- S390: Use convert-to-fixed instruction for llround functions. -- S390: Use convert-to-fixed instruction for lround functions. -- S390: Use convert-to-fixed instruction for llrint functions. -- S390: Use convert-to-fixed instruction for lrint functions. -- S390: Use load-fp-integer instruction for roundeven functions. -- Adjust s_copysignl.c regarding code style. -- Adjust s_ceilf.c and s_ceill.c regarding code style. -- Adjust s_floorf.c and s_floorl.c regarding code style. -- Adjust s_rintf.c and s_rintl.c regarding code style. -- Adjust s_nearbyintf.c and s_nearbyintl.c regarding code style. -- Use GCC builtins for copysign functions if desired. -- Use GCC builtins for round functions if desired. -- Use GCC builtins for trunc functions if desired. -- Use GCC builtins for ceil functions if desired. -- Use GCC builtins for floor functions if desired. -- Use GCC builtins for rint functions if desired. -- Use GCC builtins for nearbyint functions if desired. -- Always use wordsize-64 version of s_round.c. -- Always use wordsize-64 version of s_trunc.c. -- Always use wordsize-64 version of s_ceil.c. -- Always use wordsize-64 version of s_floor.c. -- Always use wordsize-64 version of s_rint.c. -- Always use wordsize-64 version of s_nearbyint.c. -- ldconfig: Do not print a warning for a missing ld.so.conf file -- hurd: Fix using altstack while in an RPC call to be aborted -- Fix failure when CFLAGS contains -DNDEBUG (Bug 25251) - -* Mon Dec 09 2019 DJ Delorie - 2.30.9000-25 -- Auto-sync with upstream branch master, - commit 0487ebed2278b20971af4cabf186fd3681adccf0. -- nptl: Add more missing placeholder abi symbol from nanosleep move -- sysdeps/riscv/start.S: rename .Lload_gp to load_gp (bug 24376) -- y2038: linux: Provide __timer_settime64 implementation -- y2038: linux: Provide __timer_gettime64 implementation -- timer: Decouple x86_64 specific timer_settime from generic Linux implementation -- timer: Decouple x86_64 specific timer_gettime from generic Linux implementation -- time: Introduce glibc's internal struct __itimerspec64 -- Correct range checking in mallopt/mxfast/tcache [BZ #25194] -- misc/test-errno-linux: Handle EINVAL from quotactl -- : Define __CORRECT_ISO_CPP_STRING_H_PROTO for Clang [BZ #25232] -- build-many-glibcs.py: Move sparcv8 to extra_glibcs - -* Thu Dec 5 2019 Florian Weimer - 2.30.9000-24 -- Upstream patches for fallout from dlopen NODELETE changes (#1778344, #1778366) - -* Wed Dec 04 2019 Patsy Franklin - 2.30.9000-23 -- Auto-sync with upstream branch master, - commit ec138c67cbda8b5826a0a2a7ba456408117996dc. -- sysdeps: Add clock_gettime64 vDSO -- Do not use ld.so to open statically linked programs in debugglibc.sh -- Attach to test in container from debugglibc.sh -- Expand $(as-needed) and $(no-as-needed) throughout the build system -- x86: Assume --enable-cet if GCC defaults to CET [BZ #25225] -- ldbl-128ibm-compat: Add tests for strfroml, strtold, and wcstold -- ldbl-128ibm-compat: Add tests for strfmon and strfmon_l -- ldbl-128ibm-compat: Add strfmon_l with IEEE long double format -- ldbl-128ibm-compat: Replace http with https in new files -- elf: Do not run IFUNC resolvers for LD_DEBUG=unused [BZ #24214] -- elf/tst-dlopenfail: Disable --no-as-needed for tst-dlopenfailmod1.so -- hurd: Fix ld.so __access override from libc -- hurd: Fix ld.so __getcwd override from libc -- hurd: Make __sigprocmask GLIBC_PRIVATE -- hurd: Fix renameat2 error -- hurd: make strerror(0) coherent with other ports -- hurd: Fix ld.so link -- Update kernel version to 5.4 in tst-mman-consts.py. -- Update SOMAXCONN value from Linux 5.4. -- Update syscall-names.list for Linux 5.4. -- Fix syntax error in build-many-glibcs.py. -- Define MADV_COLD and MADV_PAGEOUT from Linux 5.4. - -* Mon Dec 2 2019 Florian Weimer - 2.30.9000-22 -- dlopen: Remove incorrect assert in activate_nodelete (#1778344) - -* Thu Nov 28 2019 Florian Weimer - 2.30.9000-21 -- Auto-sync with upstream branch master, - commit e37c2cf299b61ce18f62852f6c5624c27829b610: -- Move _dl_open_check to its original place in dl_open_worker -- Block signals during the initial part of dlopen -- Remove all loaded objects if dlopen fails, ignoring NODELETE (#1395758) -- Avoid late dlopen failure due to scope, TLS slotinfo updates (swbz#25112) -- Avoid late failure in dlopen in global scope update (swbz#25112) -- Lazy binding failures during dlopen/dlclose must be fatal (swbz#24304) -- resolv: Implement trust-ad option for /etc/resolv.conf (#1164339) -- dlsym: Do not determine caller link map if not needed -- libio: Disable vtable validation for pre-2.1 interposed handles (swbz#25203) -- ldbl-128ibm-compat: Add syslog functions -- ldbl-128ibm-compat: Add obstack printing functions -- ldbl-128ibm-compat: Reuse tests for err.h and error.h functions -- ldbl-128ibm-compat: Add error.h functions -- ldbl-128ibm-compat: Add err.h functions -- ldbl-128ibm-compat: Add argp_error and argp_failure -- sparc: Use atomic compiler builtins on sparc -- Remove 32 bit sparc v7 support - -* Wed Nov 27 2019 Arjun Shankar - 2.30.9000-20 -- Auto-sync with upstream branch master, - commit bfdb731438206b0f70fe7afa890681155c30b419: -- rtld: Check __libc_enable_secure for LD_PREFER_MAP_32BIT_EXEC (CVE-2019-19126) -- Introduce DL_LOOKUP_FOR_RELOCATE flag for _dl_lookup_symbol_x -- Enable inlining issignalingf within glibc -- Don't use a custom wrapper macro around __has_include (bug 25189). -- Remove duplicate inline implementation of issignalingf -- misc: Set generic pselect as ENOSYS -- Use DEPRECATED_SCANF macro for remaining C99-compliant scanf functions -- ldbl-128ibm-compat: Add regular/wide character printing printing functions -- ldbl-128ibm-compat: Test double values and positional arguments -- ldbl-128ibm-compat: Add regular/wide character scanning functions -- arm: Fix armv7 selection after 'Split BE/LE abilist' -- Use Linux 5.4 in build-many-glibcs.py. -- sysdeps/posix: Simplify if expression in getaddrinfo -- sysdeps/posix/getaddrinfo: Return early on invalid address family -- ru_UA locale: use copy "ru_RU" in LC_TIME (bug 25044) -- locale: Greek -> ASCII transliteration table [BZ #12031] -- nptl: Cleanup mutex internal offset tests -- nptl: Add tests for internal pthread_rwlock_t offsets -- nptl: Remove rwlock elision definitions -- nptl: Add struct_mutex.h and struct_rwlock.h -- nptl: Add default pthreadtypes-arch.h and pthread-offsets.h -- Compile elf/rtld.c with -fno-tree-loop-distribute-patterns. -- nptl: Fix __PTHREAD_MUTEX_INITIALIZER for !__PTHREAD_MUTEX_HAVE_PREV -- S390: Fix handling of needles crossing a page in strstr z15 ifunc [BZ #25226] - -* Mon Nov 18 2019 Patsy Griffin - 2.30.9000-19 -- Auto-sync with upstream branch master, - commit 2a764c6ee848dfe92cb2921ed3b14085f15d9e79. -- Enhance _dl_catch_exception to allow disabling exception handling -- hurd: Suppress GCC 10 -Warray-bounds warning in init-first.c [BZ #25097] -- linux: Add comment on affinity set sizes to tst-skeleton-affinity.c -- Avoid zero-length array at the end of struct link_map [BZ #25097] -- Introduce link_map_audit_state accessor function -- Properly initialize audit cookie for the dynamic loader [BZ #25157] -- nios2: Work around backend bug triggered by csu/libc-tls.c (GCC PR 92499) -- Redefine _IO_iconv_t to store a single gconv step pointer [BZ #25097] -- Add new script for plotting string benchmark JSON output -- support: Fix support_set_small_thread_stack_size to build on Hurd -- login: Use pread64 in utmp implementation -- Clarify purpose of assert in _dl_lookup_symbol_x -- aarch64: Increase small and medium cases for __memcpy_generic -- login: Introduce matches_last_entry to utmp processing - -* Tue Nov 12 2019 Arjun Shankar - 2.30.9000-18 -- Auto-sync with upstream branch master, - commit cba932a5a9e91cffd7f4172d7e91f9b2efb1f84b: -- nptl: Move nanosleep implementation to libc -- Refactor nanosleep in terms of clock_nanosleep -- nptl: Refactor thrd_sleep in terms of clock_nanosleep -- math: enhance the endloop condition of function handle_input_flag -- hurd: Remove lingering references to the time function -- hurd: Use __clock_gettime in _hurd_select -- login: Remove double-assignment of fl.l_whence in try_file_lock -- nptl: Add missing placeholder abi symbol from nanosleep move -- login: Acquire write lock early in pututline [BZ #24882] -- Remove hppa pthreadP.h -- sysdeps/clock_nanosleep: Use clock_nanosleep_time64 if avaliable -- Fix array bounds violation in regex matcher (bug 25149) -- support: Add support_set_small_thread_stack_size -- linux: Reduce stack size for nptl/tst-thread-affinity-pthread -- y2038: linux: Provide __ppoll64 implementation -- Declare asctime_r, ctime_r, gmtime_r, localtime_r for C2X. -- support: Add xsetlocale function -- libio/tst-fopenloc: Use xsetlocale, xfopen, and xfclose -- Fix clock_nanosleep when interrupted by a signal -- slotinfo in struct dtv_slotinfo_list should be flexible array [BZ #25097] - -* Wed Nov 06 2019 Patsy Franklin - 2.30.9000-17 -- Auto-sync with upstream branch master, - commit 2a0356e1191804d57005e1cfe2a72f019b7a8cce. -- posix: Sync regex with gnulib -- Add mnw language code [BZ #25139] -- Add new locale: mnw_MM (Mon language spoken in Myanmar) [BZ #25139] -- S390: Fp comparison are now raising FE_INVALID with gcc 10. -- linux: pselect: Remove CALL_PSELECT6 macro -- Fix run-one-test so that it runs elf tests -- nptl: Fix niggles with pthread_clockjoin_np -- hppa: Align __clone stack argument to 8 bytes (Bug 25066) -- y2038: linux: Provide __futimens64 implementation -- y2038: linux: Provide __utimensat64 implementation -- nptl: Add pthread_timedjoin_np, pthread_clockjoin_np NULL timeout test -- nptl: Add pthread_clockjoin_np -- manual: Add documentation for pthread_tryjoin_np and pthread_timedjoin_np -- nptl: Convert tst-join3 to use libsupport -- Sync time/mktime.c with gnulib -- Sync timespec-{add,sub} with gnulib -- Sync intprops.h with gnulib -- Refactor adjtimex based on clock_adjtime -- Refactor PI mutexes internal definitions -- Remove pause and nanosleep not cancel wrappers -- nptl: Replace non cancellable pause/nanosleep with futex -- Consolidate lowlevellock-futex.h -- Consolidate futex-internal.h -- Base max_fast on alignment, not width, of bins (Bug 24903) -- Revise the documentation of simple calendar time. -- Make second argument of gettimeofday as 'void *' -- Use clock_gettime to implement gettimeofday. -- Use clock_gettime to implement timespec_get. -- Consolidate and deprecate ftime -- Change most internal uses of time to __clock_gettime. -- Use clock_gettime to implement time. -- Use clock_settime to implement settimeofday. -- Use clock_settime to implement stime; withdraw stime. -- Change most internal uses of __gettimeofday to __clock_gettime. -- Linux/Alpha: don't use timeval32 system calls. -- resolv/tst-idna_name_classify: Isolate from system libraries -- hurd: Support for file record locking -- Comment out initgroups from example nsswitch.conf (Bug 25146) - -* Mon Oct 28 2019 DJ Delorie - 2.30.9000-16 -- Auto-sync with upstream branch master, - commit 177a3d48a1c74d7b2cd6bfd48901519d25a5ecad. -- y2038: linux: Provide __clock_getres64 implementation -- time: Introduce function to check correctness of nanoseconds value -- Add Transliterations for Unicode Misc. Mathematical Symbols-A/B [BZ #23132] -- Install charmaps uncompressed in testroot -- Add wait-for-debugger test harness hooks -- Define __STATFS_MATCHES_STATFS64 -- hurd: Fix build after __pread64 usage in the dynamic loader -- sysdeps/stat: Handle 64-bit ino_t types on 32-bit hosts -- S390: Remove not needed stack frame in syscall function. - -* Fri Oct 25 2019 DJ Delorie - 2.30.9000-15 -- Add *.mo files to all-langpacks (#1624528) - -* Thu Oct 24 2019 DJ Delorie - 2.30.9000-14 -- Add Requires on basesystem for main package (#1757267) -- Add Requires on coreutils for glibc-headers (uses rm) - -* Wed Oct 23 2019 Arjun Shankar - 2.30.9000-13 -- Auto-sync with upstream branch master, - commit 7db1fe38de21831d53ceab9ae83493d8d1aec601: -- Include explicitly in Linux clock_settime.c -- Remove math-finite.h -- Remove finite-math tests -- Remove x64 _finite tests and references -- Fix testroot.pristine creation copying dynamic linker - -* Fri Oct 18 2019 Patsy Franklin - 2.30.9000-12 -- Auto-sync with upstream branch master, - commit ef21bd2d8c6805c0c186a01f7c5039189f51b8c4. -- loadarchive: guard against locale-archive corruption (Bug #25115) -- Undo accidental commit to ChangeLog.19. -- nptl: Document AS-safe functions in cancellation.c. -- elf: Use nocancel pread64() instead of lseek()+read() -- Add nocancel version of pread64() -- Add run-one-test convenience target and makefile help text -- Update sysvipc kernel-features.h files for Linux 5.1 -- S390: Add new s390 platform z15. -- nptl: SIGCANCEL, SIGTIMER, SIGSETXID are always defined -- nptl/tst-cancel25 needs to be an internal test -- Remove libc_hidden_def from __semtimedop stub -- sysvipc: Implement semop based on semtimedop -- ipc: Refactor sysvipc internal definitions -- Rename and split elf/tst-dlopen-aout collection of tests -- dlfcn: Remove remnants of caller sensitivity from dlinfo -- ldconfig: handle .dynstr located in separate segment (bug 25087) -- ldd: Print "not a dynamic executable" on standard error [BZ #24150] -- Add PTRACE_GET_SYSCALL_INFO from Linux 5.3 to sys/ptrace.h. -- Move ChangeLog to ChangeLog.old/ChangeLog.19 -- manual: Remove warning in the documentation of the abort function -- sysvipc: Set ipc_perm mode as mode_t (BZ#18231) -- Simplify note processing -- syscall-names.list: fix typos in comment -- y2038: linux: Provide __clock_settime64 implementation -- posix: Use posix_spawn for wordexp -- mips: Do not malloc on getdents64 fallback -- sparc: Assume GOTDATA support in the toolchain -- : Remove wrong comment about getdents64 declaration -- ChangeLog: Remove leading spaces before tabs and trailing whitespace -- Make tst-strftime2 and tst-strftime3 depend on locale generation -- posix/tst-wordexp-nocmd: Fix diagnostics output in test -- wordexp: Split out command execution tests from posix/wordexp-test - -* Tue Oct 08 2019 Arjun Shankar - 2.30.9000-11 -- Adjust glibc-rh741105.patch. -- Auto-sync with upstream branch master, - commit ca602c1536ce2777f95c07525f3c42d78812e665: -- Add TCP_TX_DELAY from Linux 5.3 to netinet/tcp.h -- [powerpc] fenv_private.h clean up -- [powerpc] libc_feupdateenv_test: optimize FPSCR access -- [powerpc] __fesetround_inline optimizations -- [powerpc] Rename fegetenv_status to fegetenv_control -- [powerpc] libc_feholdsetround_noex_ppc_ctx: optimize FPSCR write -- [powerpc] Rename fesetenv_mode to fesetenv_control -- Add helper script for glibc debugging -- Update bits/mman.h constants and tst-mman-consts.py for Linux 5.3. -- y2038: Provide conversion helpers for struct __timespec64 -- Use binutils 2.33 branch in build-many-glibcs.py. -- Sync "language", "lang_name", "territory", "country_name" with CLDR/langtable -- Split up endian.h to minimize exposure of BYTE_ORDER. -- time: Add padding for the timespec if required -- Enable passing arguments to the inferior in debugglibc.sh -- [powerpc] No need to enter "Ignore Exceptions Mode" -- Y2038: Include proper header to provide support for struct timeval on HURD -- Disable warnings in string/tester.c at top level. -- string/endian.h: Restore the __USE_MISC conditionals -- Disable -Wmaybe-uninitialized for total_deadline in sunrpc/clnt_udp.c. -- ChangeLog update from my last commit -- nptl: Move pthread_attr_setinheritsched implementation into libc. -- elf: Never use the file ID of the main executable [BZ #24900] -- elf: Assign TLS modid later during dlopen [BZ #24930] -- nptl: Move pthread_attr_getschedparam implementation into libc -- riscv: Remove support for variable page sizes -- nptl: Move pthread_attr_setschedparam implementation into libc - -* Fri Sep 27 2019 Zbigniew Jędrzejewski-Szmek - 2.30.9000-10 -- Use full locale names in langpack descriptions (#1651375) - -* Thu Sep 26 2019 Patsy Franklin - 2.30.9000-9 -- Auto-sync with upstream branch master, - commit 464cd3a9d5f505d92bae9a941bb75b0d91ac14ee. -- y2038: Introduce struct __timespec64 - new internal glibc type -- auto-changelog: Remove latin1 from codecs -- Set the expects flags to clock_nanosleep -- Fix tst-sigcontext-get_pc rule name from a43565ac447b1 -- inet/net-internal.h: Fix uninitalised clntudp_call() variable -- Fix vDSO initialization on arm and mips -- Script to generate ChangeLog-like output from git log -- [powerpc] SET_RESTORE_ROUND optimizations and bug fix -- Fix building support_ptrace.c on i686-gnu. -- S390: Use _HP_TIMING_S390_H instead of _HP_TIMING_H. -- Update syscall-names.list for Linux 5.3. -- Use Linux 5.3 in build-many-glibcs.py. -- S390: Add support for HP_TIMING_NOW. -- Fix RISC-V vfork build with Linux 5.3 kernel headers. -- Add UNSUPPORTED check in elf/tst-pldd. -- sparc64: Use linux generic time implementation -- mips: Consolidate INTERNAL_VSYSCALL_CALL -- powerpc: Simplify vsyscall internal macros -- Refactor vDSO initialization code -- Remove PREPARE_VERSION and PREPARE_VERSION_KNOW -- Fix small error in HP_TIMING_PRINT trailing null char setting - -* Mon Sep 16 2019 Parag Nemade - 2.30.9000-8 -- Change Supplements "langpacks-" to "langpacks-core-" (#1729992) - -* Mon Sep 16 2019 DJ Delorie - 2.30.9000-7 -- Auto-sync with upstream branch master, - commit 1a6566094d3097f4a3037ab5555cddc6cb11c3a3. -- alpha: force old OSF1 syscalls for getegid, geteuid and getppid [BZ #24986] -- Fix http: URL in 'configure' -- Regenerate charmap-kw.h, locfile-kw.h -- Fix three GNU license URLs, along with trailing-newline issues. -- Prefer https to http for gnu.org and fsf.org URLs - -* Fri Sep 06 2019 Patsy Franklin - 2.30.9000-6 -- Auto-sync with upstream branch master, - commit 1b7f04070bd94f259e2ed24d6fb76309d64fb164. -- locale: Avoid zero-length array in _nl_category_names [BZ #24962] -- math: Replace const attribute with pure in totalorder* functions -- y2038: Introduce the __ASSUME_TIME64_SYSCALLS define -- Finish move of clock_* functions to libc. [BZ #24959] -- Update Alpha libm-test-ulps -- localedef: Use initializer for flexible array member [BZ #24950] -- Add misc/tst-mntent-autofs, testing autofs "ignore" filtering -- Use autofs "ignore" mount hint in getmntent_r/getmntent -- hurd: Fix build -- Use generic memset/memcpy/memmove in benchtests -- nptl: Move pthread_attr_getinheritsched implementation into libc -- hurd: Fix SS_ONSTACK support -- hurd: Remove optimizing anonymous maps as __vm_allocate. -- hurd: Fix poll and select POSIX compliancy details about errors -- hurd: Fix timeout handling in _hurd_select -- hurd getcwd: Allow unknown root directory -- hurd: Fix implementation of setitimer. -- hurd: Fix _hurd_select for single fd sets -- MIPS support for GNU hash -- sh: Split BE/LE abilist -- microblaze: Split BE/LE abilist -- arm: Split BE/LE abilist -- Correct the spelling of more contributors -- Fix posix/tst-regex by using UTF-8 and own test input -- [powerpc] fegetenv_status: simplify instruction generation -- [powerpc] fesetenv: optimize FPSCR access -- [powerpc] SET_RESTORE_ROUND improvements -- [powerpc] fe{en,dis}ableexcept, fesetmode: optimize FPSCR accesses -- [powerpc] fe{en,dis}ableexcept optimize bit translations -- misc: Use allocate_once in getmntent -- nptl: Move pthread_attr_setdetachstate implementation into libc -- login: pututxline could fail to overwrite existing entries [BZ #24902] -- Fix posix/tst-regex by using a dedicated input-file. - -* Tue Aug 27 2019 DJ Delorie - 2.30.9000-5 -- Move makedb from glibc-common to nss_db (#1704334) - -* Mon Aug 26 2019 DJ Delorie - 2.30.9000-4 -- Auto-sync with upstream branch master, - commit 1bced8cadc82077f0201801239e89eb24b68e9aa. -- Don't put non-ASCII into installed headers -- Fix spellings of contributor names in comments and doc -- [MIPS] Raise highest supported EI_ABIVERSION value [SWBZ #24916] -- mips: Force RWX stack for hard-float builds that can run on pre-4.8 kernels -- linux: Make profil_counter a compat_symbol (SWBZ#17726) -- Refactor sigcontextinfo.h -- Add RTLD_SINGLE_THREAD_P on generic single-thread.h -- Chinese locales: Set first_weekday to 2 (swbug 24682). -- powerpc: Fix typos and field name in comments -- Mark IDN tests unsupported with libidn2 before 2.0.5. -- Document strftime %Ob and %OB as C2X features. -- Remove dead regex code -- Fix bad pointer / leak in regex code -- Don't use the argument to time. -- Add tgmath.h macros for narrowing functions. -- Update i386 libm-test-ulps - -* Mon Aug 19 2019 Carlos O'Donell - 2.30.9000-3 -- Drop glibc-fedora-nscd-warnings.patch; applied upstream. -- Drop Source7: nsswitch.conf; applying patch to upstream. -- Add glibc-fedora-nsswitch.patch for Fedora customizations. -- Auto-sync with upstream branch master, - commit d34d4c80226b3f5a1b51a8e5b005a52fba07d7ba: -- Do not print backtraces on fatal glibc errors. -- elf: Self-dlopen failure with explict loader invocation (swbz#24900) -- login: Add nonstring attributes to struct utmp, struct utmpx (swbz#24899) -- login: Use struct flock64 in utmp (swbz#24880) -- login: Disarm timer after utmp lock acquisition (swbz#24879) - -* Fri Aug 16 2019 Carlos O'Donell - 2.30.9000-2 -- Fix C.UTF-8 to use full code ranges. - -* Thu Aug 15 2019 Florian Weimer - 2.30.9000-1 -- Auto-sync with upstream branch master, - commit 341da5b4b6253de9a7581a066f33f89cacb44dec. - -* Fri Aug 02 2019 Florian Weimer - 2.30-1 -- Drop glibc-rh1734680.patch, applied upstream. -- Auto-sync with upstream branch release/2.30/master, - commit be9a328c93834648e0bec106a1f86357d1a8c7e1: -- malloc: Remove unwanted leading whitespace in malloc_info (swbz#24867) -- glibc 2.30 release -- iconv: Revert steps array reference counting changes (#1734680) -- Restore r31 setting in powerpc32 swapcontext - -* Wed Jul 31 2019 Florian Weimer - 2.29.9000-37 -- Fix memory leak in iconv_open (#1734680) - -* Tue Jul 30 2019 Florian Weimer - 2.29.9000-36 -- Drop glibc-rh1732406.patch, fix for the regression applied upstream. -- Auto-sync with upstream branch master, - commit 8a814e20d443adc460a1030fa1a66aa9ae817483: -- nptl: Use uintptr_t for address diagnostic in nptl/tst-pthread-getattr -- Linux: Move getdents64 to -- test-container: Install with $(sorted-subdirs) (swbz#24794) -- gconv: Check reference count in __gconv_release_cache (#1732406) -- x86-64: Compile branred.c with -mprefer-vector-width=128 (swbz#24603) -- build-many-glibcs.py: Use Linux 5.2 by default -- Linux: Use in-tree copy of SO_ constants for !__USE_MISC (swbz#24532) -- test-container: Avoid copying unintended system libraries - -* Thu Jul 25 2019 Fedora Release Engineering -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Tue Jul 23 2019 Florian Weimer - 2.29.9000-34 -- Revert libio change that causes crashes (#1732406) - -* Mon Jul 22 2019 DJ Delorie - 2.29.9000-33 -- Auto-sync with upstream branch master, - commit dcf36bcad3f283f77893d3b157ef7bb2c99419f2. -- Add NEWS entry about the new AArch64 IFUNC resolver call ABI -- locale/C-translit.h.in: Cyrillic -> ASCII transliteration [BZ #2872] -- Linux: Update syscall-names.list to Linux 5.2 - -* Thu Jul 18 2019 DJ Delorie - 2.29.9000-32 -- Auto-sync with upstream branch master, - commit 3556658c5b8765480711b265abc901c67d5fc060. -- Regenerate po/libc.pot for 2.30 release. -- nptl: Add POSIX-proposed _clock functions to hppa pthread.h -- nptl: Remove unnecessary forwarding of pthread_cond_clockwait from libc -- Afar locales: Months and days updated from CLDR (bug 21897). -- nl_BE locale: Use "copy "nl_NL"" in LC_NAME (bug 23996). -- nl_BE and nl_NL locales: Dutch salutations (bug 23996). -- ga_IE and en_IE locales: Revert first_weekday removal (bug 24200). -- nptl: Remove futex_supports_exact_relative_timeouts -- Update NEWS for new _clockwait and _clocklock functions -- nptl: Add POSIX-proposed pthread_mutex_clocklock -- nptl: Rename lll_timedlock to lll_clocklock and add clockid parameter -- nptl: Add POSIX-proposed pthread_rwlock_clockrdlock & pthread_rwlock_clockwrlock -- nptl: pthread_rwlock: Move timeout validation into _full functions -- nptl: Add POSIX-proposed pthread_cond_clockwait -- nptl: Add POSIX-proposed sem_clockwait -- nptl: Add clockid parameter to futex timed wait calls -- posix: Fix large mmap64 offset for mips64n32 (BZ#24699) -- nss_db: fix endent wrt NULL mappings [BZ #24695] [BZ #24696] - -* Wed Jul 10 2019 Carlos O'Donell - 2.29.9000-31 -- Auto-sync with upstream branch master, - commit 30ba0375464f34e4bf8129f3d3dc14d0c09add17. -- Don't declare __malloc_check_init in (bug 23352) -- nftw: fill in stat buf for dangling links [BZ #23501] -- dl-vdso: Add LINUX_4 HASH CODE to support nds32 vdso mechanism -- riscv: restore ABI compatibility (bug 24484) -- aarch64: new ifunc resolver ABI -- nptl: Remove vfork IFUNC-based forwarder from libpthread [BZ #20188] -- malloc: Add nptl, htl dependency for the subdirectory [BZ #24757] -- Call _dl_open_check after relocation [BZ #24259] -- Linux: Use mmap instead of malloc in dirent/tst-getdents64 -- ld.so: Support moving versioned symbols between sonames [BZ #24741] -- io: Remove copy_file_range emulation [BZ #24744] -- Linux: Adjust gedents64 buffer size to int range [BZ #24740] -- powerpc: Use generic e_expf -- Linux: Add nds32 specific syscalls to syscall-names.list -- szl_PL locale: Fix a typo in the previous commit (bug 24652).