Package: glibc / 2.42-1

Metadata

Package Version Patches format
glibc 2.42-1 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
git updates.diff | (download)

ADVISORIES | 2 2 + 0 - 0 !
NEWS | 8 8 + 0 - 0 !
advisories/GLIBC-SA-2023-0001 | 14 0 + 14 - 0 !
advisories/GLIBC-SA-2023-0002 | 15 0 + 15 - 0 !
advisories/GLIBC-SA-2023-0003 | 15 0 + 15 - 0 !
advisories/GLIBC-SA-2023-0004 | 16 0 + 16 - 0 !
advisories/GLIBC-SA-2023-0005 | 18 0 + 18 - 0 !
advisories/GLIBC-SA-2024-0001 | 15 0 + 15 - 0 !
advisories/GLIBC-SA-2024-0002 | 15 0 + 15 - 0 !
advisories/GLIBC-SA-2024-0003 | 13 0 + 13 - 0 !
advisories/GLIBC-SA-2024-0004 | 28 0 + 28 - 0 !
advisories/GLIBC-SA-2024-0005 | 22 0 + 22 - 0 !
advisories/GLIBC-SA-2024-0006 | 32 0 + 32 - 0 !
advisories/GLIBC-SA-2024-0007 | 28 0 + 28 - 0 !
advisories/GLIBC-SA-2024-0008 | 26 0 + 26 - 0 !
advisories/GLIBC-SA-2025-0001 | 40 0 + 40 - 0 !
advisories/GLIBC-SA-2025-0002 | 23 0 + 23 - 0 !
advisories/GLIBC-SA-2025-0003 | 30 0 + 30 - 0 !
advisories/GLIBC-SA-2025-0004 | 29 0 + 29 - 0 !
advisories/GLIBC-SA-2025-0005 | 14 0 + 14 - 0 !
advisories/README | 77 0 + 77 - 0 !
elf/Makefile | 6 6 + 0 - 0 !
elf/dl-find_object.c | 74 45 + 29 - 0 !
elf/dl-find_object.h | 7 5 + 2 - 0 !
elf/rtld.c | 82 55 + 27 - 0 !
elf/tst-env-setuid.c | 26 22 + 4 - 0 !
elf/tst-link-map-contiguous-ldso.c | 98 98 + 0 - 0 !
elf/tst-link-map-contiguous-libc.c | 57 57 + 0 - 0 !
elf/tst-link-map-contiguous-main.c | 45 45 + 0 - 0 !
inet/bits/inet-fortified.h | 8 4 + 4 - 0 !
nptl/cancellation.c | 4 2 + 2 - 0 !
stdlib/abort.c | 6 5 + 1 - 0 !
support/support_capture_subprocess.c | 21 21 + 0 - 0 !
support/support_subprocess.c | 3 3 + 0 - 0 !
sysdeps/pthread/tst-fopen-threaded.c | 14 12 + 2 - 0 !
35 files changed, 390 insertions(+), 541 deletions(-)

---
locale/check unknown symbols.diff | (download)

locale/programs/ld-collate.c | 12 12 + 0 - 0 !
1 file changed, 12 insertions(+)

---
locale/locale print LANGUAGE.diff | (download)

locale/programs/locale.c | 4 4 + 0 - 0 !
locale/tst-locale-locpath.sh | 1 1 + 0 - 0 !
2 files changed, 5 insertions(+)

---
locale/LC_IDENTIFICATION optional fields.diff | (download)

locale/programs/ld-identification.c | 9 6 + 3 - 0 !
1 file changed, 6 insertions(+), 3 deletions(-)

---
localedata/sort UTF8 first.diff | (download)

localedata/SUPPORTED | 14 7 + 7 - 0 !
1 file changed, 7 insertions(+), 7 deletions(-)

---
localedata/supported.diff | (download)

localedata/SUPPORTED | 5 5 + 0 - 0 !
1 file changed, 5 insertions(+)

 add several locales to localedata.supported
# DP: - ru_RU.CP1251 was requested in #225516
# DP: - uz_UZ.UTF-8 was clearly missing, uz_UZ had no UTF-8 variant
# DP: - da_DK.ISO-8859-15, en_GB.ISO-8859-15, en_US.ISO-8859-15, no_NO.UTF-8,
# DP:   no_NO and sv_SE.ISO-8859-15 are found in fedora-branch CVS branch.
# DP: Related bugs: #225516 (ru_RU.CP1251)
localedata/locale eu_FR.diff | (download)

localedata/SUPPORTED | 3 3 + 0 - 0 !
localedata/locales/eu_FR | 83 83 + 0 - 0 !
localedata/locales/eu_FR@euro | 83 83 + 0 - 0 !
3 files changed, 169 insertions(+)

 #257840: locales: please add the eu_fr locale
# DP: Related bugs: #257840
localedata/locale ku_TR.diff | (download)

localedata/locales/ku_TR | 62 32 + 30 - 0 !
1 file changed, 32 insertions(+), 30 deletions(-)

 please add kurdish locale
# DP: Related bugs: BZ870
localedata/fo_FO date_fmt.diff | (download)

localedata/locales/fo_FO | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 fix d_t_fmt and date_fmt in fo_fo
# DP: Related bugs: #307194
localedata/locales fr.diff | (download)

localedata/locales/fr_BE | 4 3 + 1 - 0 !
localedata/locales/fr_CH | 4 3 + 1 - 0 !
localedata/locales/fr_FR | 6 6 + 0 - 0 !
localedata/locales/fr_LU | 4 3 + 1 - 0 !
4 files changed, 15 insertions(+), 3 deletions(-)

 various fixes for all french locales
# DP: Related bugs: #248377  #351786 #345481
localedata/locale en_DK.diff | (download)

localedata/SUPPORTED | 1 1 + 0 - 0 !
localedata/locales/en_DK | 22 3 + 19 - 0 !
2 files changed, 4 insertions(+), 19 deletions(-)

 improve en_dk and add en_dk.iso-8859-15 to supported
# DP:   This locale is only useful to provide ISO8601 date formats.
# DP: Related bugs: #323159
localedata/locale zh_TW.diff | (download)

localedata/locales/zh_TW | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

---
localedata/tailor iso14651_t1.diff | (download)

localedata/locales/ar_SA | 219 2 + 217 - 0 !
localedata/locales/sl_SI | 2070 17 + 2053 - 0 !
2 files changed, 19 insertions(+), 2270 deletions(-)

 rewrite collation rules to include iso14651_t1
# DP:  ar_SA cs_CZ et_EE hr_HR lt_LT pl_PL sl_SI tr_TR: not
# DP:    submitted yet.
# DP: Related bugs: BZ664 BZ672
localedata/submitted es_MX decimal_point.diff | (download)

localedata/locales/es_MX | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
alpha/local gcc4.1.diff | (download)

sysdeps/unix/sysv/linux/alpha/ioperm.c | 8 4 + 4 - 0 !
1 file changed, 4 insertions(+), 4 deletions(-)

---
alpha/submitted dl support.diff | (download)

sysdeps/unix/sysv/linux/alpha/dl-support.c | 2 0 + 2 - 0 !
1 file changed, 2 deletions(-)

---
alpha/submitted fts64.diff | (download)

sysdeps/unix/sysv/linux/alpha/fts.c | 1 1 + 0 - 0 !
sysdeps/unix/sysv/linux/alpha/fts64.c | 1 1 + 0 - 0 !
2 files changed, 2 insertions(+)

---
alpha/submitted makecontext.diff | (download)

sysdeps/unix/sysv/linux/alpha/makecontext.S | 5 5 + 0 - 0 !
1 file changed, 5 insertions(+)

---
arm/local sigaction.diff | (download)

sysdeps/unix/sysv/linux/arm/libc_sigaction.c | 13 4 + 9 - 0 !
1 file changed, 4 insertions(+), 9 deletions(-)

---
arm/unsubmitted ldso multilib.diff | (download)

elf/dl-load.c | 11 11 + 0 - 0 !
1 file changed, 11 insertions(+)

---
arm/local arm futex.diff | (download)

sysdeps/unix/sysv/linux/arm/kernel-features.h | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 lie about futex_atomic_cmpxchg_inatomic kernel support.
 In past versions of glibc, we incorrectly assumed all ARM kernels
 in all configurations supported futex_atomic_cmpxchg_inatomic. This
 was clearly a lie, however it was a lie that we relied on, because
 the fallback implementation appears to not play nicely with certain
 applications like pulseaudio.  Restore the lie for kernels > 2.6.32
 and plug our ears and scream "LA LA LA" about how wrong this is.
hurd i386/local pthread_once.diff | (download)

htl/Versions | 1 1 + 0 - 0 !
sysdeps/htl/pt-once.c | 3 3 + 0 - 0 !
sysdeps/mach/hurd/i386/libc.abilist | 1 1 + 0 - 0 !
sysdeps/mach/hurd/x86_64/libc.abilist | 1 1 + 0 - 0 !
4 files changed, 6 insertions(+)

---
hurd i386/local 64b align.diff | (download)

hurd/Makefile | 14 14 + 0 - 0 !
mach/Makefile | 3 3 + 0 - 0 !
2 files changed, 17 insertions(+)

---
hurd i386/local enable ldconfig.diff | (download)

sysdeps/mach/hurd/configure | 1 1 + 0 - 0 !
sysdeps/mach/hurd/configure.ac | 2 2 + 0 - 0 !
2 files changed, 3 insertions(+)

 enable ldconfig and such on hurd-i386
hurd i386/tg sysvshm.diff | (download)

hurd/Makefile | 1 1 + 0 - 0 !
hurd/sysvshm.c | 97 97 + 0 - 0 !
hurd/sysvshm.h | 47 47 + 0 - 0 !
sysdeps/mach/hurd/bits/posix_opt.h | 4 2 + 2 - 0 !
sysdeps/mach/hurd/ftok.c | 41 41 + 0 - 0 !
sysdeps/mach/hurd/shmat.c | 82 82 + 0 - 0 !
sysdeps/mach/hurd/shmctl.c | 132 132 + 0 - 0 !
sysdeps/mach/hurd/shmdt.c | 51 51 + 0 - 0 !
sysdeps/mach/hurd/shmget.c | 242 242 + 0 - 0 !
9 files changed, 695 insertions(+), 2 deletions(-)

 [patch] implement sysv shared memory for gnu/hurd.

2005-07-11  Marcus Brinkmann  <marcus@gnu.org>

        * hurd/Makefile (routines): Add sysvshm.
        (distribute): Add sysvshm.h.
        * hurd/sysvshm.h: New file.
        * hurd/sysvshm.c: New file.
        * sysdeps/mach/hurd/bits/stat.h (S_IMMAP0): New macro.
        (S_ISPARE): Unset the S_IMMAP0 flag.
        * sysdeps/mach/hurd/ftok.c: New file.
        * sysdeps/mach/hurd/shmat.c: New file.
        * sysdeps/mach/hurd/shmctl.c: New file.
        * sysdeps/mach/hurd/shmdt.c: New file.
        * sysdeps/mach/hurd/bits/posix_opt.h: Define _XOPEN_SHM to 1.

TODO:

> +  char filename[sizeof (SHM_DIR) - 1 + SHM_NAMEMAX];
> +  struct stat statbuf;
> +
> +  sprintf (filename, SHM_DIR SHM_NAMEPRI, id);
> +  /* SysV requires read access for IPC_STAT.  */
> +  fd = __open (filename, O_NORW);
> +  if (fd < 0)
> +    {
> +      if (errno == ENOENT)
> +     errno = EINVAL;
> +      return -1;
> +    }

Since this is repeated in more than one function, put it into an
internal subroutine.  Then we have only one place doing the
name-generation logic.



> +    case IPC_RMID:
> +      res = __unlink (filename);
> +      /* FIXME: Check error (mapping ENOENT to EINVAL).  */

Fix it.



hurd i386/tg thread cancel.diff | (download)

hurd/hurdexec.c | 1 0 + 1 - 0 !
hurd/thread-cancel.c | 2 0 + 2 - 0 !
sysdeps/mach/hurd/jmp-unwind.c | 3 1 + 2 - 0 !
sysdeps/mach/hurd/spawni.c | 1 0 + 1 - 0 !
4 files changed, 1 insertion(+), 6 deletions(-)

 [patch] the critical section lock _can_ be held in these place.

At least since hurd_thread_cancel can be called by another thread and lock our
critical lock.

http://bugs.debian.org/46859


Thomas suggested that there is no need to take the critical section
lock.  I believe that taking the critical section lock is necessary to
prevent the target thread from entering a signal handler.  Roland will
look into the problem.


Taking the critical section lock makes these assertions bogus.

It happens that hurd_thread_cancel is only called from libports and inside
/hurd/term so this is rare in practice.

A reproducer can be found here:

http://lists.gnu.org/archive/html/bug-hurd/2014-05/msg00025.html

2006-08-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>

       * hurd/thread-cancel.c (hurd_thread_cancel): Do not assert that
       `&ss->critical_section_lock' is unlocked.
       * sysdeps/mach/hurd/jmp-unwind.c (_longjmp_unwind): Likewise, and take
       critical section lock before taking the sigstate lock.
       * sysdeps/mach/hurd/spawni.c (__spawni): Likewise.


hurd i386/local disable ioctls.diff | (download)

sysdeps/mach/hurd/bits/ioctls.h | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

---
hurd i386/tg sendmsg SCM_CREDS.diff | (download)

hurd/Makefile | 2 2 + 0 - 0 !
sysdeps/mach/hurd/recvmsg.c | 137 137 + 0 - 0 !
sysdeps/mach/hurd/sendmsg.c | 36 36 + 0 - 0 !
3 files changed, 175 insertions(+)

 [patch] hurd: scm_creds support

Svante Signell  <svante.signell@gmail.com>
Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* sysdeps/mach/hurd/sendmsg.c (__libc_sendmsg): On SCM_CREDS
	control messages, record uids, pass a rendez-vous port in the
	control message, and call __auth_user_authenticate_request to
	make auth send credentials on that port.  Do not wait for a
	reply.
	* sysdeps/mach/hurd/recvmsg.c (contains_uid, contains_gid,
	check_auth): New functions.
	(__libc_recvmsg): On SCM_CREDS control messages, call check_auth
	to check the passed credentials thanks to the answer from the
	auth server.
	* hurd/Makefile (user-interfaces): Add auth_request and
	auth_reply.

FIXME: this doesn't actually check uid/gid.


hurd i386/tg mach hurd link.diff | (download)

Makerules | 3 3 + 0 - 0 !
1 file changed, 3 insertions(+)

 [patch] add -lmachuser -lhurduser to libc.so on gnu/hurd.

http://lists.gnu.org/archive/html/bug-hurd/2011-03/msg00112.html

2011-03-29  Samuel Thibault  <samuel.thibault@ens-lyon.org>

        * Makerules ($(inst_libdir)/libc.so): Add -lmachuser -lhurduser to
        libc.so on GNU/Hurd.

It's still unclear what we want to aim for.


hurd i386/local ED.diff | (download)

sysdeps/mach/hurd/bits/errno.h | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

---
hurd i386/local madvise_warn.diff | (download)

misc/madvise.c | 2 1 + 1 - 0 !
posix/posix_madvise.c | 2 1 + 1 - 0 !
2 files changed, 2 insertions(+), 2 deletions(-)

---
hurd i386/local usr.diff | (download)

sysdeps/mach/hurd/i386/libc.abilist | 2 1 + 1 - 0 !
sysdeps/mach/hurd/x86_64/libc.abilist | 2 1 + 1 - 0 !
2 files changed, 2 insertions(+), 2 deletions(-)

---
hurd i386/tg ifaddrs_v6.diff | (download)

sysdeps/mach/hurd/ifaddrs.c | 310 310 + 0 - 0 !
1 file changed, 310 insertions(+)

 [patch] workaround to add ipv6 support to getifaddrs

ifreq only contains sockaddr structures, which are not big enough for
IPv6 addresses. This takes another, ugly, approach, by parsing fsysopts
/servers/socket/2 options...

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/unsubmitted clock_t_centiseconds.diff | (download)

sysdeps/mach/hurd/getclktck.c | 5 2 + 3 - 0 !
sysdeps/mach/hurd/setitimer.c | 2 1 + 1 - 0 !
sysdeps/mach/hurd/times.c | 2 1 + 1 - 0 !
3 files changed, 4 insertions(+), 5 deletions(-)

---
hurd i386/submitted path_mounted.diff | (download)

sysdeps/generic/paths.h | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch 2/2] define _path_mounted as "/etc/mtab"
Date: Thu, 15 Aug 2013 10:43:35 +0200

Change the definition of _PATH_MOUNTED to "/etc/mtab". This is the
value used on Linux.

The change is motivated by the fact that on Debian /etc/mtab is a
symbolic link to /proc/mounts. This patch adjusts the macro for
non-linux systems such as Hurd. Changing this using
sysdeps/mach/hurd/paths.h causes build problems because
/usr/include/hurd/paths.h is shadowed by this file. This change is
proposed in the hope that aligning the non-linux targets with the
glibc for Linux is perceived as a good thing while fixing this problem
on Debian/Hurd along the way.

* sysdeps/generic/paths.h (_PATH_MOUNTED): Change value to "/etc/mtab".

hurd i386/submitted bind_umask2.diff | (download)

sysdeps/mach/hurd/bind.c | 17 11 + 6 - 0 !
1 file changed, 11 insertions(+), 6 deletions(-)

---
hurd i386/tg bootstrap.diff | (download)

sysdeps/mach/Makefile | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
hurd i386/tg libc_rwlock_recursive.diff | (download)

sysdeps/mach/libc-lock.h | 18 9 + 9 - 0 !
1 file changed, 9 insertions(+), 9 deletions(-)

 [patch] xxx: make libc_rwlock recursive

Without making the rwlocks recursive, running fakeroot-tcp gets this:

#0  0x0106e91c in mach_msg_trap () at /usr/src/glibc-2.24/build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2
#1  0x0106f090 in __mach_msg (msg=0x20034a0, option=3, send_size=64, rcv_size=32, rcv_name=421, timeout=0, notify=0) at msg.c:110
#2  0x0125a241 in __gsync_wait (task=1, addr=19101080, val1=2, val2=0, msec=0, flags=0)
    at /usr/src/glibc-2.24/build-tree/hurd-i386-libc/mach/RPC_gsync_wait.c:175
#3  0x010b0743 in __dcigettext (domainname=0x8050740 <_libc_intl_domainname@@GLIBC_2.2.6> "libc", 
    msgid1=0x8051d88 "undefined symbol: acl_get_fd", msgid2=0x0, plural=0, n=0, category=5) at dcigettext.c:527
#4  0x010af776 in __dcgettext (domainname=0x8050740 <_libc_intl_domainname@@GLIBC_2.2.6> "libc", 
    msgid=0x8051d88 "undefined symbol: acl_get_fd", category=5) at dcgettext.c:47
#5  0x0124e427 in __dlerror () at dlerror.c:94
#6  0x01035ae3 in load_library_symbols () from /usr/lib/i386-gnu/libfakeroot/libfakeroot-tcp.so
#7  0x01035cc3 in tmp___fxstat64 () from /usr/lib/i386-gnu/libfakeroot/libfakeroot-tcp.so
#8  0x01036cd6 in __fxstat64 () from /usr/lib/i386-gnu/libfakeroot/libfakeroot-tcp.so
#9  0x010ad831 in _nl_load_locale_from_archive (category=category@entry=0, namep=namep@entry=0x200399c) at loadarchive.c:211
#10 0x010ac45b in _nl_find_locale (locale_path=0x0, locale_path_len=0, category=category@entry=0, name=0x200399c) at findlocale.c:154
#11 0x010abde7 in setlocale (category=0, locale=0x804c2e4 "") at setlocale.c:417
#12 0x0804947f in main (argc=2, argv=0x2003ad4) at programs/locale.c:191

That's very unfortunate: libfakeroot gets initialized from a section
where __libc_setlocale_lock is already locked, and thus the dlerror()
call hangs inside __dcigettext. It happens that Linux doesn't have
the problem probably because pthread_rwlock_wrlock returns a EDEADLK
error instead of hanging, and then the first unlock unlocks, and the
second unlock probably returns an EINVAL. This is all very unsafe, but
that's fakeroot-tcp's matter (see http://bugs.debian.org/845930 for the
follow-up)...

We only use it when constructing the debian installer for -s -r options
anyway.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>


hurd i386/local no_unsupported_ioctls.diff | (download)

sysdeps/mach/hurd/bits/ioctls.h | 6 6 + 0 - 0 !
1 file changed, 6 insertions(+)

---
hurd i386/local stack_chk_guard.diff | (download)

sysdeps/mach/hurd/dl-sysdep.c | 2 2 + 0 - 0 !
sysdeps/mach/hurd/i386/ld.abilist | 1 1 + 0 - 0 !
sysdeps/mach/hurd/x86_64/ld.abilist | 1 1 + 0 - 0 !
3 files changed, 4 insertions(+)

---
hurd i386/git random malloc.diff | (download)

malloc/malloc.c | 3 3 + 0 - 0 !
1 file changed, 3 insertions(+)

---
i386/local biarch.diff | (download)

sysdeps/unix/sysv/linux/i386/dl-cache.h | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 allow ldconfig to work on i386/x86-64 biarch systems
# DP: Related bugs: 
i386/unsubmitted quiet ldconfig.diff | (download)

sysdeps/x86/readelflib.c | 7 5 + 2 - 0 !
1 file changed, 5 insertions(+), 2 deletions(-)

---
i386/local setcontext revert eax ecx edx.patch | (download)

sysdeps/unix/sysv/linux/i386/getcontext.S | 8 7 + 1 - 0 !
sysdeps/unix/sysv/linux/i386/setcontext.S | 11 7 + 4 - 0 !
sysdeps/unix/sysv/linux/i386/swapcontext.S | 17 12 + 5 - 0 !
sysdeps/unix/sysv/linux/i386/ucontext_i.sym | 3 3 + 0 - 0 !
4 files changed, 29 insertions(+), 10 deletions(-)

---
m68k/local reloc.diff | (download)

sysdeps/m68k/dl-machine.h | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 binutils bug workaround
# DP: Related bugs: #263601: m68k: workaround for binutils problem
mips/submitted rld_map.diff | (download)

sysdeps/mips/dl-debug.h | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

---
powerpc/local powerpc8xx dcbz.diff | (download)

sysdeps/unix/sysv/linux/powerpc/dl-auxv.h | 16 16 + 0 - 0 !
1 file changed, 16 insertions(+)

---
sh4/local fpscr_values.diff | (download)

sysdeps/unix/sysv/linux/sh/Versions | 1 1 + 0 - 0 !
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 1 1 + 0 - 0 !
sysdeps/unix/sysv/linux/sh/sysdep.S | 11 11 + 0 - 0 !
3 files changed, 13 insertions(+)

---