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
Upstream 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
Upstream commit: df359a25ba6f6bda06104229fbfe284c1fb30915
- Revert "Make libc symbols hidden in static PIE" [BZ #27237]
The previous auto-sync failed to build due to the above bug.
Upstream commit: 3725ee39dbd4d7c17fc276b3ea4248cc16e4b522
- 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
- <sys/platform/x86.h>: 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 <startup.h> 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]