* hurd/hurdinit.c (_hurd_new_proc_init): Don't do initial SIGTRAP if
EXEC_SIGTRAP was set in the incoming exec flags--that indicates the
exec server simulated a SIGTRAP before we even started up, so gdb is
already happy.
* hurd/hurdinit.c (_hurd_new_proc_init): Don't do initial SIGTRAP if
EXEC_SIGTRAP was set in the incoming exec flags--that indicates the
exec server simulated a SIGTRAP before we even started up, so gdb is
already happy.
* sysdeps/mach/hurd/getdents.c (__getdirentries): Remove
implementation and just always fail with ENOSYS. This entry point is
obsolete. Add link warning to that effect.
* hurd/STATUS: File removed. Moved items that are still relevant into
TODO list in hurd source.
1999-03-26 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/bits/time.h: New file.
* sysdeps/mach/hurd/getrusage.c: New file.
* sysdeps/mach/hurd/clk_tck.c: New file.
* sysdeps/mach/hurd/Versions (libc) [GLIBC_2.1.1]: Add __libc_clk_tck.
* sysdeps/mach/hurd/Makefile [$(subdir) = posix]
(sysdep_routines): Add clk_tck.
* sysdeps/mach/hurd/times.c: Removed, since getrusage is now
implemented.
* sysdeps/mach/hurd/i386/Makefile [$(subdir) = csu]
(CFLAGS-initfini.s): New variable, add -DWEAK_GMON_START.
This does for Hurd/i386 what the 1998-09-08 change did for Linux/i386.
* sysdeps/mach/hurd/Makefile: Undo last change.
[$(subdir) = mach] (lib-noranlib): Depend on libmachuser-link.so.
[$(subdir) = hurd] (lib-noranlib): Depend on libhurduser-link.so.
* mach/Machrules (+preinit, +postinit, +interp,
LDFLAGS-$(interface.so)): Variables removed. Interface libraries get
linked just like other shared libraries.
(interface.so): Fix typo in defn, so it works.
($(objpfx)$(interface.so)): Make it depend on libc.so.
* mach/Machrules (extra-libs-others): Add $(interface-library) here
too, so it gets built in the others pass rather than the lib pass.
This is necessary since the RPC libraries need to be linked against
libc.
* sysdeps/generic/segfault.c: Include <stdio-common/_itoa.h> for
_itoa_word decl.
* sysdeps/mach/hurd/Makefile (link-rpcuserlibs): New variable.
($(common-objpfx)libc.so): Depend on that instead of $(rpcuserlibs).
($(link-rpcuserlibs)): New static pattern rule; link intermediate
versions of lib{mach,hurd}user.so without reference to libc.so,
then link libc.so against that to get deps and symbol versions, then
finally link real lib*user.so against libc.so.
* sysdeps/mach/hurd/fcntl.c (__fcntl: case F_GETLK,F_SETLK,F_SETLKW):
Support whole-file locking (only) by using the file_lock RPC. This
has very wrong semantics, but is better than nothing for the time
being. (Correct POSIX.1 locking will require new RPCs in the Hurd
protocols that will be somewhat hairy to specify.)
1999-03-17 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/ptsname.c: New file.
* sysdeps/unix/sysv/linux/arm/getgroups.c: New file. Use the i386
* sysdeps/mach/hurd/fcntl.c (__fcntl: case F_GETLK,F_SETLK,F_SETLKW):
Support whole-file locking (only) by using the file_lock RPC. This
has very wrong semantics, but is better than nothing for the time
being. (Correct POSIX.1 locking will require new RPCs in the Hurd
protocols that will be somewhat hairy to specify.)
* sysdeps/mach/hurd/poll.c (__poll): Correctly pass NULL to
_hurd_select if TIMEMOUT is -1.
1999-03-15 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/recvfrom.c (recvfrom): Allow ADDR to be NULL.
* sysdeps/mach/hurd/ioctl.c (__ioctl): Move the marshalling of the
arguments into the request message buffer inside `send_rpc'
subfunction. We must repeat the marshalling when retrying the RPC
after a SIGTTOU delivery.
* hurd/ctty-input.c (_hurd_ctty_input): Use early short-circuit code
path when there is no ctty port.
* hurd/ctty-output.c (_hurd_ctty_output): Likewise.
Move sigstate check inside loop so we recheck after handling a signal.
* sysdeps/mach/hurd/ioctl.c (__ioctl): Move the marshalling of the
arguments into the request message buffer inside `send_rpc'
subfunction. We must repeat the marshalling when retrying the RPC
after a SIGTTOU delivery.
* sysdeps/mach/hurd/bits/fcntl.h
[__USE_GNU] (O_NOFOLLOW, O_DIRECTORY): New macros.
* hurd/hurdlookup.c (__hurd_file_name_lookup): If O_NOFOLLOW is set,
set O_NOTRANS as well.
(__hurd_file_name_lookup_retry): At successful end of lookup,
if O_NOFOLLOW set, io_stat the resultant port and fail with ENOENT if
it is a translated node not owned by root.
(__hurd_file_name_lookup): If O_DIRECTORY is set, put a trailing slash
on the file name passed to LOOKUP.
* sysdeps/mach/hurd/bits/fcntl.h
[__USE_GNU] (O_NOFOLLOW, O_DIRECTORY): New macros.
* hurd/hurdlookup.c (__hurd_file_name_lookup): If O_NOFOLLOW is set,
set O_NOTRANS as well.
(__hurd_file_name_lookup_retry): At successful end of lookup,
if O_NOFOLLOW set, io_stat the resultant port and fail with ENOENT if
it is a translated node not owned by root.
(__hurd_file_name_lookup): If O_DIRECTORY is set, put a trailing slash
on the file name passed to LOOKUP.
* sysdeps/mach/hurd/getsockname.c (getsockname): Set *LEN to the
actual length if the adress length is smaller than the input
value. Change type of *LEN paramater to socklen_t.
* sysdeps/mach/hurd/getpeername.c (getpeername): Likewise.
* sysdeps/mach/hurd/accept.c (accept): Likewise.
* sysdeps/mach/hurd/recvfrom.c (recvfrom): Likewise.
* sysdeps/mach/hurd/sendto.c (sendto): Change type of ADDR_LEN
paramater to socklen_t.
* sysdeps/mach/hurd/getsockname.c (getsockname): Set *LEN to the
actual length if the adress length is smaller than the input
value. Change type of *LEN paramater to socklen_t.
* sysdeps/mach/hurd/getpeername.c (getpeername): Likewise.
* sysdeps/mach/hurd/accept.c (accept): Likewise.
* sysdeps/mach/hurd/recvfrom.c (recvfrom): Likewise.
* sysdeps/mach/hurd/sendto.c (sendto): Change type of ADDR_LEN
paramater to socklen_t.
* sysdeps/mach/hurd/dl-sysdep.c (__getcwd): Fail with ENOSYS, don't
call abort. Suggested by Mark Kettenis <kettenis@phys.uva.nl>.
1999-01-23 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/unix/sysv/linux/sys/mtio.h: Moved to...
* sysdeps/gnu/sys/mtio.h: ...here.
(_IOT_mtop, _IOT_mtget, _IOT_mtpos, _IOT_mtconfiginfo): New macros.
* sysdeps/gnu/Dist: Add sys/mtio.h.
* sysdeps/unix/sysv/linux/Dist: Remove sys/mtio.h.
* sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc]
(sysdep_headers): Don't add sys/mtio.h here.
* sysdeps/gnu/Makefile [$(subdir) = misc] (sysdep_headers): Add it
here instead.
Revamp Hurd ioctl typing magic to handle `struct' keyword in the
ioctl command macros, so we can use Unix-compatible headers that
make use of the _IO* macros.
* sysdeps/mach/hurd/bits/ioctls.h (_IOC_ENCODE_TYPE,
_IOC_ENCODE_TYPE_1, _IOC_ENCODE_TYPE_2, _IOTBASE_struct): New macros.
(_IOR, _IOW, _IOWR): Use them _IOC_ENCODE_TYPE(t) instead of _IOT_##t.
(_IOT_int, _IOT_char, _IOT_short): Renamed to _IOT__IOTBASE_*.
(numerous ioctl command macros): Restore `struct' keyword.
Revamp Hurd ioctl typing magic to handle `struct' keyword in the
ioctl command macros, so we can use Unix-compatible headers that
make use of the _IO* macros.
* sysdeps/mach/hurd/bits/ioctls.h (_IOC_ENCODE_TYPE,
_IOC_ENCODE_TYPE_1, _IOC_ENCODE_TYPE_2, _IOTBASE_struct): New macros.
(_IOR, _IOW, _IOWR): Use them _IOC_ENCODE_TYPE(t) instead of _IOT_##t.
(_IOT_int, _IOT_char, _IOT_short): Renamed to _IOT__IOTBASE_*.
(numerous ioctl command macros): Restore `struct' keyword.
* sysdeps/mach/hurd/bits/statfs.h (struct statfs, struct statfs64):
Remove __ from member names; rename __unused to f_spare. 1998-12-21 Mark Kettenis <kettenis@phys.uva.nl>
Implement fstatvfs and statfs on the Hurd.
* sysdeps/mach/hurd/bits/statfs.h: New file.
* sysdeps/mach/hurd/bits/statvfs.h: New file.
* sysdeps/mach/hurd/fstatvfs.c: New file.
* sysdeps/mach/hurd/statvfs.c: New file.
Reverse the change of 1998-04-22. Providing a struct dirent with
different members when __USE_FILE_OFFSET64 is defined is asking
for trouble. Instead add the necessary LFS magic to the 4.4BSD
header.
* sysdeps/unix/bsd/bsd4.4/bits/dirent.h: Add LFS definitions.
* sysdeps/mach/hurd/bits/dirent.h: Removed.
* sysdeps/mach/hurd/readdir64.c: Removed.
* sysdeps/mach/hurd/readdir64_r.c: Removed.
* sysdeps/generic/bits/mman.h [__USE_MISC] (MAP_ANONYMOUS): Define as
alias for MAP_ANON.
* stdio/stdio.h (sys_errlist, sys_nerr, _sys_errlist, _sys_nerr):
Remove decls. They don't exist at all on the Hurd.
* sunrpc/svc_unix.c, sunrpc/clnt_unix.c: Avoid using `struct cmsghdr'
and `struct ucred' #ifndef SCM_CREDENTIALS.
* sunrpc/publickey.c (getsecretkey): Use `&errno' instead of
`__errno_location ()'; means the same, works for Hurd.
* sysdeps/mach/hurd/Makefile (subdirs): Don't elide sunrpc.
* sysdeps/mach/hurd/bits/local_lim.h (SYMLOOP_MAX): Define this #ifdef
__USE_BSD as well as #ifdef __USE_GNU, so MAXSYMLINKS can use it.
Reported by UCHIYAMA Yasushi <uch@nop.or.jp>
1998-12-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Don't change
read-only struct termios_p* but change k_termios member directly.
* sysdeps/mach/hurd/bits/local_lim.h (SYMLOOP_MAX): Define this #ifdef
__USE_BSD as well as #ifdef __USE_GNU, so MAXSYMLINKS can use it.
Reported by UCHIYAMA Yasushi <uch@nop.or.jp>
* sysdeps/mach/hurd/pselect.c: New file.
* sysdeps/mach/hurd/poll.c: New file.
* hurd/Makefile (routines): Add hurdselect.
* hurd/hurdselect.c: New file.
(_hurd_select): New function, guts taken from ...
* sysdeps/mach/hurd/select.c (__select): ... here.
Now work by just calling _hurd_select.
* hurd/hurd/fd.h: Declare _hurd_select.
1998-12-05 Roland McGrath <roland@baalperazim.frob.com>
* time/strptime.c: Fix unterminated comment in last change.
* argp/argp.h: Add __restrict.
Provide backwards binary compatibility for the Hurd.
* hurd/geteuids.c [PIC && DO_VERSIONING]: Make __getuids a weak
alias for geteuids.
* hurd/Versions [GLIBC_2.0]: Add __getuids,
__hurd_file_name_lookup and _hurd_umask.
[GLIBC_2.1]: Add _hurd_proc_init.
* hurd/Makefile [versioning] (routines): Add compat-20.
(shared-only-routines): Likewise.
* hurd/hurdinit.c (_hurd_new_proc_init): Renamed from
_hurd_proc_init. Use it as the default _hurd_proc_init version
for GLIBC_2.1.
* hurd/compat-20.c: New file.
* mach/Versions [GLIBC_2.0]: Add __vm_allocate.
* mach/Versions [libc, GLIBC_2.0]: Add __spin_lock,
__spin_lock_init, __mutex_lock, __mutex_trylock,
__mutex_unlock.
Remove get_priviliged_ports. Moved to hurd/Versions.
* hurd/Versions [libc, GLIBC_2.0]: Add _end. This makes the Hurd
brk implementation see the end of the data segment of the program
instead of the shared library.
Add __hurd_errno_location. This inline function is used in user
programs.
Add _hurd_critical_section_lock, _hurd_critical_section_unlock,
_hurd_fd_get, _hurd_port_free, _hurd_port_get,
_hurd_port_locked_get. These inline functions are used by macros
used in mail.local in the Hurd distribution.
Add get_privileged_ports. Moved here from mach/Versions.
Remove __hurd_file_name_lookup, __hurd_file_name_lookup_retry,
__hurd_file_name_split, __hurd_file_name_path_lookup. These are
not used outside libc.
1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/hurdstartup.c: Really include set-hooks.h with <> instead
of "".
__hurd_threadvar_max. Add comment explaining why we define
__hurd_threadvar_stack_offset and __hurd_threadvar_stack_mask here.
1998-07-29 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/mach/hurd/dl-sysdep.c (__hurd_sigthread_stack_base,
__hurd_sigthread_stack_end, __hurd_sigthread_variables): Define to
prevent inclusion of Hurd signal handling code.
(__libc_write): New function.
(_dl_sysdep_output): Removed. The implementation in
`elf/dl-misc.c' now also works for the Hurd.
1998-09-12 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/hurdstartup.c: Do not include hurdmalloc.h; _hurd_startup
does not use any of malloc/realloc/free anymore. Include
set-hooks.h with <> instead of "".
* sunrpc/svc_unix.c (__msgread): Move ON local var inside block
within #ifdef SO_PASSCRED. Avoids unused var when no SO_PASSCRED.
* sunrpc/clnt_unix.c (__msgread): Likewise.
* sunrpc/svc_unix.c (__msgread): Move ON local var inside block
within #ifdef SO_PASSCRED. Avoids unused var when no SO_PASSCRED.
* sunrpc/clnt_unix.c (__msgread): Likewise.
* hurd/setuids.c: Renamed to ...
* hurd/seteuids.c: this.
(setuids): Renamed to seteuids.
* hurd/getuids.c: Renamed to ...
* hurd/geteuids.c: this.
(__getuids): Renamed to geteuids, no aliases.
* hurd/hurd.h (geteuids, seteuids): Declare them.
* hurd/Versions: Replace getuids; __getuids with geteuids; seteuids.
* hurd/Makefile (routines): Updated.
1998-11-28 23:23 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sysdeps/unix/sysv/linux/configure.in: Test for symlinks in
$prefix/include that may be clobbered on installation.
* sysdeps/mach/hurd/i386/init-first.c (init): Restored as inline fn.
Use constant _HURD_THREADVARS_MAX for temporary array size.
* Makeconfig ($(common-objpfx)sysd-sorted): Use @ instead of / as sed
s separator, since $(..) might contain a /.
* sysdeps/mach/hurd/i386/init-first.c (init): Provide temporary storage
for the per-thread variables of the main user thread to make it
possible to use malloc as soon as _hurd_preinit_hook has been run.
For cthreads, copy values to new stack from there.
For non-cthreads, malloc threadvar array here and copy from temp space.
(init1): No longer initialize threadvars here.
(doinit1): Made static void at top level.
(init): Folded into [PIC] _init or [!PIC] doinit1, since GCC cannot
inline a function that uses dynamic auto arrays.
* sysdeps/mach/hurd/i386/init-first.c (init): Provide temporary storage
for the per-thread variables of the main user thread to make it
possible to use malloc as soon as _hurd_preinit_hook has been run.
For cthreads, copy values to new stack from there.
For non-cthreads, malloc threadvar array here and copy from temp space.
(init1): No longer initialize threadvars here.
(doinit1): Made static void at top level.
(init): Folded into [PIC] _init or [!PIC] doinit1, since GCC cannot
inline a function that uses dynamic auto arrays.