diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2016-08-20 20:20:22 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2016-08-20 20:20:22 +0200 |
commit | ede31292993ca0b91a537fa2488dd750fd8d82fe (patch) | |
tree | 178a6fc851020f8564377a0c25d94ecb50f381d4 /hurd | |
parent | 312bb0760cc638453910739530150c6a0404cd42 (diff) | |
parent | 10ca877fa1bcccdd6c136060ec3804a426b7d291 (diff) |
Merge commit 'refs/top-bases/t/hurdsig-SA_SIGINFO' into t/hurdsig-SA_SIGINFO
Diffstat (limited to 'hurd')
85 files changed, 130 insertions, 133 deletions
diff --git a/hurd/Makefile b/hurd/Makefile index fb334d8ab5..1d4038e7f9 100644 --- a/hurd/Makefile +++ b/hurd/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2014 Free Software Foundation, Inc. +# Copyright (C) 1991-2015 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -17,12 +17,8 @@ subdir := hurd -all: - -# Some things below (but before including Rules) use configuration variables. include ../Makeconfig - headers = hurd.h $(interface-headers) \ $(addprefix hurd/,fd.h id.h port.h signal.h sigpreempt.h ioctl.h\ userlink.h resource.h threadvar.h lookup.h) diff --git a/hurd/Versions b/hurd/Versions index 83c8ab1826..77f5b4271e 100644 --- a/hurd/Versions +++ b/hurd/Versions @@ -1,32 +1,5 @@ -%define SHARED -%include <shlib-compat.h> - libc { GLIBC_2.0 { -%if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) - # These few symbols are here only for binary compatibility - # with the pre-versioning libc.so.0.2 ABI. Their replacements - # are in the GLIBC_2.1 version set. When the soname changes, - # these can be removed. - __getuids; - __hurd_file_name_lookup; - _hurd_proc_init; _hurd_umask; -%endif - - # These go into a different version set if GLIBC_2.0 compatibility - # is not required. See below. -%if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2) - # variables used for detecting cthreads - _cthread_exit_routine; _cthread_init_routine; - - # cthreads functions with stubs in libc - cthread_keycreate; cthread_getspecific; cthread_setspecific; - __libc_getspecific; - - # weak refs to libthreads functions that libc calls iff libthreads in use - cthread_fork; cthread_detach; -%endif - # necessary for the Hurd brk implementation _end; @@ -157,7 +130,6 @@ libc { __errno_location; } -%if !SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2) HURD_CTHREADS_0.3 { # weak refs to libthreads functions that libc calls iff libthreads in use cthread_fork; cthread_detach; @@ -169,5 +141,4 @@ libc { cthread_keycreate; cthread_getspecific; cthread_setspecific; __libc_getspecific; } -%endif } diff --git a/hurd/alloc-fd.c b/hurd/alloc-fd.c index 6254df6d04..fa5084593f 100644 --- a/hurd/alloc-fd.c +++ b/hurd/alloc-fd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2014 Free Software Foundation, Inc. +/* Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/catch-exc.c b/hurd/catch-exc.c index 536b711fab..be1d61de5a 100644 --- a/hurd/catch-exc.c +++ b/hurd/catch-exc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2014 Free Software Foundation, Inc. +/* Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/catch-signal.c b/hurd/catch-signal.c index aa4db02d9f..1f10b89e27 100644 --- a/hurd/catch-signal.c +++ b/hurd/catch-signal.c @@ -1,5 +1,5 @@ /* Convenience function to catch expected signals during an operation. - Copyright (C) 1996-2014 Free Software Foundation, Inc. + Copyright (C) 1996-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/compat-20.c b/hurd/compat-20.c index 29e15f8350..4d3b8a43c4 100644 --- a/hurd/compat-20.c +++ b/hurd/compat-20.c @@ -1,5 +1,5 @@ /* Old-versioned functions for binary compatibility with glibc-2.0. - Copyright (C) 1998-2014 Free Software Foundation, Inc. + Copyright (C) 1998-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/ctty-input.c b/hurd/ctty-input.c index 5068ccb6e1..7fd825ecef 100644 --- a/hurd/ctty-input.c +++ b/hurd/ctty-input.c @@ -1,5 +1,5 @@ /* _hurd_ctty_input -- Do an input RPC and generate SIGTTIN if necessary. - Copyright (C) 1995-2014 Free Software Foundation, Inc. + Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/ctty-output.c b/hurd/ctty-output.c index f95b4905f6..6e67245774 100644 --- a/hurd/ctty-output.c +++ b/hurd/ctty-output.c @@ -1,5 +1,5 @@ /* _hurd_ctty_output -- Do an output RPC and generate SIGTTOU if necessary. - Copyright (C) 1995-2014 Free Software Foundation, Inc. + Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/dtable.c b/hurd/dtable.c index de5d33afd3..ca2b35981a 100644 --- a/hurd/dtable.c +++ b/hurd/dtable.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2014 Free Software Foundation, Inc. +/* Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/exc2signal.c b/hurd/exc2signal.c index e52deb9bf6..ca4d7ad478 100644 --- a/hurd/exc2signal.c +++ b/hurd/exc2signal.c @@ -1,5 +1,5 @@ /* Translate Mach exception codes into signal numbers. Stub version. - Copyright (C) 1991-2014 Free Software Foundation, Inc. + Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/fchroot.c b/hurd/fchroot.c index 5ae91fbff3..3943eecf0f 100644 --- a/hurd/fchroot.c +++ b/hurd/fchroot.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2014 Free Software Foundation, Inc. +/* Copyright (C) 1999-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/fd-close.c b/hurd/fd-close.c index affd8eb6d6..865c5fa7f9 100644 --- a/hurd/fd-close.c +++ b/hurd/fd-close.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2014 Free Software Foundation, Inc. +/* Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/fd-read.c b/hurd/fd-read.c index 31140aeed6..cdedd2b263 100644 --- a/hurd/fd-read.c +++ b/hurd/fd-read.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2014 Free Software Foundation, Inc. +/* Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/fd-write.c b/hurd/fd-write.c index dca7fde92f..968c9e882f 100644 --- a/hurd/fd-write.c +++ b/hurd/fd-write.c @@ -1,5 +1,5 @@ /* _hurd_fd_write -- write to a file descriptor; handles job control et al. - Copyright (C) 1993-2014 Free Software Foundation, Inc. + Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/fopenport.c b/hurd/fopenport.c index d4d55161c9..11ccbbaada 100644 --- a/hurd/fopenport.c +++ b/hurd/fopenport.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2014 Free Software Foundation, Inc. +/* Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/get-host.c b/hurd/get-host.c index 508b5480de..b7bb0878a6 100644 --- a/hurd/get-host.c +++ b/hurd/get-host.c @@ -1,5 +1,5 @@ /* Get a host configuration item kept as the whole contents of a file. - Copyright (C) 1996-2014 Free Software Foundation, Inc. + Copyright (C) 1996-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/getdport.c b/hurd/getdport.c index 5e0318fb31..d17b1433be 100644 --- a/hurd/getdport.c +++ b/hurd/getdport.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2014 Free Software Foundation, Inc. +/* Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/hurd/geteuids.c b/hurd/geteuids.c index 9eb826ac6c..66fd1160bd 100644 --- a/hurd/geteuids.c +++ b/hurd/geteuids.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2014 Free Software Foundation, Inc. +/* Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/getumask.c b/hurd/getumask.c index 11a032eb2e..bf8531fafd 100644 --- a/hurd/getumask.c +++ b/hurd/getumask.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2014 Free Software Foundation, Inc. +/* Copyright (C) 1992-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurd-raise.c b/hurd/hurd-raise.c index 23e5dd6974..df1e9880cf 100644 --- a/hurd/hurd-raise.c +++ b/hurd/hurd-raise.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2014 Free Software Foundation, Inc. +/* Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurd.h b/hurd/hurd.h index 38bb2caa52..250f01ef3f 100644 --- a/hurd/hurd.h +++ b/hurd/hurd.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2014 Free Software Foundation, Inc. +/* Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurd/fd.h b/hurd/hurd/fd.h index adb865a3b6..c8a315d0ec 100644 --- a/hurd/hurd/fd.h +++ b/hurd/hurd/fd.h @@ -1,5 +1,5 @@ /* File descriptors. - Copyright (C) 1993-2014 Free Software Foundation, Inc. + Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurd/id.h b/hurd/hurd/id.h index 37431e3087..9458f3c382 100644 --- a/hurd/hurd/id.h +++ b/hurd/hurd/id.h @@ -1,5 +1,5 @@ /* User and group IDs. - Copyright (C) 1993-2014 Free Software Foundation, Inc. + Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurd/ioctl.h b/hurd/hurd/ioctl.h index 3af3f9f52f..4771426320 100644 --- a/hurd/hurd/ioctl.h +++ b/hurd/hurd/ioctl.h @@ -1,5 +1,5 @@ /* User-registered handlers for specific `ioctl' requests. - Copyright (C) 1993-2014 Free Software Foundation, Inc. + Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -68,6 +68,11 @@ extern int hurd_register_ioctl_handler (int first_request, int last_request, _HURD_HANDLE_IOCTLS_1 (handler, ioctl, ioctl, ioctl##_only) +/* Install a new CTTYID port, atomically updating the dtable appropriately. + This consumes the send right passed in. */ + +void _hurd_locked_install_cttyid (mach_port_t cttyid); + /* Lookup the handler for the given ioctl request. */ ioctl_handler_t _hurd_lookup_ioctl_handler (int request); diff --git a/hurd/hurd/lookup.h b/hurd/hurd/lookup.h index 0abe5811d2..a02265ada2 100644 --- a/hurd/hurd/lookup.h +++ b/hurd/hurd/lookup.h @@ -1,5 +1,5 @@ /* Declarations of file name translation functions for the GNU Hurd. - Copyright (C) 1995-2014 Free Software Foundation, Inc. + Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurd/port.h b/hurd/hurd/port.h index a44369817b..98a9084737 100644 --- a/hurd/hurd/port.h +++ b/hurd/hurd/port.h @@ -1,5 +1,5 @@ /* Lightweight user references for ports. - Copyright (C) 1993-2014 Free Software Foundation, Inc. + Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurd/resource.h b/hurd/hurd/resource.h index bd5bd4bba1..e9931e528a 100644 --- a/hurd/hurd/resource.h +++ b/hurd/hurd/resource.h @@ -1,5 +1,5 @@ /* Resource limits for the Hurd. - Copyright (C) 1994-2014 Free Software Foundation, Inc. + Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -42,8 +42,8 @@ extern error_t _hurd_priority_which_map (enum __priority_which which, int who, /* Convert between Mach priority values and the priority values used by getpriority, setpriority, and nice. */ -#define MACH_PRIORITY_TO_NICE(prio) (2 * ((prio) - 12)) -#define NICE_TO_MACH_PRIORITY(nice) (12 + ((nice) / 2)) +#define MACH_PRIORITY_TO_NICE(prio) ((prio) - 25) +#define NICE_TO_MACH_PRIORITY(nice) ((nice) + 25) diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h index 1ec8824d67..396ff467be 100644 --- a/hurd/hurd/signal.h +++ b/hurd/hurd/signal.h @@ -1,5 +1,5 @@ /* Implementing POSIX.1 signals under the Hurd. - Copyright (C) 1993-2014 Free Software Foundation, Inc. + Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -158,7 +158,7 @@ extern void _hurd_sigstate_delete (thread_t thread); _HURD_SIGNAL_H_EXTERN_INLINE struct hurd_sigstate * _hurd_self_sigstate (void) { - struct hurd_sigstate **location = + struct hurd_sigstate **location = (struct hurd_sigstate **) (void *) __hurd_threadvar_location (_HURD_THREADVAR_SIGSTATE); if (*location == NULL) *location = _hurd_thread_sigstate (__mach_thread_self ()); @@ -187,7 +187,7 @@ extern int _hurd_core_limit; _HURD_SIGNAL_H_EXTERN_INLINE void * _hurd_critical_section_lock (void) { - struct hurd_sigstate **location = + struct hurd_sigstate **location = (struct hurd_sigstate **) (void *) __hurd_threadvar_location (_HURD_THREADVAR_SIGSTATE); struct hurd_sigstate *ss = *location; if (ss == NULL) @@ -195,9 +195,8 @@ _hurd_critical_section_lock (void) /* The thread variable is unset; this must be the first time we've asked for it. In this case, the critical section flag cannot possible already be set. Look up our sigstate structure the slow - way; this locks the sigstate lock. */ + way. */ ss = *location = _hurd_thread_sigstate (__mach_thread_self ()); - __spin_unlock (&ss->lock); } if (! __spin_try_lock (&ss->critical_section_lock)) @@ -219,7 +218,7 @@ _hurd_critical_section_unlock (void *our_lock) else { /* It was us who acquired the critical section lock. Unlock it. */ - struct hurd_sigstate *ss = our_lock; + struct hurd_sigstate *ss = (struct hurd_sigstate *) our_lock; sigset_t pending; _hurd_sigstate_lock (ss); __spin_unlock (&ss->critical_section_lock); diff --git a/hurd/hurd/sigpreempt.h b/hurd/hurd/sigpreempt.h index 3b2e99a307..76b7ca6753 100644 --- a/hurd/hurd/sigpreempt.h +++ b/hurd/hurd/sigpreempt.h @@ -1,5 +1,5 @@ /* Preemption of Hurd signals before POSIX.1 semantics take over. - Copyright (C) 1996-2014 Free Software Foundation, Inc. + Copyright (C) 1996-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurd/threadvar.h b/hurd/hurd/threadvar.h index b62f5a6d86..084ec5ef4e 100644 --- a/hurd/hurd/threadvar.h +++ b/hurd/hurd/threadvar.h @@ -1,5 +1,5 @@ /* Internal per-thread variables for the Hurd. - Copyright (C) 1994-2014 Free Software Foundation, Inc. + Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurd/userlink.h b/hurd/hurd/userlink.h index 39737c6895..2073376516 100644 --- a/hurd/hurd/userlink.h +++ b/hurd/hurd/userlink.h @@ -1,5 +1,5 @@ /* Support for chains recording users of a resource; `struct hurd_userlink'. - Copyright (C) 1994-2014 Free Software Foundation, Inc. + Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurd/xattr.h b/hurd/hurd/xattr.h index 259360fd45..43fc4d4f57 100644 --- a/hurd/hurd/xattr.h +++ b/hurd/hurd/xattr.h @@ -1,5 +1,5 @@ /* Access to extended attributes on files for GNU/Hurd. - Copyright (C) 2005-2014 Free Software Foundation, Inc. + Copyright (C) 2005-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdauth.c b/hurd/hurdauth.c index 5fb5e7c1db..450987926b 100644 --- a/hurd/hurdauth.c +++ b/hurd/hurdauth.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2014 Free Software Foundation, Inc. +/* Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdchdir.c b/hurd/hurdchdir.c index 6399df0f57..12f56b821c 100644 --- a/hurd/hurdchdir.c +++ b/hurd/hurdchdir.c @@ -1,5 +1,5 @@ /* Change a port cell to a directory by looking up a name. - Copyright (C) 1999-2014 Free Software Foundation, Inc. + Copyright (C) 1999-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdexec.c b/hurd/hurdexec.c index 6e2254b1a4..20cbed141c 100644 --- a/hurd/hurdexec.c +++ b/hurd/hurdexec.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2014 Free Software Foundation, Inc. +/* Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdfault.c b/hurd/hurdfault.c index 02a5021a25..7b9f2068ec 100644 --- a/hurd/hurdfault.c +++ b/hurd/hurdfault.c @@ -1,5 +1,5 @@ /* Handle faults in the signal thread. - Copyright (C) 1994-2014 Free Software Foundation, Inc. + Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdfault.h b/hurd/hurdfault.h index a26fcf8e44..05bbe820eb 100644 --- a/hurd/hurdfault.h +++ b/hurd/hurdfault.h @@ -1,5 +1,5 @@ /* Declarations for handling faults in the signal thread. - Copyright (C) 1994-2014 Free Software Foundation, Inc. + Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdfchdir.c b/hurd/hurdfchdir.c index 67d34aa0a6..2702c2d3ec 100644 --- a/hurd/hurdfchdir.c +++ b/hurd/hurdfchdir.c @@ -1,5 +1,5 @@ /* Change a port cell to a directory in an open file descriptor. - Copyright (C) 1999-2014 Free Software Foundation, Inc. + Copyright (C) 1999-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdhost.h b/hurd/hurdhost.h index 627d835539..3e83258538 100644 --- a/hurd/hurdhost.h +++ b/hurd/hurdhost.h @@ -1,5 +1,5 @@ /* Host configuration items kept as the whole contents of a file. - Copyright (C) 1996-2014 Free Software Foundation, Inc. + Copyright (C) 1996-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdid.c b/hurd/hurdid.c index c4086aa078..6497dbe34c 100644 --- a/hurd/hurdid.c +++ b/hurd/hurdid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2014 Free Software Foundation, Inc. +/* Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdinit.c b/hurd/hurdinit.c index 4c6a458d4d..184c975a31 100644 --- a/hurd/hurdinit.c +++ b/hurd/hurdinit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2014 Free Software Foundation, Inc. +/* Copyright (C) 1992-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -38,7 +38,7 @@ int __libc_argc; error_t _hurd_ports_use (int which, error_t (*operate) (mach_port_t)) { - if (__builtin_expect (_hurd_ports == NULL, 0)) + if (__glibc_unlikely (_hurd_ports == NULL)) /* This means that _hurd_init has not been called yet, which is normally only the case in the bootstrap filesystem, and there only in the early phases of booting. */ diff --git a/hurd/hurdioctl.c b/hurd/hurdioctl.c index 75307fe049..0a925cc63d 100644 --- a/hurd/hurdioctl.c +++ b/hurd/hurdioctl.c @@ -1,5 +1,5 @@ /* ioctl commands which must be done in the C library. - Copyright (C) 1994-2014 Free Software Foundation, Inc. + Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdkill.c b/hurd/hurdkill.c index ca25588f39..a7a515e3f6 100644 --- a/hurd/hurdkill.c +++ b/hurd/hurdkill.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2014 Free Software Foundation, Inc. +/* Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdlookup.c b/hurd/hurdlookup.c index 2ac7d5edf3..d410af1a49 100644 --- a/hurd/hurdlookup.c +++ b/hurd/hurdlookup.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2014 Free Software Foundation, Inc. +/* Copyright (C) 1992-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdmsg.c b/hurd/hurdmsg.c index d8dc56db7a..2a36c71640 100644 --- a/hurd/hurdmsg.c +++ b/hurd/hurdmsg.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2014 Free Software Foundation, Inc. +/* Copyright (C) 1992-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdpid.c b/hurd/hurdpid.c index 3fac89762b..633ad6db24 100644 --- a/hurd/hurdpid.c +++ b/hurd/hurdpid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2014 Free Software Foundation, Inc. +/* Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdports.c b/hurd/hurdports.c index 4ba5d27af0..fa66afe978 100644 --- a/hurd/hurdports.c +++ b/hurd/hurdports.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2014 Free Software Foundation, Inc. +/* Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdprio.c b/hurd/hurdprio.c index c8c62cd02a..215bad596f 100644 --- a/hurd/hurdprio.c +++ b/hurd/hurdprio.c @@ -1,5 +1,5 @@ /* Support code for dealing with priorities in the Hurd. - Copyright (C) 1994-2014 Free Software Foundation, Inc. + Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdrlimit.c b/hurd/hurdrlimit.c index 20202bea3c..a52515606d 100644 --- a/hurd/hurdrlimit.c +++ b/hurd/hurdrlimit.c @@ -1,5 +1,5 @@ /* Resource limits. - Copyright (C) 1994-2014 Free Software Foundation, Inc. + Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdselect.c b/hurd/hurdselect.c index c2225d2729..1d908548e2 100644 --- a/hurd/hurdselect.c +++ b/hurd/hurdselect.c @@ -1,5 +1,5 @@ /* Guts of both `select' and `poll' for Hurd. - Copyright (C) 1991-2014 Free Software Foundation, Inc. + Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -67,7 +67,7 @@ _hurd_select (int nfds, assert (sizeof (union typeword) == sizeof (mach_msg_type_t)); assert (sizeof (uint32_t) == sizeof (mach_msg_type_t)); - if (nfds < 0 || nfds > FD_SETSIZE) + if (nfds < 0 || (pollfds == NULL && nfds > FD_SETSIZE)) { errno = EINVAL; return -1; @@ -335,7 +335,7 @@ _hurd_select (int nfds, mach_msg_option_t options = (timeout == NULL ? 0 : MACH_RCV_TIMEOUT); error_t msgerr; while ((msgerr = __mach_msg (&msg.head, - MACH_RCV_MSG | options, + MACH_RCV_MSG | MACH_RCV_INTERRUPT | options, 0, sizeof msg, portset, to, MACH_PORT_NULL)) == MACH_MSG_SUCCESS) { @@ -407,13 +407,9 @@ _hurd_select (int nfds, } } - if (err == MACH_RCV_TIMED_OUT) - /* This is the normal value for ERR. We might have timed out and - read no messages. Otherwise, after receiving the first message, - we poll for more messages. We receive with a timeout of 0 to - effect a poll, so ERR is MACH_RCV_TIMED_OUT when the poll finds no - message waiting. */ - err = 0; + if (msgerr == MACH_RCV_INTERRUPTED) + /* Interruption on our side (e.g. signal reception). */ + err = EINTR; if (got) /* At least one descriptor is known to be ready now, so we will diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c index 6744e518bc..95ccddfe26 100644 --- a/hurd/hurdsig.c +++ b/hurd/hurdsig.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2014 Free Software Foundation, Inc. +/* Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdsock.c b/hurd/hurdsock.c index 0f52f37636..ae0c4ac88f 100644 --- a/hurd/hurdsock.c +++ b/hurd/hurdsock.c @@ -1,5 +1,5 @@ /* _hurd_socket_server - Find the server for a socket domain. - Copyright (C) 1991-2014 Free Software Foundation, Inc. + Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdsocket.h b/hurd/hurdsocket.h new file mode 100644 index 0000000000..611c18eb76 --- /dev/null +++ b/hurd/hurdsocket.h @@ -0,0 +1,30 @@ +/* Hurd-specific socket functions + Copyright (C) 2013-2015 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _HURD_HURDSOCKET_H +#define _HURD_HURDSOCKET_H + +#include <string.h> + +/* Returns a duplicate of ADDR->sun_path with LEN limitation. This + should to be used whenever reading a unix socket address, to cope with + sun_path possibly not including a trailing \0. */ +#define _hurd_sun_path_dupa(addr, len) \ + strndupa ((addr)->sun_path, (len) - offsetof (struct sockaddr_un, sun_path)) + +#endif /* hurdsocket.h */ diff --git a/hurd/hurdstartup.c b/hurd/hurdstartup.c index 01c9e14566..4863173a2f 100644 --- a/hurd/hurdstartup.c +++ b/hurd/hurdstartup.c @@ -1,5 +1,5 @@ /* Initial program startup for running under the GNU Hurd. - Copyright (C) 1991-2014 Free Software Foundation, Inc. + Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/hurdstartup.h b/hurd/hurdstartup.h index 51b3b5c201..2d16dbd4b9 100644 --- a/hurd/hurdstartup.h +++ b/hurd/hurdstartup.h @@ -1,5 +1,5 @@ /* Data from initial program startup for running under the GNU Hurd. - Copyright (C) 1995-2014 Free Software Foundation, Inc. + Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/intern-fd.c b/hurd/intern-fd.c index a70943104b..b32e8c05ca 100644 --- a/hurd/intern-fd.c +++ b/hurd/intern-fd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2014 Free Software Foundation, Inc. +/* Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/intr-msg.c b/hurd/intr-msg.c index a9b47551be..7a0b29639c 100644 --- a/hurd/intr-msg.c +++ b/hurd/intr-msg.c @@ -1,5 +1,5 @@ /* Replacement for mach_msg used in interruptible Hurd RPCs. - Copyright (C) 1995-2014 Free Software Foundation, Inc. + Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/intr-rpc.defs b/hurd/intr-rpc.defs index 1cb16d73e5..1e3175614c 100644 --- a/hurd/intr-rpc.defs +++ b/hurd/intr-rpc.defs @@ -1,5 +1,5 @@ /* Special MiG definitions for interruptible RPC stubs. - Copyright (C) 1994-2014 Free Software Foundation, Inc. + Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/intr-rpc.h b/hurd/intr-rpc.h index 98a53905eb..8322f936e8 100644 --- a/hurd/intr-rpc.h +++ b/hurd/intr-rpc.h @@ -1,5 +1,5 @@ /* Special MiG definitions for interruptible RPC stubs. - Copyright (C) 1995-2014 Free Software Foundation, Inc. + Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/longjmp-ts.c b/hurd/longjmp-ts.c index 107e27107b..7f7dd9201d 100644 --- a/hurd/longjmp-ts.c +++ b/hurd/longjmp-ts.c @@ -1,5 +1,5 @@ /* Perform a `longjmp' on a Mach thread_state. Stub version. - Copyright (C) 1991-2014 Free Software Foundation, Inc. + Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/lookup-at.c b/hurd/lookup-at.c index 0288bcf404..d6376ac8e6 100644 --- a/hurd/lookup-at.c +++ b/hurd/lookup-at.c @@ -1,5 +1,5 @@ /* Lookup helper function for Hurd implementation of *at functions. - Copyright (C) 2006-2014 Free Software Foundation, Inc. + Copyright (C) 2006-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/lookup-retry.c b/hurd/lookup-retry.c index f633e57f7f..491a3a4c79 100644 --- a/hurd/lookup-retry.c +++ b/hurd/lookup-retry.c @@ -1,5 +1,5 @@ /* hairy bits of Hurd file name lookup - Copyright (C) 1992-2014 Free Software Foundation, Inc. + Copyright (C) 1992-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/msgportdemux.c b/hurd/msgportdemux.c index 26463054a1..cf9b693a09 100644 --- a/hurd/msgportdemux.c +++ b/hurd/msgportdemux.c @@ -1,5 +1,5 @@ /* Demux messages sent on the signal port. - Copyright (C) 1991-2014 Free Software Foundation, Inc. + Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/new-fd.c b/hurd/new-fd.c index 3d59dcfb50..77e6c7e689 100644 --- a/hurd/new-fd.c +++ b/hurd/new-fd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2014 Free Software Foundation, Inc. +/* Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/openport.c b/hurd/openport.c index 1394d48591..f786fdb236 100644 --- a/hurd/openport.c +++ b/hurd/openport.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2014 Free Software Foundation, Inc. +/* Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/path-lookup.c b/hurd/path-lookup.c index 3c8f093abb..32b43cd61e 100644 --- a/hurd/path-lookup.c +++ b/hurd/path-lookup.c @@ -1,5 +1,5 @@ /* Filename lookup using a search path - Copyright (C) 1995-2014 Free Software Foundation, Inc. + Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu> diff --git a/hurd/pid2task.c b/hurd/pid2task.c index 42424d01cb..a34e80e478 100644 --- a/hurd/pid2task.c +++ b/hurd/pid2task.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2014 Free Software Foundation, Inc. +/* Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/port-cleanup.c b/hurd/port-cleanup.c index 35550bcd4a..c6c5285600 100644 --- a/hurd/port-cleanup.c +++ b/hurd/port-cleanup.c @@ -1,5 +1,5 @@ /* Cleanup function for `struct hurd_port' users who longjmp. - Copyright (C) 1995-2014 Free Software Foundation, Inc. + Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/port2fd.c b/hurd/port2fd.c index e74b18595b..b12f7faf1d 100644 --- a/hurd/port2fd.c +++ b/hurd/port2fd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2014 Free Software Foundation, Inc. +/* Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/ports-get.c b/hurd/ports-get.c index ebf97f4fbe..dd2fcdf551 100644 --- a/hurd/ports-get.c +++ b/hurd/ports-get.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2014 Free Software Foundation, Inc. +/* Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/ports-set.c b/hurd/ports-set.c index d6e4f345ca..359dbd7bbd 100644 --- a/hurd/ports-set.c +++ b/hurd/ports-set.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2014 Free Software Foundation, Inc. +/* Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/preempt-sig.c b/hurd/preempt-sig.c index 881f64879e..f87cf59871 100644 --- a/hurd/preempt-sig.c +++ b/hurd/preempt-sig.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2014 Free Software Foundation, Inc. +/* Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/privports.c b/hurd/privports.c index e48f4f0b73..9d88a7d90d 100644 --- a/hurd/privports.c +++ b/hurd/privports.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2014 Free Software Foundation, Inc. +/* Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/report-wait.c b/hurd/report-wait.c index 6a3b788d54..63b513fc3d 100644 --- a/hurd/report-wait.c +++ b/hurd/report-wait.c @@ -1,5 +1,5 @@ /* Report on what a thread in our task is waiting for. - Copyright (C) 1996-2014 Free Software Foundation, Inc. + Copyright (C) 1996-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/set-host.c b/hurd/set-host.c index 851a34447c..8237af5238 100644 --- a/hurd/set-host.c +++ b/hurd/set-host.c @@ -1,5 +1,5 @@ /* Set a host configuration item kept as the whole contents of a file. - Copyright (C) 1996-2014 Free Software Foundation, Inc. + Copyright (C) 1996-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/setauth.c b/hurd/setauth.c index 5af7ff1dd6..2e520c8d37 100644 --- a/hurd/setauth.c +++ b/hurd/setauth.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2014 Free Software Foundation, Inc. +/* Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/seteuids.c b/hurd/seteuids.c index 4db2b789a0..c3cbf271fc 100644 --- a/hurd/seteuids.c +++ b/hurd/seteuids.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2014 Free Software Foundation, Inc. +/* Copyright (C) 1993-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/siginfo.c b/hurd/siginfo.c index da76d03222..4925aa830b 100644 --- a/hurd/siginfo.c +++ b/hurd/siginfo.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2014 Free Software Foundation, Inc. +/* Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/sigunwind.c b/hurd/sigunwind.c index 6121e928c8..3a62fb5fb9 100644 --- a/hurd/sigunwind.c +++ b/hurd/sigunwind.c @@ -1,5 +1,5 @@ /* longjmp cleanup function for unwinding past signal handlers. - Copyright (C) 1995-2014 Free Software Foundation, Inc. + Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/task2pid.c b/hurd/task2pid.c index 400f6e9b13..905bd21665 100644 --- a/hurd/task2pid.c +++ b/hurd/task2pid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2014 Free Software Foundation, Inc. +/* Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/thread-cancel.c b/hurd/thread-cancel.c index bb940c54b0..5d94f8ccc9 100644 --- a/hurd/thread-cancel.c +++ b/hurd/thread-cancel.c @@ -1,5 +1,5 @@ /* Thread cancellation support. - Copyright (C) 1995-2014 Free Software Foundation, Inc. + Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/thread-self.c b/hurd/thread-self.c index 24782bb7ac..1c08257e7e 100644 --- a/hurd/thread-self.c +++ b/hurd/thread-self.c @@ -1,5 +1,5 @@ /* Cheap function to get current thread from sigstate without a syscall. - Copyright (C) 1995-2014 Free Software Foundation, Inc. + Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/trampoline.c b/hurd/trampoline.c index e73a7e8484..f85f3ccc17 100644 --- a/hurd/trampoline.c +++ b/hurd/trampoline.c @@ -1,5 +1,5 @@ /* Set thread_state for sighandler, and sigcontext to recover. Stub version. - Copyright (C) 1994-2014 Free Software Foundation, Inc. + Copyright (C) 1994-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/vpprintf.c b/hurd/vpprintf.c index 8040668845..f94adea71c 100644 --- a/hurd/vpprintf.c +++ b/hurd/vpprintf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2014 Free Software Foundation, Inc. +/* Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/xattr.c b/hurd/xattr.c index 7f754004fc..8cda7bb8e9 100644 --- a/hurd/xattr.c +++ b/hurd/xattr.c @@ -1,5 +1,5 @@ /* Support for *xattr interfaces on GNU/Hurd. - Copyright (C) 2006-2014 Free Software Foundation, Inc. + Copyright (C) 2006-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or |