Debian Patches

Status for glibc/2.31-13+deb11u8

Patch Description Author Forwarded Bugs Origin Last update
hurd-i386/git-posix_openpt.diff https://sourceware.org/ml/libc-alpha/2019-12/msg00799.html

Committed for 2.33


Rearrange bsd_getpt vs bsd_openpt and implement posix_openpt on BSD

* sysdeps/unix/bsd/getpt.c (__getpt): Add oflag parameter, pass
it to the _open call and rename to...
(__bsd_openpt): ... new function.
[!HAVE_GETPT] (__getpt): Reimplement on top of __bsd_openpt.
(__posix_openpt): Replace stub with implementation on top of __bsd_openpt.
(posix_openpt): Remove stub warning.

diff --git a/sysdeps/unix/bsd/getpt.c b/sysdeps/unix/bsd/getpt.c
index 46207f4e62..0eff0b54a3 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no
hurd-i386/local-enable-ldconfig.diff # DP: Description: Enable ldconfig and such on hurd-i386
# DP: Author: Jeff Bailey <jbailey@nisa.net>
# DP: Related Bugs: #309489
# DP: Upstream status: Not submitted
# DP: Status Details: Upstream disagrees with this patch, but I'm
# DP: putting it in so that we have expected Debian behaviour on the
# DP: Hurd. We should review this when the ELF standard supports runpath.
# DP: Date: 08 Apr 2003
no
git-updates.diff GIT update of https://sourceware.org/git/glibc.git/release/2.31/master from glibc-2.31

diff --git a/INSTALL b/INSTALL
index 242cb06f91..b487e18634 100644
no
locale/check-unknown-symbols.diff Check for unknown symbols in collation rules. This is useful to detect
broken locales since unknown symbols are always wrong.

This request has not been submitted upstream yet.

# DP: Dpatch author: Denis Barbier
# DP: Patch author: Denis Barbier
# DP: Upstream status: not submitted
# DP: Date: 2006-01-08
no
locale/locale-print-LANGUAGE.diff Comments tell that LANG has to be the first value, and LC_ALL the last
one. Thus LANGUAGE is printed between them.

# DP: Dpatch author: Denis Barbier
# DP: Patch author: Denis Barbier
# DP: Upstream status: not submitted
# DP: Date: 2006-01-08
no
locale/LC_IDENTIFICATION-optional-fields.diff In LC_IDENTIFICATION, audience, application and abbreviation keywords
are optional, thus do not report an error if they are not defined.

# DP: Dpatch author: Denis Barbier
# DP: Patch author: Denis Barbier
# DP: Upstream status: not submitted
# DP: Date: 2006-01-08
no
localedata/sort-UTF8-first.diff no
localedata/supported.diff # All lines beginning with `# DP:' are a description of the patch.
# DP: Description: 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)
# DP: Dpatch author: Denis Barbier
# DP: Upstream status: not submitted
# DP: Date: 2006-01-10
no
localedata/locale-eu_FR.diff # DP: Description: #257840: locales: Please add the eu_FR locale
# DP: Related bugs: #257840
# DP: Dpatch author: GOTO Masanori <gotom@debian.org>
# DP: Patch author: Christian Perrier <bubulle@debian.org>
# DP: Upstream status: Not submitted
# DP: Status Details: sending upstream
# DP: Date: 2004-07-31
no
localedata/locale-ku_TR.diff # DP: Description: Please add Kurdish locale
# DP: Related bugs: BZ870
# DP: Dpatch author: Denis Barbier <barbier@debian.org>
# DP: Patch author: Kader DILSIZ, Pablo Saratxaga
# DP: Upstream status: Version 0.1 submitted in the original bugreport
# DP: has been committed, this new version has been sent just after.
# DP: Date: 2006-01-06
no
localedata/fo_FO-date_fmt.diff # All lines beginning with `# DP:' are a description of the patch.
# DP: Description: Fix d_t_fmt and date_fmt in fo_FO
# DP: Related bugs: #307194
# DP: Dpatch author: Denis Barbier
# DP: Patch author: Jacob Sparre Andersen <sparre@nbi.dk>
# DP: Upstream status: not submitted
# DP: Date: 2006-01-10
no
localedata/locales-fr.diff # All lines beginning with `# DP:' are a description of the patch.
# DP: Description: Various fixes for all French locales
# DP: Related bugs: #248377 #351786 #345481
# DP: Dpatch author: Denis Barbier <barbier@debian.org>
# DP: Patch author: Denis Barbier
# DP: Upstream status: not submitted
# DP: Date: 2006-01-10
no
localedata/locale-en_DK.diff # All lines beginning with `# DP:' are a description of the patch.
# DP: Description: 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
# DP: Dpatch author: Denis Barbier
# DP: Patch author: Jakob Bohm <jbj@image.dk>
# DP: Upstream status: not submitted
# DP: Date: 2006-01-16
no
localedata/locale-zh_TW.diff See BTS #352600.
Not submitted yet.
no
localedata/tailor-iso14651_t1.diff # All lines beginning with `# DP:' are a description of the patch.
# DP: Description: 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
# DP: Dpatch author: Denis Barbier
# DP: Patch author: Denis Barbier, Pablo Saratxaga
# DP: Upstream status: BZ664 BZ672
# DP: Date: 2006-01-18

2008-08-08 Aurelien Jarno <aurel32@debian.org>

Loosy update for glibc 2.8.

2007-05-25 Pierre Habouzit <madcoder@debian.org>

Loosy update for glibc 2.6.

2005-01-16 Denis Barbier <barbier@linuxfr.org>

[BZ #672]
Replace current collation rules by including iso14651_t1 and adding
extra rules if needed. There should be no noticeable changes in
sorted text. only ligatures and ignoreable characters have modified
weights.
* locales/da_DK: Likewise.
no
localedata/locale-C.diff no
localedata/submitted-es_MX-decimal_point.diff 2012-06-06 Aurelien Jarno <aurelien@aurel32.net>

* locales/es_MX (LC_MONETARY): Set mon_thousands_sep to space
( ).
no
localedata/git-unicode-13-support.diff commit 8645f624697afecfaa4d97ac584bc0a943cbca17

Bug 25819: Update to Unicode 13.0.0

Unicode 13.0.0 Support: Character encoding, character type info, and
transliteration tables are all updated to Unicode 13.0.0, using
the generator scripts contributed by Mike FABIAN (Red Hat).

Total added characters in newly generated CHARMAP: 5930
Total added characters in newly generated WIDTH: 5536

diff --git a/localedata/charmaps/UTF-8 b/localedata/charmaps/UTF-8
index e3d84d55c3..14c5d4fa33 100644
Mike FABIAN <mfabian@redhat.com> no 2020-04-14
alpha/local-gcc4.1.diff 2006-05-30 Falk Hueffner <falk@debian.org>

* sysdeps/unix/sysv/linux/alpha/ioperm.c: force the architecture
to ev6 in assembly code.

{standard input}: Assembler messages:
{standard input}:341: Error: macro requires $at register while noat in effect
{standard input}:374: Error: macro requires $at register while noat in effect
{standard input}:438: Error: macro requires $at register while noat in effect
{standard input}:471: Error: macro requires $at register while noat in effect
make[3]: *** [/tmp/buildd/glibc-2.3.6/build-tree/alpha-libc/misc/ioperm.o] Error 1

Hrm. gcc puts .arch ev4 into the .s, and this overrides -mev6 for as.
I cannot really think of anything better than
no
alpha/submitted-dl-support.diff older versions of glibc would build dl-sysdep as shared-only and dl-support as
static-only. alpha hooks in a cache variable via dl-auxv.h. newer versions of
glibc build dl-sysdep as both shared and static which means we now have symbol
duplication for static builds with dl-sysdep and dl-support. since dl-sysdep
is both shared/static, there is no point in hooking dl-support anymore, so we
can punt it.
no
alpha/local-string-functions.diff The alpha assembly version of various string functions do not work
correctly on some corner cases, and thus doesn't pass the testsuite.
This patch removes them.
no
alpha/submitted-fts64.diff 2016-03-22 Aurelien Jarno <aurelien@aurel32.net>

* sysdeps/unix/sysv/linux/alpha/fts.c: New file.
* sysdeps/unix/sysv/linux/alpha/fts64.c: New file.
no
alpha/submitted-makecontext.diff 2018-03-01 Aurelien Jarno <aurelien@aurel32.net>

[BZ #22910]
* sysdeps/unix/sysv/linux/alpha/setcontext.S (__startcontext): Set
up CFI directive to forbid further backtracing.
no
arm/local-sigaction.diff no
arm/unsubmitted-ldconfig-cache-abi.diff diff --git a/sysdeps/unix/sysv/linux/arm/readelflib.c b/sysdeps/unix/sysv/linux/arm/readelflib.c
index e767f9e..37483fc 100644
no
arm/local-soname-hack.diff For backward compatibility with armhf binaries built with the
old linker SONAME, we need to fake out the linker to believe
the new is the old, until such a point as everything is rebuilt
no
arm/local-vfp-sysdeps.diff Work around broken compilers (like fpc) on armhf patches/arm/local-vfp-sysdeps.diff: Force the Tag_ABI_HardFP_use
and Tag_ABI_VFP_args EABI tags when building for armhf, so compilers
only linking crti.o will generate what appear to be armhf binaries.
Adam Conrad <adconrad@debian.org> no
arm/unsubmitted-ldso-multilib.diff no
arm/local-arm-futex.diff 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.
Adam Conrad <adconrad@ubuntu.com> no debian 2015-03-25
hppa/local-inlining.diff Increase the maximal overall growth of the compilation unit caused
by inlining for dl-reloc.c on hppa. This remove some warnings and
strangely it reduces the size of the final binary.
no
hurd-i386/tg-sysvshm.diff [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.
Marcus Brinkmann <marcus@gnu.org> no
hurd-i386/tg-thread-cancel.diff [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.
Samuel Thibault <samuel.thibault@ens-lyon.org> no
hurd-i386/tg-bigmem.diff [PATCH] Allow the kernel to start earlier than VM_MAX_ADDRESS
VM_MAX_ADDRESS shouldn't be hardcoded in libc, the kernel should be able to
decide about it dynamically. This fixes glibc into supporting that. It's however
a bit hackish.

This kludge will however go out once we have a recent enough gnumach,
anyway.
Samuel Thibault <samuel.thibault@ens-lyon.org> no
hurd-i386/local-disable-ioctls.diff struct ortentry and struct ifalias req are actually not defined
struct arpreq is defined, but can not be passed to an ioctl on the Hurd.
so let's make packages not believe these are available.
no
hurd-i386/tg-sendmsg-SCM_CREDS.diff [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.
no
hurd-i386/tg-mach-hurd-link.diff [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.
Samuel Thibault <samuel.thibault@ens-lyon.org> no
hurd-i386/local-ED.diff This is a long funny story, but even if it's standard-compliant, it poses too
many problems.
no
hurd-i386/local-madvise_warn.diff Do not warn about madvise not being implemented. It does not have any real
semantic anyway, and that brings some -Werror FTBFS.
no
hurd-i386/git-hurdsig-SA_SIGINFO.diff [PATCH] implement SA_SIGINFO signal handlers.
52baaca Hurd signals: Copy bits/sigaction.h
4232c66 Hurd signals: SA_SIGINFO support
1831cfe Hurd signals: Use POSIX sigcodes
Jeremie Koenig <jk@jk.fr.eu.org> no
hurd-i386/tg-hooks.diff [PATCH] t/hooks
Add link rules to sort hooks, otherwise they are not properly recorded

2012-04-21 Samuel Thibault <samuel.thibault@ens-lyon.org>

* Makerules (shlib.lds): Add hurd hooks sorting rules.
Samuel Thibault <samuel.thibault@ens-lyon.org> no
hurd-i386/local-usr.diff Upstream uses prefix= while we use prefix=/usr

===================================================================
no
hurd-i386/git-sbrk-end.diff Committed for glibc 2.33

commit 8c6beab4e1c03ac57150241015486e3f497c17cc

hurd: Rework sbrk

Making the brk start exactly at the end of the main application binary was
requiring to get it through the _end symbol, which does not work any more
with recent toolchains, and actually produces in libc.so a confusing
external _end symbol that produces odd results, see
https://sourceware.org/bugzilla/show_bug.cgi?id=23499

Trying to do so is quite outdated anyway with the tendency for address
randomization.

Using _end was also allowing to include the main binary data within
the RLIMIT_DATA, but this also seems outdated with dynamic library
loading, and nowadays' memory consumption via malloc and mmap rather than
statically-allocated data.

This adds a BRK_START macro in <vm_param.h> that just tells where we
want to start the brk, and thus removes the _end symbol.

* sysdeps/mach/hurd/i386/vm_param.h: New file.
* sysdeps/mach/hurd/brk.c: Use BRK_START as brk start instead of _end.
Also ignore __data_start.
* hurd/Versions: Remove _end symbol.
* sysdeps/mach/hurd/i386/libc.abilist: Remove _end symbol.
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-08-05
hurd-i386/tg-ifaddrs_v6.diff [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...
Samuel Thibault <samuel.thibault@ens-lyon.org> no
hurd-i386/tg-EIEIO-fr.diff [PATCH] Correction traduction Computer bought the farm
* po/fr.po: Fix EIEIO french translation.
Samuel Thibault <samuel.thibault@ens-lyon.org> no
hurd-i386/tg-EGREGIOUS-fr.diff [PATCH] t/EGREGIOUS-fr
Fix grammar in french translation for EGREGIOUS
Samuel Thibault <samuel.thibault@ens-lyon.org> no
hurd-i386/unsubmitted-clock_t_centiseconds.diff Some applications assume centisecond precision, or at most millisecond precision
(e.g. guile). This is a work-around for them.
no
hurd-i386/submitted-path_mounted.diff [PATCH 2/2] Define _PATH_MOUNTED as "/etc/mtab"
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".
Justus Winter <4winter@informatik.uni-hamburg.de> no 2013-08-15
hurd-i386/git-sigstate_thread_reference.diff [PATCH] Hurd: make sigstates hold a reference on thread ports
This change is required in order to correctly release per-thread
resources. Directly reusing the threading library reference isn't
possible since the sigstate is also used early in the main thread,
before threading is initialized.

* hurd/hurd/signal.h (_hurd_self_sigstate): Drop thread reference after
calling _hurd_thread_sigstate.
(_hurd_critical_section_lock): Likewise.
* hurd/hurdsig.c (_hurd_thread_sigstate): Add a reference on the thread.
(_hurd_sigstate_delete): Drop thread reference.
Richard Braun <rbraun@sceen.net> no
hurd-i386/submitted-bind_umask2.diff 2014-08-27 Samuel Thibault <samuel.thibault@ens-lyon.org>

Fix bind when umask is e.g. 0777.

* sysdeps/mach/hurd/bind.c (__bind): Pass mode 0666 to __dir_mkfile
instead of final mode, so that call __ifsock_getsockaddr can always
succeed, before calling __file_chmod to fix the mode according to umask,
before calling __dir_link to show the file.

Part of the original fix was committed, the other hasn't been yet, see Roland's
"Harumph" reply to
https://sourceware.org/ml/libc-alpha/2014-08/msg00408.html
no
hurd-i386/tg-bootstrap.diff This dependency is missing, but would pose problem on Darwin no
hurd-i386/local-mach_print.diff which might be referencing the 2.21-versioned symbol, and drop this
patch.
no
hurd-i386/tg-eintr.diff commit 230b85f414291ac955827aba15cfbd103ab6ebdd

Fix pipe() call returning EINTR sometimes

because it uses a critical section

diff --git a/hurd/hurdsock.c b/hurd/hurdsock.c
index 0f52f37..261f654 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2016-06-09
hurd-i386/tg-libc_rwlock_recursive.diff [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.
Samuel Thibault <samuel.thibault@ens-lyon.org> no
hurd-i386/local-no_unsupported_ioctls.diff These ioctls are not actually supported (and will probably not be in the
close future), and are not available on Linux either, so don't expose
them to application at the risk of them complaining that they don't work
(e.g. xterm using TIOCLSET).
no
hurd-i386/local-exec_filename.diff Keep compatibility with experimental implementation no
hurd-i386/git-fork-pthread_exit.diff Committed for glibc 2.32

commit 19a64d9f6eda12cd4b802aac470c645d208a1216

htl: Fix calling pthread_exit in the child of a fork

We need to reset the threads counter, otherwise pthread_exit() would not
call exit(0).

diff --git a/sysdeps/mach/hurd/htl/pt-sysdep.c b/sysdeps/mach/hurd/htl/pt-sysdep.c
index e306cc81dc..32a290c4ee 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-02-09
hurd-i386/git-spin_lock.diff Committed for glibc 2.32

commit 900778283ac3cfbd274abc55840b5cdae9b7745f

htl: make pthread_spin_lock really spin

__spin_lock would actually use gsync_wait to block, which is not what
pthread_spin_lock is about.

diff --git a/sysdeps/mach/htl/bits/spin-lock-inline.h b/sysdeps/mach/htl/bits/spin-lock-inline.h
index 771292f08f..556bdd4c28 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-02-09
hurd-i386/git-barrier-1.diff Committed for glibc 2.32

commit 29bc8736d1fdb80d2416b3920080dad58b32bf44

htl: Fix barrier_wait with one thread

diff --git a/sysdeps/htl/pt-barrier-wait.c b/sysdeps/htl/pt-barrier-wait.c
index 47ec440b26..146605abd8 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-02-09
hurd-i386/git-sem-intr.diff Committed for glibc 2.32

commit b2cdf72e5c496153050551f0ce704e9ef08ffeac

htl: Make sem_wait/sem_timedwait interruptible

diff --git a/htl/Makefile b/htl/Makefile
index 1b33748934..39294c64d1 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-02-10
hurd-i386/git-register-atfork.diff Committed for glibc 2.32

commit 6db1094f7af6ddd7ff37dbba82ff5074871a90d5

htl: Move __register_atfork from forward to own file

Since we need it also in the static linking case.

diff --git a/htl/Makefile b/htl/Makefile
index 0dccf25ebc..71b14d5e96 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-02-09
hurd-i386/git-register-atfork2.diff Committed for glibc 2.32

commit 05039737d306b4c065ff65d4f90042f3ec8f6ddf

htl: fix register-atfork ordering

* htl/register-atfork.c (__register_atfork): Add new hooks at the end of
the list instead of the beginning.

diff --git a/htl/register-atfork.c b/htl/register-atfork.c
index 256b1148ac..4581ac5bba 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-06-07
hurd-i386/git-pthread_self.diff Committed for glibc 2.32

commit ca843defbcbd2dc95b9342189e5dc430e9bcb743

htl: Only check pthread_self coherency when DEBUG is set

htl has been widely tested for a long time now with this coherency
checked successfully.

diff --git a/sysdeps/mach/hurd/htl/pt-sysdep.h b/sysdeps/mach/hurd/htl/pt-sysdep.h
index c837415a9a..484d024bb0 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-02-15
hurd-i386/git-trunc-times.diff Committed for glibc 2.32

commit e095db0bc6c53a0b7ac3d915c5feb7678049dc33

hurd: Make O_TRUNC update mtime/ctime

* hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Call
__file_utimens after __file_set_size.

diff --git a/hurd/lookup-retry.c b/hurd/lookup-retry.c
index c90eda808d..6d8b05e4e6 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-03-29
hurd-i386/git-ss_init.diff Committed for glibc 2.32

commit 61416e19218605a54e94edd9740bbe9d2785af6d

hurd: Add missing sigstate members initialization

* hurd/hurdsig.c (_hurd_thread_sigstate): Initialize
critical_section_lock, active_resources, cancel, and cancel_hook fields.

diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 1e42246ee6..a2741bb7c8 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-05-11
hurd-i386/git-tst-udp.diff Committed for glibc 2.32

commit cbfc16122e9c4948b3a17224aeb5f8b70f02417d

sunrpc/tst-udp-*: Fix timeout value

Following on 00c3da43a ('sunrpc/tst-udp-timeout: Fix timeout value').

While e.g. 2.5 timeout can be represented exactly with doubles, time stamps
may not be represented that exactly, and thus with coarse-grain clocks (e.g.
10ms) we may end up with 2.499-ish values due to rounding errors.

* sunrpc/tst-udp-timeout.c (test_udp_server): Add more timeout slack.
* sunrpc/tst-udp-nonblocking.c (do_test): Likewise.

diff --git a/sunrpc/tst-udp-nonblocking.c b/sunrpc/tst-udp-nonblocking.c
index 189136c9f9..45d6b8919f 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-05-16
hurd-i386/git-pselect.diff Committed for glibc 2.32

commit f9011787497a276f84ef79ae233992692a626dc7

hurd: Fix pselect atomicity

In case the signal arrives before the __mach_msg call, we need to catch
between the sigprocmask call and the __mach_msg call. Let's just reuse
the support for sigsuspend to make the signal send a message that
our __mach_msg call will just receive.

* hurd/hurdselect.c (_hurd_select): Add sigport and ss variables. When
sigmask is not NULL, create a sigport port and register as
ss->suspended. Add it to the portset. When we receive a message on it,
set error to EINTR. Clean up sigport and portset appropriately.

* hurd/hurdsig.c (wake_sigsuspend): Note that pselect also uses it.

diff --git a/hurd/hurdselect.c b/hurd/hurdselect.c
index b140dab6c3..69a415c02c 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-05-27
hurd-i386/git-fexecve.diff Committed for glibc 2.32

commit 6544999083437dabdadcec18185a1b2169b9637a

hurd: Fix fexecve

* sysdeps/mach/hurd/fexecve.c (fexecve): Re-lookup fd with O_EXEC before
calling _hurd_exec_paths.

diff --git a/sysdeps/mach/hurd/fexecve.c b/sysdeps/mach/hurd/fexecve.c
index 2b24e46fbf..c6a00ebf1e 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-05-28
hurd-i386/git-cond_destroy.diff Committed for glibc 2.32

commit faae4b2bdd692d929037c80c3315f716f02f3b00

htl: make pthread_cond_destroy return EBUSY on waiters

diff --git a/sysdeps/htl/pt-cond-destroy.c b/sysdeps/htl/pt-cond-destroy.c
index 62cc77b0d2..b28e7e1ada 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-02-09
hurd-i386/git-holes.diff Committed for glibc 2.32

commit 3f6e4fc4542b5b881906bf2f83eb4b8359b0dcd4

support: Fix detecting hole support on >2KB-block filesystems

When detecting hole support, we write at 16MiB, and filesystems will
typically need two levels of data to record that. On filesystems with
8KB block, the two indirection blocks will require a total of 16KB
overhead, thus 32 512-byte sectors.

Spotted on GNU/Hurd with a 4KB blocks filesystem, but also happens on Linux
with 4KB or 8KB blocks filesystems.

* support/support_descriptor_supports_holes.c
(support_descriptor_supports_holes): Set block_headroom to 32.

diff --git a/support/support_descriptor_supports_holes.c b/support/support_descriptor_supports_holes.c
index fc2aa76f10..d3d5d3a938 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-06-04
hurd-i386/git-longjmp-onstack.diff Committed for glibc 2.32

commit 02937d825a71636c13b3f4229e5d6c9e54e327d5

hurd: fix clearing SS_ONSTACK when longjmp-ing from sighandler

* sysdeps/i386/htl/Makefile: New file.
* sysdeps/i386/htl/tcb-offsets.sym: New file.
* sysdeps/mach/hurd/i386/Makefile [setjmp] (gen-as-const-headers): Add
signal-defines.sym.
* sysdeps/mach/hurd/i386/____longjmp_chk.S: Include tcb-offsets.h.
(____longjmp_chk): Harmonize with i386's __longjmp. Clear SS_ONSTACK
when jumping off the alternate stack.
* sysdeps/mach/hurd/i386/__longjmp.S: New file.

diff --git a/sysdeps/i386/htl/Makefile b/sysdeps/i386/htl/Makefile
new file mode 100644
index 0000000000..8573ce6990
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-06-06
hurd-i386/git-intr-msg-unwind.diff Committed for glibc 2.32

commit 337a7b74faed2c8daf8c91cbb3038dc4984f3207

hurd: Fix unwinding over interruptible RPC

* sysdeps/mach/hurd/i386/intr-msg.h (INTR_MSG_TRAP): Set CFA register to
%ecx while %esp is altered.

diff --git a/sysdeps/mach/hurd/i386/intr-msg.h b/sysdeps/mach/hurd/i386/intr-msg.h
index 54420fed01..70e6cc6592 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-06-07
hurd-i386/git-strtol-test.diff Committed for glibc 2.32

commit 183083c35972611e7786c7ee0c96d7da571631ed

support: Set errno before testing it.

In test-conainer we should set errno to 0 before calling strtol,
and check after with TEST_COMPARE.

In tst-support_capture_subprocess we should set errno to 0 before
checking it after the call to strtol.

Tested on x86_64.

Reviewed-by: DJ Delorie <dj@redhat.com>

diff --git a/support/test-container.c b/support/test-container.c
index 08d5195b7e..afc23db148 100644
Carlos O'Donell <carlos@redhat.com> no 2020-04-29
hurd-i386/local-tls-ie-align.diff The elf/tst-tls-ie* tests try to load modules with 8-byte-aligned TLS data that
will get allocated in the static TLS area, so we need at least 8-byte alignment.
8-byte alignment requirement is not that uncommon on i386 anyway.

And upstream happens to have 32-byte alignment from
0c76fc3c2b34 ('Linux: Perform rseq registration at C startup and thread
creation') which just rounds up max_align to 32 anyway.

===================================================================
no
hurd-i386/git-fix-longjmp.diff Committed for glibc 2.32

commit 115bcf921a52005b89ff2859ccae4a8fc6d6deed

hurd: Fix longjmp early in initialization

When e.g. an LD_PRELOAD fails, _dl_signal_exception/error longjmps, but TLS
is not initialized yet, let along signal state. We thus mustn't look at
them within __longjmp.

* sysdeps/mach/hurd/i386/____longjmp_chk.S,__longjmp.S: Check for
initialized value of %gs, and that sigstate is non-NULL.

diff --git a/sysdeps/mach/hurd/i386/____longjmp_chk.S b/sysdeps/mach/hurd/i386/____longjmp_chk.S
index 4d3a331728..5131386c60 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-07-18
hurd-i386/git-sched_sets.diff Committed for glibc 2.33

commit ce625044886da0a6e348f4def83f746e28587a0c

hurd: Implement basic sched_get/setscheduler

* sysdeps/mach/hurd/sched_gets.c: New file.
* sysdeps/mach/hurd/sched_sets.c: New file.

diff --git a/sysdeps/mach/hurd/sched_gets.c b/sysdeps/mach/hurd/sched_gets.c
new file mode 100644
index 0000000000..9fe31ce79e
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-08-05
hurd-i386/git-pthread_atfork-hidden.diff Committed for glibc 2.32

commit 15e995a8fb94a00d76da03756579ae6ff645b161

htl: Fix registration of atfork handlers in modules

We really need modules to use their own pthread_atfork so that
__dso_handle properly identifies them.

* sysdeps/htl/pt-atfork.c (__pthread_atfork): Hide function.
(pthread_atfork): Hide alias.
* sysdeps/htl/old_pt-atfork.c (pthread_atfork): Rename macro to
__pthread_atfork to fix building the compatibility alias.

diff --git a/sysdeps/htl/old_pt-atfork.c b/sysdeps/htl/old_pt-atfork.c
index d954b68f63..c7231d1feb 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-06-07
hurd-i386/git-bsd4.3-ioctls.diff Committed for glibc 2.33

commit cd41ffeb0bbca641a02e1030e13ab317ce7d645c

hurd: define BSD 4.3 ioctls only under __USE_MISC

diff --git a/sysdeps/mach/hurd/bits/ioctls.h b/sysdeps/mach/hurd/bits/ioctls.h
index eed63e759b..1226186ff9 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-08-27
hurd-i386/git-clock-cputime.diff Committed for glibc 2.33

commit 5a619c1f46c49dbb9706beeb74f4a466696394fc

hurd: support clock_gettime(CLOCK_PROCESS/THREAD_CPUTIME_ID)

* sysdeps/mach/clock_gettime.c (__clock_gettime): Add support for
CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.

diff --git a/sysdeps/mach/clock_gettime.c b/sysdeps/mach/clock_gettime.c
index fbd80536d5..840e06036b 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-10-11
hurd-i386/git-raise.diff Committed in 2.32

commit 785ec62dbd37b0b236c9a7fcc0ac71a2aeb472de

hurd: Reject raising invalid signals

* hurd/hurd-raise.c (_hurd_raise_signal): Return EINVAL if signo <= 0
or signo >= NSI.

commit fab94894d5c5b25d24010f823515fb53822d6623

hurd: Fix hang in _hurd_raise_signal from pthread_kill

When ss is not NULL, it is assumed to be locked.

* hurd/hurd-raise.c (_hurd_raise_signal): Unlock before returning an
error if ss is not NULL.
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-06-07
hurd-i386/git-WAIT.diff Committed for 2.33

commit c57fe5462ba5eb7331a223bbb7abd8ae273747c1

hurd S_msg_report_wait: Fix reporting ports

This fixes the parameter order of MSG_EXAMINE, thus fixing the detection
of e.g. fd ports for nicer output in ps WAIT output.

commit dba88fb3ed3e70d2ad797f447a2a894b0891a5d7

hurd S_msg_report_wait: Fix detecting fd ports

_hurd_init_dtable stays set to non-NULL, so we have to run through both
_hurd_init_dtable and _hurd_dtable.

diff --git a/hurd/report-wait.c b/hurd/report-wait.c
index 487a5fb05a..752d0cc1c4 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-11-23
hurd-i386/git-pthread_link_tests.diff Committed for 2.32

commit dd7a8ad7ba25cb2269b306758c7d97d4a95527e6

pthread: Move back linking rules to nptl and htl

d6d74ec16 ('htl: Enable more tests') moved the linking rules from
nptl/Makefile and htl/Makefile to the shared sysdeps/pthread/Makefile. But
e.g. on powerpc some tests are added in sysdeps/powerpc/Makefile, which is
included *after* sysdeps/pthread/Makefile, and thus the tests don't get
affected by the rules and fail to link. For now let's just copy over the
set of rules in both nptl/Makefile and htl/Makefile.

* sysdeps/pthread/Makefile: Move libpthread linking rules to...
* htl/Makefile: ... here and...
* nptl/Makefile: ... there.

===================================================================
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-06-08
hurd-i386/git-libpthread_syms.diff commited for 2.32

commit bc9cf8fbe8eafe375719ad869ab81609cfc3529c

htl: Fix linking static tests by factorizing the symbols list

libpthread_syms.a will contain the symbols that libc tries to get from
libpthread, to be used by the system, but also by tests.

* htl/libpthread.a, htl/libpthread_pic.a: Link libpthread_syms.a and Move EXTERN
references to...
* htl/libpthread_syms.a: ... new file. Add missing
__pthread_enable_asynccancel reference.
* htl/Makefile: Install libpthread_syms.a and link it into static tests.

diff --git a/htl/Makefile b/htl/Makefile
index 2de98e1774..c424bd512b 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-06-10
hurd-i386/git-libpthread-nodelete.diff Commited for 2.32

commit e2b9d562d1e024fda6d10f0f272521bf20fa664f

htl: initialize first and prevent from unloading

libc does not have codepaths for reverting the load of a libpthread.

* htl/Makefile (LDFLAGS-pthread.so): Pass -z nodelete -z initfirst to
linker.

diff --git a/htl/Makefile b/htl/Makefile
index c424bd512b..326a920fb3 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-06-14
hurd-i386/git-cthreads.diff Commited for 2.33

commit 9446e02b0d2e94da4ebe9df6e2c5d23adc0f1d7d

hurd: Remove some remnants of cthreads

Libc has actually been using mach's lock-internal.h mutex for a long
time already.

===================================================================
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-11-14
hurd-i386/git-cthreads-symbols.diff Commited for 2.33

commit f9ba73d056721ff61160a46438fd8ebf11d9aeee

htl: Add missing symbols

hurd/hurdsig.c needs to detect whether __pthread_detach and
__pthread_create are available, so they need to be exposed.
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-03
hurd-i386/git-libpthread_plt.diff Commited for 2.33

commit 7c331116971d38e57703af4097ed13ab6bef91d0

htl: Add hidden def for __pthread_create/detach

to avoid a PLT.
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-03
hurd-i386/git-lll-initializer.diff Commited for 2.33

commit 059e60887b3244eb7ec0d764defe515fd525f513

hurd: Rename LLL_INITIALIZER to LLL_LOCK_INITIALIZER

To get coherent with other ports.

diff --git a/hurd/setauth.c b/hurd/setauth.c
index 5493db5e5d..b1037172ba 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-13
hurd-i386/sysvshm-lll.diff To be folded into tg-sysvshm.diff once upgraded to 2.33

===================================================================
no
hurd-i386/git-lll-ptr.diff Commited for 2.33

commit 3934901a7444329d18b5edc6cb0d91fed35aeaaf

hurd: make lll_* take a variable instead of a ptr

To be coherent with other ports, let's make lll_* take a variable, and
rename those that keep taking a ptr into __lll_*.

===================================================================
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-13
hurd-i386/git-ld-library-path-checks.diff Commited for 2.33

commit 3dbbd2ff92b1a0a2465461ee049e3e2813b73fa4

Add {,sysdep-}ld-library-path make variable

On GNU/Hurd we not only need $(common-objpfx) in LD_LIBRARY_PATH when loading
dynamic objects, but also $(common-objpfx)/mach and $(common-objpfx)/hurd. This
adds an ld-library-path variable to be used as LD_LIBRARY_PATH basis in
Makefiles, and a sysdep-ld-library-path variable for sysdeps to add some
more paths, here mach/ and hurd/.

diff --git a/Makeconfig b/Makeconfig
index dfda418aac..8074613b85 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-11-13
hurd-i386/git-lll-wait-intr.diff Commited for 2.33

commit 1c3c8e342a3973fc5e1ddcba7d3e9b68dfe9a25b

hurd: Add __lll_abstimed_wait_intr

For semaphores, we need an interruptible version of low-level locks.

===================================================================
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-13
hurd-i386/git-lll-private.diff Commited for 2.33

commit bcbabb9e6c14db9f35ed83862e88a6d986fc7a69

hurd: Add LLL_PRIVATE and LLL_SHARED

diff --git a/mach/lowlevellock.h b/mach/lowlevellock.h
index b872d0fe1e..9798d153cf 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-13
hurd-i386/git-futex-internal.diff Commited for 2.33

commit 65e43d5ad22ff527fd534679d357245f515bf308

htl: Add futex-internal.h

That provides futex_supports_pshared

diff --git a/sysdeps/htl/futex-internal.h b/sysdeps/htl/futex-internal.h
new file mode 100644
index 0000000000..2b7a13aff0
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-13
hurd-i386/git-libc-open.diff Commited for 2.33

commit a6c9f54a3471a527ff502f26e3a1c1b03ab39d6e

hurd: Add __libc_open and __libc_close

Needed by libpthread for sem_open and sem_close

diff --git a/hurd/Versions b/hurd/Versions
index 1aad27d91f..b66d37be07 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-13
hurd-i386/git-pthread_get_cleanup_stack.diff Commited in 2.32

commit f1cd3407e4c6767e0bbe2ca122b713c6581b8d67

htl: clean __pthread_get_cleanup_stack hidden proto

===================================================================
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-02-09
hurd-i386/git-libpthread-testcancel.diff Commited in 2.32

commit 59b7fe99f2593682ba779fe0faa8f1156d48d087

htl: Add support for libc cancellation points

===================================================================
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-02-09
hurd-i386/git-SEM_VALUE_MAX.diff Commited in 2.32

commit 5e77ec7c6e64d67f048caa5d4dd81f10fca3dffc

htl: Add support for semaphore maximum value

diff --git a/sysdeps/mach/hurd/bits/local_lim.h b/sysdeps/mach/hurd/bits/local_lim.h
index 348eee74bb..8e781e4965 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-02-09
hurd-i386/git-sem-pshared.diff Commited for 2.33

commit 4702ba8c1726ef5b692fbca1255b632b8e81e8c7

htl: Add pshared semaphore support

The implementation is extremely similar to the nptl implementation, but
with slight differences in the futex interface. This fixes some of BZ
25521.

===================================================================
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-13
hurd-i386/git-sem-open-init.diff Submitted for 2.33

commit e453b54b02204e0bc4a36a865ecc0c82058f4f9d

pthread: Move semaphore initialization for open to semaphoreP.h

This allows to easily reuse all of the sem_open/sem_close/sem_unlink
implementations in the various ports.
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-13
hurd-i386/git-sem-open.diff Submitted for 2.33

commit 257e4e7b576d54ab943d73dcda64c9a62c15b907

htl: Get sem_open/sem_close/sem_unlink support

This just moves the existing nptl implementation to reuse as it is in
htl.

===================================================================
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-13
hurd-i386/git-siginfo_uesp.diff Committed for 2.33

commit e0aec6c83374286ffac44ee1b0e628894b7102e3

hurd: Make trampoline fill siginfo ss_sp from sc_uesp

Mach actually rather fills the uesp field, not esp.

diff --git a/sysdeps/mach/hurd/i386/trampoline.c b/sysdeps/mach/hurd/i386/trampoline.c
index 4a9cab1332..1777d0769d 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-21
hurd-i386/git-mmap-EINVAL.diff Committed for 2.33

commit b74233d0092c9ee6a2faee5adb375b3151bdc99c

hurd: Also turn KERN_INVALID_ADDRESS to EINVAL

When e.g. mmap is passed an invalid address we would return
KERN_INVALID_ADDRESS, while POSIX applications would expect EINVAL.

diff --git a/hurd/hurd.h b/hurd/hurd.h
index c6e88a63c2..5fa7be5add 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-19
hurd-i386/git-waitid.diff Committed for 2.33

commit f6abd970284a06380cd9d905f43da104bd49fc95 (HEAD -> master, jolly/master)

hurd: Add WSTOPPED/WCONTINUED/WEXITED/WNOWAIT support [BZ #23091]

The new __proc_waitid RPC now expects WEXITED to be passed, allowing to
properly implement waitid, and thus define the missing W* macros
(according to FreeBSD values).

===================================================================
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-28
hurd-i386/git-hurd-version.diff Committed for 2.33

commit 016c64236dee6e28f09c10ba38f274aad7205f95

hurd: Accept including hurd/version.h

We need it to get the RPC API version.

diff --git a/scripts/check-local-headers.sh b/scripts/check-local-headers.sh
index 837b3e9c70..cb66d6e7e3 100755
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2020-12-29
hurd-i386/git-mmap_addr.diff commit b47b07c92d82df497ad4e3abebfdab51be5d0546

hurd: Fix mmap(!MAP_FIXED) on bogus address

In the !MAP_FIXED case, when a bogus address is given mmap should pick up a
valide address rather than returning EINVAL: Posix only talks about
EINVAL for the MAP_FIXED case.

This fixes long-running ghc processes.

diff --git a/sysdeps/mach/hurd/mmap.c b/sysdeps/mach/hurd/mmap.c
index ed8faadee8..ea0e61d571 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2021-01-04
hurd-i386/git-tiocflush.diff Committed for 2.34

commit 36231bee7ab36d59dd121ea85b91411ae86945f3

hurd TIOCFLUSH: Cope BSD 4.1 semantic

BSD 4.1 did not have an argument for TIOCFLUSH, BSD 4.2 added it. There
are still a lot of applications out there that pass a NULL argument to
TIOCFLUSH, so we should rather cope with it.

diff --git a/sysdeps/mach/hurd/ioctl.c b/sysdeps/mach/hurd/ioctl.c
index 662e8ee919..0d5bc176d1 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2021-02-01
i386/local-biarch.diff # DP: Description: Allow ldconfig to work on i386/x86-64 biarch systems
# DP: Related bugs:
# DP: Dpatch author: Daniel Jacobowitz
# DP: Patch author: Daniel Jacobowitz
# DP: Upstream status: Debian-Specific
# DP: Status Details: based on Ubuntu change by Jeff Bailey
# DP: Date: 2005-10-13
no
i386/unsubmitted-quiet-ldconfig.diff no
riscv64/local-asin-acos-raise-invalid.diff This workarounds GCC bug PR 95115 introduced in GCC 10. This is similar to
what is done in the float version.
no
kfreebsd/submitted-waitid.diff http://sourceware.org/bugzilla/show_bug.cgi?id=15544



diff --git a/bits/waitflags.h b/bits/waitflags.h
index 59215f6..73fd714 100644
no
kfreebsd/submitted-auxv.diff https://sourceware.org/bugzilla/show_bug.cgi?id=15794 no
kfreebsd/local-config_h_in.patch 2009-05-23 Aurelien Jarno <aurelien@aurel32.net>

* config.h.in (__KFREEBSD_KERNEL_VERSION): Add.
no
kfreebsd/local-grantpt.diff no
kfreebsd/local-sysdeps.diff no
kfreebsd/local-fbtl.diff no
kfreebsd/local-fbtl-depends.diff no
kfreebsd/local-scripts.diff no
kfreebsd/local-getaddrinfo-freebsd-kernel.diff no
kfreebsd/local-no-execfn.diff AT_EXECFN is Linux specific no
m68k/local-dwarf2-buildfix.diff # DP: Description: Adding empty m68k framestate.c not to build for dwarf2.
# DP: Related bugs:
# DP: Dpatch author: GOTO Masanori <gotom@debian.org>
# DP: Patch author: GOTO Masanori <gotom@debian.org>
# DP: Upstream status: Debian-Specific
# DP: Status Details: m68k uses sjlj exceptions, not dwarf2 unwind.
# DP: This patch adds empty framestate.c for m68k to avoid
# DP: dwarf2 build failure.
# DP: Date: 2003-07-19 (Update 2005-03-16 gotom)

2005-03-16 GOTO Masanori <gotom@debian.org>

* sysdeps/m68k/unwind-pe.c: Update to fix compilation failure.

2003-07-19 GOTO Masanori <gotom@debian.org>

* sysdeps/m68k/framestate.c: Add to fix compilation failure
with sjlj exception, suggested by Philip Blundell.
no
m68k/local-reloc.diff # DP: Description: binutils bug workaround
# DP: Related bugs: #263601: m68k: workaround for binutils problem
# DP: Dpatch author: Roman Zippel <zippel@linux-m68k.org>
# DP: Patch author: Richard Zidlicky <rz@linux-m68k.org>
# DP: Upstream status: Debian-Specific
# DP: Status Details: Actual fix is to modify m68k binutils.
# DP: Date: 2004-08-09
no
m68k/submitted-gcc34-seccomment.diff # DP: Description: Make glibc-2.3.5 compile with gcc-3.4/4.0 + binutils 2.16
# on m68k fixed by adding #APP.
# DP: Related bugs:
# DP: Dpatch author: GOTO Masanori <gotom@debian.org>
# DP: Patch author: Andreas Schwab <schwab@suse.de>
# DP: Upstream status: Pending
# DP: Status Details:
# DP: Date: 2005-08-03
Andreas Schwab <schwab@suse.de> no
mips/submitted-rld_map.diff 2010-05-20 Aurelien Jarno <aurelien@aurel32.net>

* sysdeps/mips/dl-machine.h (ELF_MACHINE_DEBUG_SETUP): test for
RLD_MAP pointer before using it.
no
powerpc/local-powerpc8xx-dcbz.diff no
sh4/local-fpscr_values.diff no
all/local-alias-et_EE.diff no
all/local-remove-manual.diff The GNU Libc Reference manual has to be removed for licensing reasons.
But some files have a dependency on manual/errno.texi; the easiest
solution is to drop those dependencies and make sure that MAKEINFO=:
so that no target depends on manual/*.texi files.
no
all/local-ru_RU.diff # DP: Description: Change default charset for 'russian' locale alias
# DP: Related bugs: #62586
# DP: Dpatch author: Ben Collins
# DP: Patch author: Alistair McKinstry
# DP: Upstream status: Submitted
# DP: Status Details: http://sources.redhat.com/bugzilla/show_bug.cgi?id=120
# DP: Date: 2002-03-10
no
all/local-ldd.diff 2013-05-11 Aurelien Jarno <aurelien@aurel32.net>

* elf/ldd.bash.in: Verify the dynamic linker is working before
using it.
no
all/local-nis-shadow.diff no
all/submitted-po-fr-fixes.diff 2014-05-05 Aurelien Jarno <aurelien@aurel32.net>

* po/fr.po: Fix French translation of inappropriate.

diff --git a/po/fr.po b/po/fr.po
index f73622a..3625de1 100644
no
any/local-asserth-decls.diff # DP: Description: /usr/include/assert.h
# DP: One must be allowed to include <assert.h> multiple times with different
# DP: values for NDEBUG, so the file is not protected against multiple
# DP: inclusions. Unfortunately this means that the declarations for
# DP: __assert_fail() and the like may occur multiple times in a compilation
# DP: unit, causing gcc to issue a batch of warnings.
# DP: I believe this can be fixed by protecting the declarations (but only
# DP: those declarations) against repetition.
# DP: Author: Jeroen T. Vermeulen <jtv@xs4all.nl>
# DP: Upstream status: Not submitted
# DP: Status Details: Plan to submit
# DP: Date: 2003-01-01
no
any/local-bindresvport_blacklist.diff Patch from the OpenSUSE glibc no
any/local-fhs-linux-paths.diff # DP: Description: Correct linux paths for FHS
# DP: Author: Unknown
# DP: Upstream status: Debian-Specific
# DP: Status Details: GNU doesn't follow the FHS.
# DP: Date: Unknown
no
any/local-fhs-nscd.diff no
any/local-ld-multiarch.diff 2012-05-01 Aurelien Jarno <aurelien@aurel32.net>

* elf/Makefile(trusted-dirs.st): Fix DL_DST_LIB computation with
two level slibdir directories.

2009-09-08 Aurelien Jarno <aurelien@aurel32.net>

* Makeconfig: add support for multiarch compat directories.
no
any/local-ldso-disable-hwcap.diff # DP: Allow hwcap's to be disabled with the existence of a file. This
# DP: makes it easier to do upgrades with optimized (hwcap) library
# DP: packages.
# DP: Author: Rewritten by Daniel Jacobowitz <dan@debian.org>
# DP: Upstream status: Debian-Specific
# DP: Status Details: This isn't going to be acceptable upstream, we
# DP: only need it because we support in-place upgrades.
# DP: Date: 2003-10-28, (Updated 2005-01-02 gotom, 2007-05-20 aurel32)
no
any/local-nss-upgrade.diff # DP: This patch makes future upgrades easier. It resolves problems with
# DP: running daemons having NSS modules upgraded out from under them.
no
any/local-stubs_h.diff no
any/local-tcsetaddr.diff # All lines beginning with `# DP:' are a description of the patch.
# DP: Description: tcsetattr sanity check on PARENB/CREAD/CSIZE for ptys
# DP: Related bugs: 218131
# DP: Author: Jeff Licquia <licquia@progeny.com>
# DP: Upstream status: [In CVS | Debian-Specific | Pending | Not submitted ]
# DP: Status Details:
# DP: Date: 2003-10-29
no
any/local-nss-overflow.diff 2009-01-12 Arthur Loiret <aloiret@debian.org>

nss/nss_files/files-parse.c: Include <limits.h>.
(INT_FIELD): Convert field to uintmax_t and check for 32-bit overflow.
(INT_FIELD_MAYBE_NULL): Likewise.
no
any/submitted-missing-etc-hosts.diff no
any/submitted-bits-fcntl_h-at.diff 2012-10-08 Wookey <wookey@wookware.org>

* include AT_* defines in sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h

2009-11-19 Aurelien Jarno <aurelien@aurel32.net>

* io/fcntl.h: Move AT_* defines to...
* sysdeps/mach/hurd/bits/fcntl.h: ...here.
* sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: ...here.
* sysdeps/unix/sysv/linux/s390/bits/fcntl.h: ...here.
* sysdeps/unix/sysv/linux/sh/bits/fcntl.h: ...here.
* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: ...here.
* sysdeps/unix/sysv/linux/x86/bits/fcntl.h: ...here.

2009-11-19 Aurelien Jarno <aurelien@aurel32.net>

* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Define AT_*
constants.
* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Define AT_*
constants.
* sysdeps/unix/sysv/linux/hppa/bits/fcntl.h: Define AT_*
constants.
* sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Define AT_*
constants.
* sysdeps/unix/sysv/linux/m68k/bits/fcntl.h: Define AT_*
constants.
* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Define AT_*
constants.
no
any/submitted-nptl-invalid-td.patch 2010-02-27 Aurelien Jarno <aurelien@aurel32.net>

* pthreadP.h(INVALID_TD_P, INVALID_NOT_TERMINATED_TD_P): detect
NULL pointers.
no
any/local-ldconfig-multiarch.diff make ldconfig use the built-in system paths Make ldconfig use the same view of built-in system paths that ld.so does,
instead of just using SLIBDIR and LIBDIR; this corrects a failure of
ldconfig to cache libraries in non-multiarch directories when building for
multiarch, even though they're on the system path.
Steve Langasek <steve.langasek@linaro.org> no
any/local-disable-libnss-db.diff Disable libnss-db as the format is not compatible with the libnss-db package, and is
architecture dependent.
no
any/local-revert-bz13979.diff Warn if user requests __FORTIFY_SOURCE but it is disabled
Warn if user requests __FORTIFY_SOURCE but it is disabled

[BZ #13979]
* include/features.h: Warn if user requests __FORTIFY_SOURCE
checking but the checks are disabled for any reason.
Roland Mc Grath <roland@hack.frob.com> no 2012-05-08
any/unsubmitted-ldso-machine-mismatch.diff no
any/local-ldconfig-ignore-ld.so.diff diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index 4211f4c..6425f8e 100644
no
any/local-bootstrap-headers.diff Taken from EGLIBC, r1484 + r1525

2018-03-09 Aurelien Jarno <aurelien@aurel32.net>

* Makefile (install-headers): Amend to install gnu/lib-names-$abi.h.

2014-07-30 Helmut Grohne <helmut@subdivi.de>

* With the advent of multilib gnu/stubs.h became a meta-header that
includes the correct stubs-$abi.h. So install gnu/stubs.h as usual
and install stubs-bootstrap.h as gnu/stubs-$abi.h

2007-02-20 Jim Blandy <jimb@codesourcery.com>

* Makefile (install-headers): Preserve old behavior: depend on
$(inst_includedir)/gnu/stubs.h only if install-bootstrap-headers
is set; otherwise, place gnu/stubs.h on the 'install-others' list.

2007-02-16 Jim Blandy <jimb@codesourcery.com>

* Makefile: Amend make install-headers to install everything
necessary for building a cross-compiler. Install gnu/stubs.h as
part of 'install-headers', not 'install-others'.
If install-bootstrap-headers is 'yes', install a dummy copy of
gnu/stubs.h, instead of computing the real thing.
* include/stubs-bootstrap.h: New file.
no
any/submitted-resolv-unaligned.diff diff --git a/resolv/res_mkquery.c b/resolv/res_mkquery.c
index d80b5318e5..99d7d96027 100644
no
any/local-cudacc-float128.diff Turn off HAVE_FLOAT128 for CUDACC and ICC compilers. Adam Conrad <adconrad@0c3.net> no 2017-10-11
any/submitted-ld.so-cache-new-format.diff 2018-09-16 Josh Triplett <josh@joshtriplett.org>

* elf/ldconfig.c: Default to the new format for ld.so.cache. glibc has
supported this format for 18+ years.
* elf/dl-cache.c (_dl_load_cache_lookup): Reorder conditionals to look
for the new format first.
no
any/local-test-install.diff Use install_root for test destination override, not DESTDIR Adam Conrad <adconrad@ubuntu.com> no 2020-02-08
any/git-surplus-tls-accounting.diff commit ffb17e7ba3a5ba9632cee97330b325072fbe41dd

rtld: Avoid using up static TLS surplus for optimizations [BZ #25051]

On some targets static TLS surplus area can be used opportunistically
for dynamically loaded modules such that the TLS access then becomes
faster (TLSDESC and powerpc TLS optimization). However we don't want
all surplus TLS to be used for this optimization because dynamically
loaded modules with initial-exec model TLS can only use surplus TLS.

The new contract for surplus static TLS use is:

- libc.so can have up to 192 bytes of IE TLS,
- other system libraries together can have up to 144 bytes of IE TLS.
- Some "optional" static TLS is available for opportunistic use.

The optional TLS is now tunable: rtld.optional_static_tls, so users
can directly affect the allocated static TLS size. (Note that module
unloading with dlclose does not reclaim static TLS. After the optional
TLS runs out, TLS access is no longer optimized to use static TLS.)

The default setting of rtld.optional_static_tls is 512 so the surplus
TLS is 3*192 + 4*144 + 512 = 1664 by default, the same as before.

Fixes BZ #25051.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 17796419b5fd694348cceb65c3f77601faae082c

rtld: Account static TLS surplus for audit modules

The new static TLS surplus size computation is

surplus_tls = 192 * (nns-1) + 144 * nns + 512

where nns is controlled via the rtld.nns tunable. This commit
accounts audit modules too so nns = rtld.nns + audit modules.

rtld.nns should only include the namespaces required by the
application, namespaces for audit modules are accounted on top
of that so audit modules don't use up the static TLS that is
reserved for the application. This allows loading many audit
modules without tuning rtld.nns or using up static TLS, and it
fixes

FAIL: elf/tst-auditmany

Note that DL_NNS is currently a hard upper limit for nns, and
if rtld.nns + audit modules go over the limit that's a fatal
error. By default rtld.nns is 4 which allows 12 audit modules.

Counting the audit modules is based on existing audit string
parsing code, we cannot use GLRO(dl_naudit) before the modules
are actually loaded.

commit 0c7b002fac12dcb2f53ba83ee56bb3b5d2439447

rtld: Add rtld.nns tunable for the number of supported namespaces

TLS_STATIC_SURPLUS is 1664 bytes currently which is not enough to
support DL_NNS (== 16) number of dynamic link namespaces, if we
assume 192 bytes of TLS are reserved for libc use and 144 bytes
are reserved for other system libraries that use IE TLS.

A new tunable is introduced to control the number of supported
namespaces and to adjust the surplus static TLS size as follows:

surplus_tls = 192 * (rtld.nns-1) + 144 * rtld.nns + 512

The default is rtld.nns == 4 and then the surplus TLS size is the
same as before, so the behaviour is unchanged by default. If an
application creates more namespaces than the rtld.nns setting
allows, then it is not guaranteed to work, but the limit is not
checked. So existing usage will continue to work, but in the
future if an application creates more than 4 dynamic link
namespaces then the tunable will need to be set.

In this patch DL_NNS is a fixed value and provides a maximum to
the rtld.nns setting.

Static linking used fixed 2048 bytes surplus TLS, this is changed
so the same contract is used as for dynamic linking. With static
linking DL_NNS == 1 so rtld.nns tunable is forced to 1, so by
default the surplus TLS is reduced to 144 + 512 = 656 bytes. This
change is not expected to cause problems.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 4c6e0415ef206a595c62d5d37e3b9a821782c533

elf: Simplify handling of lists of audit strings

All list elements are colon-separated strings, and there is a hard
upper limit for the number of audit modules, so it is possible to
pre-allocate a fixed-size array of strings to which the LD_AUDIT
environment variable and --audit arguments are added.

Also eliminate the global variables for the audit list because
the list is only needed briefly during startup.

There is a slight behavior change: All duplicate LD_AUDIT environment
variables are now processed, not just the last one as before. However,
such environment vectors are invalid anyway.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Florian Weimer <fweimer@redhat.com> no 2020-04-03
any/git-ld.so-cache-endianness-markup.diff commit 84ba719b260551918965d0a433914de683087645

elf: Add endianness markup to ld.so.cache (bug 27008)

Use a reserved byte in the new format cache header to indicate whether
the file is in little endian or big endian format. Eventually, this
information could be used to provide a unified cache for qemu-user
and similiar scenarios.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Florian Weimer <fweimer@redhat.com> no 2020-12-04
any/local-CVE-2021-33574-mq_notify-use-after-free.diff This is basically a backport of the following upstream commits below with
__pthread_attr_copy implemented as a static function in mq_notify.c Indeed it
has been added upstream in glibc 2.32 and is exported as a GLIBC_PRIVATE symbol
from libpthread.so while __mq_notify is exported by librt.so. As Debian
supports online upgrades, We need to support the case where 1) a process is
started loading libpthread.so, 2) the glibc libraries are upgraded 3) librt.so
is dlopened. This scenario might happens for instance with OpenJDK.

commit 331c6e8a184167dd21a9f0b3fc165aeefea6eeca

nptl: Add __pthread_attr_copy for copying pthread_attr_t objects

commit 79474303223c5665bec75ffbdb2a86ee04a2514b

librt: fix NULL pointer dereference (bug 28213)

Helper thread frees copied attribute on NOTIFY_REMOVED message
received from the OS kernel. Unfortunately, it fails to check whether
copied attribute actually exists (data.attr != NULL). This worked
earlier because free() checks passed pointer before actually
attempting to release corresponding memory. But
__pthread_attr_destroy assumes pointer is not NULL.

So passing NULL pointer to __pthread_attr_destroy will result in
segmentation fault. This scenario is possible if
notification->sigev_notify_attributes == NULL (which means default
thread attributes should be used).

Signed-off-by: Nikita Popov <npv1310@gmail.com>
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
(cherry picked from commit b805aebd42364fe696e417808a700fdb9800c9e8)

commit 42d359350510506b87101cf77202fefcbfc790cb

Use __pthread_attr_copy in mq_notify (bug 27896)

Make a deep copy of the pthread attribute object to remove a potential
use-after-free issue.

commit 217b6dc298156bdb0d6aea9ea93e7e394a5ff091

Fix use of __pthread_attr_copy in mq_notify (bug 27896)

__pthread_attr_copy can fail and does not initialize the attribute
structure in that case.

If __pthread_attr_copy is never called and there is no allocated
attribute, pthread_attr_destroy should not be called, otherwise
there is a null pointer dereference in rt/tst-mqueue6.

Fixes commit 42d359350510506b87101cf77202fefcbfc790cb
("Use __pthread_attr_copy in mq_notify (bug 27896)").

Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>

diff --git a/sysdeps/unix/sysv/linux/mq_notify.c b/sysdeps/unix/sysv/linux/mq_notify.c
index f288bac477..e78ae74f0b 100644
Florian Weimer <fweimer@redhat.com> no 2021-06-01
any/local-CVE-2023-4911.patch [PATCH v2] tunables: Terminate immediately if end of input is reached
The string parsing routine may end up writing beyond bounds of tunestr
if the input tunable string is malformed, of the form name=name=val.
This gets processed twice, first as name=name=val and next as name=val,
resulting in tunestr being name=name=val:name=val, thus overflowing
tunestr.

Terminate the parsing loop at the first instance itself so that tunestr
does not overflow.
Siddhesh Poyarekar <siddhesh@redhat.com> no 2023-09-11
any/local-qsort-memory-corruption.patch diff -rup a/stdlib/qsort.c b/stdlib/qsort.c no

All known versions for source package 'glibc'

Links