Package: glibc / 2.41-10

Metadata

Package Version Patches format
glibc 2.41-10 3.0 (quilt)

Patch series

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

ADVISORIES | 2 2 + 0 - 0 !
Makeconfig | 2 1 + 1 - 0 !
NEWS | 28 28 + 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 | 25 0 + 25 - 0 !
advisories/README | 77 0 + 77 - 0 !
assert/Makefile | 1 1 + 0 - 0 !
assert/tst-assert-sa-2025-0001.c | 92 92 + 0 - 0 !
benchtests/atanh-inputs | 1 1 + 0 - 0 !
benchtests/sinh-inputs | 1 1 + 0 - 0 !
config.make.in | 1 1 + 0 - 0 !
configure | 162 162 + 0 - 0 !
configure.ac | 32 32 + 0 - 0 !
elf/Makefile | 37 36 + 1 - 0 !
elf/dl-execstack-tunable.c | 39 39 + 0 - 0 !
elf/dl-execstack.c | 2 1 + 1 - 0 !
elf/dl-load.c | 4 2 + 2 - 0 !
elf/dl-reloc-static-pie.c | 3 2 + 1 - 0 !
elf/dl-support.c | 4 1 + 3 - 0 !
elf/dl-tls.c | 7 7 + 0 - 0 !
elf/dl-tunables.list | 2 1 + 1 - 0 !
elf/rtld.c | 6 3 + 3 - 0 !
elf/tst-audit-tlsdesc-dlopen2.c | 46 46 + 0 - 0 !
elf/tst-auditmod-tlsdesc2.c | 59 59 + 0 - 0 !
elf/tst-dlopen-sgid-mod.c | 1 1 + 0 - 0 !
elf/tst-dlopen-sgid.c | 106 106 + 0 - 0 !
elf/tst-env-setuid-tunables.c | 18 2 + 16 - 0 !
elf/tst-env-setuid.c | 17 2 + 15 - 0 !
elf/tst-execstack-prog-static-tunable.c | 1 1 + 0 - 0 !
elf/tst-execstack-tunable.c | 1 1 + 0 - 0 !
elf/tst-pie-bss-static.c | 19 19 + 0 - 0 !
elf/tst-pie-bss.c | 30 30 + 0 - 0 !
elf/tst-rtld-list-tunables.exp | 2 1 + 1 - 0 !
math/auto-libm-test-in | 4 4 + 0 - 0 !
math/auto-libm-test-out-log10p1 | 25 25 + 0 - 0 !
math/auto-libm-test-out-sinh | 25 25 + 0 - 0 !
math/auto-libm-test-out-tan | 25 25 + 0 - 0 !
math/bits/mathcalls-macros.h | 2 1 + 1 - 0 !
nptl/Makefile | 3 3 + 0 - 0 !
nptl/pthread_cancel.c | 14 8 + 6 - 0 !
nptl/pthread_getattr_np.c | 4 2 + 2 - 0 !
posix/environ.c | 4 4 + 0 - 0 !
stdlib/Makefile | 2 2 + 0 - 0 !
stdlib/getenv.c | 3 0 + 3 - 0 !
stdlib/tst-getenv-static.c | 38 38 + 0 - 0 !
stdlib/tst-secure-getenv.c | 9 2 + 7 - 0 !
support/capture_subprocess.h | 11 6 + 5 - 0 !
support/support_capture_subprocess.c | 166 78 + 88 - 0 !
sysdeps/aarch64/fpu/asinh_sve.c | 111 77 + 34 - 0 !
sysdeps/aarch64/fpu/cosh_sve.c | 18 10 + 8 - 0 !
sysdeps/aarch64/fpu/erfcf_sve.c | 12 6 + 6 - 0 !
sysdeps/aarch64/fpu/exp10_sve.c | 25 15 + 10 - 0 !
sysdeps/aarch64/fpu/exp2_sve.c | 26 14 + 12 - 0 !
sysdeps/aarch64/fpu/exp_sve.c | 36 19 + 17 - 0 !
sysdeps/aarch64/fpu/pow_sve.c | 245 142 + 103 - 0 !
sysdeps/aarch64/fpu/powf_sve.c | 117 59 + 58 - 0 !
sysdeps/aarch64/fpu/sv_expf_inline.h | 3 1 + 2 - 0 !
sysdeps/aarch64/multiarch/Makefile | 1 1 + 0 - 0 !
sysdeps/aarch64/multiarch/ifunc-impl-list.c | 1 1 + 0 - 0 !
sysdeps/aarch64/multiarch/memset.c | 4 4 + 0 - 0 !
sysdeps/aarch64/multiarch/memset_sve_zva64.S | 123 123 + 0 - 0 !
sysdeps/generic/ldsodefs.h | 15 14 + 1 - 0 !
sysdeps/ieee754/dbl-64/e_atanh.c | 8 8 + 0 - 0 !
sysdeps/ieee754/dbl-64/e_sinh.c | 8 8 + 0 - 0 !
sysdeps/ieee754/dbl-64/math_config.h | 6 4 + 2 - 0 !
sysdeps/ieee754/dbl-64/s_fma.c | 3 3 + 0 - 0 !
sysdeps/ieee754/dbl-64/s_tanh.c | 5 5 + 0 - 0 !
sysdeps/ieee754/flt-32/e_sinhf.c | 2 1 + 1 - 0 !
sysdeps/ieee754/flt-32/s_log10p1f.c | 2 1 + 1 - 0 !
sysdeps/ieee754/flt-32/s_tanf.c | 2 1 + 1 - 0 !
sysdeps/mach/hurd/dl-execstack.c | 5 2 + 3 - 0 !
sysdeps/nptl/bits/thread-shared-types.h | 2 2 + 0 - 0 !
sysdeps/nptl/dl-tls_init_tp.c | 1 1 + 0 - 0 !
sysdeps/nptl/pthread.h | 2 1 + 1 - 0 !
sysdeps/powerpc/powerpc64/le/power10/memchr.S | 315 0 + 315 - 0 !
sysdeps/powerpc/powerpc64/le/power10/strcmp.S | 233 0 + 233 - 0 !
sysdeps/powerpc/powerpc64/le/power10/strncmp.S | 271 0 + 271 - 0 !
sysdeps/powerpc/powerpc64/multiarch/Makefile | 11 5 + 6 - 0 !
sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c | 13 0 + 13 - 0 !
sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S | 28 0 + 28 - 0 !
sysdeps/powerpc/powerpc64/multiarch/memchr.c | 20 6 + 14 - 0 !
sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S | 26 0 + 26 - 0 !
sysdeps/powerpc/powerpc64/multiarch/strcmp.c | 4 0 + 4 - 0 !
sysdeps/powerpc/powerpc64/multiarch/strncmp-power10.S | 25 0 + 25 - 0 !
sysdeps/powerpc/powerpc64/multiarch/strncmp.c | 4 0 + 4 - 0 !
sysdeps/pthread/Makefile | 11 11 + 0 - 0 !
sysdeps/pthread/tst-cancel32.c | 73 73 + 0 - 0 !
sysdeps/pthread/tst-stack2-mod.c | 39 39 + 0 - 0 !
sysdeps/pthread/tst-stack2.c | 47 47 + 0 - 0 !
sysdeps/riscv/dl-machine.h | 17 11 + 6 - 0 !
sysdeps/sparc/sparc32/start.S | 11 8 + 3 - 0 !
sysdeps/sparc/sparc64/start.S | 4 4 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/Makefile | 129 128 + 1 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-aarch64-pkey.c | 4 4 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-abort.sh | 39 39 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled-static.c | 1 1 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled.c | 2 2 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-disabled.c | 3 3 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-enforced.c | 3 3 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-off.c | 3 3 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-on.c | 3 3 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-override.c | 3 3 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen.c | 62 62 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-abort.c | 2 2 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static-abort.c | 1 1 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static.c | 1 1 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced.c | 2 2 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-helper.h | 39 39 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod1.c | 27 27 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod2.c | 25 25 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod3.c | 25 25 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-noreturn.c | 101 101 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-off.c | 2 2 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-on.c | 2 2 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-off.c | 1 1 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-on.c | 1 1 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-override-static.c | 1 1 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-override.c | 2 2 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-disabled.c | 2 2 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-enforced-abort.c | 2 2 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-optional.c | 2 2 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-override.c | 2 2 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared.c | 41 41 + 0 - 0 !
sysdeps/unix/sysv/linux/aarch64/tst-gcs-skeleton.c | 43 43 + 0 - 0 !
sysdeps/unix/sysv/linux/bits/sched.h | 2 1 + 1 - 0 !
sysdeps/unix/sysv/linux/dl-execstack.c | 7 2 + 5 - 0 !
sysdeps/unix/sysv/linux/rseq-internal.h | 11 5 + 6 - 0 !
sysdeps/x86/Makefile | 22 22 + 0 - 0 !
sysdeps/x86/bits/floatn.h | 10 7 + 3 - 0 !
sysdeps/x86/cpu-features.c | 389 189 + 200 - 0 !
sysdeps/x86/cpu-tunables.c | 2 2 + 0 - 0 !
sysdeps/x86/dl-diagnostics-cpu.c | 2 2 + 0 - 0 !
sysdeps/x86/include/cpu-features.h | 9 7 + 2 - 0 !
sysdeps/x86/sysdep.h | 6 6 + 0 - 0 !
sysdeps/x86/tst-gnu2-tls2-x86-noxsave.c | 1 1 + 0 - 0 !
sysdeps/x86/tst-gnu2-tls2-x86-noxsavec.c | 1 1 + 0 - 0 !
sysdeps/x86/tst-gnu2-tls2-x86-noxsavexsavec.c | 1 1 + 0 - 0 !
sysdeps/x86_64/Makefile | 1 0 + 1 - 0 !
sysdeps/x86_64/dl-tlsdesc-dynamic.h | 2 1 + 1 - 0 !
sysdeps/x86_64/fpu/multiarch/Makefile | 6 6 + 0 - 0 !
sysdeps/x86_64/fpu/multiarch/e_atanh-fma.c | 6 6 + 0 - 0 !
sysdeps/x86_64/fpu/multiarch/e_atanh.c | 34 34 + 0 - 0 !
sysdeps/x86_64/fpu/multiarch/e_sinh-fma.c | 12 12 + 0 - 0 !
sysdeps/x86_64/fpu/multiarch/e_sinh.c | 35 35 + 0 - 0 !
sysdeps/x86_64/fpu/multiarch/s_tanh-fma.c | 11 11 + 0 - 0 !
sysdeps/x86_64/fpu/multiarch/s_tanh.c | 31 31 + 0 - 0 !
sysdeps/x86_64/multiarch/ifunc-impl-list.c | 4 2 + 2 - 0 !
sysdeps/x86_64/tst-auditmod10b.c | 109 55 + 54 - 0 !
160 files changed, 2645 insertions(+), 2000 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/git proc_reauth.diff | (download)

hurd/hurdsig.c | 59 42 + 17 - 0 !
sysdeps/mach/hurd/spawni.c | 28 23 + 5 - 0 !
2 files changed, 65 insertions(+), 22 deletions(-)

---
hurd i386/git mig strncpy.diff | (download)

mach/mig_strncpy.c | 10 9 + 1 - 0 !
1 file changed, 9 insertions(+), 1 deletion(-)

---
hurd i386/git pthread_sigmask_nothread.diff | (download)

sysdeps/mach/hurd/htl/pt-sigstate.c | 5 4 + 1 - 0 !
1 file changed, 4 insertions(+), 1 deletion(-)

---
hurd i386/git rt timedwait realtime.diff | (download)

rt/aio_suspend.c | 3 2 + 1 - 0 !
sysdeps/nptl/aio_misc.h | 2 1 + 1 - 0 !
2 files changed, 3 insertions(+), 2 deletions(-)

---
hurd i386/git pthread_setcancel.diff | (download)

htl/pt-setcancelstate.c | 8 8 + 0 - 0 !
htl/pt-setcanceltype.c | 5 5 + 0 - 0 !
sysdeps/htl/pthreadP.h | 8 8 + 0 - 0 !
3 files changed, 21 insertions(+)

---
hurd i386/git dup refcnt.diff | (download)

sysdeps/mach/hurd/dup3.c | 62 46 + 16 - 0 !
sysdeps/mach/hurd/fcntl.c | 53 41 + 12 - 0 !
2 files changed, 87 insertions(+), 28 deletions(-)

---
hurd i386/git xstate.diff | (download)

hurd/Makefile | 5 5 + 0 - 0 !
hurd/test-sig-rpc-interrupted.c | 185 185 + 0 - 0 !
hurd/test-sig-xstate.c | 94 94 + 0 - 0 !
hurd/test-xstate.h | 40 40 + 0 - 0 !
sysdeps/mach/hurd/i386/bits/sigcontext.h | 2 2 + 0 - 0 !
sysdeps/mach/hurd/i386/sigreturn.c | 32 28 + 4 - 0 !
sysdeps/mach/hurd/x86/trampoline.c | 91 74 + 17 - 0 !
sysdeps/mach/hurd/x86_64/bits/sigcontext.h | 2 2 + 0 - 0 !
sysdeps/mach/hurd/x86_64/sigreturn.c | 32 28 + 4 - 0 !
9 files changed, 458 insertions(+), 25 deletions(-)

---
hurd i386/git utime EINVAL.diff | (download)

sysdeps/mach/hurd/futimens.c | 8 6 + 2 - 0 !
sysdeps/mach/hurd/futimes.c | 8 6 + 2 - 0 !
sysdeps/mach/hurd/utime-helper.c | 62 54 + 8 - 0 !
3 files changed, 66 insertions(+), 12 deletions(-)

---
hurd i386/git xstate initialized.diff | (download)

sysdeps/mach/hurd/i386/sigreturn.c | 37 20 + 17 - 0 !
sysdeps/mach/hurd/x86_64/sigreturn.c | 37 20 + 17 - 0 !
2 files changed, 40 insertions(+), 34 deletions(-)

---
hurd i386/git signal fpe exceptions.diff | (download)

sysdeps/mach/hurd/x86/trampoline.c | 14 10 + 4 - 0 !
1 file changed, 10 insertions(+), 4 deletions(-)

---
hurd i386/git symlink eexist.diff | (download)

sysdeps/mach/hurd/symlinkat.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
hurd i386/git rename.diff | (download)

sysdeps/mach/hurd/renameat2.c | 19 16 + 3 - 0 !
1 file changed, 16 insertions(+), 3 deletions(-)

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

htl/Makefile | 2 1 + 1 - 0 !
htl/Versions | 5 3 + 2 - 0 !
sysdeps/htl/libc-lockP.h | 3 1 + 2 - 0 !
sysdeps/htl/pt-once.c | 8 7 + 1 - 0 !
sysdeps/mach/hurd/i386/libc.abilist | 2 2 + 0 - 0 !
sysdeps/mach/hurd/i386/libpthread.abilist | 1 0 + 1 - 0 !
sysdeps/mach/hurd/x86_64/libc.abilist | 2 2 + 0 - 0 !
sysdeps/mach/hurd/x86_64/libpthread.abilist | 1 0 + 1 - 0 !
8 files changed, 16 insertions(+), 8 deletions(-)

---
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(+)

---