* 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.
Gbp-Pq: Topic any
Gbp-Pq: Name local-bootstrap-headers.diff
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.
Gbp-Pq: Topic any
Gbp-Pq: Name local-nss-overflow.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
Gbp-Pq: Topic any
Gbp-Pq: Name local-tcsetaddr.diff
# DP: Make it so that a missing /etc/ld.so.conf does not cause an error
# DP: message, unless --verbose is enabled. This keeps the debian
# DP: installer from barfing during bootstrap of the system.
# DP:
# DP: Updated by gotom, the previous one seems being wrong because it supresses
# DP: _all_ warnings about "can't open configuration file". otoh, I introduce
# DP: newer patches. it should be checked using chroot and should be contacted
# DP: to the upstream.
# DP: Date: (Updated 2005-01-02 gotom)
# 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)
Gbp-Pq: Topic any
Gbp-Pq: Name local-ldso-disable-hwcap.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
Gbp-Pq: Topic any
Gbp-Pq: Name local-asserth-decls.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.
Gbp-Pq: Topic all
Gbp-Pq: Name local-remove-manual.diff
* sysdeps/powerpc/mod-tlsopt-powerpc.c: Extract from
tst-tlsopt-powerpc.c with function name change and no test harness.
* sysdeps/powerpc/tst-tlsopt-powerpc.c: Remove body of test.
Call tls_get_addr_opt_test.
* sysdeps/powerpc/Makefile (LDFLAGS-tst-tlsopt-powerpc): Don't define.
(modules-names): Add mod-tlsopt-powerpc.
(mod-tlsopt-powerpc.so-no-z-defs): Define.
(tst-tlsopt-powerpc): Depend on .so.
* sysdeps/powerpc/powerpc64/tls-macros.h (__TLS_GET_ADDR): Don't
define. Expand use in TLS_GD and TLS_LD.
Gbp-Pq: Topic powerpc
Gbp-Pq: Name submitted-tst-tlsopt-powerpc.diff
# All lines beginning with `# DP:' are a description of the patch.
# DP: Description: Add CMOV to hwcap, for VIA C3 which is i686 class processor,
# DP: but does not have 686 optional instruction CMOV.
# DP: Author: GOTO Masanori <gotom@debian.org>
# DP: Upstream status: Not submitted
# DP: Status Details: Not submitted
# DP: Date: 2003-02-21
# DP: Updated 2003-10-12 by dan@debian.org for TLS
# DP: Updated 2004-01-02 to fix building with newer patches by jb.
# DP: Updated 2005-01-02 to fix building with newer patches by gotom.
2005-01-02 GOTO Masanori <gotom@debian.org>
* sysdeps/i386/dl-procinfo.h: Update to add CMOV for VIA C3 chip.
# 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
Samuel Thibault [Sat, 26 Aug 2017 09:09:24 +0000 (10:09 +0100)]
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>
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name tg-libc_rwlock_recursive.diff
Samuel Thibault [Sat, 26 Aug 2017 09:09:24 +0000 (10:09 +0100)]
hurd: Fix O_DIRECTORY | O_NOFOLLOW
Appending / to the path to be looked up makes us always follow a final
symlink, even with O_NOTRANS (since the final resolution is after the
'/'). In the O_DIRECTORY | O_NOFOLLOW case, we thus have to really open
the node and stat it, which we already do anyway, and check for
directory type.
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name tg-NOFOLLOW-DIRECTORY.diff
Samuel Thibault [Sat, 26 Aug 2017 09:09:24 +0000 (10:09 +0100)]
Fix SS_ONSTACK support
* sysdeps/mach/hurd/i386/sigreturn.c (__sigreturn2): New function,
unlocks SS and returns to the saved PC.
(__sigreturn): Do not unlock SS, and "return" into __sigreturn2 on the
thread stack instead of the saved PC.
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name tg-ONSTACK.diff
* hurd/hurdmalloc.c (malloc_fork_prepare): Rename to
_hurd_malloc_fork_prepare.
(malloc_fork_parent): Rename to _hurd_malloc_fork_parent.
(malloc_fork_child): Rename to _hurd_malloc_fork_child.
(_hurd_fork_prepare_hook): Drop malloc_fork_prepare.
(_hurd_fork_parent_hook): Drop malloc_fork_parent.
(_hurd_fork_child_hook): Drop malloc_fork_child.
* hurd/hurdmalloc.h (_hurd_malloc_fork_prepare,
_hurd_malloc_fork_parent, _hurd_malloc_fork_child): Add declarations.
* sysdeps/mach/hurd/fork.c (__fork): Call __malloc_fork_lock_parent
after locking locks (notably hurd_dtable_lock). Call
_hurd_malloc_fork_prepare after that. Call _hurd_malloc_fork_parent
before __malloc_fork_unlock_parent and _hurd_malloc_fork_child before
__malloc_fork_unlock_child.
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name cvs-mallocfork.diff
* hurd/Makefile: Add hurdlock.
* hurd/Versions: Added new entry to export the above interface.
* hurd/hurdlock.c: New file.
* hurd/hurdlock.h: New file.
* hurd/hurdpid.c: Include <lowlevellock.h>
(_S_msg_proc_newids): Use lll_wait to synchronize.
* hurd/hurdsig.c: (reauth_proc): Use __mutex_lock and __mutex_unlock.
* hurd/setauth.c: Include <hurdlock.h>, use integer for synchronization.
* hurd/sysvshm.c: Include <hurdlock.h>, use integer for synchronization.
* mach/Makefile: Remove unneeded file
* mach/lock-intern.h: Use lll to implement spinlocks.
* mach/lowlevellock.h: New file
* mach/mutex-init.c: Rewrite mutex initialization.
* sysdeps/mach/Makefile: Add libmachuser as dependencies for some libs.
* sysdeps/mach/libc-lock.h: Reimplemented libc internal locks
with lll, cleanup routines now use gcc's cleanup attribute
* sysdeps/mach/hurd/bits/errno.h: New errno values.
* sysdeps/mach/hurd/libc-lock.h: Removed file.
* sysdeps/mach/hurd/malloc-machine.h: Reimplemented malloc locks.
* sysdeps/mach/hurd/setpgid.c: (setpgid): Use gsync for synchronization.
* sysdeps/mach/hurd/setsid.c: (setsid): Likewise.
Samuel Thibault [Sat, 26 Aug 2017 09:09:24 +0000 (10:09 +0100)]
hurd: take __USE_EXTERN_INLINES into account
* hurd/hurd.h (__hurd_fail): Always declare function, and provide inline
version only if __USE_EXTERN_INLINES is defined.
* hurd/hurd/fd.h (_hurd_fd_get, _hurd_fd_error_signal, _hurd_fd_error,
__hurd_dfail, __hurd_sockfail): Likewise.
* mach/lock-intern.h (__spin_lock_init, __spin_lock, __mutex_lock,
__mutex_unlock, __mutex_trylock): Likewise.
* mach/mach/mig_support.h (__mig_strncpy): Likewise.
* sysdeps/generic/machine-lock.h (__spin_unlock, __spin_try_lock,
__spin_lock_locked): Likewise.
* sysdeps/generic/machine-sp.h (__thread_stack_pointer): Likewise.
* sysdeps/mach/i386/machine-lock.h (__spin_unlock, __spin_try_lock,
__spin_lock_locked): Likewise.
* hurd/hurd/port.h (_hurd_port_init, _hurd_port_locked_get,
_hurd_port_get, _hurd_port_free, _hurd_port_locked_set,
_hurd_port_set): Always declare functions, and provide inline version
only if __USE_EXTERN_INLINES is defined and _LIBC is defined and
NOT_IN_libc is not defined.
* hurd/hurd/signal.h (_hurd_self_sigstate, _hurd_critical_section_lock,
_hurd_critical_section_unlock): Likewise.
* hurd/hurd/threadvar.h (__hurd_threadvar_location_from_sp,
* __hurd_threadvar_location): Likewise.
* hurd/hurd/userlink.h (_hurd_userlink_link, _hurd_userlink_unlink,
_hurd_userlink_clear): Likewise.
* mach/spin-lock.c (__USE_EXTERN_INLINES): Define to 1.
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name tg-extern_inline.diff
Samuel Thibault [Sat, 26 Aug 2017 09:09:24 +0000 (10:09 +0100)]
Implement faccessat without AT_EACCESS flag
* hurd/hurd/fd.h: Include <fcntl.h>
(__hurd_at_flags): New function.
* hurd/lookup-at.c (__file_name_lookup_at): Replace flag computation
with call to __hurd_at_flags.
* include/unistd.h (__faccessat): Add declaration.
* sysdeps/mach/hurd/access.c (__access): Move implementation to
__faccessat, and replace it with a call to __faccessat.
* sysdeps/mach/hurd/euidaccess.c (__euidaccess): Replace implementation
with a call to __faccessat.
* sysdeps/mach/hurd/faccessat.c (faccessat): Rename into...
(__faccessat): ... this. Move implementation of __access into it when
AT_FLAGS does not contain AT_EACCESS. Make it call __hurd_at_flags, add
reauthenticate_cwdir_at helper to implement AT mechanism.
(faccessat): Define weak alias.
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name tg-faccessat.diff
* sysdeps/generic/libnsl.abilist: New file.
* sysdeps/generic/libutil.abilist: New file.
* sysdeps/mach/hurd/libhurduser.abilist: New file.
* sysdeps/mach/libmachuser.abilist: New file.
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name submitted-hurd-abilist.diff
David Michael [Sat, 26 Aug 2017 09:09:24 +0000 (10:09 +0100)]
Lookup the startup server through /servers/startup
* sysdeps/mach/hurd/reboot.c: Include <hurd/paths.h>
(reboot): Lookup _SERVERS_STARTUP instead of calling proc_getmsgport to get a
port to the startup server.
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name tg-reboot-startup.diff
Samuel Thibault [Sat, 26 Aug 2017 09:09:24 +0000 (10:09 +0100)]
Make F_RDLCK/F_WRLCK atomic
lockf(LOCK_EX) would for instance drop any existing shared lock before taking
the exclusive lock. F_RDLCK/F_WRLCK need atomic changes, so introduce and use
__LOCK_ATOM
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* misc/sys/file.h (__LOCK_ATOMIC): New macro.
* sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Use __LOCK_ATOMIC along LOCK_SH and
LOCK_EX.
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name tg-WRLCK-upgrade.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 commited, the other hasn't been yet, see Roland's
"Harumph" reply to
https://sourceware.org/ml/libc-alpha/2014-08/msg00408.html
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name submitted-bind_umask2.diff
Richard Braun [Sat, 26 Aug 2017 09:09:24 +0000 (10:09 +0100)]
Hurd: fix port leak in TLS
Depending on whether the thread is the main thread or not, the threading
library can have trouble determining whether the thread reference in the
TCB is valid. The simple solution is to let the threading library
initialize the TCB, and use a temporary reference when initializing TLS.
* sysdeps/mach/hurd/i386/tls.h (_hurd_tls_init): Use a temporary thread
reference.
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name tg-tls_thread_leak.diff
Richard Braun [Sat, 26 Aug 2017 09:09:24 +0000 (10:09 +0100)]
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.
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name tg-sigstate_thread_reference.diff
Thomas Schwinge [Sat, 26 Aug 2017 09:09:24 +0000 (10:09 +0100)]
pipe2
2008-12-17 Thomas Schwinge <tschwinge@gnu.org>
pipe2 for GNU Hurd.
* sysdeps/mach/hurd/pipe2.c: New file, copy from pipe.c. Evolve it to
implement __pipe2.
* sysdeps/mach/hurd/pipe.c (__pipe): Reimplement using __pipe2.
* sysdeps/mach/hurd/kernel-features.h (__ASSUME_PIPE2): Define.
Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name tg-pipe2.diff