Upstream 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]
- Run postun only if the main gconv-modules configuration file exists.
Resolves: #1981013.
- Own %{libdir}/gconv/gconv-modules.d
- Rearrange file list command so that gconv-modules.cache is no longer
marked as %config
Upstream commit: 72e84d1db22203e01a43268de71ea8669eca2863
- Linux: Use 32-bit vDSO for clock_gettime, gettimeofday, time (BZ# 28071)
- Reduce <limits.h> 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
Upstream 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()
Upstream 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]
Upstream 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
Upstream commit: eb68d7d23cc411acdf68a60f194343a6774d6194
- Linux: Avoid calling malloc indirectly from __get_nprocs (#1975693)
- Use Linux 5.13 in build-many-glibcs.py
Upstream 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
Apparently, debugedit changes the build ID, so the separated debuginfo
no longer matches the specially crafted copy of libc.so.6 with its
minimal .symtab.
Upstream 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
This adds patches proposed upstream to enable downgrades across
major glibc versions.
File list construction and the find-debuginfo.sh wrapper had
to be adjusted to cope with the changed file name patterns.
Auto-sync Upstream commit: ebae2f5a6f971a8f0b6c99e00f9c45ef7433924a
Changes in addition to the sync:
Add a downstream patch[1] to reinstate gconv-modules file and apply
glibc-rh697421.patch after it. Also update spec file to create a new
package glibc-gconv-extra with iconv converter modules that are not
commonly used so that they can be removed in minimal or hardened
installations.
[1] https://sourceware.org/pipermail/libc-alpha/2021-June/127497.html
Auto-sync commits:
- Add build option to disable usage of scv on powerpc
- io: Fix sporadic test failures in io/tst-stat
- nptl: Avoid async cancellation to wrongly update __nptl_nthreads (BZ #19366)
- nptl: Use pthread_kill on pthread_cancel
- nptl: Implement raise in terms of pthread_kill
- nptl: Move cancel type out of cancelhandling
- nptl: Move cancel state out of cancelhandling
- nptl: Remove CANCELING_BITMASK
- nptl: Install cancellation handler on pthread_cancel
- nptl: Deallocate the thread stack on setup failure (BZ #19511)
- Remove stale references to libdl.a
- Fix elf/tst-tls9-static after libdl cleanups.
- iconvdata: Split out non-essential gconv module configuration
- iconvdata: Move gconv-modules configuration to gconv-modules.conf
- gconv_conf: Read configuration files in gconv-modules.d
- iconvconfig: Read configuration from gconv-modules.d subdirectory
- iconvconfig: Make file handling more general purpose
- AArch64: Add support for roundeven[f]
- configure: Replaced obsolete AC_TRY_COMPILE
- libio: Assume _IO_lock_inexpensive
- nptl: Remove exit-thread.h
- Improve test coverage of strnlen function
Upstream 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)
Glibc on arm has a memory tagging option that can be enabled
via GLIBC_TUNABLES="glibc.mem.tagging=$SOMETHING" when glibc
is built with memory tagging support and the kernel/HW supports
MTE. This should be side effect free unless the user turns it
on with approprate HW support.
Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
This needs a wrapper script around find-debuginfo.sh, so that
ld.so is not stripped.
This commit resolves debuginfo file conflicts (#1886295) because
the ldconfig debuginfo file now includes the architecture name.
All debugging information is preserved in ld.so (#1905611). With
the distribution defaults, we strip all binaries again (#1661510).
Upstream commit: f01a61e13872109b3b233158ab664364bd1879bc
- Drop glibc-rh819430.patch; fixed upstream.
- 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 <unwind-link.h> for accessing the libgcc_s unwinder
- Implement _Unwind_Resume in libc on top of <unwind-link.h>
- Move sysdeps/gnu/unwind-resume.c to sysdeps/generic/unwind-resume.c
- __frame_state_for: Use <unwind-link.h> for unwinder access
- sparc: Implement backtrace on top <unwind-link.h>
- m68k: Implement backtrace on top of <unwind-link.h>
- i386: Implement backtrace on top of <unwind-link.h>
- arm: Implement backtrace on top of <unwind-link.h>
- backtrace: Implement on top of <unwind-link.h>
- Implement <unwind-link.h> 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.
- <bits/platform/x86.h>: 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