sysdeps/mach version. Implement counting ("recursive") mutexes
on top of cthreads mutexes.
* sysdeps/mach/hurd/bits/stdio-lock.h: File removed; generic now works.
* sysdeps/generic/bits/stdio-lock.h (_IO_lock_initializer): Define to
_LIBC_LOCK_RECURSIVE_INITIALIZER if defined, else do an #error.
(__libc_cleanup_region_start, __libc_cleanup_region_end,
__libc_clean_end): Define these to call the cleanup function after
normal exit when they're supposed to.
* sysdeps/mach/bits/libc-lock.h (__libc_cleanup_region_start):
Take new first arg DOIT, a boolean saying whether to really install
any cleanup handler.
(__libc_cleanup_region_end): Do nothing if start's DOIT arg was zero.
(__libc_cleanup_end): Likewise.
* stdio-common/vfscanf.c (LOCK_STREAM): Pass new arg.
* stdio-common/vfprintf.c (buffered_vfprintf, vfprintf): Likewise.
* sysdeps/mach/hurd/bits/stdio-lock.h (_IO_cleanup_region_start):
Likewise.
* misc/syslog.c (vsyslog, openlog, closelog): Likewise.
* sysdeps/generic/bits/stdio-lock.h
(_IO_cleanup_region_start, _IO_cleanup_region_start_noarg): Likewise.
* sysdeps/generic/bits/poll.h (POLLWRBAND): New alias for POLLOUT.
(POLLRDNORM, POLLRDBAND, POLLWRNORM, POLLWRBAND): Make these
definitions conditional on [__USE_XOPEN].
* sysdeps/mach/hurd/bits/fcntl.h (O_ASYNC, O_FSYNC, O_SYNC): Define
these unconditionally, not only use [__USE_BSD], so as to match
the sysdeps/unix/sysv/linux files.
as a macro, not an extern inline function.
* hurd/Versions (GLIBC_2.2.5): New set, define __hurd_fail here.
* Versions.def (libc): Add GLIBC_2.2.5 set.
* hurd/hurd.h (_HURD_H_EXTERN_INLINE): New macro.
(__hurd_fail): Use that instead of _EXTERN_INLINE in decl.
2001-08-20 Roland McGrath <roland@frob.com>
* hurd/hurdlookup.c (__hurd_file_name_lookup): Fail with ENOENT for "".
(__hurd_file_name_split, __hurd_directory_name_split): Likewise.
2001-08-18 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/i386/init-first.c (init): Initialize __environ
before calling the cthreads initialization code.
* libio/genops.c (_IO_list_all_stamp): New variable.
(_IO_un_link): Bump _IO_list_all_stamp after removing from list.
(_IO_link): Likewise for insertion.
(flush_cleanup): New function.
(_IO_flush_all): Get list_all_lock and all individual locks for the
streams. Detect and handle changes to the _IO_list_all list.
(_IO_flush_all_linebuffered): Likewise.
* sysdeps/generic/bits/stdio-lock.h: Define
_IO_cleanup_region_start_noarg.
* sysdeps/mach/hurd/bits/stdio-lock.c: Likewise.
2001-07-07 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/i386/exc2signal.c (_hurd_exception2signal):
Generate SIGSEGV instead of SIGBUS for KERN_INVALID_ADDRESS and
KERN_WRITE_PROTECTION_FAILURE.
2001-07-06 Paul Eggert <eggert@twinsun.com>
* manual/argp.texi: Remove ignored LGPL copyright notice; it's
not appropriate for documentation anyway.
* manual/libc-texinfo.sh: "Library General Public License" ->
"Lesser General Public License".
2001-07-06 Andreas Jaeger <aj@suse.de>
* All files under GPL/LGPL version 2: Place under LGPL version
2.1.
2001-07-01 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/if_index.c: Redone to use new interfaces in
the Hurd pfinet server, using equivalent code from the Linux
version in sysdeps/unix/sysv/linux/if_index.c. In detail:
Include <unistd.h>, <error.h>, <sys/ioctl.h>, <hurd/ioctl.h> and
<hurd/pfinet.h>. Don't include <sys/mman.h> and <hurd/fsys.h>
anymore.
(if_nametoindex): New implementation using SIOCGIFINDEX.
(if_freenameindex): Straight copy of the Linux version.
(if_nameindex): New implementation based on pfinet_siocgifconf and
SIOCGIFINDEX.
(if_indextoname): New implementation using SIOCGIFNAME.
(map_interfaces): Function removed.
From Marcus Brinkmann <marcus@gnu.org>.
2001-06-26 Mark Kettenis <kettenis@gnu.org>
* hurd/Makefile (user-interfaces): Add pfinet.
* hurd/hurdioctl.c: Include <hurd/pfinet.h>, <net/if.h> and
<netinet/in.h>.
(siocgifconf): New function. Register it with HURD_HANDLE_IOCTL
as the handler for SIOCGIFCONF.
* sysdeps/mach/hurd/bits/ioctls.h: Modify SIOCSIFFLAGS and
SIOCGIFFLAGS to be of IOC type ifreq_short. Modify SIOCSIFMETRIC
and SIOCGIFMETRIC to be of IOC type ifreq_int. Add new macro
definitions for SIOCGIFMTU, SIOCSIFMTU, SIOCGIFINDEX and
SIOCGIFNAME.
From Marcus Brunkmann <marcus@gnu.org>.
Declare these without `static', to avoid warning that we haven't
defined them.
* Makerules (build-module-helper-objlist): New variable,
broken out of build-module. Insert --whole-archive/--no-whole-archive
immediately each *_pic.a file in the link object list.
(whole-archive): New variable, used by that.
(build-module-objlist): New variable using build-module-helper-objlist.
(build-module, build-module-helper): Use it.
(build-shlib-objlist): New variable using build-module-helper-objlist.
(build-shlib): Use that.
* sysdeps/mach/hurd/Makefile ($(link-rpcuserlibs)): Likewise.
* hurd/hurdlookup.c (__hurd_file_name_lookup_retry): Broken out ...
* hurd/lookup-retry.c: ... into here, new file.
* sysdeps/mach/hurd/dl-sysdep.c (open_file): Call that instead
using of duplicate code here.
* hurd/hurdexec.c (_hurd_exec): Be robust for DTABLESIZE==0.
* posix/regex.c: Avoid an access violation if malloc fails.
so the label is not considered unused.
* sysdeps/mach/hurd/pwrite64.c: New file.
* sysdeps/mach/hurd/pread64.c: New file.
* sysdeps/mach/hurd/pread.c
(__libc_pread): Define this name, with __pread as an alias.
* sysdeps/mach/hurd/pwrite.c
(__libc_pwrite): Define this name, with __pwrite as an alias.
Implement POSIX "shared memory objects" as regular
files residing in the /var/run/shm/ directory.
This works on any system that supports _POSIX_MAPPED_FILES,
to make it also support _POSIX_SHARED_MEMORY_OBJECTS.
* sysdeps/posix/shm_open.c: New file.
* sysdeps/posix/shm_unlink.c: New file.
* sysdeps/mach/hurd/bits/posix_opt.h
(_POSIX_SHARED_MEMORY_OBJECTS): Define it.
* rt/aio_notify.c (__aio_notify_only) [! _POSIX_REALTIME_SIGNALS]:
Use raise instead of __aio_sigqueue.
* sysdeps/mach/hurd/pwrite.c: Likewise.
* shlib-versions [USE_IN_LIBIO] (.*-.*-gnu-gnu.*): libc=0.3
[USE_IN_LIBIO && !GLIBC_OLDEST_ABI] (.*-.*-gnu-gnu.*): Use GLIBC_2.2.4
as default version set.
(test_ftello): Check for EFBIG and ENOSPC, clean up error messages.
static pattern rule also that also covers
$(objpx)g$(static-start-installed-name).
[$(start-installed-name) != $(static-start-installed-name)]
(extra-objs, omit-deps, install-lib): Add
$(static-start-installed-name) and g$(static-start-installed-name).
* sysdeps/mach/hurd/i386/Makefile: Don't add crt0.o to those here;
just setting static-start-installed-name is now sufficient.
(extra-objs): Add static-start.o here.
(CFLAGS-initfini.s): Remove obsolete variable.
* sysdeps/mach/hurd/i386/Makeconfig: New file.
Define static-start-installed-name here.
* Makeconfig: Include existing $(full_config_sysdirs:=/Makeconfig).
* Make-dist (+sysdep-tsrcs): Look for Makeconfig files.
* Makerules ($(+sysdir_pfx)sysd-Makefile): Remove this target and
associated hair. Instead, just use $(wildcard ...) in the include.
* configure.in (critic_missing, aux_missing): Collect in these vars
the names of the missing programs, and include them in the error msgs.
* configure: Regenerated.
* sysdeps/mach/hurd/Makefile ($(link-rpcuserlibs)): Don't use
$(build-module) here, since we don't need the full magilla.
Just use $(build-module-helper) and append our special options.
* sysdeps/mach/hurd/munlock.c: New file.
* sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_MEMLOCK_RANGE): Define it.
* misc/Makefile (routines): Add mlock munlock mlockall munlockall.
* sysdeps/generic/mlock.c: New file.
* sysdeps/generic/munlock.c: New file.
* sysdeps/generic/mlockall.c: New file.
* sysdeps/generic/munlockall.c: New file.
* sysdeps/generic/bits/mman.h (MCL_CURRENT, MCL_FUTURE): New macros.
* sysdeps/unix/sysv/linux/syscalls.list (mlock, munlock,
mlockall, munlockall): Change caller field to - from EXTRA.
Don't use __ names; not used (and not declared in include/sys/mman.h).
Use __ names for calls we make.
(get_privileged_ports): Add alias.
* hurd/hurd.h: Declare it with the __ name.
* sysdeps/mach/hurd/reboot.c (reboot): Use __get_privileged_ports.
* sysdeps/mach/hurd/adjtime.c (__adjtime): Likewise.
* sysdeps/mach/hurd/settimeofday.c (__settimeofday): Likewise.
2001-04-10 Andreas Schwab <schwab@suse.de>
* math/libm-test.inc (csinh_test): Don't require the invalid
exception for csinh (x + iNaN), but make it optional.
2001-04-09 David Mosberger <davidm@hpl.hp.com>
* sysdeps/ia64/elf/start.S (_start): Add unwind directives.
* sysdeps/generic/entry.h [!__ASSEMBLY__]: Declare _start.
* sysdeps/ia64/elf/entry.h: New file.
* sysdeps/unix/sysv/linux/mips/entry.h [!__ASSEMBLY__]: Declare
__start.
* elf/rtld.c: Don't declare ENTRY_POINT. Use ENTRY_POINT instead
of &ENTRY_POINT.
* sysdeps/generic/dl-sysdep.c: Likewise.
* sysdeps/mach/hurd/dl-sysdep.c: Likewise.
* sysdeps/ia64/elf/start.S: Save base address of register backing
store in __libc_ia64_register_backing_store_base.
2001-03-31 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/fork.c: Skip NEWPROC just like NEWTASK when
copying send rights into child. When we hit our name for our proc
port, just copy NEWPROC directly instead of repeating proc_task2proc
to install the child's port.
2001-04-08 Roland McGrath <roland@frob.com>
* Makeconfig ($(common-objpfx)soversions.i): Grok entries with DEFAULT
in second column, to provide default values for third column.
* shlib-versions: Add comments about using DEFAULT in second column.
(s390x-.*-linux.*): Replace individual entries with a DEFAULT entry.
(cris-.*-linux.*): Likewise.
options after $(build-module), which is no longer a single command.
(LDFLAGS-link-rpcuserlibs): New variable to hold those options.
(LDFLAGS-libmachuser-link.so, LDFLAGS-libhurduser-link.so): New
variables using it. Reported by Mark Kettenis <kettenis@gnu.org>.
2001-03-11 Roland McGrath <roland@frob.com>
* elf/rtld.c (dl_main): Add cast to quiet warning.
* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
* iconv/gconv_conf.c (__gconv_get_path): Likewise.
(__gconv_read_conf): Likewise.
* iconv/gconv_db.c (gen_steps): Likewise.
(__gconv_find_transform): Likewise.
* locale/programs/charmap-dir.c (fopen_uncompressed): Likewise.
(fopen_uncompressed): Use const in second argument's type.
2001-03-11 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/dl-sysdep.c (__writev): New function.
* mach/mach_error.h: Fix ancient #endif syntax.
* hurd/hurdmalloc.c: Likewise.
* sysdeps/generic/atomicity.h (exchange_and_add, atomic_add,
compare_and_swap): Add volatile qualifier to first arg, to bring
these prototypes in line with all the other implementations.
Add a #warning to remind the builder that these are not atomic.
2001-03-04 Roland McGrath <roland@frob.com>
* hurd/vpprintf.c (vpprintf) [USE_IN_LIBIO]: Use innermore first
member of TEMP_F so its type is _IO_FILE * as expected.
* hurd/fopenport.c (seekio): Conditionalize type of POS argument
on [USE_IN_LIBIO]. Check the value for overflow, since for libio
it might exceed off_t's range.
2001-02-25 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/sysd-stdio.c (__stdio_reopen): Use prototype.
* sysdeps/unix/bsd/getpt.c (__posix_openpt): Likewise.
* sysdeps/mach/hurd/i386/intr-msg.h (SYSCALL_EXAMINE): Make this a
macro instead of an inline function,
(MSG_EXAMINE): Likewise.
* hurd/hurd/ioctl.h (_HURD_HANDLE_IOCTLS_1): Remove extraneous ##.
* hurd/get-host.c: Include <string.h> for decls of built-ins.
* hurd/hurdchdir.c: Likewise.
* sysdeps/mach/hurd/i386/sigreturn.c: Likweise.
* sysdeps/mach/hurd/opendir.c: Likewise.
* mach/mach_init.c: Include <unistd.h> for _exit decl.
* mach/errsystems.awk: Give output file a trailing newline.
* mach/Machrules (MIG): Prepend CC='${CC}' to the mig command, so that
the script will use our compiler for the cpp stage.
With --enable-all-warnings we get a whole bunch of warnings,
and these are just a few fixes; there are more needed to silence it.
* mach/mach/mig_support.h (__mig_strncpy, mig_strncpy): Add extern
decls before extern inline defns to quiet gcc warning.
* hurd/hurd/threadvar.h (__hurd_threadvar_location_from_sp): Likewise.
* sysdeps/mach/i386/machine-sp.h (__thread_stack_pointer): Likewise.
2001-03-24 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/i386/init-first.c: Include <assert.h>.
(_dl_argv): Declare.
(init) [SHARED]: Readjust _dl_argv if we switched to a new stack.
2001-03-17 Ulrich Drepper <drepper@redhat.com>
* inet/Makefile (tests): Remove left-over comment.
* posix/unistd.h: Change type of second parameter back to size_t
as per upcoming XPG6.
* sysdeps/unix/sysv/aix/gethostname.c: Change type of second
parameter back to size_t as per upcoming XPG6.
* sysdeps/unix/sysv/sysv4/gethostname.c: Likewise.
* sysdeps/unix/sysv/gethostname.c: Likewise.
* sysdeps/mach/hurd/gethostname.c: Likewise.
* sysdeps/generic/gethostname.c: Likewise.
2001-02-18 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/getsysstats.c (__get_phys_pages): Change return
value to long int.
(__get_avphys_pages): Likewise.
* conform/data/sys/socket.h-data: Fix typos. Correct getsockopt,
recvfrom, send, and socketpair prototypes. Add allow lines.
* socket/sys/socket.h: Include <sys/uio.h>.
Don't use fancy __SOCKADDR_ARG definition unless __USE_GNU.
Fix type of second parameter of listen.
Don't declare isfdtype unless __USE_MISC.
* sysdeps/generic/listen.c: Fix type of second parameter of listen.
* sysdeps/mach/hurd/listen.c: Likewise.
* sysdeps/generic/bits/socket.h (struct sockaddr_storage): Define
ss_family and __ss_family.
* sysdeps/unix/sysv/aix/bits/socket.h: Likewise.
* sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
(struct msghdr): Change type of msg_iovlen to int and type of
msg_controllen to socklen_t.
* sysdeps/unix/sysv/linux/alpha/bits/socket.h: New file.
* sysdeps/unix/sysv/linux/ia64/bits/socket.h: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/socket.h: New file.
2001-01-19 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/chroot.c (chroot): Revert 1999-02-27 changes,
but change looking up the initial directory port in a similar way
as done by _hurd_change_directory_port_from_name.
* hurd/fchroot.c (fchroot): Likewise.
2001-01-06 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/fstatfs64.c: New file.
* sysdeps/mach/hurd/fstatvfs64.c: New file.
* sysdeps/mach/hurd/statfs64.c: New file.
* sysdeps/mach/hurd/statvfs64.c: New file.
* sysdeps/mach/hurd/statfsconv.c: New file.
* sysdeps/mach/hurd/Dist: Add statfsconv.c.
* sysdeps/mach/hurd/readdir_r.c (__readdir_r): Return error number
instead of -1 on failure. Don't forget to copy file name into
*ENTRY if successful. Set *RESULT to NULL upon reaching the end
of the directory.
2001-01-06 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/ioctl.c (__ioctl): Don't clobber ARG as we copy in
argument data, since it will be used to copy out too (for INOUT).
Reported by Marcus Brinkmann <marcus@gnu.org>.
* sysdeps/mach/hurd/ioctl.c: Include <stdint.h>.
(__ioctl): Use uintptr_t instead of unsigned long int.
* sysdeps/mach/hurd/defs.c (init_stdio): Put this on __libc_subinit
rather than _hurd_fd_subinit, so it happens after it's safe to use
libc facilities like malloc.
2000-09-29 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/dl-sysdep.c (__access): New function. Dummy
implementation for use by the dynamic linker.
2000-09-18 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/bits/time.h: (CLOCKS_PER_SEC): Make a long int
constant since that is what clock_t is.
* sysdeps/mach/hurd/i386/bits/time.h: Likewise.
2000-09-09 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/dl-osinfo.h (DL_SYSDEP_OSCHECK): Use uname
before trying to read /proc.
Patch by Matt Wilson <msw@redhat.com>.
* include/sys/utsname.h: Declare __uname.
* sysdeps/generic/uname.c: Make uname a weak alias of __uname.
* sysdeps/mach/hurd/uname.c: Likewise.
* sysdeps/unix/syscalls.list: Likewise.
* iconv/gconv_dl.c (do_release_shlib): Rewrite condition for
unloading a bit.
2000-09-08 Ulrich Drepper <drepper@redhat.com>
* posix/getopt.c (_getopt_internal): When long_only is set always
recognize conflicts just like before.
2000-09-08 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* sysdeps/ia64/Makefile (sysdep-rtld-routines): New variable.
2000-08-27 Bruno Haible <haible@clisp.cons.org>
* string/strxfrm.c (strxfrm, wcsxfrm): Include <sys/param.h>.
If nrules == 0 and srclen < n, copy only srclen + 1 characters.
* sysdeps/generic/getdomain.c (getdomainname): Include <sys/param.h>.
If the result is fits in the buffer, copy only as many bytes as needed.
* sysdeps/generic/_strerror.c (__strerror_r): Don't zero-fill the
buffer after copying numbuf into it.
* sysdeps/mach/_strerror.c (__strerror_r): Likewise.
2000-08-27 Bruno Haible <haible@clisp.cons.org>
* posix/confstr.c (confstr): When string_len > len, NUL-terminate
the result. When string_len < len, don't clear the rest of the buffer.
2000-08-27 Bruno Haible <haible@clisp.cons.org>
Support for new LC_COLLATE format.
* locale/coll-lookup.h: New file.
* locale/weightwc.h (findidx): When size == 0, call
collidx_table_lookup.
* wcsmbs/wcscoll.c: Include coll-lookup.h.
* wcsmbs/wcsxfrm.c: Likewise.
* posix/fnmatch.c: Likewise.
* posix/fnmatch_loop.c (internal_fnwmatch): When size == 0, call
collseq_table_lookup.
* locale/programs/3level.h: New file.
* locale/programs/ld-ctype.c: (wcwidth_table, wctrans_table): Define
by including "3level.h".
* locale/programs/ld-collate.c (wchead_table, collidx_table,
collseq_table): New types, defined by including "3level.h".
(locale_collate_t): New wcheads_3level, wcseqorder_3level fields.
(encoding_mask, encoding_byte): Remove.
(utf8_encode): Use simple shifts instead.
(collate_finish): When !oldstyle_tables, set plane_size and plane_cnt
to 0, and initialize and fill wcheads_3level and wcseqorder_3level.
(collate_output): New local variable tablewc_3level. When
!oldstyle_tables, set table_size to 0 and names to NULL and fill
tablewc_3level instead of tablewc. Change format of TABLEWC and
COLLSEQWC entries written to the file.
* locale/C-collate.c (collseqwc): Change format.
(_nl_C_LC_COLLATE): Set HASH_SIZE and HASH_LAYERS to 0, change format
of COLLSEQWC.
* locale/Makefile (distribute): Add coll-lookup.h, programs/3level.h.
2000-08-27 Bruno Haible <haible@clisp.cons.org>
* locale/programs/ld-ctype.c (MAX_CHARNAMES_IDX): New macro.
(locale_ctype_t): New charnames_idx field.
(ctype_startup): Initialize charnames_idx field.
(find_idx): Speed up dramatically by using charnames_idx inverse table.
2000-08-27 Bruno Haible <haible@clisp.cons.org>
* locale/C-ctype.c: Switch to new locale format.
(_nl_C_LC_CTYPE_names): Remove array.
(STRUCT_CTYPE_CLASS): New macro.
(_nl_C_LC_CTYPE_class_{upper,lower,alpha,digit,xdigit,space,print,
graph,blank,cntrl,punct,alnum}, _nl_C_LC_CTYPE_map_{toupper,tolower}):
New three-level tables.
(_nl_C_LC_CTYPE_width): Change from array to three-level table.
(_nl_C_LC_CTYPE): Fix nstrings value. Set HASH_SIZE and HASH_LAYERS
to 0. Change WIDTH format. Set CLASS_OFFSET and MAP_OFFSET. Add
12 class tables and 2 map tables at the end.
* ctype/ctype-info.c (_nl_C_LC_CTYPE_names): Remove declaration.
(_nl_C_LC_CTYPE_class_{upper,lower,alpha,digit,xdigit,space,print,
graph,blank,cntrl,punct,alnum}, _nl_C_LC_CTYPE_map_{toupper,tolower}):
New declarations.
(b): Remove trailing semicolon.
(__ctype_names, __ctype_width): Don't initialize.
(__ctype32_wctype, __ctype32_wctrans, __ctype32_width): Initialize.
2000-08-27 Bruno Haible <haible@clisp.cons.org>
* elf/dl-load.c (open_path): Add a argument telling whether *dirsp
is guaranteed to be allocated with the same malloc() and may be
passed to free().
(_dl_map_object): Update open_path calls. If rtld_search_dirs has
been set to empty by an earlier open_path call, don't pass it again.
2000-08-28 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/getpeername.c (__getpeername): Renamed from
getpeername. Use ISO C style function definition.
(getpeername): Provide weak alias.
* sysdeps/mach/hurd/setrlimit.c (__setrlimit): Renamed from
setrlimit. Use ISO C style function definition.
(setrlimit): Provide weak alias.
* sysdeps/mach/hurd/xstatconv.c: New file.
* sysdeps/mach/hurd/fxstat64.c: New file.
* sysdeps/mach/hurd/lxstat64.c: New file.
* sysdeps/mach/hurd/xstat64.c: New file.
* sysdeps/mach/hurd/Dist: Add xstatconv.c.
2000-08-15 Mark Kettenis <kettenis@gnu.org>
2000-08-15 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/dl-sysdep.c (__libc_multiple_libcs):
Initialize, needed for change in common symbol handling in newer
binutils. Mirrors 2000-01-03 change made by Andreas Schwab.
2000-08-02 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/socketpair.c (__socketpair): Renamed from
socketpair. Made socketpair a weak alias.
* sysdeps/mach/hurd/pipe.c (__pipe): Reimplemented using
__socketpair. Use S_IFIFO protocol to make pipes POSIX
conforming, but fall back on the old protocol if the socket server
doesn't support it.
* include/sys/socket.h: Add prototype for __socketpair.
2000-07-29 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): Take into
acount that elf/rtld's main program might remove some varibales
from the environment if we're trying to be secure. Move the Hurd
startup data if necessary, or, if we there is no startup data,
make sure the magical convention that ARGV[0] is stored just after
the environment list.
2000-07-22 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/brk.c (_hurd_set_brk): When shrinking the
program's data space, reallocate only the space that was just
deallocated to release its backing space.
* elf/Makefile (tests): Add nodlopen. Add rules to generate nodlopen.
* include/dlfcn.h: Define __RTLD_DLOPEN.
* elf/dl-load.c (_dl_map_object_from_fd): If DF_1_NOOPEN is set
and this is a dlopen() call, do not load the binary.
* dlfcn/dlopen.c: Add __RTLD_DLOPEN to mode passed down to _dl_open.
* dlfcn/dlopenold.c: Likewise.
* configure.in: Add test for -z nodelete option.
* config.make.in: Define have-z-nodelete with libc_cv_z_nodelete.
2000-07-20 Mark Kettenis <kettenis@gnu.org>
Make Hesiod NSS module thread-safe.
* hesiod/README.hesiod: Update.
* hesiod/Versions [GLIBC_2.2]: Add _nss_hesiod_getservbyport_r,
_nss_hesiod_setprotoent, _nss_hesiod_endprotoent,
_nss_hesiod_getprotobyname_r, and _nss_hesiod_getprotobynumber_r.
* hesiod/Makefile (libnss_hesiod-routines): Add hesiod-init and
hesiod-proto.
* hesiod/nss_hesiod/hesiod-init.c: New file.
* hesiod/nss_hesiod/hesiod-pwd.c: Rewritten for thread-safeness.
* hesiod/nss_hesiod/hesiod-grp.c: Likewise.
* hesiod/nss_hesiod/nss_hesiod.h: New file.
* hesiod/nss_hesiod/hesiod-service.c
(_nss_hesiod_getservbyport_r): New function. Provide support for
looking up services by port number.
* hesiod/nss_hesiod/hesiod-proto.c: New file.
* hesiod/hesiod.c: Update from BIND 8.2.3-T5B.
* hesiod/hesiod.h: Likewise.
* hesiod/hesiod_p.h: Likewise.
2000-07-20 Mark Kettenis <kettenis@gnu.org>
Fix problems with `struct __res_state' getting too big.
* resolv/resolv.h (struct __sockaddr_in): New definition.
(struct __res_state): Use __sockaddr_in instead of sockaddr_in in
the private parts of the structure to save some space.
* resolv/res_send.c (res_nsend): Cast &EXT(statp).nsaddrs[ns] to
(struct sockaddr_in *) in call to sock_eq.
Use memcpy to copy statp->nsaddr_list[ns] to &EXT(statp).nsaddrs[ns].
2000-07-20 Ulrich Drepper <drepper@redhat.com>
* sysdeps/mach/hurd/dl-sysdep.c: Likewise.
2000-04-19 Jakub Jelinek <jakub@redhat.com>
* locale/programs/ld-ctype.c (ctype_output): Set size of the idx
field to nelems * sizeof (uint32_t).
* locale/programs/ld-address.c (address_output): Align word fields
properly.
* locale/programs/ld-monetary.c (monetary_output): Likewise.
Don't restart idx pointers to idx end at the duo_int_curr_symbol
field.
Avoid giving arbitrary garbage in the crncystr field.
Use sizeof(uint32_t) instead of 4 for len in uno_valid_from,
uno_valid_to, duo_valid_from, duo_valid_to and conversion_rate
fields.
* locale/programs/ld-numeric.c (numeric_output): Likewise.
Don't restart idx pointers to idx end at the decimal_point_wc field.
* locale/programs/ld-time.c (time_output): week_1stday should be
word, not byte. Align it properly.
2000-04-19 H.J. Lu <hjl@gnu.org>
* csu/gmon-start.c (_start): Declared as "extern void".
(etext): Likewise.
2000-04-18 Andreas Jaeger <aj@suse.de>
* manual/install.texi (Running make install): Don't mention utmpd
anymore.
2000-04-18 Andreas Jaeger <aj@suse.de>
* linuxthreads/Versions: Use ld instead of ld.so.
* elf/Makefile (ld-map): Use ld.map.
* Versions.def: Use ld instead of ld.so.
* elf/Versions: Likewise.
* sysdeps/mach/hurd/Versions: Likewise.
* posix/getconf.c: Add support for many more POSIX options.
* sysdeps/posix/sysconf.c: Likewise.
* sysdeps/generic/bits/confname.h: Add many more POSIX options.
* sysdeps/mach/hurd/bits/posix_opt.h: Add _POSIX_REGEXP and
_POSIX_SHELL.
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
* sysdeps/unix/sysv/linux/i386/bits/time.h: Rename __CLOCK_HIGHRES to
CLOCK_PROCESS_CPUTIME_ID. Add define CLOCK_MONOTONIC and
CLOCK_THREAD_CPUTIME_ID.
* sysdeps/unix/i386/clock_getcpuclockid.c: Set *clock_id to
CLOCK_PROCESS_CPUTIME_ID.
* sysdeps/unix/i386/i586/clock_getres.c: Change for renaming of
__CLOCK_HIGHRES to CLOCK_PROCESS_CPUTIME_ID. Handle
CLOCK_THREAD_CPUTIME_ID and CLOCK_MONOTONIC the same.
* sysdeps/unix/i386/i586/clock_gettime.c: Likewise.
* sysdeps/mach/hurd/i386/init-first.c (init): Don't set __environ
here, before we might move the stack.
(posixland_init): Set __libc_argc, __libc_argc, and __environ here.
(init1): And not here.
(init1): Don't initialize __environ here, since init already does it.
(first_init): New function, broken out of _init.
(_hurd_stack_setup): Use it.
[SHARED] (_dl_init_first): New function, renamed from old _init.
(init1) [SHARED]: Don't call posixland_init here.
(posixland_init): Take ENVP arg, so signature is usual for initializer.
[SHARED] (_init): Define as alias for posixland_init.
[! SHARED] (__libc_first_init): Define as alias for posixland_init.
* sysdeps/i386/dl-machine.h (RTLD_START): Insert the macro
RTLD_START_SPECIAL_INIT before calling initializers.
(RTLD_START_SPECIAL_INIT): Define to empty if undefined.
* sysdeps/mach/hurd/i386/dl-machine.h: New file.
* sysdeps/mach/hurd/dl-sysdep.c (_dl_init_first): New weak function.
* elf/Versions ({libc,ld.so}: GLIBC_2.2): Add _dl_init_first.
* mach/Versions (libc: GLIBC_2.0)
[SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)]: Conditionalize
__vm_allocate on this.
[SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)]: Conditionalize
mutex- and spinlock-related symbols on this.
[!SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)] (libc: HURD_CTHREADS_0.3):
New version set. Lock-related symbols go here instead in this case.
* sysdeps/mach/hurd/Versions (libc: GLIBC_2.0): Remove
_cthread_exit_routine, _cthread_init_routine, cthread_keycreate,
cthread_getspecific, cthread_setspecific, __libc_getspecific.
* hurd/Versions
[SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)] (libc: GLIBC_2.0):
Put them here instead.
[!SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)] (libc: HURD_CTHREADS_0.3):
New version set. Those cthreads symbols go here instead in this case.
* Versions.def (libc) [USE_IN_LIBIO]: Add HURD_CTHREADS_0.3 version.
an initial value of 1024 instead of RLIM_INFINITY.
* Versions.def (libmachuser, libhurduser): Remove these sections,
since these libraries do not presently use symbol versions.
* sysdeps/mach/hurd/getdtsz.c (__getdtablesize): If the resource limit
is RLIM_INFINITY, return -1 instead.
* sysdeps/unix/sysv/linux/net/if.h: Moved to ...
* sysdeps/gnu/net/if.h: here.
(_IOT_ifconf, _IOT_ifreq): Hurd ioctl type macros moved from ...
* sysdeps/mach/hurd/net/if.h: ... here; this file now removed.
* sysdeps/generic/net/if.h: New file. Declares just the standard
functions and `struct if_nameindex' type.
* socket/Makefile (headers): Add net/if.h here.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Not here.
* sysdeps/mach/hurd/Dist: Remove it here.
* sysdeps/unix/sysv/linux/Dist: And here.
* sysdeps/generic/if_index.c: Include <net/if.h>.
2000-03-13 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/generic/lockfile.c: Include <stdio.h>
(_IO_flockfile, _IO_funlockfile, _IO_ftrylockfile): #undef these in
case <libio.h> defined them.
(__flockfile, __funlockfile, __ftrylockfile): Functions renamed
from __internal_*.
(flockfile, _IO_flockfile, funlockfile, _IO_funlockfile,
ftrylockfile, _IO_ftrylockfile): Fix aliases accordingly.
* sysdeps/generic/bits/stdio-lock.h (_IO_lock_initializer): Use ...
for more pleasing parse error.
* elf/Makefile: Add rules to compile and run constload1 test.
argument type, for 2000-02-22 change in signal/signal.h declaration.
* sysdeps/generic/getdents64.c (__getdirentries64): Renamed
to getdirentries64 (no __), since the Linux implementation
has no __ name, and there is no declaration for the __ name.
* sysdeps/mach/bits/libc-lock.h (__libc_cleanup_end): New macro.
* sysdeps/mach/hurd/Makefile ($(common-objpfx)errnos.d): Tighten up
sed regexp so as not to break directory names including /../ within.
* sysdeps/unix/bsd/bits/waitflags.h: File removed.
The sysdeps/generic file is right for BSD. This file was in fact the
Hurd file, but the only difference was the WNOREAP flag that was never
actually implemented or used anywhere.
2000-02-28 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/start.c: Initialize __errno and add comment
explaining why. Remove K&R compatibility.
* sysdeps/powerpc/fpu/s_isnan.c: Avoid using asm statement to
declare aliases.
* sysdeps/powerpc/Makefile: Always pass flags to compile for ppc
and not rs6000.
[$(subdir)=misc] (sysdep_routines): Add gprsave0, gprrest0,
gprsave1 , and gprrest1.
Don't pass special flags to compiler for init and gmon-start if
this is no ELF platform.
* sysdeps/mach/hurd/bits/statfs.h: Define _STATFS_F_NAMELEN.
* sysdeps/unix/sysv/linux/bits/statfs.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/statfs.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/statfs.h: Likewise.
* sysdeps/posix/fpathconf.c: Don't unconditionally use f_namelen
in statfs. Check feature macro and use f_name_max or NAME_MAX
instead.
* sysdeps/posix/pathconf.c: Likewise.
* dlfcn/dlfcn.h: Remove DL_CALL_FCT definition here.
* sysdeps/generic/bits/dlfcn.h: Define DL_CALL_FCT here.
* sysdeps/mips/bits/dlfcn.h: Define DL_CALL_FCT here.
* iconv/skeleton.c: If DL_CALL_FCT is not yet defined, add dumy
definition here.
* sysdeps/generic/libc-start.c: Fix typo in comment.
* include/set-hooks.h: Allow systems to not define
symbol_set_define.
* configure.in: Unify machine names rs6000 and powerpc.
2000-01-23 Philip Blundell <philb@gnu.org>
Add basic support for RPC over IPv6:
* sunrpc/rpc/svc.h (struct SVCXPRT): Use `struct sockaddr_storage'
for remote address.
(svcudp6_create, svcudp6_bufcreate, svctcp6_create): New
prototypes.
* sunrpc/rpc/clnt.h (clnttcp6_create, clntudp6_create,
clntudp6_bufcreate): New prototypes.
* inet/netinet/in.h (bindresport6): Likewise.
* sunrpc/Makefile (routines): Add svc_tcp6, svc_udp6, bindrsvprt6.
* sunrpc/Versions: Add svcfd6_create, svctcp6_create,
svcudp6_create, svcudp6_bufcreate, svcudp6_enablecache,
bindresvport6 for GLIBC_2.2.
* sunrpc/rpc_main.c: Support `tcp6' and `udp6' transport types.
* sunrpc/rpc_svcout.c: Likewise.
* sunrpc/svc_tcp.c (rendezvous_request): Use memcpy rather than
simple assignment when copying addresses.
* sunrpc/svc_udp.c (cache_get): Likewise.
* sunrpc/svc_unix.c (rendezvous_request): Likewise.
* sunrpc/bindrsvprt6.c, sunrpc/clnt_tcp6.c, sunrpc/clnt_udp6.c,
sunrpc/svc_tcp6.c, sunrpc/svc_udp6.c: New files.
2000-01-05 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/arm/mmap64.S: Correct check for ENOSYS.
2000-01-23 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/i386/fxstat.c (__fxstat): Pass right
parameter to fstat calls.
2000-01-18 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/generic/bits/socket.h
(__ss_aligntype, struct sockaddr_storage): Make these like Linux
version, replacing old type name `__ss_align'.
2000-01-05 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/generic/lseek64.c (__libc_lseek64): Renamed from __lseek64.
(__lseek64, lseek64): Make these weak aliases for __libc_lseek64.
* sysdeps/mach/hurd/lseek.c (__libc_lseek): Renamed from __lseek.
(__lseek, lseek): Make these weak aliases for __libc_lseek.
* sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Renamed from __fcntl.
(__fcntl, fcntl): Make these weak aliases for __libc_fcntl.
* sysdeps/mach/hurd/open.c (__libc_open): Renamed from __open.
(__open, open): Make these weak aliases for __libc_open.
* sysdeps/generic/bits/socket.h (enum __socket_type): Remove
trailing comma.
(anonymous enum for MSG_*): Likewise.
(anonymous enum for SO_*): Likewise.
2000-01-23 Ulrich Drepper <drepper@cygnus.com>
* string/bits/string2.h: Fix typo (__GNU_SOURCE -> __USE_GNU)
(PR libc/1553).
* sysdeps/mach/hurd/setitimer.c (quantize_timeval): New function.
(setitimer_locked): Use it to quantize the timer values. Use
quantized timer values to check if the timeout changed.
* sysdeps/mach/hurd/errnos.awk: Rediddle to collect lines and print
them all at the end, eliding the final comma.
* sysdeps/mach/hurd/bits/errno.h: Regenerated.
* hurd/hurdsig.c (_hurdsig_init): If __hurd_threadvar_stack_mask is
nonzero, use cthread_fork to create the signal thread.
* hurd/msgportdemux.c (_hurd_msgport_receive): Initialize
_hurd_msgport_thread here (to self).
* sysdeps/mach/hurd/fork.c (__fork): When __hurd_sigthread_stack_end
is zero, instead compute child signal thread's starting SP from parent
signal thread's current SP and the threadvar_stack variables.
* hurd/Versions (GLIBC_2.1.3): Add cthread_fork, cthread_detach.
These are now referenced weakly by _hurdsig_init.
* hurd/report-wait.c (_S_msg_report_wait): Fix typo:
&_hurd_itimer_thread not &_hurd_msgport_thread.
1999-10-01 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdfchdir.c (_hurd_change_directory_port_from_fd): Rewrite
without HURD_DPORT_USE to clean up warnings.
* hurd/dtable.c (get_dtable_port): Likewise.
* hurd/hurdioctl.c (rectty_dtable): Renamed to install_ctty.
(install_ctty): Do the changing of the cttyid port cell here, inside
the critical section while we holding the dtable lock.
(_hurd_setcttyid, tiocsctty, tiocnotty): Use that instead of changing
the port cell and calling rectty_dtable.
(_hurd_locked_install_cttyid): New function, split out of install_ctty.
(install_ctty): Use it inside a critical section, with the lock held.
* sysdeps/mach/hurd/setsid.c (__setsid): Use
_hurd_locked_install_cttyid to effect the cttyid and dtable changes
after proc_setsid, having held the dtable lock throughout.
* hurd/dtable.c (ctty_new_pgrp): With the dtable lock held, check the
cttyid port for null and bail out early if so. The dtable lock
serializes us after any cttyid change and its associated dtable update.
* sysdeps/mach/hurd/nfs/nfs.h: New file, empty but for comments.
Its presence lets librpcsvc compile ok. This from Mark Kettenis.
We don't install this file for users.
* sysdeps/mach/hurd/Dist: Add it.
* sysdeps/mach/hurd/Makefile [$(subdir) = sunrpc] (sysdep_headers):
Append nfs/nfs.h here.
* sysdeps/mach/hurd/wait4.c (__wait4): When proc_wait returns EAGAIN,
return zero to indicate no children died yet (assuming WNOHANG).
* sysdeps/mach/hurd/setsid.c: #include <hurd/fd.h>.
1999-09-17 Roland McGrath <roland@baalperazim.frob.com>
* hurd/port2fd.c (_hurd_port2fd): Never change CTTYID port.
* sysdeps/mach/hurd/setsid.c (__setsid): Fix return type -> pid_t.
Return _hurd_pgrp instead of 0.
* sysdeps/mach/hurd/i386/intr-msg.h (INTR_MSG_TRAP): Mark OPTION and
TIMEOUT as outputs of the asm to indicate that the signal thread
might mutate them.
* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Short circuit to plain
mach_msg if only sending or only receiving (i.e., not an RPC). When
making an RPC that might get interrupted, save OPTION and the portion
of the message buffer that gets clobbered by an EINTR reply message,
and properly restore them before attempting to retry the request
message send.
1999-08-18 Ulrich Drepper <drepper@cygnus.com>
* ctype/ctype.h: Avoid useless #endif #if pairs.
* dirent/dirent.h: Define ino_t and ino64_t if not done already.
(seekdir): Fix type of second parameter.
* sysdeps/generic/seekdir.c: Likewise.
* sysdeps/mach/hurd/seekdir.c: Likewise.
* sysdeps/unix/seekdir.c: Likewise.
* dlfcn/dlfcn.h: Define RTLD_NEXT and RTLD_DEFAULT only if __USE_GNU.
* sysdeps/mach/hurd/i386/init-first.c (init): Move the inline
assembler code to switch stacks and call init1 outside this
function. Inside `init' the code was optimized away by gcc
2.95 since it was "clearly" unreachable.
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
Do something similar for the trampoline code.
* sysdeps/mach/hurd/mmap.c (__mmap): Use correct arguments in
__vm_allocate calls.
1999-07-20 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/sysd-stdio.c (__stdio_read): Call
_hurd_fd_read with new OFFSET argument set to -1.
(__stdio_write): Call _hurd_fd_write with new OFFSET argument set
to -1.
1999-07-17 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdexec.c (_hurd_exec): Prune trailing null ports from the
descriptor table sent in the RPC.
(_hurd_set_brk, init_brk): Use that instead of &__data_start.
Initialize it from &__data_start if defined, or else &_end.
1999-07-11 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/read.c (__libc_read): Just call __pread with
OFFSET argument of (off_t) -1.
* sysdeps/mach/hurd/write.c (__libc_write): Just call __pwrite with
OFFSET argument of (off_t) -1.
* sysdeps/mach/hurd/pwrite.c: New file.
* sysdeps/mach/hurd/pread.c: New file.
* hurd/fd-read.c (_hurd_fd_read): Take new parameter OFFSET and
pass it in the RPC instead of always -1.
* hurd/fd-write.c (_hurd_fd_write): Likewise.
* hurd/hurd/fd.h: Update decls.
* sysdeps/mach/hurd/read.c (__libc_read): Just call __pread with
OFFSET argument of (off_t) -1.
* sysdeps/mach/hurd/write.c (__libc_write): Just call __pwrite with
OFFSET argument of (off_t) -1.
* sysdeps/unix/sysv/linux/siglist.c: Moved to ...
* sysdeps/gnu/siglist.c: ... here.
Use <siglist.h> instead of "siglist.h", to ensure sysdeps-search.
Use <bits/wordsize.h> instead of <sizes.h> to determine PTR_SIZE_STR.
* sysdeps/gnu/siglist.h: New file, contents from linux version.
Add entry for SIGLOST protected by #ifdef.
* sysdeps/unix/sysv/linux/siglist.h: Just #include that file,
and define OLD_SIGLIST_SIZE_STR.
* sysdeps/mach/hurd/siglist.h: New file, likewise.
$(start-installed-name) if not defined.
(+link-static): Use $(static-start-installed-name) instead of
$(start-installed-name).
* sysdeps/mach/hurd/i386/Makefile (static-start-installed-name):
Set to crt0.o.
1999-06-12 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/fork.c (__fork): Make use of `insert_type' when
inserting a send right into the child instead of unconditionally
copying the send right.
* 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.
* 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.
* 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.