Tue Jun 18 17:56:44 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Version 1.91 test release.

	* Makerules ($(common-objpfx)distinfo-$(subdir)): Change target from
	distinfo to this.
	(distinfo): Make phony target depending on that.
	(TAGS, po/%.pot, dist): Change deps.
	(common-clean): Remove that file.
	* rpm/Makefile (distinfo): Change names.

	* rpm/Makefile (clean): New target.

	* stdlib/test-canon.c: New test program contributed by David Mosberger.
	* stdlib/Makefile (tests): Add test-canon.
	* stdlib/canonicalize.c: Rewritten by David Mosberger.

Mon Jun 17 17:53:21 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* mach/Machrules (%_server.c %_server.h rule): Remove gratuitous
	mention of $< in mig cmd.  Thanks to Shantanu Goel.

	* sysdeps/mach/hurd/brk.c (___brk_addr): Define as weak alias for
	_hurd_brk.

	* libio/stdio.h [__USE_SVID]: Declare tempnam.

Fri Jun 14 19:28:33 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/syscalls.list: Add swapon with two
	parameters.

Wed Jun 12 20:40:51 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/dl-machine.h (RTLD_START): Fix access to
	_dl_default_scope.

Sun Jun 16 03:22:49 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/stub/elfclass.h: New file.

	* Make-dist (subdir): Make empty value really empty.

	* version.h (VERSION): Update to 1.91.

	* hurd/hurdinit.c (map0): Remove [!PIC] conditional.

	* shlib-versions (*-*-*): Add libutil=1.

	* rpm/Makefile (install-lib): Add libc.a et al.
	(install-others): Only add libc.so if $(build-shared) is yes.

	* math/Makefile (install-lib): New variable, list libieee.a.
	(non-lib.a): Likewise.
	(extra-objs): Likewise, and ieee-math.o.
	($(objpfx)libieee.a): New target, link to ieee-math.o.
	* math/ieee-math.c: New file.
	* sysdeps/unix/sysv/linux/Makefile [$(subdir)=math]: Remove setfpucw
	and libieee.a stuff.
	* sysdeps/unix/sysv/linux/ieee-fpucw.c: File removed.
	* sysdeps/unix/sysv/linux/i386/ieee_fpu.c: File removed.

	* sysdeps/unix/sysv/Makefile (sysdep_headers): Make append of termio.h
	and rule for it conditional on termio.h not already being in
	sysdep_headers.

	* rpm/Makefile (install-others) [libc.so-version]: Get libc.so from
	$(libdir), only the versioned named from $(slibdir).
	(instfiles): New variable.
	(glibc-$(version).$(config).rpm): New target.  Run rpm -bb.
	* rpm/rpmrc: New file.  A third of the options controlling rpm can
	only be given here (another third is on the command line, and a third
	cannot be specified in any way shape or form).

Sun Jun 16 02:44:22 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* rpm/template: New file.
	* rpm/Makefile: New file.

	* Makeconfig (sysdep-configures): Remove empty variable.

	* Makerules (distinfo-vars): Write defns for $(install-lib.so) and
	$(versioned).

	* manual/Makefile (subdir_%): Add new rule with no deps, secondary to
	to rule w/dep on %, with no-op commands.

	* Makerules (subdir_distinfo): New phony target; depend on distinfo.
	* Makefile (rpm/%): New rule.
	(+subdir_targets): Add subdir_distinfo.

Sun Jun 16 00:40:20 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Don't add
	fpu_control.h here.

	* time/Makefile ($(installed-localtime-file)): If target exists, do
	nothing but print a message; if not, make it an absolute symlink.

	* time/tzset.c (__tzset): After stripping leading :, call
	__tzfile_read on TZ even if it's empty or null.
	* time/tzfile.c (__tzfile_read): Use "Universal" if passed "".

Sat Jun 15 18:13:43 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* hurd/Makefile (routines): Add get-host, set-host.
	(distribute): Add hurdhost.h.
	* hurd/hurdhost.h: New file.
	* sysdeps/mach/hurd/gethostname.c: Use _hurd_get_host_config.
	* sysdeps/mach/hurd/gethostid.c: Likewise.
	* sysdeps/mach/hurd/sethostname.c: Use _hurd_set_host_config.
	* sysdeps/mach/hurd/sethostid.c: Likewise.
	* hurd/get-host.c: New file.
	* hurd/set-host.c: New file.

	* math/Makefile (headers): Add fpu_control.h.
	(aux): New variable, list fpu_control and setfpucw.
	* sysdeps/generic/fpu_control.c: New file.
	* sysdeps/stub/fpu_control.h: New file.
	* sysdeps/unix/sysv/linux/m68k/fpu_control.h: Moved to ...
	* sysdeps/m68k/fpu_control.h: here.
	* sysdeps/unix/sysv/linux/i386/fpu_control.h: Moved to ...
	* sysdeps/i386/fpu_control.h: here.
	* sysdeps/unix/sysv/linux/alpha/fpu_control.h: Moved to ...
	* sysdeps/alpha/fpu/fpu_control.h: here.  Fixed copyright.
	* sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Remove
	setfpucw, fpu_control.
	* sysdeps/unix/sysv/linux/alpha/fpu_control.c: File removed.
	* sysdeps/unix/sysv/linux/setfpucw.c: Moved to ...
	* sysdeps/generic/setfpucw.c: here.
	(__fpu_control): Variable removed.
	(__setfpucw): Use SET even if zero.

	* elf/dl-deps.c (_dl_map_object_deps): Set MAP's mark bit before loop.
	Set mark bits of deps as opened, instead of as scanned.

	* elf/rtld.c (dl_main): Remove _dl_rtld_map from chain unconditionally.
	Then if it has a nonzero l_opencount, add it back in search order.

	* elf/dl-load.c (_dl_map_object): Don't use _dl_loaded's DT_RPATH if
	it ain't got one!

	* sysdeps/unix/sysv/linux/Dist: Add sys/klog.h.

	* elf/dl-open.c (_dl_open): Remove PARENT argument, pass null.
	* elf/link.h: Update prototype.
	* elf/dl-load.c (_dl_map_object): If dependents' DT_RPATHs don't find
	NAME, try the DT_RPATH of the executable itself if dynamic.
	* elf/dlopen.c (dlopen): Don't pass first arg to _dl_open.

	* elf/dl-load.c (_dl_map_object): Exit DT_RPATH checking loop when an
	open succeeds.

	* Makerules (build-shlib): Give -L opts for each elt of $(rpath-link).

	* sysdeps/mach/hurd/Makefile (sysdep-LDFLAGS): Variable removed.
	(rpath-link): Append to this instead.

Fri Jun 14 01:51:47 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* version.c (banner): New static const variable, complete version
	banner text.
	(__libc_print_version): Use it, and use __write instead of printf.

	* configure.in (sysnames): Don't cache the value, because it
	depends only on libc sources.  Merge uniquifying third pass into
	Implies/parent expansion second pass.  Report each unique name as
	it is added in partial report string, terminated when finished.

	* Makeconfig (sysdep_dir): Move defn before config.status rule that
	expands it.
	(sysdep-configures): Variable removed.
	(config.status): Use its contents directly, tighten up a bit, and
	include Implies files.

	* elf/dl-open.c (_dl_open) [PIC]: Set PARENT to _dl_loaded if null.

	* elf/Makefile ($(objpfx)$(rtld-installed-name)): Make a symlink.

Thu Jun 13 14:29:56 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hurd/hurdsig.c (_hurd_internal_post_signal): Rename `deliver:'
	label to `deliver_pending:' to match goto.

Thu Jun 13 00:02:25 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_open_zero_fill):
	Add comment.

	* elf/rtld.c (dl_main): Close _dl_zerofd after mapping deps.

	* sysdeps/generic/machine-gmon.h [NO_UNDERSCORES]: Define mcount as
	weak alias for _mcount.
	* sysdeps/alpha/_mcount.S (mcount): Define as weak alias.

	* elf/dl-lookup.c (_dl_lookup_symbol): If no value and *REF is
	null, consider it a strong reference and give the error.

Wed Jun 12 15:52:46 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* elf/dl-open.c (_dl_open): Correctly terminate relocating loop
	after relocating NEW when it's the only new object.

	* elf/dl-init.c (_dl_init_next): When out of initializers, set
	_r_debug.r_state to RT_CONSISTENT and call _dl_debug_state just
	before return.

	* elf/rtld.c (dl_main): Move _dl_debug_initialize call after
	relocation.  Call it unconditionally and only fill in DT_DEBUG
	if it's present.  Then call _dl_debug_state with r_state RT_ADD
	before running initializers.

	* elf/dl-open.c (_dl_open): Call _dl_debug_initialize and then call
	_dl_debug_state with r_state RT_ADD before running initializers
	* elf/dl-close.c (_dl_close): Call _dl_debug_state with r_state
	RT_DELETE before running finalizers and with RT_CONSISTENT just
	before return.

	* elf/Makefile (dl-routines): Add dl-debug.
	* elf/dl-debug.c: New file.
	* elf/rtld.c (_dl_r_debug): Rename to _r_debug and move to dl-debug.c.
	(_dl_r_debug_state): Rename to _dl_debug_state and likewise move.
	(dl_main): Use _dl_debug_initialize.
	* elf/link.h: Fix name to _dl_debug_state in decl.
	(_dl_debug_initialize): Declare new function from dl-debug.c.
	(_r_debug): Declare it.

	* Makerules (distinfo-vars): Add install-{lib,data,bin,sbin,others}.
	In distinfo set $(subdir)-VAR and then set VAR to $($(subdir)-VAR).

	* Makeconfig (rpath-link): New variable; add $(elfobjdir).
	(default-rpath): Use it.
	(built-program-cmd): Use it in LD_LIBRARY_PATH.

	* Makeconfig (sysdep-configures): Prepend $(sysdep_dir) to names tried.

	* sysdeps/unix/Dist: Add make-syscalls.sh.

	* misc/Makefile (headers): Add sys/swap.h.
	* posix/unistd.h: Remove decls for swapon, swapoff.
	* sysdeps/generic/sys/swap.h: New file.
	* sysdeps/unix/sysv/linux/sys/swap.h: New file.

	* sysdeps/unix/sysv/linux/gnu/types.h: Remove temporary hack #define
	of __kernel_fsid_t.  It is correctly defines in <linux/types.h> now.

Tue Jun 11 23:23:30 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Makerules (LDFLAGS-c.so): Use __libc_main instead of
	__libc_print_version as entry point for shared object.
	* version.c [HAVE_ELF] (__libc_main): New function.

	* elf/dl-load.c (_dl_map_object_from_fd): Relocate l_entry with the
	load address.

Tue Jun 11 19:13:04 1996  Richard Henderson  <rth@tamu.edu>

	* sysdeps/alpha/dl-machine.h: New file.

	* elf/dl-close.c: Include <string.h> for memcpy.
	* elf/dl-lookup.c: Same.

	* elf/elf.h: Add Elfxx_Symndx for symbol indices.
	* elf/dl-lookup.c (_dl_lookup_symbol): Use it.
	(_dl_setup_hash): Use it.
	* elf/link.h (struct link_map): Use it.

	* elf/rtld.c (_dl_start): Don't rely on pointer-to-first-arg hack
	for getting the argc/argv/envp block.  Instead, make it the argument.
	sysdeps/i386/dl-machine.h (RTLD_START): Do that.
	sysdeps/m68k/dl-machine.h (RTLD_START): Same.

	* shlib-versions: Add version numbers for alpha-linux.  To avoid
	user confusion, make them the same as i386-linux.

	* sysdeps/alpha/Makefile [subdir elf]: Add -mno-fp-regs to
	sysdep-CFLAGS so that _dl_runtime_resolve doesn't have to save them.
	Add -mbuild-constants to CFLAGS-rtld.c to that we can bootstrap
	without using literal data.

	* sysdeps/generic/dl-sysdep.c: Include <string.h> for memcpy.
	Finish Elf32 -> ElfW migration.

Tue Jun 11 15:09:15 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Makerules (elfobjdir): Use $(objdir) if set, even in elf subdir.

	* elf/Makefile (routines): Remove init-first.
	* csu/Makefile (routines): New variable; put it here instead.

	* config.make.in (CFLAGS): New variable.

	* io/sys/stat.h (S_ISLNK, S_ISSOCK): Make conditional on __USE_BSD,
	not __USE_GNU.
	* string/string.h (strncasecmp): Likewise.

	* elf/Makefile (lib-noranlib): Move rule adding deps for ld.so et al
	to after `include ../Rules', so $(rtld-installed-name) is defined.

	* string/basename.c (basename): Cast FILENAME to char * for return.

	* Makerules ($(libdir)/libc.so): Put $(rtld-installed) name between
	libc.so and libc.a in the deps.

	* elf/Makefile ($(objpfx)$(rtld-installed-name)): New target to make
	link to ld.so if that is not the installed name.
	(lib-noranlib): Depend on the installed name in the build directory
	instead of on ld.so.

	* Makeconfig (link-libc): Include $(elfobjdir)/$(rtld-installed-name)
	between libc.so and libc.a, because with libc.so's DT_NEEDED for ld.so
	ld searches libc.a before ld.so (is that an ld bug?).
	Add $(elfobjdir) to -rpath-link.

	* Makerules (elfobjdir): Define as . when $(subdir) is elf.

	* sysdeps/i386/dl-machine.h (elf_machine_rel): In R_386_32 case when
	relocating _dl_rtld_map, subtract SYM's value from final reloc value,
	but don't change *RELOC_ADDR before calling *RESOLVE, because it might
	call the function we are relocating!

	* string/basename.c: New file.
	* string/Makefile (routines): Add basename.

Mon Jun 10 06:14:03 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Makerules ($(common-objpfx)libc.so): Depend on $(elfobjdir)/ld.so.

	* elf/dl-close.c: New file.
	* elf/link.h: Declare _dl_close.
	* elf/Makefile (routines): Add dl-close.
	* elf/dlclose.c (dlclose): Use _dl_close.

	* elf/Makefile ($(objpfx)librtld.so): Remove libelf from deps.

	* elf/dl-runtime.c (_dl_global_scope): New variable.
	(_dl_object_relocation_scope): New function.
	(fixup): Use it.
	* elf/rtld.c (dl_main): Use it.
	* elf/dl-open.c (_dl_open): Use it.  If (MODE & RTLD_GLOBAL), set the
	l_global bit and append the new map to _dl_global_scope.
	* elf/link.h: Declare _dl_global_scope, _dl_global_scope_alloc,
	and _dl_object_relocation_scope.

	* elf/link.h (struct link_map): Add l_loader member.
	Remove _dl_map_object_from_fd decl.
	* elf/dl-load.c (_dl_map_object): Pass LOADER to ...
	(_dl_map_object_from_fd): Take new arg LOADER and set l_loader member.
	(_dl_map_object): Try DT_RPATH from all loaders up the chain.

	* elf/dl-object.c (_dl_loaded): Variable removed.
	(_dl_default_scope): New variable replaces it.
	* elf/link.h (_dl_loaded): Remove variable decl; instead define as
	macro for _dl_default_scope[2].
	(_dl_default_scope): Declare it.
	* sysdeps/i386/dl-machine.h (RTLD_START): Use _dl_default_scope[2]
	instead of _dl_loaded.
	* sysdeps/m68k/dl-machine.h (RTLD_START): Likewise.
	* elf/rtld.c (dl_main): Use _dl_default_scope for symbol lookups.

	* elf/dl-reloc.c (_dl_relocate_object): Remove check for _dl_rtld_map.
	* elf/rtld.c (dl_main): Pass 0 for LAZY flag when re-relocating self.

	* elf/link.h (struct link_map.l_type): Remove lt_interpreter.
	(struct link_map): Add new flag member l_global.

	* elf/dl-reloc.c (_dl_relocate_object): Check for _dl_rtld_map
	directly instead of looking for lt_interpreter.
	* sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise.
	* elf/rtld.c (_dl_start): Don't bother setting BOOTSTRAP_MAP.l_type.
	(dl_main): Set _dl_rtld_map.l_type to lt_library.

	* elf/dl-deps.c (_dl_map_object_deps): Propagate MAP->l_type to
	dependencies loaded, downgrading lt_executable -> lt_library.

	* elf/dl-load.c (_dl_map_object_from_fd): Take new arg TYPE and set
	l_type from that, translating lt_library->lt_executable based on the
	file's ELF type.
	(_dl_map_object): Likewise.
	* elf/link.h: Update prototypes.
	* elf/dl-open.c: Pass type lt_loaded.
	* elf/rtld.c: Pass type lt_library.

	* elf/dl-load.c (_dl_map_object_from_fd): Handle null return from
	_dl_new_object.
	(_dl_map_object_from_fd: lose): Unchain and free L if it's not null.
	Free REALNAME, and just use NAME in error message.
	* elf/dl-object.c (_dl_new_object): If malloc fails, return null
	instead of calling _dl_signal_error.

	* elf/dl-load.c (_dl_map_object_from_fd): Close FD before signalling
	error for _dl_zerofd setup failure.

	* elf/dl-object.c (_dl_startup_loaded): Variable removed.
	* elf/link.h: Remove its decl.

	* elf/dl-reloc.c (_dl_relocate_object): Take new SCOPE arg and pass it
	through to _dl_lookup_symbol.
	* elf/link.h (_dl_relocate_object): Update comment and prototype.
	* elf/rtld.c (dl_main): Pass scope vector to _dl_relocate_object.

	* elf/dl-lookup.c (_dl_lookup_symbol): Arg SYMBOL_SCOPE is now a
	null-terminated vector of pointers, no longer a vector of exactly two.
	* elf/link.h (_dl_lookup_symbol): Update comment and prototype.

	* elf/dl-runtime.c (fixup): Set up scope for symbol lookup properly as
	done in _dl_relocate_object.

	* elf/dlopen.c: Pass "" to _dl_open when FILE is null.

	* elf/link.h: Include elfclass.h to define __ELF_NATIVE_CLASS.
	(ElfW, ELFW): Use it.
	* elf/Makefile (headers): Add elfclass.h.
	* sysdeps/wordsize-32/elfclass.h: New file.
	* sysdeps/wordsize-64/elfclass.h: New file.
	* sysdeps/alpha/Implies: Add wordsize-64.
	* sysdeps/i386/Implies: Add wordsize-32.
	* sysdeps/m68k/Implies: Add wordsize-32.
	* sysdeps/mips/Implies: Add wordsize-32.
	* sysdeps/sparc/Implies: Add wordsize-32.

	* sysdeps/mach/hurd/dl-sysdep.c (__open): Define this instead of open.
	(__close, __mmap): Likewise define with __ names now.

Mon Jun 10 05:13:18 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* elf/dl-support.c: New file.
	* elf/Makefile (CFLAGS-dl-support.c): New variable.
	(routines, elide-routines.so): Add dl-support.

	* elf/dl-minimal.c (_dl_pagesize): Remove common defn.
	* elf/dl-load.c (_dl_pagesize): Define it here.
	(_dl_map_object_from_fd): Initialize it if zero.
	* elf/link.h (_dl_pagesize): Remove const.

Sun Jun  9 04:04:26 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* elf/Makefile (routines): Add dl-symbol.
	* elf/dl-lookup.c (_dl_symbol_value): Moved to ...
	* elf/dl-symbol.c: New file.

	* elf/elf.h (Elf32_Xword, Elf32_Sxword): New types.
	(Elf32_Section, Elf64_Section): New types, 16 bits.
	(Elf32_Sym, Elf64_Sym): Use it.

	* elf/dl-deps.c (_dl_open): Moved to ...
	* elf/dl-open.c: New file.
	* Makefile (routines): Add dl-open.

	* elf/Makefile (dl-routines): New variable.
	(routines): Add $(dl-routines).
	(elide-routines.so): New variable, set to $(dl-routines).
	(libdl-inhibit-o): Variable removed; build all flavors of -ldl.
	(rtld-routines): All but rtld, dl-sysdep, and dl-minimal moved to
	$(dl-routines).

	* elf/dl-lookup.c (_dl_lookup_symbol): Remove magic symbol grokage.

	* elf/dladdr.c: Use ELFW(ST_BIND) in place of ELF32_ST_BIND.

	* elf/dl-load.c (open_path): Use __ names for open and close.  Avoid
	using strdup.
	(_dl_map_object): Likewise.
	(_dl_map_object_from_fd): Use __ names for mmap, munmap, and mprotect.
	* elf/dl-minimal.c (malloc): Likewise.
	* elf/dl-reloc.c (_dl_relocate_object): Likewise.

	* elf/dl-minimal.c (_dl_pagesize): New variable.
	(malloc): Use that instead of a static variable.
	* elf/dl-reloc.c (_dl_relocate_object): Use _dl_pagesize instead of
	calling getpagesize.
	* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
	* elf/link.h: Declare _dl_pagesize.

	* elf/rtld.c (dl_r_debug): Renamed to _dl_r_debug.

	* elf/link.h (struct link_map): Use Half for l_phnum instead of Word.
	* elf/rtld.c (dl_main): Use Half for phdr count arg.
	(_dl_sysdep_start): Update prototype of DL_MAIN function ptr arg.

	* elf/dl-load.c (_dl_map_object_from_fd): Use explicit Elf32_Word to
	extract 4-byte magic number, not ElfW(Word).  Match EI_CLASS against
	native wordsize, either 32 or 64.

	* elf/elf.h (Elf64_Byte, Elf64_Section): Typedefs removed.  In C a
	char is always a byte, no need for a typedef.  Section indices are
	16-bit quantities in elf64, which already have a typedef Elf64_Half.

	Remove partial -lelf implementation.  There is now a
	separately-distributed `libelf' package that implements it.
	* elf/dl-lookup.c: Don't #include <libelf.h> any more.
	(_dl_elf_hash): New function, moved from
	libelf.h:elf_hash.
	(_dl_lookup_symbol): Use it instead of elf_hash.
	* elf/libelf.h: File removed.
	* elf/elf_hash.c: File removed.
	* elf/Makefile (headers): Remove libelf.h.
	(extra-libs): Remove libelf.
	(libelf-routines): Variable removed.

	* elf/Makefile (libdl.so): Remove commands from this target.  The
	implicit rule commands are correct, this explicit rule just serves to
	add some dependencies.

	* elf/dl-lookup.c (_dl_lookup_symbol): Use ELFW(ST_TYPE) in place of
	ELF32_ST_TYPE.  Likewise ST_BIND.
	* elf/do-rel.h (elf_dynamic_do_rel): Likewise R_SYM.

	* elf/link.h (ElfW): New macro for wordsize-independent ElfXX_* type
	naming.
	(ELFW): New macro, likewise for ELFXX_* macro naming.
	(_ElfW, _ElfW_1): New macros, subroutines of ElfW and ELF.

Sat Jun  8 20:52:38 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* elf/link.h, elf/do-rel.h, elf/dynamic-link.h, elf/dl-deps.c,
	elf/dl-init.c, elf/dl-load.c, elf/dl-lookup.c, elf/dl-reloc.c,
	elf/dl-runtime.c, elf/dladdr.c, elf/dlclose.c, elf/dlsym.c,
	elf/linux-compat.c, elf/rtld.c: Change all uses of `Elf32_XXX' to
	`ElfW(XXX)' for wordsize-independence.

Sat Jun  8 20:50:42 1996  Richard Henderson  <rth@tamu.edu>

	* elf/elf.h: Move Elf64_* types in parity with Elf32 counterparts.
	(Elf64_auxv_t): New type.
	(EM_ALPHA, R_ALPHA_*): New macros for elf64-alpha format.

Mon Jun 10 02:22:24 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/configure.in: New file, start with configure.
	Add check for installed <linux/version.h> being v2.0 or later.

	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_open_zero_fill): Call __open
	instead of open.
	(_dl_sysdep_fatal): Call __write instead of write.
	(_dl_sysdep_message): Likewise.

Sun Jun  9 20:40:00 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/e_acosl.c: New file.

Sun Jun  9 01:11:49 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Makerules (o-objects): New variable.  Use it in place of
	$(objects:.o=$o); it filters out $(elide-routines$o).
	Use o-iterator for ar and ranlib rules so they use the per-type object
	list.

	* elf/dl-load.c (_dl_map_object_from_fd): Close FD before return.

	* sysdeps/mach/mprotect.c: Define with __ name and weak alias.
	* sysdeps/stub/mprotect.c: Likewise.
	* sysdeps/unix/mman/syscalls.list (mprotect): Likewise.
	* sysdeps/generic/sys/mman.h: Declare __mprotect.
	* sysdeps/unix/sysv/irix4/sys/mman.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/mman.h: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/sys/mman.h: Likewise.
	* sysdeps/unix/bsd/osf/sys/mman.h: Likewise.
	* sysdeps/unix/bsd/ultrix4/sys/mman.h: Likewise.

	* Make-dist ($(tardir).tar): Use sed to check for file names longer
	than 14 chars, instead of doschk which checks for other things we
	don't care about.

	* Version 1.90 test release.

	* Makerules (make-target-directory): Use ./mkinstalldirs so we do not
	assume . is in PATH.

Sat Jun  8 22:05:03 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* math/Makefile (distribute): Comment out addition of
	$(long-m-routines) sources until they are all written.

	* math/Makefile (distribute): Append long double source names to this
	instead of using elided-routines.

Sat Jun  8 15:15:07 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* mach/mach_shortcuts.c: Obsolete file removed.
	* mach/mach_syscalls.h: Likewise.

	* hurd/Makefile (distribute): Consolidate defns into one.

	* time/Makefile (tzfiles): Add solar87 solar88 solar89.

Fri Jun  7 16:48:13 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/i386/Dist: New file, list sys/perm.h and
	sys/vm86.h.

	Removed old math code no longer used since the fdlibm integration.
	* sysdeps/stub/acos.c: File removed.
	* sysdeps/stub/asin.c: File removed.
	* sysdeps/stub/atan2.c: File removed.
	* sysdeps/stub/cosh.c: File removed.
	* sysdeps/stub/exp.c: File removed.
	* sysdeps/stub/fmod.c: File removed.
	* sysdeps/stub/frexp.c: File removed.
	* sysdeps/stub/log.c: File removed.
	* sysdeps/stub/log10.c: File removed.
	* sysdeps/stub/sinh.c: File removed.
	* sysdeps/stub/tan.c: File removed.
	* sysdeps/stub/tanh.c: File removed.
	* sysdeps/generic/acos.c: File removed.
	* sysdeps/generic/acosh.c: File removed.
	* sysdeps/generic/asin.c: File removed.
	* sysdeps/generic/asinh.c: File removed.
	* sysdeps/generic/atan.c: File removed.
	* sysdeps/generic/atan2.c: File removed.
	* sysdeps/generic/atanh.c: File removed.
	* sysdeps/generic/cabs.c: File removed.
	* sysdeps/generic/ceil.c: File removed.
	* sysdeps/generic/copysign.c: File removed.
	* sysdeps/generic/cosh.c: File removed.
	* sysdeps/generic/exp.c: File removed.
	* sysdeps/generic/expm1.c: File removed.
	* sysdeps/generic/fabs.c: File removed.
	* sysdeps/generic/floor.c: File removed.
	* sysdeps/generic/fmod.c: File removed.
	* sysdeps/generic/frexp.c: File removed.
	* sysdeps/generic/hypot.c: File removed.
	* sysdeps/generic/infnan.c: File removed.
	* sysdeps/generic/isnan.c: File removed.
	* sysdeps/generic/ldexp.c: File removed.
	* sysdeps/generic/log.c: File removed.
	* sysdeps/generic/log10.c: File removed.
	* sysdeps/generic/log1p.c: File removed.
	* sysdeps/generic/modf.c: File removed.
	* sysdeps/generic/pow.c: File removed.
	* sysdeps/generic/rint.c: File removed.
	* sysdeps/generic/sinh.c: File removed.
	* sysdeps/generic/tan.c: File removed.
	* sysdeps/generic/tanh.c: File removed.
	* sysdeps/ieee754/cabs.c: File removed.
	* sysdeps/ieee754/copysign.c: File removed.
	* sysdeps/ieee754/frexp.c: File removed.
	* sysdeps/ieee754/hypot.c: File removed.
	* sysdeps/ieee754/infnan.c: File removed.
	* sysdeps/ieee754/ldexp.c: File removed.
	* sysdeps/ieee754/log10.c: File removed.

	* posix/Makefile (headers): Add schedbits.h.

	* math/Makefile (elided-routines): Add long double routines.

Fri Jun  7 11:02:22 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/getpriority.c (getpriority): Use new interface
	to __proc_getprocinfo.

	* login/login.c (tty_name): New function.
	(login): Use it.
	(PATH_MAX): MACRO removed.
	<stdlib.h>: New include.

Fri Jun  7 09:11:17 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/Dist: Add sys/sysinfo.h, sys/mount.h,
	sys/kdaemon.h, sys/io.h, sys/mount.h, sysctl.c.

	* gmon/Makefile (distribute): Add profil-counter.h.

	* sysdeps/unix/sysv/linux/alpha/Dist: New file.

	* sysdeps/unix/Dist: Add s-proto.S.

	* sysdeps/unix/common/mk-local_lim.c: Obsolete file removed.

	* Make-dist (+sysdep-tsrcs): Get all syscalls.list files too.

	* csu/Makefile (distribute): Add start.c.

	* elf/Makefile (distribute): Add dl-machine.h.

	* sysdeps/alpha/Dist: Add _mcount.S.

	* sysdeps/alpha/Makefile (sysdep_routines): Append instead of
	resetting; don't add bb_init_func.

	* string/Makefile (routines): Add strerror_r.
	* string/string.h (strerror_r): Use int for BUFLEN arg.

	* Makefile (distribute): Add shlib-versions.

	* po/Makefile (distribute): Add SYS_libc.pot.

	* misc/Makefile (routines): Add lsearch.

	* manual/lang.texi (Consistency Checking): Merge in assert_perror defn
	and other changes inadvertently made to the obsolete assert.texi.
	* manual/assert.texi: File removed.

	* mach/mach_syscalls.c: Obsolete file removed.
	* mach/mach_syscalls.h: Likewise.
	* mach/mach_traps.S: Likewise.
	* mach/msg_destroy.c: Likewise.
	* mach/vm_page_size.c: Likewise.

	* locale/Makefile (distribute): Add weight.h, charset.h.

	* Makefile (distribute): Add version.h.

	* hurd/Makefile (headers): Add hurd/ioctl.h.
	(distribute): Add intr-rpc.d, intr-rpc.h, faultexc.defs.

	* csu/Makefile (distribute): Add gmon-start.c.

	* Makefile (distribute): Add config.h.in.

Wed Jun  5 22:06:21 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/dl-machine.h (elf_machine_rela): Fix type of reloc
	argument.
	[case R_68K_32]: Check for resolve being null.
	(RTLD_START): Add missing label.

Fri Jun  7 1996 05:29:32  Ulrich Drepper  <drepper@cygnus.com>

	* misc/lsearch.c: New file.  Implementation of lfind and
	lsearch functions.

	* misc/search.h: Add prototype for functions from tsearch
	family with __ prefix.
	Correct prototype for lsearch: BASE parameter must not be
	const.

	* misc/tsearch.c: prepend all global function names with __
	and make normal names weak aliases.

Fri Jun  7 00:15:24 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Make-dist (sysdep_dirs): Skip CVS dirs.

Thu Jun  6 16:12:39 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* malloc/Makefile (distribute): Change malloc/gmalloc-head.c to
	gmalloc-head.c.
	(malloc/gmalloc.c): Depend on malloc/gmalloc-head.c.
	(malloc/Makefile): Do $(make-target-directory) first.
	* malloc/gmalloc-head.c: New file.

	* po/Makefile (linguas.mo): Don't commit .mo files to cvs.

	* hurd/hurdsig.c (_hurd_internal_post_signal): For SIGNO==0 pending
	check, deliver a pending blocked signal if its action might be to
	ignore.
	* sysdeps/mach/hurd/sigaction.c: If new action is SIG_IGN or SIG_DFL
	and SIG is pending, wake up signal thread to check us.

	* hurd/hurdsig.c (_hurd_internal_post_signal): Don't mark a signal
	pending while blocked or stopped when the action is to ignore it.

Thu Jun  6 12:56:03 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* hurd/hurdsig.c (_hurd_internal_post_signal: resume): Only set
	SS_SUSPENDED when the thread is really suspended.

	* elf/rtld.c (dl_main): Don't dereference _dl_rtld_map.l_next if null.

	* Makerules (headers): Move append of $(sysdep_headers) after include
	of sysdep makefiles.

	* sysdeps/mach/hurd/errlist.c: File removed.

Thu Jun  6 07:32:14 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* resolv/gethnamaddr.c (struct hstorage): Make NAME field a pointer.
	(_gethtbyname2): Remove ALIAS variable.
	Initialize NAME field of SELF and TARGET to 0.
	Add SELF_NAME_SIZE static variable.
	Add loop to call gethostname until the space we allocated is enough.
	Use malloced strings instead of fixed size buffers.
	<stdlib.h>, <unistd.h>: New includes.
	* sysdeps/generic/sys/socket.h (PF_INET6, AF_INET6): New macros.

	* sysdeps/mach/hurd/errlist.c (_sys_errlist): Add EILSEQ.
	(_sys_nerr): Initialize to 107.
	Update _HURD_ERRNOS consistency check.

	* stdlib/canonicalize.c (canonicalize): Use pathconf for PATH_MAX,
	not sysconf.

	* login/login.c [!PATH_MAX] (PATH_MAX): Define to be 1024 if not
	already defined.

	* sysdeps/mach/hurd/setitimer.c (timer_thread): Supply SIGCODE
	argument to __msg_sig_post_request.

	* hurd/hurdmalloc.c: Changes to bring in line with the hurd
	libthreads/malloc.c:
	(more_memory): Use assert_perror instead of MACH_CALL.
	"cthread_internals.h": Include removed.
	(realloc): Use LOG2_MIN_SIZE.
	(LOG2_MIN_SIZE): New macro.
	(realloc): Don't bother allocating a new block if the
	new size request fits in the old one and doesn't waste any space.
	Only free the old block if we successfully got a new one.
	[MCHECK] (struct header): New type.
	(union header): Only define if !MCHECK.
	(HEADER_SIZE, HEADER_NEXT, HEADER_FREE, HEADER_CHECK): New macros.
	[MCHECK] (MIN_SIZE): Add correct definition for this case.
	(more_memory, malloc, free, realloc): Use above macros, and add
	appropiate checks & frobs in MCHECK case.

Thu Jun  6 02:00:42 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Makerules (distinfo-vars): Don't write constant line to frob sources.
	* Make-dist (sources): Append $(elided-routines) and $(extra-libs)
	routines.

Tue Jun  4 22:03:02 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/__math.h: Define long double versions of
	the inline functions.
	* sysdeps/m68k/fpu/e_asinl.c, sysdeps/m68k/fpu/e_atanl.c,
	sysdeps/m68k/fpu/e_acosl.c, sysdeps/m68k/fpu/e_expl.c,
	sysdeps/m68k/fpu/e_fmodl.c, sysdeps/m68k/fpu/e_log10l.c,
	sysdeps/m68k/fpu/e_logl.c, sysdeps/m68k/fpu/e_powl.c,
	sysdeps/m68k/fpu/e_remainderl.c, sysdeps/m68k/fpu/e_scalbl.c,
	sysdeps/m68k/fpu/e_sinhl.c, sysdeps/m68k/fpu/e_sqrtl.c,
	sysdeps/m68k/fpu/k_cosl.c, sysdeps/m68k/fpu/k_sinl.c,
	sysdeps/m68k/fpu/k_tanl.c, sysdeps/m68k/fpu/s_atanl.c,
	sysdeps/m68k/fpu/s_ceill.c, sysdeps/m68k/fpu/s_cosl.c,
	sysdeps/m68k/fpu/s_expm1l.c, sysdeps/m68k/fpu/s_fabsl.c,
	sysdeps/m68k/fpu/s_finitel.c, sysdeps/m68k/fpu/s_floorl.c,
	sysdeps/m68k/fpu/s_frexpl.c, sysdeps/m68k/fpu/s_ilogbl.c,
	sysdeps/m68k/fpu/s_isinfl.c, sysdeps/m68k/fpu/s_isnanl.c,
	sysdeps/m68k/fpu/s_ldexpl.c, sysdeps/m68k/fpu/s_log1pl.c,
	sysdeps/m68k/fpu/s_logbl.c, sysdeps/m68k/fpu/s_modfl.c,
	sysdeps/m68k/fpu/s_rintl.c, sysdeps/m68k/fpu/s_scalbnl.c,
	sysdeps/m68k/fpu/s_significandl.c, sysdeps/m68k/fpu/s_sinl.c,
	sysdeps/m68k/fpu/e_atanhl.c, sysdeps/m68k/fpu/e_coshl.c: New files.

	* sysdeps/m68k/fpu/e_acos.c, sysdeps/m68k/fpu/e_fmod.c,
	sysdeps/m68k/fpu/k_cos.c, sysdeps/m68k/fpu/k_sin.c,
	sysdeps/m68k/fpu/k_tan.c, sysdeps/m68k/fpu/s_atan.c,
	sysdeps/m68k/fpu/s_frexp.c, sysdeps/m68k/fpu/s_ilogb.c,
	sysdeps/m68k/fpu/s_isinf.c, sysdeps/m68k/fpu/s_ldexp.c,
	sysdeps/m68k/fpu/s_modf.c: Define generic functions using FUNC and
	float_type with appropriate defaults.

	* sysdeps/m68k/fpu/e_acosf.c, sysdeps/m68k/fpu/e_fmodf.c,
	sysdeps/m68k/fpu/k_cosf.c, sysdeps/m68k/fpu/k_sinf.c,
	sysdeps/m68k/fpu/k_tanf.c, sysdeps/m68k/fpu/s_atanf.c,
	sysdeps/m68k/fpu/s_frexpf.c, sysdeps/m68k/fpu/s_ilogbf.c,
	sysdeps/m68k/fpu/s_isinff.c, sysdeps/m68k/fpu/s_ldexpf.c,
	sysdeps/m68k/fpu/s_modff.c: Include the corresponding double
	versions with appropriate definitions to get float functions,
	instead of defining them directly.

	* sysdeps/m68k/fpu/acos.c: File removed.
	* sysdeps/m68k/fpu/asin.c: File removed.
	* sysdeps/m68k/fpu/atan.c: File removed.
	* sysdeps/m68k/fpu/atan2.c: File removed.
	* sysdeps/m68k/fpu/atanh.c: File removed.
	* sysdeps/m68k/fpu/ceil.c: File removed.
	* sysdeps/m68k/fpu/cos.c: File removed.
	* sysdeps/m68k/fpu/cosh.c: File removed.
	* sysdeps/m68k/fpu/drem.c: File removed.
	* sysdeps/m68k/fpu/exp.c: File removed.
	* sysdeps/m68k/fpu/expm1.c: File removed.
	* sysdeps/m68k/fpu/fabs.c: File removed.
	* sysdeps/m68k/fpu/fl.h: File removed.
	* sysdeps/m68k/fpu/floor.c: File removed.
	* sysdeps/m68k/fpu/fmod.c: File removed.
	* sysdeps/m68k/fpu/frexp.c: File removed.
	* sysdeps/m68k/fpu/isinf.c: File removed.
	* sysdeps/m68k/fpu/isinfl.c: File removed.
	* sysdeps/m68k/fpu/isnan.c: File removed.
	* sysdeps/m68k/fpu/isnanl.c: File removed.
	* sysdeps/m68k/fpu/ldexp.c: File removed.
	* sysdeps/m68k/fpu/log.c: File removed.
	* sysdeps/m68k/fpu/log10.c: File removed.
	* sysdeps/m68k/fpu/log1p.c: File removed.
	* sysdeps/m68k/fpu/logb.c: File removed.
	* sysdeps/m68k/fpu/pow.c: File removed.
	* sysdeps/m68k/fpu/rint.c: File removed.
	* sysdeps/m68k/fpu/sin.c: File removed.
	* sysdeps/m68k/fpu/sinh.c: File removed.
	* sysdeps/m68k/fpu/sqrt.c: File removed.
	* sysdeps/m68k/fpu/tan.c: File removed.
	* sysdeps/m68k/fpu/tanh.c: File removed.

Thu Jun  6 00:02:15 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/syscalls.list: Add select (the syscall name
	is _newselect).
	* sysdeps/unix/sysv/linux/select.S: File removed.

	* sysdeps/unix/sysv/linux/m68k/select.S: File removed; obsolete with
	current kernels, generic linux version is fine.

	* locale/Makefile: Add vpath for %.gperf to programs.

	* Make-dist (+tsrcs): Variable removed.
	(dist): Process $^ here instead of using $(+tsrcs).

	* sysdeps/unix/sysv/linux/Makefile (install-others): Don't set.
	($(includedir)/sys/syscall.h): Target removed.
	(sysdep_headers): Add syscall-list.h.
	($(objpfx)syscall-%.[dh]): New rule to build syscall-list.[dh].
	(generated): Add those.
	* sysdeps/unix/sysv/linux/syscall.h: Include <syscall-list.h>.

Wed Jun  5 15:57:28 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* misc/sys/syscall.h: New file.
	* misc/Makefile (headers): Add sys/syscall.h.

	* time/tzfile.h, time/private.h, time/zdump.c, time/zic.c,
	time/africa, time/asia, time/australasia, time/europe,
	time/northamerica, time/southamerica: Updated from ADO 96h.

	* Make-dist (all-headers): Filter $(sysdep_headers) out of $(headers).
	(try-sysdeps, +sysdep-names): Check sysdeps/libm-ieee754 too.

	* Makerules (distinfo-vars): Add sysdep_headers.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Append to
	this instead of $(headers).
	* sysdeps/unix/sysv/linux/alpha/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.

	* Make-dist [subdirs-dirs]: Don't prefix $(subdir-dirs) with
	$(subdir); we are already there.

	* sysdeps/unix/sysv/sysv4/solaris2/sparc/Dist: Removed.

	* mach/Machrules: Undo last change.
	(mach-generated): List .uh and .__h files only for $(user-interfaces),
	not for each .h in $(interface-headers); server-interfaces have no .uh
	or .__h files.

Wed Jun  5 15:42:51 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* mach/Machrules (%_server.uh, %_server.__h): New rules, so that the
	corrsponding .defs file with without the `_server' will be used.

	* mach/Makefile (mach/mach_interface.defs): Renamed from
	mach_interface.defs.
	(mach/memory_object_user.defs): New variable.

Wed Jun  5 15:10:58 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Make-dist [subdir-dirs]: Set vpath for %, not just %.c.

	* locale/Makefile (subdir-dirs): New variable.

Wed Jun  5 00:01:19 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Makerules (distinfo-vars): Add sysdep_routines.

	* mach/Machrules (include-%.defs): New canned sequence.
	Change all uses of `#include <$*.defs>' in cmds to use it.
	* mach/Makefile (mach_interface.defs): New variable, set to mach.defs.

	* sysdeps/i386/dl-machine.h (elf_machine_rel): Handle RESOLVE being
	null in all cases but R_386_COPY.
	(elf_machine_rel):

Wed Jun  5 00:01:19 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/unix/bsd/ultrix4/mips/Dist: Updated.
	* sysdeps/unix/bsd/ultrix4/Dist: Removed.
	* sysdeps/unix/sysv/sysv4/Dist: Updated.
	* sysdeps/unix/sysv/sco3.2.4/Dist: Removed.
	* sysdeps/unix/sysv/irix4/Dist: Updated.
	* sysdeps/unix/sysv/linux/i386/Dist: Removed.
	* sysdeps/unix/sysv/Dist: Updated.
	* sysdeps/unix/bsd/sun/sunos4/Dist: Removed.
	* sysdeps/unix/bsd/sony/newsos4/Dist: Removed.
	* sysdeps/gnu/Dist: New file.
	* sysdeps/alpha/Dist: Updated.
	* sysdeps/mach/hurd/Dist: Updated.

	* Make-dist [subdir-dirs]: Set a vpath for %.c.

	* Make-dist (README): Fix typo in cvs cmd.

	* elf/dl-lookup.c (_dl_lookup_symbol): Fix typos in last change.
	Comment out ref to nonexistent _dl_close.

Tue Jun  4 21:01:20 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* math/Makefile (libm-support, libm-calls): New variables.
	(libm-routines): Construct this from those.
	(calls): New variable.
	(routines): Construct this from it.

	* resolv/res_debug.c: Add missing #include <ctype.h>.

	* sysdeps/unix/getlogin.c: Must pass struct utmp ptr to getutline_r.
	* sysdeps/unix/getlogin_r.c: Likewise.

	* sysdeps/libm-ieee754/w_hypotl.c: Fix typo.

	* sysdeps/libm-ieee754/w_cabsl.c: __cabsl_complex -> __cabs_complexl

	* math/Makefile (long-m-routines): Define recursive variable as
	$(long-m-$(long-double-fcts)).
	(long-m-yes): Put list of routines here.
	(long-c-routines, long-c-yes): Likewise.

	* sysdeps/unix/sysv/linux/schedbits.h: File removed.

	* sysdeps/i386/Makefile (long-double-fcts): New variable, set to yes.
	* sysdeps/m68k/Makefile: Likewise.

	* math/Makefile [$(long-double-fcts)!=yes] (CPPFLAGS): Append
	-DNO_LONG_DOUBLE.

	* sysdeps/mach/hurd/getlogin_r.c: New file.

Wed Jun  5 02:11:30 1996  Ulrich Drepper  <drepper@cygnus.com>

	* io/Makefile (routines): Add ttyname_r.

	* resolv/res_debug.c, resolv/resolv.h: Update from bind-4.3.4-T4A.

	* sysdeps/libm-i387/e_asinl.S, sysdeps/libm-i387/e_atan2l.S,
	sysdeps/libm-i387/e_expl.S, sysdeps/libm-i387/e_fmodl.S,
	sysdeps/libm-i387/e_log10l.S, sysdeps/libm-i387/e_logl.S,
	sysdeps/libm-i387/e_remainderl.S, sysdeps/libm-i387/e_scalbl.S,
	sysdeps/libm-i387/e_sqrtl.S, sysdeps/libm-i387/s_atanl.S,
	sysdeps/libm-i387/s_cosl.S, sysdeps/libm-i387/s_ilogbl.S,
	sysdeps/libm-i387/s_log1pl.S, sysdeps/libm-i387/s_logbl.S,
	sysdeps/libm-i387/s_scalbnl.S, sysdeps/libm-i387/s_sinl.S,
	sysdeps/libm-i387/s_tanl.S: New files.  i387 assembler versions
	of `long double' math functions.

	* sysdeps/libm-ieee754/k_standard.c: Add handling for errors
	in long double functions.

	* sysdeps/libm-ieee754/s_ilogbl.c, sysdeps/libm-ieee754/s_logbl.c,
	sysdeps/libm-ieee754/s_modfl.c:  New files.  Generic versions
	of `long double' math functions.

	* sysdeps/libm-ieee754/s_isinf.c [NO_LONG_DOUBLE]: Add string
        alias for __isinfl.

	* sysdeps/libm-ieee754/w_acoshl.c, sysdeps/libm-ieee754/w_acosl.c,
	sysdeps/libm-ieee754/w_asinl.c, sysdeps/libm-ieee754/w_atan2l.c,
	sysdeps/libm-ieee754/w_atanhl.c, sysdeps/libm-ieee754/w_cabsl.c,
	sysdeps/libm-ieee754/w_coshl.c, sysdeps/libm-ieee754/w_dreml.c,
	sysdeps/libm-ieee754/w_expl.c, sysdeps/libm-ieee754/w_fmodl.c,
	sysdeps/libm-ieee754/w_gammal.c, sysdeps/libm-ieee754/w_gammal_r.c,
	sysdeps/libm-ieee754/w_hypotl.c, sysdeps/libm-ieee754/w_j0l.c,
	sysdeps/libm-ieee754/w_j1l.c, sysdeps/libm-ieee754/w_jnl.c,
	sysdeps/libm-ieee754/w_lgammal.c, sysdeps/libm-ieee754/w_lgammal_r.c,
	sysdeps/libm-ieee754/w_log10l.c, sysdeps/libm-ieee754/w_logl.c,
	sysdeps/libm-ieee754/w_powl.c, sysdeps/libm-ieee754/w_remainderl.c,
	sysdeps/libm-ieee754/w_scalbl.c, sysdeps/libm-ieee754/w_sinhl.c,
	sysdeps/libm-ieee754/w_sqrtl.c: New files.  Wrapper functions
	around long double function implementations.

	* sysdeps/posix/ttyname_r.c (ttyname_r): Use _D_EXACT_NAMLEN
	to determine length of directory entry name.

	* posix/Makefile (routines): Add getlogin_r.
	* posix/unistd.h: Add prototype for getlogin_r.
	* sysdeps/stub/getlogin_r.c: New file.  Reentrant version of
	getlogin function, specified in P1003.1c/D6.  Stub version.
	* sysdeps/unix/getlogin.c (getlogin): Use ttyname_r instead of
	ttyname.  This avoids saving and restoring the old content.
	Also use setutent_r, getutline_r and endutent_r instead of
	accing UTMP file directly.
	* sysdeps/unix/getlogin_r.c: New file.  Reentrant version of
	getlogin function, specified in P1003.1c/D6.

Tue Jun  4 20:10:09 1996  J.T. Conklin  <jtc@cygnus.com>

	* sysdeps/libm-i387/s_finitef.S: Fix mask for exponent.

Tue Jun  4 18:57:57 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* elf/dl-lookup.c (_dl_lookup_symbol): Grok magical undefined symbols
	_GNU_libc_dl_{open,close,symbol} and resolve them to dl functions.

	* elf/rtld.c (rtld_map): Renamed to _dl_rtld_map, made global.
	* elf/link.h: Declare _dl_rtld_map.

	* elf/dl-lookup.c (_dl_symbol_value): New function.
	* elf/link.h: Declare it.

	* elf/dladdr.c: Remove #include <setjmp.h>, we don't use it.

	* shlib-versions: Set libdl=2.

	* elf/dl-deps.c (_dl_map_object_deps): Use a linked list of alloca'd
	elements and then scan it to fill the single malloc'd array, instead
	of using realloc to grow the array in the first pass.  _dl_map_object
	may do some mallocs that break our stream of reallocs, and the minimal
	realloc can't handle that.

	* elf/dl-init.c (_dl_init_next): Take argument, link_map whose
	searchlist describes the piece of the DT_NEEDED graph to be
	initialized.
	* elf/link.h: Update prototype.
	* sysdeps/i386/dl-machine.h (RTLD_START): Pass _dl_loaded as argument
	to _dl_init_next.
	* sysdeps/m68k/dl-machine.h: Likewise.
	* elf/dl-deps.c (_dl_open): Pass new object as arg to _dl_init_next.

	* elf/link.h (struct link_map): Add `l_reserved' member, soaking up
	extra bits in last byte.
	* elf/dl-deps.c (_dl_map_object_deps): Use that for mark bit to avoid
	putting dup elts in search list.

	* elf/dlclose.c: Use MAP->l_searchlist to find deps to close.

	* elf/dlsym.c: Don't tweak linked list.  Scope array given to
	_dl_lookup_symbol does the right thing.

	* elf/Makefile (subdir_lib): Change this target to lib-noranlib.
	(lib-noranlib): Depend on on $(extra-objs).

	* errno.h: Move __END_DECLS out of #ifdef's so it matches
	__BEGIN_DECLS.

Tue Jun  4 02:25:44 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* stdio-common/vfprintf.c [USE_IN_LIBIO] (size_t): Don't define as
	macro.  _IO_size_t is just an alias for the real size_t anyway.

	* elf/Makefile (libdl-routines): Add dladdr.
	* elf/dladdr.c: New file.
	* elf/dlfcn.h (Dl_info): New typedef.
	(dladdr): Declare it.

	* sysdeps/libm-i387/s_finite.S: Use `setne' instead of `setnel'.

	* intl/l10nflist.c: Fix conditional on #include <argz.h>.

	* libio/stdio.h (FOPEN_MAX, FILENAME_MAX, TMP_MAX, L_tmpnam): Macros
	removed.  Instead, include <stdio_lim.h>.

	* libio/_G_config.h: New file.
	* libio/Makefile (headers): Add _G_config.h.

	* MakeTAGS (po/errlist.pot): Extract from sysdeps/gnu/errlist.c.

	* sysdeps/unix/sysv/linux/gnu/types.h (__KERNEL_STRICT_NAMES): Define
	this macro too; current Linux kernels test that instead of
	_LINUX_TYPES_DONT_EXPORT.

	* elf/linux-compat.c (_init): Pass reloc_addr arg to _dl_lookup_symbol.

	* elf/dl-lookup.c (_dl_lookup_symbol): Use l_searchlist.

	* elf/dl-deps.c: New file.
	* elf/Makefile (rtld-routines): Add dl-deps.
	* elf/link.h: Declare _dl_map_object_deps, _dl_open.
	* elf/rtld.c (dl_main): Use _dl_map_object_deps.
	* elf/dlopen.c: Use _dl_open.

	* elf/rtld.c (dl_main): Remove BEFORE_RTLD variable and list
	frobnication based on its value.  Detach RTLD_MAP from the chain if
	its l_opencount is zero after loading deps.

	* elf/dlfcn.h (RTLD_BINDING_MASK): New macro.

	* elf/link.h (struct link_map): Replace l_deps_loaded flag member with
	`struct link_map **l_searchlist' and `unsigned int l_nsearchlist'.
	* elf/dl-lookup.c (_dl_lookup_symbol): Make SYMBOL_SCOPE arg an array
	of two link_map ptrs.  Search the maps in the l_searchlist of each
	elt that is not null.
	* elf/dl-reloc.c (_dl_relocate_object): Pass proper SCOPE array.
	* elf/dl-runtime.c: Likewise.
	* elf/dlsym.c: Likewise.
	* elf/rtld.c (dl_main): Likewise.

	* elf/dl-minimal.c (realloc): Support realloc of the block most
	recently returned by the minimal malloc.

Tue Jun  4 00:16:03 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/gnu/errlist.awk: Produce N_("..."), not _N("...").

	* intl: Updated from gettext-0.10.13.
	* intl/localealias.c, intl/dcgettext.c [_LIBC]: Define HAVE_ALLOCA.

	* signal/siggetmask.c: New file.  Wrapper around sigblock with
	link_warning about obsolescence.
	* signal/Makefile (routines): Add siggetmask.

	* sysdeps/gnu/errlist.awk: New file, adapted from ...
	* sysdeps/mach/hurd/errlist.awk: File removed, above file replaces it.
	* sysdeps/mach/hurd/Makefile (errlist.c): Target removed.
	* sysdeps/gnu/Makefile: New file.
	(sysdeps/gnu/errlist.c): Make the errlist.c generation rule into this.

Mon Jun  3 21:03:54 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* manual/errno.texi (Error Codes): Add placeholder items for missing
	Linux/i386 errno codes, with perror text but no documentation.
	Some existing perror texts changed.

	* malloc/mcheck.c (freehook, reallochook): Handle null pointer args.

	* hurd/hurdsig.c (_hurd_internal_post_signal): When setting ACT to
	`ignore, resume the thread if SS_SUSPENDED, regardless of old action.

Sun Jun  2 20:14:30 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* locale/programs/linereader.c (lr_open): Don't pass NULL to
	xstrdup; fix memory leak.
	(lr_close): Fix memory leak.

Mon Jun  3 15:58:22 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* hurd/hurdsig.c (_hurd_internal_post_signal): When turning the action
	for a HANDLE signal to IGNORE because the signal is blocked, clean
	up any pending suspension left over from a call to resume.

Mon Jun  3 00:30:35 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* elf/dl-lookup.c (_dl_lookup_symbol): Take new arg RELOC_ADDR and
	don't allow a defn resolving to that address.

	* elf/link.h: Update prototype and comment.
	* elf/dl-runtime.c (fixup): Define local `resolve' function and pass
	it to elf_machine_relplt.
	* elf/dl-reloc.c (_dl_relocate_object: resolve): Take new arg
	RELOC_ADDR and pass it through to _dl_lookup_symbol.
	* elf/do-rel.h (elf_dynamic_do_rel): Pass RESOLVE to elf_machine_rel
	instead of calling it ourselves and passing its results.
	(elf_dynamic_do_rel): RESOLVE fn takes new arg RELOC_ADDR.
	* elf/rtld.c (dl_main): Pass 0 for RELOC_ADDR to _dl_lookup_symbol.
	* sysdeps/i386/dl-machine.h (elf_machine_rel): Remove SYM_LOADADDR
	arg.  Add RESOLVE function ptr arg.  Call *RESOLVE as necessary.
	* sysdeps/m68k/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/stub/dl-machine.h: Likewise.

Sun Jun  2 14:56:49 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* csu/initfini.c (_fini): Add extern decl for i_am_not_a_leaf.

	* elf/dlfcn.h (dl_open_mode): Enumerated type removed.
	(RTLD_LAZY, RTLD_NOW): Define these as macros instead.
	(RTLD_GLOBAL): New macro.
	(dlopen): Take arg of type int instead of dl_open_mode.
	* elf/dlopen.c: Likewise.

	* math/math.h (_Mldbl): New macro, either produces L suffix or not.
	(M_*): Use it for these constants.

	* elf/dl-lookup.c (_dl_lookup_symbol): Arg NOSELF renamed to NOPLT.
	Reject SHN_UNDEF defns iff NOPLT is nonzero.
	* elf/link.h (_dl_lookup_symbol): Update prototype and comment.
	* elf/dl-runtime.c (fixup): Pass 1 to _dl_lookup_symbol for NOPLT.
	* elf/dlsym.c (dlsym): Pass 0.
	* elf/rtld.c (dl_main): Likewise.
	* elf/dl-reloc.c (_dl_relocate_object: resolve): Second arg R_OFFSET
	replaced with NOPLT flag.  Pass it through to _dl_lookup_symbol.
	* elf/do-rel.h (elf_dynamic_do_rel): Update prototype of RESOLVE arg.
	Pass `elf_machine_pltrel_p (R->r_type)' result as NOPLT flag value.
	* sysdeps/i386/dl-machine.h (elf_machine_pltrel_p): New macro.
	* sysdeps/m68k/dl-machine.h (elf_machine_pltrel_p): Likewise.
	* sysdeps/stub/dl-machine.h (elf_machine_pltrel_p): Likewise.

	* login/pututline_r.c: Fix typo in sizeof for DATA_TMP alloca.

	* sysdeps/generic/gnu/types.h (__clock_t): New type.

Wed May 29 00:57:37 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/unix/sysv/linux/gnu/types.h (__clock_t, __fsid_t): Define
	using kernel types.
	* time/time.h (clock_t): Include <gnu/types.h> and define using
	__clock_t.

	* time/Makefile (tests): Add test-tz.

	* time/test-tz.c: New test.

	* time/clocktest.c: Rewrite to test more meaningfully.

	* sysdeps/unix/sysv/linux/syscalls.list: Add bdflush,
	create_module, delete_module, get_kernel_syms, init_module,
	klogctl.

	* sysdeps/unix/sysv/linux/sys/param.h (MAXSYMLINKS): Define as 5
	instead of SYMLOOP_MAX, which is nowhere to be found.

	* sysdeps/unix/sysv/linux/sys/msq_buf.h,
	sysdeps/unix/sysv/linux/sys/sem_buf.h,
	sysdeps/unix/sysv/linux/sys/shm_buf.h [__USE_MISC]: Add more
	control ops and datastructures.

	* sysdeps/unix/sysv/linux/sys/io.h: New file declaring low-level
	I/O related functions.

	* sysdeps/unix/sysv/linux/sys/kdaemon.h: New file declaring kernel
	daemon related functions/operations.

	* sysdeps/unix/sysv/linux/sys/klog.h: New file declaring kernel
	logging related functions/operations.

	* sysdeps/unix/sysv/linux/sys/module.h: New file declaring kernel
	module related functions/operations.

	* sysdeps/unix/sysv/linux/speed.c: Only do "mention this twice" hack
	for non-Alpha based Linux systems.

	* sysdeps/unix/sysv/linux/alpha/speed.c: Remove.

	* sysdeps/unix/sysv/linux/Makefile (headers): Add sys/module.h,
	sys/io.h, sys/klog.h, and sys/kdaemon.h.

	* sysdeps/unix/sysdep.h (END): Define empty END macro for
	platforms that don't need some sort of end directive at the
	end of functions.

	* sysdeps/unix/make-syscalls.sh: Emit END($strong) at end of
	syscall wrapper to allow correct generation of debugging
	information.

	* sysdeps/unix/alpha/sysdep.h (END): Redefine to use .end
	directive for both ELF and ECOFF.
	(ret): Delete macro.  It was a dangerous macro and unnecessary
	since the Alpha assemblers recognizes "ret" as a macro themselves.

	* sysdeps/gnu/utmpbits.h (struct utmp): Move ut_tv behind
	ut_session to guarantee long alignment.  This is important for
	Linux/Alpha since ut_tv.tv_sec is 32 bits and time_t is 64 bits.
	This will all get cleaned up as programs start to use ut_tv
	instead ut_time.

	* sysdeps/alpha/divrem.h: Include <sysdep.h> instead of <*/regdef.h>.

	* sysdeps/alpha/bsd-_setjmp.S (setjmp): Renamed entry point to
	_setjmp.

	* sysdeps/alpha/_mcount.S, sysdeps/alpha/bb_init_func.S,
	sysdeps/alpha/bsd-_setjmp.S, sysdeps/alpha/bsd-setjmp.S,
	sysdeps/alpha/copysign.S, sysdeps/alpha/divrem.h,
	sysdeps/alpha/fabs.S, sysdeps/alpha/ffs.S, sysdeps/alpha/htonl.S,
	sysdeps/alpha/htons.S, sysdeps/alpha/memchr.S,
	sysdeps/alpha/setjmp.S, sysdeps/alpha/strlen.S,
	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/llseek.S,
	sysdeps/unix/sysv/linux/alpha/pipe.S,
	sysdeps/unix/sysv/linux/alpha/sigsuspend.S,
	sysdeps/unix/sysv/linux/alpha/sysdep.S: Use END macro instead of
	.end directive.

	* csu/initfini.c (_fini): Tell gcc that _fini is not a leaf
	function by having it contain a dummy function call.

	* configure.in (config_machine): Don't make ELF the default for
	Linux/Alpha just yet (use --with-elf instead).
	(.init/.fini check): Generate .text to ensure function start and
	end are in same section.

	* sysdeps/unix/bsd/osf/alpha/brk.S,
	sysdeps/unix/sysv/linux/alpha/brk.S (__curbrk): Store the entire
	break value, not just the low 32 bits to accomodate large
	memories.

Tue May 28 10:46:04 1996  Richard Henderson  <rth@tamu.edu>

	* sysdeps/unix/sysv/linux/alpha/brk.S: Rather than attempt to
	dynamically resolve _end for initializing __curbrk, support the
	brk(0) query idiom.

	* sysdeps/alpha/bb_init_func.S: Don't make `init' an external symbol.

	* sysdeps/alpha/bsd-_setjmp.S: The function is _setjmp not setjmp.

Sun May 26 22:17:38 1996  Richard Henderson  <rth@tamu.edu>

	* stdlib/lcong48_r.c, stdlib/seed48_r.c, stdlib/strtod.c,
	stdlib/strtol.c: Include <string.h> for mem* and str* fns used.

Thu May 23 02:15:56 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/unix/sysv/linux/Makefile (headers): Add sys/io.h,
	sys/klog.h, and sys/kdaemon.h.

	* sysdeps/unix/sysv/linux/sys/io.h: New file.
	* sysdeps/unix/sysv/linux/sys/klog.h: Ditto.
	* sysdeps/unix/sysv/linux/sys/kdaemon.h: Ditto.

	* sysdeps/unix/alpha/sysdep.h (ret): Remove macro.  It is
	dangerous and unnecessary since both OSF/1 as and gas define "ret"
	as a pseudo-instruction.

Sat Jun  1 17:18:21 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* time/tzset.c (__tzset): Clear tz_rules name pointers after freeing
	them.  Bug found by David Mosberger-Tang.

	* sysdeps/posix/tempname.c (__stdio_gen_tempname): Use __ptr_t instead
	of PTR.

	* extra-lib.mk (extra-objs): Use patsubst intead of $(A:=B) syntax
	to work around Make bug when A contains var ref.

Fri May 31 18:27:52 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* string/string.h [__USE_MISC]: Declare basename; OSF/1 puts it here.

	* sysdeps/unix/sysv/linux/syscalls.list (getpgid, setpgid): Define __
	strong names and [gs]etpgid as weak aliases.

Thu May 30 11:24:05 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* math/math_private.h (GET_LDOUBLE_EXP): Add missing backslash.

	* po/header.pot: Replace with exact boilerplate pinard dictates.

	* sysdeps/i386/strtok.S (Lillegal_argument): Remove this code to set
	errno and the check that jumped to it.

	* sysdeps/mach/hurd/Makefile (errnos.d): Use $(sed-remove-objpfx).

Thu May 30 03:21:57 1996  Ulrich Drepper  <drepper@cygnus.com>

	* FAQ: Document need of gperf program for developers.

	* elf/elf.h: Fix typos in comments.

	* libio/stdio.h [!__STRICT_ANSI__ || _POSIX_SOURCE]: Add
        prototypes for `ctermid' and `cuserid'.

	* locale/programs/locale.c: Switch to user selected locale
	before printing variables.

	* math/Makefile [$(long-double-fcts)==yes]: Define long-m-routines
        and long-c-routines.  Only if the `long double' data type is
        available we need to compile the functions.
	(libm-routines): Add $(long-m-routines).
	(routines): Remove isinfl, isnanl.  Use new file s_isinfl and
	s_isnanl instead if `long double' is available.

	* math/math.h: Include <mathcalls.h> again to define `long double'
        functions.

	* math/math_private.h: Define data types, prototypes and access
        macros for `long double'.

	* stdlib/stdlib.h: Add prototypes for `strtoll' and `strtoull'.
	[GCC2 && OPTIMIZE]: Define strto{,u}ll as inline function which
	calls __strto{,u}q_internal.

	* stdlib/strfmon.c: Replace PTR by `void *'.

	* stdlib/strtoq.c: Define strtoll as weak alias.
	* stdlib/strtouq.c: Define strtoull as weak alias.

	* string/tester.c: Correct `strsep' test.

	* sysdeps/generic/strsep.c: Make compatible with BSD version.
        Trailing characters of skip set are not skipped.  In this case
        empty tokens are returned.

	* sysdeps/i386/isinfl.c, sysdeps/i386/isnanl.c,
        sysdeps/ieee754/isinf.c, sysdeps/ieee754/isinfl.c,
        sysdeps/ieee754/isnan.c, sysdeps/ieee754/isnanl.c: Removed.  We
        now use the versions part of libm.

	* sysdeps/i386/strsep.S: Removed.  Generic C version is of
	similar speed.
	* sysdeps/i386/strtok.S: Remove support for `strsep'.

	* sysdeps/libm-i387/e_acosl.S, sysdeps/libm-i387/s_ceill.S,
        sysdeps/libm-i387/s_copysignl.S, sysdeps/libm-i387/s_finitel.S,
        sysdeps/libm-i387/s_floorl.S, sysdeps/libm-i387/s_isinfl.c,
        sysdeps/libm-i387/s_isnanl.c, sysdeps/libm-i387/s_nextafterl.c,
        sysdeps/libm-i387/s_rintl.S, sysdeps/libm-i387/s_significandl.S:
        New i387 specific math functions implementing `long double'
        versions.

	* sysdeps/libm-ieee754/s_ceill.c,
        sysdeps/libm-ieee754/s_copysignl.c,
        sysdeps/libm-ieee754/s_fabsl.c, sysdeps/libm-ieee754/s_finitel.c,
        sysdeps/libm-ieee754/s_floorl.c, sysdeps/libm-ieee754/s_isinfl.c,
        sysdeps/libm-ieee754/s_isnanl.c,
        sysdeps/libm-ieee754/s_nextafterl.c,
        sysdeps/libm-ieee754/s_rintl.c, sysdeps/libm-ieee754/s_scalbnl.c,
        sysdeps/libm-ieee754/s_significandl.c: New generic `long double'
        versions of libm functions.

	* sysdeps/libm-i387/e_exp.S: Add a few comments to explain the
        Intel FPU nonsense.

	* sysdeps/libm-i387/s_ceil.S, sysdeps/libm-i387/s_ceilf.S,
        sysdeps/libm-i387/s_floor.S, sysdeps/libm-i387/s_floorf.S: Correct
        handling of local variables.  The old version created a stack
        frame but stored the values outside.

	* sysdeps/libm-ieee754/s_isinf.c, sysdeps/libm-ieee754/s_isnan.c
        [!NO_LONG_DOUBLE]: Define alias with `long double' versions name.

Wed May 29 12:53:10 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* login/pututline_r.c: Include sys/stat.h.  Fix typos.

	* version.h (VERSION): Set to 1.90.

	* Makerules (distinfo-vars): Write extra-libs and *-routines for each
	of its elts.
	* MakeTAGS (sources): Add those sources.

	* MakeTAGS (all-sources): Add $(others:=.c) and $(tests:=.c).

Wed May 29 08:53:08 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hurd/report-wait.c (_S_msg_report_wait): Return `itimer' for the
	itimer thread.

	* hurd/hurdinit.c (_hurd_init): Set _HURDSIG_TRACED before calling
	_hurd_proc_init.

Wed May 29 00:52:20 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* string/tester.c (main): Fix strsep tests 6, 7, 20 to expect null
	token instead of it being implicitly skipped.

	* sysdeps/i386/fpu/__math.h (logb): Correct contraint from =u to =t.
	Must operate on top of fp reg stack, not second from top.

	* extra-lib.mk (alltypes-$(lib)): Don't append $(objpfx)$(lib).so.
	(others): Instead, make this depend on it.

Tue May 28 04:38:10 1996  Ulrich Drepper  <drepper@cygnus.com>

	* limits.h: Change MB_LEN_MAX to 6.  A 31-bit ISO 10646
	character in UTF-8 encoding has that many bytes.

	* locale/langinfo.h: New element _NL_CTYPE_MB_CUR_MAX.
	* locale/categories.def: Add description of field _NL_CTYPE_MB_CUR_MAX.
	* locale/Makefile (routines): Add mb_cur_max.
	* locale/mb_cur_max.c: New file.  This function gets called
	when the macro MB_CUR_MAX is used.
	* locale/C-ctype.c: Initialize new mb_cur_max field.
	* locale/localeinfo.h: Change magic value because of incompatible
        change.
	* locale/programs/ld-ctype.c: Determine value of mb_cur_max
        according to current character set and write it out with the rest.
	* stdlib/stdlib.h (MB_CUR_MAX): Not constant anymore.  Get value
        according to currently used locale for category LC_CTYPE by
        calling the function __ctype_get_mb_cur_max.

Tue May 28 03:27:46 1996  Ulrich Drepper  <drepper@cygnus.com>

	* FAQ:  Fix some typos.
	Tell that for Linux the kernel header files are necessary.

	* PROJECTS: New file.  List of open jobs for glibc.
	* Makefile (distribute): Add PROJECTS.

	* crypt/GNUmakefile (headers): New variable.  Mention crypt.h.
	* crypt/crypt.h: Header for crypt functions.

	* elf/elf.h: Add some new constants from recent Cygnus ELF
	header files.

	* login/getutid_r.c: Test for correct type.
	Don't depend on ut_type and ut_id unless _HAVE_UT_TYPE and
	_HAVE_UT_ID resp. are defined.
	Make really compliant with specification.

	* login/getutline_r.c, login/pututline_r.c: Don't depend on
	ut_type and ut_id unless _HAVE_UT_TYPE and _HAVE_UT_ID resp. are
	defined.
	Make really compliant with specification.

	* login/setutent_r.c: Don't depend on ut_type and ut_id unless
	_HAVE_UT_TYPE and _HAVE_UT_ID resp. are defined.

	* login/login.c, login/logout.c, login/logwtmp.c: Complete
	rewrite.  Now based on getut*/setut* functions.

	* stdlib/strtol.c: Undo changes of Wed May 22 01:48:54 1996.
	This prevented using this file in other GNU packages.

	* sysdeps/gnu/utmpbits.h: Define _HAVE_UT_TYPE, _HAVE_UT_ID,
	and _HAVE_UT_TV because struct utmp has these members.

	* sysdeps/libm-i387/e_exp.S: Correct exp(+-Inf) case.

	* utmp.h: New file.  Wrapper around login/utmp.h.

Tue May 28 13:11:19 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* elf/dl-error.c (struct catch): New type.
	(catch): New static variable, struct catch *.
	(catch_env, signalled_errstring, signalled_objname): Variables removed.
	(_dl_signal_error): If CATCH is non-null, set its errstring and
	objname members and jump to CATCH->env.  If it is null, call
	_dl_sysdep_fatal with a standard message.
	* elf/rtld.c (dl_main): Explode `doit' function into dl_main's body.
	No longer use _dl_catch_error.

	* Makerules (sed-remove-objpfx): Avoid extra space in regexp due to
	continuation line.

	* sysdeps/unix/sysv/linux/i386/socket.S: Fix off-by-one error in
	setting %ecx to 2nd syscall arg: we have pushed nothing, so function
	args are found at 4(%esp), not 8(%esp).

Mon May 27 10:10:00 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Makefile ($(includedir)/stubs.h): Add missing backslash.

	* sysdeps/unix/sysv/linux/i386/brk.c (__curbrk): Initialize it so it
	can be aliased.

	* sysdeps/unix/sysv/linux/Makefile [$(subdir)=termios] (headers):
	Append termio.h.

	* Makefile ($(includedir)/stubs.h): Print a msg if we do nothing.

	* misc/sgtty.h: Add forward decl of struct sgttyb in case it is never
	defined.

	* sysdeps/unix/sysv/linux/termio.h: New file.
	* sysdeps/unix/sysv/linux/Dist: Add it.

	* sysdeps/unix/sysv/linux/ioctl-types.h: New file, wrapper around
	kernel header <asm/termios.h>.

	* misc/Makefile (headers): Add ioctl-types.h.
	* sysdeps/generic/ioctl-types.h: New file.
	* misc/sys/ioctl.h: Include <ioctl-types.h>.
	(struct tchars, struct ltchars, struct sgttyb, struct winsize,
	struct ttysize): Types moved there.

	* Makefile ($(includedir)/stubs.h): Don't touch target if new one is
	identical.

	* time/Makefile (z.% rule): Generate generic zone%/ rule after
	zone%/right/ and zone%/posix/ rules so they match first.

Sun May 26 15:15:08 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* features.h [_GNU_SOURCE] (_BSD_SOURCE, _SVID_SOURCE,
	_POSIX_SOURCE, _POSIX_C_SOURCE): Define these.

	* time/Makefile (tzcompile): Add missing backslash.

	* stdlib/ldiv.c: Deansideclized.

	* wctype/wctype.h (__need_wint_t): Define this and include stddef.h.
	[! _WINT_T] (wint_t): Conditionalize typedef on this in case pre-2.7.3
	stddef.h doesn't define it.
	* wcsmbs/wchar.h: Likewise.
	* stdlib/strtod.c: Likewise.

	* wcsmbs/wcstok.c: Fix argument name typo.

Sun May 26 19:39:53 1996  Ulrich Drepper  <drepper@cygnus.com>

	* intl/loadmsgcat.c (_nl_load_domain): Test correct variable
	after malloc.

	* string/Makefile (tester-ENV): New variable to suppress message
	translation in test.

	* string/tester.c: Add tests for strtok_r and strsep.

	* sysdeps/i386/i486/strcat.S: Correct some more 8bit operation
	<-> 32 bit operand conflicts.

	* sysdeps/i386/strsep.S: Wrapper around <sysdeps/i386/strtok.S>
	to produce strsep function.
	* sysdeps/i386/strtok.S: Optimized implementation of strtok
	function.
	* sysdeps/i386/strtok_r.S: Wrapper around <sysdeps/i386/strtok.S>
	to produce strtok_r function.

	* sysdeps/generic/strtok.c: Moved here from string/strtok.c.
	Corrected example in comment.

	* string/Makefile (routines): Add strtok_r.
	* sysdeps/generic/strtok_r.c: New file.  Implement reentrant version
	of strtok_r.
	* string/string.h: Add prototype for strtok_r.
	* wcsmbs/wcstok.c: Handle illegal SAVE_PTR argument the same
	as in strtok_r.

Sun May 26 13:28:23 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* time/tzset.c (__tzset): Ignore leading : in $TZ; always try tzfile
	first and fall back to 1003.1 syntax only if it fails.

	* time/Makefile (install-others): Also install posix/ZONE and
	right/ZONE for each ZONE in $(zonenames).
	(z.% rule): Generate rules for right/ZONE and posix/ZONE targets too,
	the difference begin leapseconds vs /dev/null as 3rd dep.  For
	original ZONE targets use $(leapseconds), to be set in Makeconfig.
	(target-zone-flavor): New variable.
	(tzcompile): Use it to get the right -d for posix/ and right/ flavors.
	* Makeconfig (leapseconds): New variable.

	* mach/Machrules (%.udeps rule): Depend on Machrules.
	Emit deps for .uh and .__h files.
	(%.uh, %.__h rules): Don't depend on %.defs; use #include <$*.defs>
	instead.

Sun May 26 01:06:47 1996  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/Makefile (routines): Add llabs, lldiv.
	* stdlib/llabs.c: New file.  Implementation of return
	absolute value of long long argument.
	* stdlib/lldiv.c: New file.  Implementation of division with remainder
	of long long argument.
	* stdlib/stdlib.h [__USE_GNU] (lldiv_t): New type for lldiv
	function.
	Define prototypes for lldiv and llabs functions.

	* locale/C-collate.c: Initialize _NL_COLLATE_NRULES element.

	* stdlib/strtod.c: Replace wchar_t with wint_t.  The later is
	really the type for a single wide character.

	* string/strxfrm.c (print_val): Define separate version for
	use as wcsxfrm.  Here we don't need UTF8 encoding.

	* wcsmbs/wchar.h:  gcc-2.7.2-960517 finally introduces wint_t
	in <stddef.h>.  Use this value and only for older gcc version
	define in place.
	(uwchar_t): Remove definition.

	* wcsmbs/wcscmp.c, wcsmbs/wcscoll.c, wcsmbs/wcsncmp.c,
	wcsmbs/wcsxfrm.c, wcsmbs/wmemcmp.c: : Don't use uwchar_t as unsigned
	type.  wint_t is intended for this.

Sat May 25 14:10:19 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/unix/bsd/direntry.h: Use [1] instead of [0] for d_name to
	quiet -ansi -pedantic.
	* sysdeps/unix/common/direntry.h: Likewise.

	* login/Makefile (headers): Add lastlog.h.
	* login/lastlog.h: New file.

	* login/Makefile (CFLAGS): Don't append -D_THREAD_SAFE.
	* login/utmp.h [_REENTRANT || _THREAD_SAFE]: Replace this conditional
	with #ifdef __USE_REENTRANT.

	* features.h (__GNU_LIBRARY__): Set to 6.
	[_GNU_SOURCE] (_POSIX_SOURCE, _POSIX_C_SOURCE, _BSD_SOURCE,
	_SVID_SOURCE): Make sure they are all defined.

	* sysdeps/unix/sysv/linux/gnu/types.h: Instead of including
	<linux/posix_types.h>, define _LINUX_TYPES_DONT_EXPORT and then
	include <linux/types.h>.

	* resource/sys/resource.h: Remove trailing commas from enums.

Fri May 24 17:30:50 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/generic/netinet/in.h: Remove trailing commas from enums.
	* sysdeps/unix/sysv/linux/netinet/in.h: Likewise.

	* login/getutline_r.c: Include string.h.

	* Rules (static-only-routines): Restore the rule to make these .so's
	empty objects.

	* login/pututline_r.c: Use struct assignment instead of memcpy.

	* login/getutline_r.c: Use strncmp instead of comparing two pointers
	that will only be equal if you are overwriting the data and screwing
	yourself anyway.

Fri May 24 02:31:36 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/speed.c: Add new speed value 460800.

Thu May 23 23:09:33 1996  Ulrich Drepper  <drepper@cygnus.com>

	* FAQ: Add answer for 100% source code compatibility to Linux
	libc by David Mosberger-Tang.

	Update from bind-4.9.4-T3B.
	* inet/arpa/inet.h: Add prototypes for inet_pton, inet_ntop,
	inet_nsap_addr, and inet_nsap_ntoa.
	* resolv/gethnamaddr.c: Correct compatibility problems (sprintf),
	remove fourth argument to inet_pton and correct handling of
	host_addr passing.
	* resolv/inet_ntop.c: Correct compatibility problems (sprintf).
	* resolv/inet_pton.c: Remove fourth argument.
	* resolv/resolv.h: Remove prototypes for inet_nsap_addr and
	inet_nsap_ntoa.  Now in <arpa/inet.h>.

	* stdlib/gmp-impl.h: Add prototypes for internal functions.

Thu May 23 22:49:15 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Rules (subdir_install): Remove dep on sor-$(subdir).
	(static-only-routines): Removed variable and associated rules.

Wed May 22 00:40:50 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/unix/sysv/linux/alpha/speed.c (speeds): Add entry for
	460800 baud.

	* sysdeps/unix/sysv/linux/alpha/statbuf.h: New file.

	* sysdeps/unix/sysv/linux/alpha/Makefile (headers): Add
	alpha/ptrace.h.
	* sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h: New file.

	* sysdeps/libm-ieee754/s_scalbnf.c: Call __scalbnf instead of
	scalbnf.

	* sysdeps/generic/sigset.h (__sigismember, __sigaddset,
	__sigdelset): Add declaration to keep ANSI compilers quiet.

	* sysdeps/alpha/__math.h (cabs): Remove underscores from struct
	__cabs_complex member names in call to __hypot().

	* sysdeps/alpha/copysign.S, sysdeps/alpha/fabs.S: New files.

	* sysdeps/alpha/divrem.h: Renamed from sysdeps/alpha/divrem.S to avoid
	name collision with math library.

	* sysdeps/alpha/divl.S, sysdeps/alpha/divlu.S, sysdeps/alpha/divq.S,
	sysdeps/alpha/divqu.S, sysdeps/alpha/reml.S, sysdeps/alpha/remlu.S,
	sysdeps/alpha/remq.S, sysdeps/alpha/remqu.S: Include divrem.h instead
	of divrem.S.

	* sysdeps/unix/alpha/sysdep.h: Include regdef.h.  Define LEAF macro
	to simplify declaration of leaf functions.

	* sysdeps/alpha/_mcount.S, sysdeps/alpha/bb_init_func.S,
	sysdeps/alpha/bsd-_setjmp.S, sysdeps/alpha/ffs.S,
	sysdeps/alpha/htonl.S, sysdeps/alpha/htons.S, sysdeps/alpha/memchr.S,
	sysdeps/alpha/setjmp.S, sysdeps/alpha/strlen.S,
	sysdeps/alpha/udiv_qrnnd.S, sysdeps/unix/sysv/linux/alpha/brk.S,
	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/pipe.S,
	sysdeps/unix/sysv/linux/alpha/sigsuspend.S,
	sysdeps/unix/sysv/linux/alpha/syscall.S,
	sysdeps/unix/sysv/linux/alpha/start.S,
	sysdeps/unix/sysv/linux/alpha/sysdep.S: Remove include of regdef.h.
	sysdep.h includes it now. Replace ENTRY by LEAF with appropriate
	framesize declaration.  Replace "lda pv,sym/jsr pv" by "jsr sym".

	* sysdeps/unix/sysv/linux/alpha/sysdep.h (NO_UNDERSCORES): Don't
	define.

	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Added getsockopt,
	ptrace, and sysctl.

	* sysdeps/unix/sysv/linux/alpha/profil-counter.h: File removed.

	* sysdeps/unix/sysv/linux/alpha/ioperm.c: Modify to support
	dynamic recognition of platform type.
	(_bus_base): New function.

	* sysdeps/unix/sysv/linux/alpha/llseek.S: New file.

	* sunrpc/rpc/rpc.h, sunrpc/rpc/svc.h: Avoid nested comments since
	they produce ugly warnings by gcc.

	* posix/sys/types.h [__USE_MISC]: Add typedef for ulong.

Wed Mar 27 10:26:21 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/alpha/setjmp.S: Must establish global pointer before
	address of __sigsetjmp_aux can be loaded.

Wed May 22 22:10:01 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* stdlib/canonicalize.c: New file.
	* stdlib/stdlib.h: Declare canonicalize_file_name, realpath.
	* stdlib/Makefile (routines): Add canonicalize.

	* posix/unistd.h: Declare __canonicalize_directory_name_internal.

Thu May 23 00:01:10 1996  Ulrich Drepper  <drepper@cygnus.com>

	* db/recno/rec_seq.c: Prevent `sccsid' definition by using the
	same #if condition as in the other db files.

	* intl/Makefile: Add -Wno-unused CFLAGS for compilation of
	bindtextdom.c, finddomain.c, and localealias.c.

	* intl/dcgettext.c: Don't define prototype for getcwd() when
	compiling in glibc.

	* libio/cleanup.c: Add prototype for _IO_register_cleanup.

	* libio/filedoalloc.c, libio/fileops.c, libio/iopopen.c: Don't
        define _POSIX_SOURCE unconditionally.

	* libio/filedoalloc.c, libio/iopopen.c: Include <unistd.h> if
        compiling in glibc.

	* libio/fileops.c (_IO_file_close_it): Don't sync file, call
	flush instead.  This relaxes the rules from POSIX.1 about
	changing the active handle a bit.

	* libio/iofopncook.c (struct _IO_cookie_file): Move definition
	into <libio.h>.
	Add prototypes for local functions to prevent warnings.

	* libio/iopopen.c: Change prototypes for _IO_fork, _IO_pipe, and
        _IO_dup2 to contain complete parameter list.

	* libio/libio.h: Add definition of struct _IO_cookie_file.

	* libio/libioP.h: Add prototypes for _IO_vasprintf, _IO_vdprintf,
        and _IO_vsnprintf.

	* libio/memstream.c: Include <stdio.h>.

	* libio/stdio.h: Add prototypes for fopencookie,
        __stdio_gen_tempname, __vfscanf, __vsscanf, and __vsnprintf.

	* libio/strops.c: Avoid useless expression in `for' initializer.

	* locale/findlocale.c: Add some casts to prevent warnings.

	* locale/programs/locfile.c (write_locale_data): Don't use
	double `/' in locale binary file.

	* posix/unistd.h: Remove prototype for `reboot'.

	Update from bind-4.9.4-T1A.
	* resolv/Makefile (routines): Add inet_ntop and inet_pton.
	* resolv/arpa/nameser.h: Add definition of IN6ADDRSZ.
	* resolv/gethnamaddr.c, resolv/getnetnamadr.c, resolv/res_comp.c,
	resolv/res_debug.c, resolv/res_init.c

	* resolv/inet_ntop.c, resolv/inet_pton.c: New files.

	* resolv/resolv.h: Add RES_USE_INET6 flag.
	(__dn_isvalid): Renamed to __res_dnok.
	Add prototypes for __res_ownok and __res_mailok.

	* stdio-common/Makefile: Add -Wno-unused to CFLAGS for _itoa.c.

	* stdio-common/getline.c, stdio-common/vfscanf.c,
        sysdeps/posix/tempname.c: Don't use <ansidecl.h> anymore.

	* sysdeps/unix/sysv/linux/Makefile [$subdir == misc]
        (sysdep_routines): Add s_reboot.
	(install-others): Add $(includedir)/sys/syscall.h.
	New rule for $(includedir)/sys/syscall.h to produce from
	<asm/unistd.h>.

	* sysdeps/unix/sysv/linux/reboot.c: New file.  Make single
        argument function call 3 argument system call.

	* sysdeps/unix/sysv/linux/sys/reboot.h: New file.  Linux specific
	definition for reboot function.

	* sysdeps/unix/sysv/linux/syscall.h: Remove old and obsolete
        comment.

	* sysdeps/unix/sysv/linux/syscalls.list: Rename function for
	reboot syscall to __syscall_reboot.

	* wcsmbs/wchar.h: Protect prototypes for wcstof and wcstold by
	__USE_GNU, not USE_GNU.

Tue May 21 21:55:49 1996  David Mosberger-Tang  <davidm@AZStarNet.com>

	* locale/programs/charset.c, locale/programs/ld-collate.c:
	Add casts to prevent warnings on 64-bit machines.

	* locale/programs/ld-monetary.c: Don't do unnecessary tests for
	int_frac_digits and frac_digits which only produce warnings.

Mon May 13 23:45:29 1996  David Mosberger-Tang  <davidm@AZStarNet.com>

	* inet/arpa/inet.h: Backup return type of inet_addr to u_long.
	* resolv/inet_addr.c: Likewise.

	* resolv/Makefile (distribute): Add res_hconf.h
	(routines): Add res_hconf.

	* resolv/gethnamaddr.c: Add support for /etc/host.conf.

	* resolv/res_init.c: Initialize /etc/host.conf reader.

	* resolv/res_hconf.c, resolv/res_hconf.h: New files.
        Implementation of reading /etc/host.conf.

Wed May 22 21:21:15 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Rules (%.out rules): Prepend $($*-ENV) to the command.

	* sysdeps/unix/sysv/linux/i386/brk.c (___brk_addr): Define as weak
	alias for __curbrk.

Wed May 22 19:37:27 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hurd/hurdexec.c (_hurd_exec): Pass INIT_TRACEMASK.
	* hurd/hurdmsg.c (set_int): Support INIT_TRACEMASK.

Wed May 22 18:47:31 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/getcwd.c
	(_hurd_canonicalize_directory_name_internal): New function, broken out
	of __getcwd.
	(__getcwd): Use it.
	(__canonicalize_directory_name_internal): New function using it.

	* sysdeps/posix/getcwd.c (__canonicalize_directory_name_internal): New
	function, broken out of __getcwd.
	(__getcwd): Use it.

Wed May 22 18:14:05 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* string/argz-create.c (__argz_create): Correctly calculate length.

	* string/argz-extract.c (__argz_extract): Add terminating 0 entry.
	* hurd/hurdstartup.c (_hurd_startup): ... and don't so here.

Wed May 22 17:22:14 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* posix/glob.c [VMS]: Don't include <pwd.h>.
	[HAVE_VMSDIR_H]: Include "vmsdir.h".
	(glob) [VMS]: Don't grok ~.

Wed May 22 14:46:53 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hurd/hurdstartup.c (_hurd_startup): Terminate the vectors we get
	back from argz_extract.

Wed May 22 13:56:42 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* configure.in: Remove checks for objdump, objcopy, and awk.
	* config.make.in (OBJDUMP, OBJCOPY, AWK): Variables removed.
	* Makefile (distribute): Remove extract-dynsym.
	* extract-dynsym: File removed.

Tue May 21 22:17:45 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* termios/cfmakeraw.c: Set MIN to 1 and TIME to 0.

Wed May 22 01:48:54 1996  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/strtol.c [!QUAD] (ULONG_MAX, LONG_MAX): Define these
	macros if they are not available.
	(WEAKNAME): New macro to declare argument as weak.
	Define function with __ prefix and add normal name as weak alias.

	* sysdeps/posix/euidaccess.c (S_IROTH, S_IWOTH, S_IXOTH): Defines
	these macros if not already available based on R_OK, W_OK, and
	X_OK.

Tue May 21 18:48:46 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* misc/sys/syslog.h (__need___va_list): Define this instead of
	__need_va_list before including <stdarg.h>.

	* Makerules (o-iterator): Use $(object-suffixes-left) instead
	of $(object-suffixes) to produce repetitions; this is used for other
	lists than just that one.
	[versioned]: Use $(o-iterator) properly.

	* sysdeps/unix/sysv/linux/Implies: Include `gnu'.
	* sysdeps/mach/hurd/Implies: Likewise.

Sat May 18 02:57:46 1996  Ulrich Drepper  <drepper@cygnus.com>

	* login/Makefile: New file.  This directory contains functions
	for user administration.
	* Makefile (subdirs): Add login.

	* misc/Makefile (headers): Remove utmp.h.  Now in login/utmp.h.
	(extra-libs, libutil-routines): Ditto.
	* misc/login.c, misc/login_tty.c, misc/logout.c, misc/logwtmp.c,
	misc/utmp.h: Moved to misc/.
	* login/login.c, login/login_tty.c, login/logout.c,
        login/logwtmp.c, login/utmp.h: Moved to here from misc/.

	* login/utmp.h: Split file.  Definitions of data structures
	and constants are now in the system dependent utmpbits.h file.

	* login/setutent_r.c, login/setutent.c, login/endutent_r.c,
	login/endutent.c, login/getutent_r.c, login/getutent.c,
	login/getutid_r.c, login/getutid.c, login/getutline_r.c,
	login/getutline.c, login/pututline_r.c, login/pututline.c:
	New files.  Routines to handle utmp-style files.

	* sysdeps/gnu/utmpbits.h: New file.  Contains GNU/Linux
	specific definitions of utmp data structures and constants.

	* sysdeps/unix/sysv/utmpbits.h: Renamed from sysdeps/unix/sysv/utmp.h.

	* sysdeps/generic/utmpbits.h: New file.  Generic (BSDish) version of
	definitions of utmp data structures and constants.

Fri May 17 00:01:31 1996  Ulrich Drepper  <drepper@cygnus.com>

	* locale/C-monetary.c: Default value for mon_decimal_point should be
        '.'.

	* stdio-common/printf.h: Remove Linux libc compatibility stuff.
	Add `extra' flag.  Currently used in __printf_fp.

	* stdio-common/printf_fp.c (__guess_grouping): Renamed from
        `guess_grouping' and extend visibility to extern.  This function
        is now used in `strfmon'.
	(__printf_fp): Recognize new bit flag in info struct.  This
	triggers to use the grouping information and decimal point from
	the LC_MONETARY category instead of the LC_NUMERIC category.

	* stdio-common/vfprintf.c (process_arg): Correct major bug.  In
	`complicated' loop we must not use the varargs because the args
	are already available in the ARGS_VALUE array.

	* stdlib/Makefile (headers): Add monetary.h.
	(routines): Add strfmon.
	* stdlib/monetary.h: New file.  Header for strfmon function.
	* stdlib/strfmon.c: New file.  Implement strfmon function to print
	monetary amounts according to current locale's rules.

	* sysdeps/unix/sysv/linux/i386/sys/vm86.h: The kernel header is
	now (>= Linux-1.3.100) called <asm/vm86.h>.

Thu May 16 00:31:44 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Makerules [versioned]: Make symlinks in the build directory, because
	the versioned names might be referenced by a DT_NEEDED in another
	library.

Wed May 15 18:59:38 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* manual/examples/longopt.c: Include stdlib.h and getopt.h.

Tue May 14 03:36:21 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/Makefile [$subdir == misc] (headers):
	Add sys/acct.h and sys/sysctl.h.

Tue May 14 19:42:04 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/generic/strrchr.c: Deansideclized.

	* elf/Makefile (ldd): Depend on Makefile.
	Find ld.so in $(slibdir) instead of $(libdir).

	* sysdeps/i386/strrchr.S: Use `testl $3, %esi' instead of `testb $3,
	%esi'; gas misassembles the latter into `testb $3, %dh'.

	* mach/Machrules (%.udeps rule): Do $(make-target-directory) first.

Tue May 14 16:38:44 1996  David Mosberger-Tang <davidm@AZStarNet.com>

	* sunrpc/getrpcent.c (interpret): Declare args.  Rewrite parsing using
	strpbrk.

Tue May 14 20:18:38 1996  Ulrich Drepper  <drepper@cygnus.com>

	* time/Makefile (routines): Add strptime.
	* time/time.h: Add prototype for strptime.
	* time/strptime.c: New file.  Implementation according to XPG4.

Tue May 14 14:07:10 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* libc-symbols.h (lint): Macro removed.  The sunrpc code does some
	really stupid things #ifdef lint.

	* sysdeps/unix/sysv/linux/i386/profil-counter.h (profil_counter): Fix
	struct member name: sc_eip -> eip.

Mon May 13 19:52:33 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Makerules (stub-$(subdir)): Put cmds including cd inside (...) with
	output redirect outside it.

	* elf/Makefile (subdir_lib): Depend on ld.so.

Sun May 12 22:52:22 1996  Bruce Elliott  <belliott@accessone.com>

	* stdio-common/vfprintf.c: Correct handling of unsigned short
	values.

Mon May 13 12:03:03 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* extra-lib.mk (alltype-$(lib)): Put libs in $(objpfx) instead of
	$(common-objpfx).
	* Makerules [install-lib.a]: Find them there.

	* sysdeps/unix/sysv/linux/i386/profil-counter.h: New file.

	* extra-lib.mk: Skip the hair if $(object-suffixes-$(lib)) is empty.

	* posix/glob.h [_AMIGA]: Remove `struct stat;' forward decl.

	* configure.in (--with-fp): Note in help string that it's the default.

	* locale/programs/ld-ctype.c (struct locale_ctype_t): Use u_int32_t
	instead of unsigned int for map_collection_max and map_collection_act.

	* stdio-common/vfprintf.c [USE_IN_LIBIO] (flockfile, funlockfile):
	Macros removed; they are in <stdio.h>.
	* stdio-common/vfscanf.c: Likewise.

	* posix/glob.c [_AMIGA]: Don't include <pwd.h>.
	(glob): Remove bogus & in call to globfree.
	[_AMIGA]: Use AmigaDOS file name conventions.

	* time/Makefile (zonenames): Target removed.
	(extra-objs): Remove it from here.
	Include the z.* files directly instead of including zonenames; use
	`-include' to not complain before they exist.

	* sysdeps/unix/Makefile: Find sysd-syscalls and s-proto.d with
	$(common-objpfx) instead of $(objpfx).

	* sysdeps/unix/bsd/telldir.c (seekdir, telldir): Use new struct member
	names without __.

	* Makerules [install-lib-non.a]: Find these things with $(objpfx)
	instead of $(common-objpfx).

	* Makeconfig (sysdep-configures): New variable.
	(config.status): Depend on $(sysdep-configures).

Fri May 10 20:07:52 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/profil.c: New file.

Fri May 10 19:59:50 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/Makefile (CFLAGS-setjmp.c): New variable.

Fri May 10 19:55:42 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* shlib-versions: Use libm=6 and libc=6 for m68k-linux.

Sun May 12 11:16:58 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* string/envz.c: Fix uses of unsigned to size_t.

	* Makerules ($(libdir)/libc.so): Make the file an ld script.

	* sysdeps/mach/hurd/configure.in: Don't grok --with-hurd option.

	* sysdeps/mach/configure.in: File removed.
	* sysdeps/mach/configure: File removed.

	* mach/Machrules (%.udeps rule): Write deps for %_server.[ch] too.
	(%_server.[ch] rule): Don't depend on %.defs; use #include to get
	installed .defs file.

	* stdio-common/vfprintf.c (flockfile, funlockfile): Define to
	nothing for stdio.  Fix fUNlockfile -> funlockfile for libio.
	* stdio-common/vfscanf.c: Likewise.

Sat May 11 13:43:41 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* hurd/hurdfault.c: Include faultexc_server.h instead of faultexc.h.

	* mach/Machrules (%.ir rule): Don't produce deps for imports.

	* elf/dl-fini.c (_dl_fini): Clear L->l_init_called after calling fn.

	* Makerules (install): Depend on $(slibdir)/libc.so$(libc.so-version).
	[!subdir] ($(libdir)/libc.so, $(common-objpfx)/libc-syms.so): Protect
	these targets and install dep on $(libdir)/libc.so with this.

	* hurd/Makefile: Removed all rules and defns for using code from Hurd
	sources and installing headers from there.

	* sysdeps/mach/hurd/errnos.awk: Set in_mach_errors to FILENAME when we
	set it.  In Mach error matching clause, only match if FILENAME is
	still the same value.

	* sysdeps/mach/hurd/Makefile: Don't include sysdeps/mach/Makefile;
	$(mach-srcdir) no longer exists.
	(hurd-srcdir): Variable removed.
	(includes): Don't append -I$(hurd-srcdir).
	(last-includes): Variable removed.
	Remove vpath specs using $(hurd-srcdir).
	(mach-errno-h): New canned sequence.
	($(common-objpfx)errnos.d): New target, generated included makefile
	to determine absolute file names of Mach headers to search for error
	codes and set variable mach-errnos-deps.
	($(common-objpfx)stamp-errnos): Depend on $(mach-errnos-deps) instead
	of prior explicit list.
	(generated): Add errnos.d, stamp-errnos.

	* mach/Machrules (some-if-rtn): New variable and target; compute deps
	of some if routine and make all if routines depend on that .d file
	instead of static list of .h files.

	* mach/Makefile (mach/mach_interface.defs,
	mach/memory_object_user.defs): Targets removed.
	($(objpfx)mach-syscalls.mk): Tweak this kludge so it doesn't depend
	directly on Mach sources.

	* sysdeps/mach/Makefile (mach-srcdir): Variable removed.
	(includes): Don't append -I$(mach-srcdir).
	Remove vpath specs using $(mach-srcdir).

	* hurd/Makefile (server-interfaces): Add faultexc.
	(sig): Remove it from here.
	(fault%.[ch]): Rule removed.
	(MIGFLAGS-faultexc): New variable.

	* hurd/faultexc.defs: New file.

	* mach/Machrules (%.ustamp rule): Pass $(MIGFLAGS-$*) to mig.
	(%_server.[ch] rule): Likewise.

	* mach/Makefile: Removed all rules and defns for using code from Mach
	sources and installing headers from there.

	* Makeconfig [$(build-shared)=yes] (link-libc): Append
	$(libc.so-version) to libc.so.

Fri May 10 18:36:14 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* mach/Machrules (%.ustamp rule): Don't depend on %.defs.
	(%.udeps): New rule parallel to that one, generating included
	makefiles with -M output from `#include <%.defs>'.

	* Makerules (sed-remove-objpfx): Remove space before \ at eol.

	* Makefile (distribute): Add FAQ.
	* FAQ: New file contributed by drepper.

	* time/Makefile (headers): Add timebits.h.
	* sysdeps/unix/sysv/linux/timebits.h: New file.
	* sysdeps/stub/timebits.h: New file.
	* time/time.h (CLK_TCK): Define to CLOCKS_PER_SEC.
	(CLOCKS_PER_SEC): Remove this macro.  Instead #include <timebits.h>.

Fri May 10 16:22:44 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* string/argz-create.c (__argz_create): Restore const keyword to
	ARGV parm.
	* string/argz.h (__argz_create, argz_create): Restore const
	keyword.
	* string/envz.c (envz_get): Don't declare ENTRY const.

Fri May 10 11:48:03 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* string/argz.h (argz_create): Fix param type.
	* string/argz-create.c (__argz_create): Remove const from param type.
	* string/envz.c (envz_get): Remove const from return type.

Fri May 10 09:41:54 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* string/argz.h (__argz_create, argz_create): Omit const keyword
	from declaration of ARGV.
	* string/envz.h (envz_get): Omit const from declaration of return
	type.

Thu May  9 09:17:46 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* aclocal.m4 (AC_FD_MSG, AC_FD_CC): Fix these for autoconf weirdness.

	Cleanups in sunrpc code from NIIBE Yutaka <gniibe@mri.co.jp>.
	* sunrpc/clnt_tcp.c (clnttcp_create): Don't close *SOCKP if it's -1.
	* sunrpc/clnt_simp.c (callrpc): Don't close CRP->socket if it's
	RPC_ANYSOCK.
	* sunrpc/pmap_clnt.c (pmap_set): Don't close SOCKET, since
	CLNT_DESTROY already has.
	(pmap_unset): Likewise.
	* sunrpc/pm_getmaps.c (pmap_getmaps): Likewise.
	* sunrpc/pm_getport.c (pmap_getport): Likewise.
	* sunrpc/pmap_rmt.c (pmap_rmtcall): Likewise.
	* sunrpc/portmap.c (callit): Likewise.

	* Makerules (versioned): Strip whitespace.

	* Rules (static-only-routines rule): Remove spurious space in dep.

	* misc/getusershell.c: Undo changes of 7 May 96 (rev 1.6).
	Cast string constants to char *.

	* posix/glob/SMakefile, posix/glob/SCOPTIONS, posix/glob/Makefile.ami:
	New files, AmigaDOS support from Aaron Digulla.
	* posix/Makefile (glob.tar): Add AmigaDOS support files.

	* sysdeps/unix/sysv/linux/net/if.h: New file.
	* sysdeps/unix/sysv/linux/Dist: Add it.
	* sysdeps/unix/sysv/linux/Makefile [$(subdir)=socket] (headers): Add
	net/if.h.

	* Makeconfig (link-libc): Add libc.a after libc.so in link.

	* Rules (static-only-routines rule): Use empty.o instead of dummy.o.
	(empty.o): New target.
	(generated): Add empty.c, empty.o.

	* resolv: Code updated from BIND-4.9.3P2C3.

	* Rules (static-only-routines rule): Use dummy.o, not dummy.so.

Wed May  8 20:04:29 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* extract-dynsym: New file.
	* Makefile (distribute): Add it.
	* Rules (subdir_install): Depend on $(common-objpfx)sor-$(subdir).
	[! libc.so-version]: Clear static-only-routines.
	($(common-objpfx)sor-$(subdir)): New target.
	[static-only-routines]: New static pattern rule for these .so's.
	* Makerules [libc.so-version] ($(slibdir)/libc.so): Target removed.
	[libc.so-version] ($(libdir)/libc.so, $(common-objpfx)libc-syms.so):
	New targets replace it.
	(install) [libc.so-version]: Depend on $(libdir)/libc.so instead of
	$(slibdir)/libc.so.
	* io/Makefile (static-only-routines): New variable.
	* configure.in: Check for tools objdump and objcopy, and for awk.
	* config.make.in (OBJDUMP, OBJCOPY, AWK): New variables.

Thu May  9 01:24:00 1996  Ulrich Drepper  <drepper@cygnus.com>

	* locale/programs/config.h: Remove definition of wint_t.

	* locale/programs/ld-collate.c: Include <wchar.h> instead of
	<wcstr.h>.

	* manual/time.texi: Add some more description for %U and %W
	format of strftime.  Describe new format %V of strftime.

	* resolv/gethnamaddr.c: Prevent warning by preventing variable
	definition.
	* stdio-common/_itoa.c: Ditto.

Tue May  7 23:43:07 1996  Ulrich Drepper  <drepper@cygnus.com>

	* libio/clearerr.c, libio/feof.c, libio/ferror.c, libio/fgetc.c,
	libio/fileno.c, libio/fputc.c, libio/freopen.c, libio/fseek.c,
	libio/genops.c, libio/getc.c, libio/getchar.c, libio/iofclose.c,
	libio/iofflush.c, libio/iofgetpos.c, libio/iofgets.c,
	libio/iofputs.c, libio/iofread.c, libio/iofsetpos.c,
	libio/ioftell.c, libio/iofwrite.c, libio/iogetdelim.c,
	libio/iogets.c, libio/ioputs.c, libio/iosetbuffer.c,
	libio/iosetvbuf.c, libio/ioungetc.c, libio/iovsprintf.c,
	libio/libio.h, libio/putc.c, libio/putchar.c, libio/rewind.c,
	libio/stdio.h, stdio-common/printf_fp.c, stdio-common/vfprintf.c,
	stdio-common/vfscanf.c: Prepare for reentrant libio.

	* libio/clearerr_u.c, libio/feof_u.c, libio/ferror_u.c,
	libio/fputc_u.c, libio/getc_u.c, libio/getchar_u.c,
	libio/iofflush_u.c, libio/putc_u.c, libio/putchar_u.c: New files.
	Used in reentrant libio.

	* misc/getusershell.c: Prevent warnings.

Wed May  8 12:08:35 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Makerules (install-lib.so rules): Undouble $s in target and dep
	parts of o-iterator-doit defns.
	(unversioned libraries install rule): Fix pattern.

	* mach/Makefile (mach-src-headers): Use $(base-machine) instead of
	$(config-machine).
	($(includedir)/machine): Likewise.

	* config.make.in (base-machine): New variable.
	* configure.in (machine): Move case stmt to set $machine out of sysdep
	dirs AC_CACHE_CHECK.
	(base_machine): New variable, set in that switch and AC_SUBST'd.

	* Makerules (stub-$(subdir)): Use file name in directory as output,
	since cmd is cd'd.

	* configure.in (MSGFMT): Use : if none found.

	* po/Makefile: Include ../Rules instead of ../Makerules.

Tue May  7 23:18:44 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* po/Makefile: New file.
	* Makefile (subdirs): Add po.

	* configure.in: Check for msgfmt.
	* config.make.in (MSGFMT): New variable.

Sun May  5 23:49:10 1996  Ulrich Drepper  <drepper@cygnus.com>

	* misc/Makefile (routines): Add swapoff.

	* sysdeps/unix/sysv/linux/Dist: Add sys/quota.h.

	* sysdeps/unix/sysv/linux/sys/quota.h: New file.  Wrapper around
	kernel header file.

Tue May  7 19:00:01 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* string/argz-extract.c: Remove const from decl.
	* string/argz.h: Here too.

	* Makeconfig (version.mk): Fix regexp in sed cmd.
	Depend on $(..)Makeconfig.

	* GMP code updated from gmp-2.0 release.
	* stdlib/Makefile (mpn-routines): Removed add_1, added inlines.
	* sysdeps/generic/add_1.c: File removed.
	* stdlib/strtod.c: mp_limb is now mp_limb_t.
	* stdlib/fpioconst.c, stdlib/fpioconst.h: Likewise.
	* stdio-common/_itoa.c: Likewise.
	* stdio-common/printf_fp.c: Likewise.
	Don't include ansidecl.h.

	* sysdeps/mach/hurd/getcwd.c: Use io_identity instead of io_stat.

	* shlib-versions: New file.
	* Makerules (soversions.mk): New target, include file generated from
	shlib-versions.  Moved shared library rules before installation rules.
	Rewrote shared library installation rules for versioned libraries.
	* math/Makefile (libm.so-version): Variable removed.

	* sysdeps/mach/hurd/i386/exc2signal.c: Use struct hurd_signal_detail.

	* hurd/report-wait.c (_S_msg_describe_ports): New function.

	* configure.in: Add AC_PROG_LN_S check.
	* config.make.in (LN_S): New variable.

Sun May  5 03:10:44 1996  Ulrich Drepper  <drepper@cygnus.com>

	* misc/efgcvt_r.c (ecvt_r): Work aroung gcc bug.  gcc does
	not know about weak aliases now and optimizes necessary `if'
	statement away.

	* posix/unistd.h: Add swapoff prototype.

	* sysdeps/generic/confname.h: Add even more POSIX.4 symbols.

	* sysdeps/posix/fpathconf.c (__fpathconf): Get information
	for _PC_PATH_MAX from fstatfs function if available.

	* sysdeps/posix/sysconf.c: Add code to handle _SC_AIO_LISTIO_MAX,
	_SC_AIO_MAX, _SC_AIO_PRIO_DELTA_MAX, _SC_DELAYTIMER_MAX,
	_SC_MQ_OPEN_MAX, _SC_MQ_PRIO_MAX, _SC_RTSIG_MAX,
	_SC_SEM_NSEMS_MAX, _SC_SEM_VALUE_MAX, _SC_SIGQUEUE_MAX, and
	_SC_TIMER_MAX.
	* sysdeps/unix/sysv/sysv4/sysconf.c: Ditto.

	* sysdeps/stub/swapoff.c: New file.  Stub version for swapoff
	function.

	* sysdeps/unix/syscalls.list:  Add swapoff.

	* sysdeps/unix/sysv/linux/Dist: Add sys/acct.h.

	* sysdeps/unix/sysv/linux/Makefile [$(subdir) == misc]
	(sysdep_routines): Add mount, umount, llseek, setfsgid, setfsuid,
	sysinfo, and uselib.
	(headers): Add sys/sysinfo.h.

	* sysdeps/unix/sysv/linux/gethostid.c: Prevent warning.

	* sysdeps/unix/sysv/linux/i386/Makefile [$(subdir) == misc]
	(sysdep_routines): Add ioperm, iopl, and vm86.
	(headers): Add sys/perm.h and sys/vm86.h.

	* sysdeps/unix/sysv/linux/i386/sys/perm.h: New file.  Contains
	prototypes for iopl and ioperm.

	* sysdeps/unix/sysv/linux/i386/sys/vm86.h:  New file.  Contains
	prototype for vm86.

	* sysdeps/unix/sysv/linux/i386/syscalls.list: New file.  Add
	vm86 system call.

	* sysdeps/unix/sysv/linux/sys/acct.h: New file.  Contains
	prototypes for acct function.

	* sysdeps/unix/sysv/linux/sys/socket.h: Provide real header
	file with prototypes.

	* sysdeps/unix/sysv/linux/sys/sysinfo.h: New file.  Contains
	prototype for sysinfo function.

	* sysdeps/unix/sysv/linux/syscalls.list: Add flock, ioperm, iopl,
	llseek, setfsgid, setfsuid, sysinfo, and uselib.

	* sysdeps/unix/sysv/linux/sysconf.c: Instead of duplicating
	posix/sysconf.c now only handle cases different to that
	implementation.

Tue May  7 15:08:19 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* stdio/linewrap.c (__line_wrap_output): Renamed from lwoutput
	(all references changed).  Now exported.

	* stdio/linewrap.c (struct data): Type deleted (moved to linewrap.h).
	(wrap_stream, unwrap_stream, lwclose, lwfileno, lwoutput,
	line_wrap_stream, line_unwrap_stream): Use struct line_wrap_data
	instead of struct data.
	(lwoutput, line_wrap_stream, line_unwrap_stream): Rename various
	occurences of `wrap' and `wrapmargin' to `wmargin'.
	(line_wrapped, line_wrap_lmargin, line_wrap_set_lmargin,
	line_wrap_rmargin, line_wrap_set_rmargin, line_wrap_wmargin,
	line_wrap_set_wmargin, line_wrap_point): New functions.
	* stdio/linewrap.h: New file.
	* stdio/Makefile (headers): Add linewrap.h.

Tue May  7 14:19:12 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/i386/Makefile: File removed.

	* stdio/stdio.h: Remove line_wrap_stream, line_unwap_stream decls.

	* sysdeps/unix/sysv/linux/schedbits.h: New file.

Tue May  7 13:47:02 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* stdio/linewrap.c (struct data): Make margin fields not-pointers.
	(lwoutput): Adjust uses acordingly.

Tue May  7 10:51:52 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/fdatasync.c: New file.
	* sysdeps/mach/hurd/fsync.c: Pass new flag to file_sync.

	* sysdeps/mach/hurd/xmknod.c: Pass new flag to dir_link.
	* sysdeps/mach/hurd/symlink.c: Likewise.
	* sysdeps/mach/hurd/link.c: Likewise.
	* sysdeps/mach/hurd/bind.c: Likewise.
	* hurd/hurdsig.c (write_corefile): Likewise.

	* hurd/hurdsig.c (write_corefile): Pass cttyid port to crash server.

	* sysdeps/mach/hurd/fpathconf.c: RPC takes int pointer, not long int.

	* sysdeps/mach/hurd/_exit.c (_hurd_exit): Pass sigcode arg to
	proc_mark_exit.
	* sysdeps/mach/hurd/dl-sysdep.c (_exit): Likewise.

	* sysdeps/mach/hurd/wait4.c: Pass sigcode arg to proc_wait.

	* sysdeps/mach/hurd/rename.c: Pass new flag to dir_rename.

	* hurd/hurdfault.c (_hurdsig_fault_catch_exception_raise): Use struct
	hurd_signal_detail.
	* hurd/catch-exc.c (_S_catch_exception_raise): Likewise.
	* hurd/hurd-raise.c (_hurd_raise_signal): Likewise.
	* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
	Likewise.
	* sysdeps/mach/hurd/setitimer.c (restart_itimer): Likewise.

	* hurd/hurd/signal.h: Fix _hurd_exception2signal prototype.

	* hurd/hurdsig.c (write_corefile): Take const struct
	hurd_signal_detail * arg.  Pass all details to crash_dump_task.
	(_hurd_internal_post_signal): Pass DETAIL to write_corefile.
	(_hurd_internal_post_signal: suspend): Pass code and error to
	proc_mark_stop.

	* hurd/hurdprio.c (_hurd_priority_which_map): Pass flags arg to
	proc_getprocinfo by reference.

	* wcsmbs/wcwidth.c, wcsmbs/wcswidth.c: Fixed typos.

	* sysdeps/unix/sysv/linux/sys/mman.h: Fixed typo.

	* sysdeps/stub/sched_getp.c: Add missing #include <sys/types.h>.
	* sysdeps/stub/sched_sets.c: Likewise.
	* sysdeps/stub/sched_setp.c: Likewise.
	* sysdeps/stub/sched_rr_gi.c: Likewise.
	* sysdeps/stub/sched_gets.c: Likewise.

	* hurd/hurdsig.c: Use struct hurd_signal_detail.
	* hurd/hurd/fd.h (_hurd_fd_error): Likewise.
	* sysdeps/mach/hurd/sysd-stdio.c (fd_fail): Likewise.

Mon May  6 09:51:05 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* stdio/linewrap.c: New file.
	* stdio/Makefile (routines): Add linewrap.
	* stdio/stdio.h [__USE_GNU]: Declare line_wrap_stream,
	line_unwrap_stream.

Mon May  6 14:53:26 1996  Ulrich Drepper  <drepper@cygnus.com>

	* time/strftime.c (week): Add third parameter telling how
	many days must be in new year so that it is called week 1.
	(Following ISO 8601).
	Correct computation for %U and %V formats when day was first
	day of the week.
	(strftime): Implement %V format according to Spec1170.

Mon May  6 17:01:09 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* hurd/hurd/signal.h (_hurd_intr_rpc_mach_msg): New declaration.

Sat May  4 05:44:25 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* hurd/hurd/sigpreempt.h (struct hurd_signal_preempter): Change
	prototype of `preempter' elt to use struct hurd_signal_detail.

	* hurd/hurd/signal.h (struct hurd_signal_detail): New type.
	(struct hurd_sigstate): Make `pending_data' member an array of that.
	Use the new type in several decls.

	* locale/setlocale.c (_nl_C_name): Variable removed.
	* locale/C_name.c: New file.
	(_nl_C_name): Put it here instead.
	* locale/Makefile (aux): Add C_name.

	* sysdeps/mach/hurd/dl-sysdep.c (open): Don't pass io port in
	auth_user_authenticate rpc.
	(open): Avoid using strtol in digit conversion for "fd/N" magic.
	(_dl_sysdep_start): Likewise for memobj name in magic switches.

	* elf/Makefile (reloc-link): New variable.
	(dl-allobjs.so): New target, link together $(rtld-routines).
	(librtld.so): Depend on that instead of the rtld components.
	(generated): Add dl-allobjs.so.

	* hurd/hurd-raise.c (_hurd_raise_signal): Pass sigcode in msg_sig_post
	rpc.

	* hurd/hurdmsg.c (_S_msg_set_environment): Use argz.h functions
	instead of _hurd_split_args.
	(_S_msg_*_exec_flags): Functions removed.
	(_S_msg_startup_dosync): Stub removed.

Sat May  4 02:11:55 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/ptrace.c: Set _hurdsig_traced instead of
	EXEC_TRACED bit in _hurd_exec_flags.
	Pass sigcode arg in msg_sig_post_untraced rpc.

	* sysdeps/mach/hurd/access.c: Don't pass io port in
	auth_user_authenticate rpc.

	* posix/sched.h: Fix typos.

	* sysdeps/mach/hurd/fork.c: Use new critical section lock.
	Clear _hurdsig_traced instead of EXEC_TRACED.

	* sysdeps/stub/nanosleep.c (nanosleep): Fix typo.

	* wcsmbs/wcstol.c: Find strtol.c in ../stdlib.
	* wcsmbs/wcstof.c: Find strtod.c in ../stdlib.
	* wcsmbs/wcstod.c: Likewise.
	* wcsmbs/wcstold.c: Likewise.

	* wcsmbs/wcwidth.h: Find cname-lookup.h in ../wctype.

	* string/envz.c (envz_entry): Use const.
	(envz_get, envz_remove): Likewise.
	(envz_entry): Return char *, not const char *.

	* string/envz.h: Fix decl.

	* string/argz-create.c: Use const in prototype.
	* string/argz-next.c: Likewise.

Fri May  3 13:32:08 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/sigprocmask.c: Pass sigcode arg to msg_sig_post.
	* sysdeps/mach/hurd/i386/sigreturn.c: Likewise.
	* sysdeps/mach/hurd/sigsuspend.c: Likewise.
	* sysdeps/mach/hurd/kill.c: Likewise.

	* hurd/hurdexec.c (_hurd_exec): Use new critical section lock.
	* hurd/catch-exc.c (_S_catch_exception_raise): Likewise.
	* hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Likewise.
	* hurd/thread-cancel.c (hurd_thread_cancel, hurd_check_cancel):
	Likewise.
	* sysdeps/mach/hurd/jmp-unwind.c (_longjmp_unwind): Likewise.
	* sysdeps/mach/hurd/sigaction.c: Likewise.

	* sysdeps/mach/hurd/errnos.awk: Don't use ARGV in comment; it can
	change meaninglessly.

	* hurd/hurd/signal.h (struct hurd_sigstate): Replace critical section
	flag with a spin lock.
	(_hurd_critical_section_lock): Use spin_try_lock on that to see if we
	get it.  No need to take SS->lock at all.
	(_hurd_critical_section_unlock): Unlock SS->critical_section_lock
	instead of clearing the old flag member.
	* hurd/hurdsig.c (_hurd_internal_post_signal): Use spin_lock_locked to
	test the critical section state.

	* hurd/hurdinit.c (_hurd_init): Set _hurdsig_traced from the intarray.

	* hurd/hurdkill.c (_hurd_sig_post): Pass 0 sigcode in msg_sig_post.

	* hurd/hurdsig.c (_hurd_internal_post_signal): Test _hurdsig_traced
	instead of testing (_hurd_exec_flags & EXEC_TRACED).
	(_S_msg_sig_post): Take sigcode arg and pass it through.
	(_S_msg_sig_post_untraced): Likewise.
	(reauth_proc): Don't pass proc port in auth_user_authenticate.

	* hurd/setauth.c (_hurd_setauth): Don't pass object ports in
	auth_user_authenticate RPCs, just the one-off rendezvous port.
	* hurd/dtable.c (reauth_dtable): Likewise.
	* hurd/hurdlookup.c (__hurd_file_name_lookup_retry): Likewise.

	* hurd/hurdexec.c (_hurd_exec): Pass 0 flags to file_exec.
	Pass sigcode arg to msg_sig_post.

	* string/argz.h (argz_create): Use const in prototype.

	* hurd/hurdinit.c (_hurd_proc_init): Test _hurdsig_traced instead of
	testing (_hurd_exec_flags & EXEC_TRACED).
	Pass sigcode arg to msg_sig_post.

	* hurd/hurd.h: Declare _hurdsig_traced.

	* string/argz.h (__argz_next): Cast ENTRY before returning it.

	* hurd/hurd/signal.h (_hurd_critical_section_unlock): Pass sigcode arg
	to msg_sig_post.

	* hurd/path-lookup.c: New file.
	* hurd/Makefile (routines): Add path-lookup.
	* hurd/hurd/lookup.h: Declare file_name_path_scan,
	hurd_file_name_path_lookup.
	* hurd/hurd.h: Declare file_name_path_lookup.

	* sysdeps/mach/hurd/select.c: The io_select rpc no longer has a TAG_ID
	argument.  Instead, use a separate reply port for each RPC and put them
	all in a port set to wait for slow replies.

	* intl/Makefile (CPPFLAGS): Change $(nlsdir) to $(i18ndir) in
	LOCALE_ALIAS_PATH.

Fri May  3 03:14:02 1996  Ulrich Drepper  <drepper@cygnus.com>

	* intl/Makefile (routines): Add l10nflist and explodename.
	(distribute): Add loadinfo.h and locale.alias.
	(install-others): New variable to install locale.alias.

	* intl/dcgettext.c, intl/finddomain.c, intl/gettextP.h,
	intl/loadmsgcat.c: Adapt for upcoming gettext-0.10.13.  Some code
	is now shared with the locale implementation.

	* intl/explodename.c, intl/l10nflist.c, intl/loadinfo.h: New file.
        Extracted from finddomain.c.  This is also used in the locale
        implementation.

	* intl/locale.alias: New file.  Locale alias database compatible
        with X Window System's locale alias file.  Can now be used in
        locale and gettext code.

	* libio/stdio.h: Add prototypes for asprint and vasprintf.

	* locale/C-collate.c, locale/C-ctype.c, locale/C-messages.c,
	locale/C-monetary.c, locale/C-numeric.c, locale/C-time.c: Add new
	field in structure with name of locale ("C" in this case).

	* locale/Makefile (routines): Add findlocale.

	* locale/findlocale.c: New file.  Instead of trying to load the
        directly described file we now try to be much smarter when this
        fails.  Use the same code as gettext does.

	* locale/loadlocale.c, locale/setlocale.c: Rewrite to know about
        new loading scheme.

	* locale/localeinfo.h: Adapt prototypes and declarations for new
	setlocale implementation.  Remove definition of u32_t type.  We
	now use u_int32_t from <sys/types.h>.

	* locale/programs/charset.h (ILLEGAL_CHAR_VALUE): Provide type
        with constant.

	* locale/programs/config.h, locale/lc-collate.c,
        locale/localeinfo.h, locale/programs/ld-collate.c,
        locale/programs/ld-ctype.c, locale/programs/ld-messages.c,
        locale/programs/ld-monetary.c, locale/programs/ld-numeric.c,
        locale/programs/ld-time.c, locale/weight.h, string/strcoll.c:
        Change to use u_int32_t and u_int16_t.

	* locale/programs/localedef.c (construct_output_path): Change name
        of output locale to contain normalized form of the character set
        portion.

	* string/Makefile (routines): Add agrz-ctsep and argz-next.
	(tests): Add tst-strlen.

	* string/argz-ctsep.c: New file.  Implement reverse operation
	from argz-stringify.

	* string/argz-next.c: Non-inline version of function from argz.h.

	* string/argz.h, string/envz.h: Make usable as global header file.

	* string/envz.c: Fix declarations to use size_t where prototypes
	say so.

	* string/tst-strlen.c: New file.  Another test for critical
        situation in strlen implementations.

	* sysdeps/i386/i586/strlen.S: Fix bug with highest byte in word
        being zero.

	* wctype/test_wctype.c: Fix controlling comparison after change to
        32 bit character class array.

Fri May  3 12:53:12 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/sys/socket.h: Remove spurious doubled line.

Thu May  2 22:50:52 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/getpriority.c: New file.
	* sysdeps/unix/sysv/linux/syscalls.list: Add s_getpriority.

Thu May  2 22:41:31 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/m68k/fpu_control.h (_FPU_DEFAULT):
	Disable all exceptions.

Thu May  2 22:33:14 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/e_acos.c, sysdeps/m68k/fpu/e_acosf.c,
	sysdeps/m68k/fpu/e_fmod.c, sysdeps/m68k/fpu/e_fmodf.c,
	sysdeps/m68k/fpu/isinfl.c, sysdeps/m68k/fpu/isnanl.c,
	sysdeps/m68k/fpu/s_atan.c, sysdeps/m68k/fpu/s_atanf.c,
	sysdeps/m68k/fpu/s_frexp.c, sysdeps/m68k/fpu/s_frexpf.c,
	sysdeps/m68k/fpu/s_ilogb.c, sysdeps/m68k/fpu/s_ilogbf.c,
	sysdeps/m68k/fpu/s_isinf.c, sysdeps/m68k/fpu/s_isinff.c,
	sysdeps/m68k/fpu/s_ldexp.c, sysdeps/m68k/fpu/s_ldexpf.c,
	sysdeps/m68k/fpu/s_modf.c, sysdeps/m68k/fpu/s_modff.c: Don't
	define __NO_MATH_INLINES, which is already defined on command
	line.

Thu May  2 22:18:28 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/libm-ieee754/e_j0f.c (__ieee754_j0f, __ieee754_y0f):
	Replace 0x80000000 by 0x48000000.
	* sysdeps/libm-ieee754/e_j1f.c (__ieee754_j1f): Likewise.

Thu May  2 21:30:33 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sunrpc/svc_simple.c: Make global variable pl local to
	registerrpc.

Thu May  2 00:24:04 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* time/Makefile (tz-cflags): New variable.
	(CFLAGS-tzfile.c): New variable.
	(CFLAGS-zic.c): Add $(tz-cflags).
	(tz-cc): Remove variable.
	($(objpfx)tzfile.o, $(objpfx)zic.o): Remove targets.

Wed May  1 09:10:04 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/getcwd.c: Jump out of both loops when we find a
	name, instead of checking for reaching end of buffer, which happens
	when the match is the last entry in the buffer.

	* time/strftime.c: Use canonical autoconf nugget for time.h+sys/time.h
	include.

Mon Apr 29 02:48:26 1996  Ulrich Drepper  <drepper@cygnus.com>

	* ctype/ctype-info.c: (__ctype_width): New variable.
	(__ctype_names): Initialize correctly without offset.

	* locale/C-collate.c, locale/C-ctype.c,
	locale/C-messages.c, locale/C-monetary.c,
	locale/C-numeric.c, locale/C-time.c: Change copyright.

	* locale/C-ctype.c (_nl_C_LC_CTYPE_class32): Correct
	endianess for initialization value.

	* locale/lc-ctype.c (current): Add parameter for offset.
	(__ctype32_b, __ctype_width): Add initialization for these
	variables.

	* locale/programs/charmap.c: Finish support for WIDTH information.
	(new_width): New function.

	* locale/programs/charset.h (width_rule): new data structure.
	(charset_t): Add elements for width information.

	* locale/programs/ld-ctype.c (locale_ctype_t): Add element
	for width information.
	(allocate_arrays): Add new argument for charset.
	(ctype_finish): Make sure all characters named in charset
	width table are known to name table.
	(ctype_output): Correct handling of class and map name
	information and write out width information.
	(find_idx): Prepare for being called with NULL pointer as
	TABLE argument.  This means only allocate name entry.
	(allocate_arrays): Correct handling of array element -1.
	Because EOF == -1 the value of element 127 must *not* be
	mirrored here.
	Fill width information from charset tables.

	* locale/programs/localedef.c (main): Correct loop over all
	categories after change of order from Thu Mar 28 14:22:51 1996.
	Add new charset argument to call of `write_all_categories'.

	* locale/programs/locales.h (ctype_finish, ctype_output): New
	charset argument.

	* locale/programs/locfile.c (write_all_categories): Call
	`ctype_output' with additional argument charset.

	* posix/getconf.c (vars): Add _POSIX_SYNC_IO, _POSIX_ASYNC_IO,
	and _POSIX_PRIO_IO definitions.

	* posix/posix2_lim.h: Add definition of _POSIX2_CHARCLASS_NAME_MAX
	and CHARCLASS_NAME_MAX.

	* posix/unistd.h: Document _POSIX_SYNC_IO, _POSIX_ASYNC_IO,
	and _POSIX_PRIO_IO.

	* stdlib/grouping.h: Prepare for use in wide string functions.

	* stdlib/stdlib.h: Correct prototypes for __strto*_internal
	functions.

	* stdlib/strtod.c: Extend for use as `wcsto{f,d,ld}'.

	* stdlib/strtol.c: Extend for use as `wcsto{l,ul,q,uq}'.

	* string/strcoll.c: Extend for use as `wcscoll'.

	* string/strxfrm.c: Extend for use as `wcsxfrm'.

	* sysdeps/generic/confname.h: Add definition of _PC_SYNC_IO,
	_PC_ASYNC_IO, _PC_PRIO_IO and _SC_CHARCLASS_NAME_MAX.

	* sysdeps/generic/stpncpy.c: Correct return value.

	* sysdeps/posix/fpathconf.c: Add handling of _PC_SYNC_IO,
	_PC_ASYNC_IO, and _PC_PRIO_IO.

	* sysdeps/posix/sysconf.c: Add handling of _SC_REALTIME_SIGNALS,
	_SC_PRIORITY_SCHEDULING, _SC_TIMERS, _SC_ASYNCHRONOUS_IO,
	_SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO, _SC_FSYNC,
	_SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE,
	_SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_SEMAPHORES,
	_SC_SHARED_MEMORY_OBJECTS, and _SC_CHARCLASS_NAME_MAX.
	* sysdeps/stub/sysconf.c: Ditto.
	* sysdeps/unix/sysv/sysv4/sysconf.c: Ditto.

	* sysdeps/unix/sysv/linux/Dist: Add sys/sysctl.h.

	* sysdeps/unix/sysv/linux/Makefile [subdir == misc]
	(sysdep_routines): Add s_sysctl and sysctl.

	* sysdeps/unix/sysv/linux/sys/mman.h: Add declaration of mremap.

	* sysdeps/unix/sysv/linux/sys/socket.h: New file.  Wrapper
	around kernel header.

	* sysdeps/unix/sysv/linux/sys/sysctl.h: New file.  Define
	interface to `sysctl' function.

	* sysdeps/unix/sysv/linux/syscalls.list: Add mremap and _sysctl.

	* sysdeps/unix/sysv/linux/sysconf.c: Add handling of
	_SC_CHARCLASS_NAME_MAX.

	* sysdeps/unix/sysv/linux/sysctl.c: new file.  Implement caller
	of _sysctl system call.

	* sysvipc/Makefile (routines): Add ftok.

	* sysvipc/ftok.c: use variable `proj_id' not `id'.  Patch by
	David Mosberger-Tang.

	* wcsmbs/Makefile (routines): Add wcpcpy, wcpncpy, wcstol,
        wcstoul, wcstoq, wcstouq, wcstod, wcstold, wcstof, wcscoll,
        wcsxfrm, wcwidth, and wcswidth.

	* wcsmbs/wchar.h: Add declarations for wcpcpy, wcpncpy, wcstol,
        wcstoul, wcstoq, wcstouq, wcstod, wcstold, wcstof, wcscoll,
        wcsxfrm, wcwidth, and wcswidth.
	Declare internal interfaces for wcsto* functions.
	[OPTIMIZE]: Define inline functions for wcsto* functions to
	call internal interface functions.

	* wcsmbs/wcpcpy.c, wcsmbs/wcpncpy.c: New files.  Implement non-
	standard function equivalent to stpcpy/stpncpy.

	* wcsmbs/wcscoll.c: Implement `wcscoll' function by using
        `strcoll' implementation.

	* wcsmbs/wcscpy.c, wcsmbs/wcsncpy.c: Use wint_t instead of
        wchar_t.

	* wcsmbs/wcstod.c: Implement `wcstod' function by using `strtod'
        implementation.
	* wcsmbs/wcstof.c: Same for `wcstof'.
	* wcsmbs/wcstold.c: Same for `strtold'.

	* wcsmbs/wcstol.c: Implement `wcstol' function by using `strtol'
        implementation.
	* wcsmbs/wcstoq.c: Same for `wcstoq'.
	* wcsmbs/wcstoul.c: Same for `wcstoul'.
	* wcsmbs/wcstouq.c: Same for `wcstouq'.

	* wcsmbs/wcswidth.c: Implement `wcswidth' function from X/Open
        CAE.
	* wcsmbs/wcwidth.c: Ditto for `wcwidth'.
	* wcsmbs/wcwidth.h: Common function for definitions of above two
	functions.

	* wcsmbs/wcsxfrm.c: Implement `wcsxfrm function by using
        `strxfrm implementation.

	* wctype/wctype.c: Remove case for `wctype_t' being 16 bit type.

	* wctype/wctype.h (wint_t): Protect against multiple definition.
	(wctype_t): Always define as `unsigned long int'.

	* wctype.h: New file.  Wrapper around wctype/wctype.h.

Tue Apr 30 17:30:46 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hurd/hurdsig.c (_hurdsig_abort_rpcs): Add timeout argument to
	interrupt_operation call.
	(_hurdsig_interrupt_timeout): New variable.

	* hurd/report-wait.c (describe_number): Correctly allocate space
	in DESCRIPTION for the digits in I.

Mon Apr 29 00:11:59 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* hurd/hurdstartup.c (_hurd_split_args): Function removed.
	(_hurd_startup): Use argz functions.

	* hurd/hurdexec.c: Use argz functions.

	* errno.h [!__error_t_defined] (error_t): New type.
	* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
	typedef in errnos.h.

	* string/envz.c, string/envz.h: New files.
	* string/argz.h, string/argz-append.c, string/argz-count.c,
	string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
	string/argz-insert.c, string/argz-stringify.c: New files.
	* string/Makefile (routines): Add envz, argz-*.
	(headers): Add argz.h, envz.h.

Sun Apr 28 14:14:35 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/i386/Makefile: New file.

Wed Apr 24 17:35:30  Ulrich Drepper  <drepper@cygnus.com>

	* inet/netinet/in.h, socket/sys/socket.h: Move to
	sysdeps/generic/netinet/in.h, sysdeps/generic/sys/socket.h.
	* netinet/in.h, sys/socket.h: Remove file.

	* misc/Makefile (routines): Add fdatasync.

	* posix/Makefile (headers): Add sched.h.
	(routines): Add nanosleep, sched_setp, sched_getp, sched_sets,
	sched_gets, sched_yield, sched_primax, sched_primin, sched_rr_gi.

	* posix/getconf.c (vars): Add entries for _POSIX_REALTIME_SIGNALS,
	_POSIX_PRIORITY_SCHEDULING, _POSIX_TIMERS, _POSIX_ASYNCHRONOUS_IO,
	_POSIX_PRIORITIZED_IO, _POSIX_SYNCHRONIZED_IO, _POSIX_FSYNC,
	_POSIX_MAPPED_FILES, _POSIX_MEMLOCK, _POSIX_MEMLOCK_RANGE,
	_POSIX_MEMORY_PROTECTION, _POSIX_MESSAGE_PASSING,
	_POSIX_SEMAPHORES, _POSIX_SHARED_MEMORY_OBJECTS.

	* posix/sched.h: New file.  Header for POSIX scheduling interface.

	* posix/unistd.h: Describe options from POSIX.4.
	Add declaration of fdatasync.

	* sysdeps/generic/confname.h: Add definition for
	 _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS,
	_SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO,
	_SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE,
	_SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING,
	_SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS.

	* sysdeps/generic/fdatasync.c: New file.  Default implementation
	simply uses fsync.

	* sysdeps/generic/netinit/in.h: Moved to here from inet/netinet/in.h.

	* sysdeps/generic/schedbits.h: New file.  System dependent
	defintion for POSIX.4 scheduling interface.

	* sysdeps/generic/sys/socket.h: Moved to here from socket/sys/socket.h.

	* sysdeps/stub/nanosleep.c, sysdeps/stub/sched_getp.c,
	sysdeps/stub/sched_gets.c, sysdeps/stub/sched_primax.c,
	sysdeps/stub/sched_primin.c, sysdeps/stub/sched_rr_gi.c,
	sysdeps/stub/sched_setp.c, sysdeps/stub/sched_sets.c,
	sysdeps/stub/sched_yield.c: New file:  Stub implementation
	for systems missing these POSIX.4 system calls.

	* sysdeps/unix/sysv/linux/gnu/types.h,
	sysdeps/unix/sysv/linux/ioctls.h: Use kernel header for
	data type definitions.

	* sysdeps/unix/sysv/linux/netinet/in.h: New file.  Linux
	specific version.

	* sysdeps/unix/sysv/linux/posix_opt.h: New file.  Define POSIX
	options applicable for Linux.

	* sysdeps/unix/sysv/linux/syscalls.list: Add definitions for
	fdatasync, nanosleep, sched_setparam, sched_getparam,
	sched_setscheduler, sched_getscheduler, sched_yield,
	sched_get_priority_max, sched_get_priority_min, and
	sched_rr_get_interval.

	* sysdeps/unix/sysv/linux/sysconf.c: Add handling of POSIX.4
	options.

	* sysdeps/unix/sysv/linux/termbits.h: Use kernel headers.

	* time/sys/time.h: Remove definition of `struct timespec'.

	* time/time.h (struct timespec): Move definition to here.

Fri Apr 26 01:55:07 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* malloc/mcheck.c (mabort): Use __libc_fatal only #ifdef _LIBC.

Thu Apr 25 15:49:57 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/getcwd.c (__getcwd): When we find a match in
	the scan for a name, avoid doing another readdir (which overwrites
	NENTRIES, and was resulting in a bogus ENOENT).

	* sysdeps/mach/hurd/fcntl.c (__fcntl): Add missing break after F_SETFL.

Wed Apr 24 00:22:42 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* stdio/internals.c (seek_to_target): Set errno if seek function
	returns the wrong offset.

	* wcsmbs/wcsrtombs.c [! EILSEQ] (EILSEQ): Define to EINVAL.
	* wcsmbs/wcrtomb.c: Likewise.

	* stdio-common/vfprintf.c: Include errno.h.

Tue Apr 23 21:09:14 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hurd/hurdsig.c (signal_allowed): For SIGIO/SIGURG, add a new
	variable, LUCKY, to use instead of setting D to -1 (which fouls
	things up).

Tue Apr 23 15:56:56 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* config.h.in (HAVE_REGEX): New macro.

	* sysdeps/unix/syscalls.list: Add statfs, fstatfs.
	* io/Makefile (headers): Add sys/statfs.h, statfsbuf.h.
	(routines): Add statfs, fstatfs.
	* sysdeps/mach/hurd/statfs.c: New file.
	* sysdeps/mach/hurd/fstatfs.c: New file.
	* sysdeps/stub/fstatfs.c: New file.
	* sysdeps/stub/statfs.c: New file.
	* io/sys/statfs.h: New file.
	* sysdeps/generic/statfsbuf.h: New file.
	* sysdeps/unix/sysv/linux/statfsbuf.h: New file.

Tue Apr 23 00:06:47 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* malloc/Makefile (gmalloc-routines): Add valloc back here.
	(dist-routines): Remove it here.
	* malloc/valloc.c [_MALLOC_INTERNAL && GMALLOC_INHIBIT_VALLOC]
	(ELIDE_VALLOC): Define it.
	[! ELIDE_VALLOC]: Make whole file conditional on this.
	* malloc/malloc.h (valloc): Make decl conditional on
	[!GMALLOC_INHIBIT_VALLOC] instead of [!emacs].

Mon Apr 22 00:02:19 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* MakeTAGS: Include version.mk.
	(po/SYS_libc.pot): Add missing / in sed s cmd.

Sat Apr 20 18:13:00 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Makerules (no-whole-archive): Test $(have-no-whole-archive), not
	$(libc_cv_ld_no_whole_archive).

Sat Apr 20 17:07:17 1996  Ulrich Drepper  <drepper@cygnus.com>

	* assert/assert.h, ctype/ctype.h, dirent/dirent.h, errno.h,
	grp/grp.h, io/fcntl.h, io/sys/stat.h, io/utime.h, locale/locale.h,
	math/math.h, misc/nlist.h, misc/sgtty.h, misc/sys/file.h,
	misc/sys/ioctl.h, misc/sys/uio.h, posix/sys/times.h,
	posix/sys/types.h, posix/sys/utsname.h, posix/sys/wait.h,
	posix/tar.h, posix/wordexp.h, pwd/pwd.h, resource/sys/vlimit.h,
	resource/sys/vtimes.h, setjmp/setjmp.h, signal/signal.h,
	stdio-common/printf.h, stdlib/alloca.h, stdlib/stdlib.h,
	string/string.h, sysdeps/generic/sigaction.h,
	sysdeps/generic/sigset.h, sysdeps/generic/sys/ptrace.h,
	sysdeps/generic/sys/ptrace.h, sysdeps/unix/bsd/osf/sigaction.h,
	sysdeps/unix/sysv/linux/sys/ptrace.h,
	sysdeps/unix/sysv/minix/sigaction.h,
	sysdeps/unix/sysv/sco3.2.4/sigaction.h,
	sysdeps/unix/sysv/sysv4/sigaction.h,
	sysdeps/unix/sysv/sysv4/sigset.h, termios/termios.h,
	time/sys/time.h, time/time.h: Fix copyright comment.

Fri Apr 19 00:49:44 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): If uids and gids are
	not given in stack aux vector, fetch them with syscalls.

	* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
	for nonmatching nonerror (instead of !MATCH).
	(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.

	* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
	unsigned long for variable NET2.

	* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.

Tue Apr  9 14:37:31 1996  Ulrich Drepper  <drepper@cygnus.com>

	* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
	catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
	catgets/open_catalog.c: New files.  Implementation of XPG4
	compliant catgets() function and needed tools.
	* Makefile (subdirs): Add catgets.

Thu Apr 18 23:36:11 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.

Wed Apr 10 20:48:43 1996  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/vfprintf.c: Correct some typos.

	* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
	sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
	__signgam.

Thu Apr 18 21:07:27 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>

	* Makerules (no-whole-archive): New variable.
	(build-shlib): Use it.
	* elf/Makefile (libdl.so): Use it.
	* configure.in (libc_cv_ld_no_whole_archive): New check for
	--no-whole-archive.
	* config.make.in (have-no-whole-archive): New variable.

	* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
	from 3 to 4.

	* Make-dist: Include version.mk.
	(version, release): Variables removed.
	* Makeconfig (version.mk): New target.

Fri Apr 19 01:42:18 1996  Ulrich Drepper  <drepper@cygnus.com>

	* locale/Makefile (headers): Add langinfo.h.
	(CPPFLAGS): Remove -Iliblib.

Mon Apr 15 16:49:04 1996  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>

	* malloc/memalign.c, malloc/malloc.h [__DJGPP__ == 1]: Elide memalign
	function and its declaration.

Wed Apr 10 14:13:45 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Store
	MACH_PORT_DEAD in the thread reply-port variable before destroying
	the signal handler's reply port, to avoid infinite recursion.

Mon Apr  8 18:27:17 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/gettimeofday.c (__gettimeofday): Don't fail if the
	user passes in TZ, just zero it (emacs passes in a dummy variable,
	and rms says the hurd should be the one to change).

Sun Apr  7 10:37:30 1996  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/fork.c: Don't leak send rights to the child's proc
	port in the parent.

Fri Apr  5 17:43:41 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/i386/sigreturn.c (__sigreturn): Store
	MACH_PORT_DEAD in the thread reply-port variable before destroying
	the signal handler's reply port to avoid infinite recursion.
	* sysdeps/mach/hurd/mig-reply.c (__mig_dealloc_reply_port): Only
	attempt to destroy PORT if it's a valid port name.

Wed Apr  3 17:10:44 1996  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>

	* extra-lib.mk: Put libs in $(common-objpfx) instead of $(objpfx).
	* Makerules ($(install-lib) rules): Find libs with $(common-objpfx)
	instead of $(objpfx).

Tue Apr  2 21:27:01 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* posix/glob.c (glob_pattern_p): Avoid scanning past eos if
	the pattern ends with a backslash and quoting is enabled.
	* posix/fnmatch.c (fnmatch): Likewise; return FNM_NOMATCH for such
	patterns.

Mon Apr  1 13:34:55 1996  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>

	* stdio-common/tst-printf.c (main): Add new test case.

	* sysdeps/generic/setenv.c (unsetenv): Use old-style definition.

Mon Apr  1 11:39:10  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* stdlib/strtod.c (STRTOD): Fix handling of American style FP
	numbers.

	* stdio-common/vfprintf.c (vfprintf): Don't increment format
	string pointer twice after seeing `*'.

Sun Mar 31 17:31:54 1996  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>

	* MakeTAGS (po/SYS_libc.pot): Prepend header processed from
	po/header.pot.

Sun Mar 31 18:07:32 1996  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* locale/Makefile (others, install-bin): Compiling locale works
        again.
	(locale-modules): locale has no --dump option anymore.  Remove
	ctypedump.

	* locale/programs/config.h: Don't declare euidaccess.
	Use #include_next to get libc's config.h.

	* locale/programs/ctypedump.c: Not needed anymore.  Dump option
	of locale is removed.

	* locale/programs/locale.c: Adapt for new locale implementation.

	* stdio-common/_itoa.h (_itoa_word): Define as inline function.
	* stdio-common/_itoa.c (_itoa_lower_digits, _itoa_upper_digits):
	Don't declare static because used in _itoa_word inline function.

	* stdio-common/printf-parse.h: Prepare for use in wide-char
	stdio implementation.
	(find_spec): Take additional argument to work with mbrlen instead
	of mblen.
	(parse_one_spec): Ditto.

	* stdio-common/printf-prs.c: Prepare for use in wide-char
	stdio implementation.

	* stdio-common/printf.h: Mark change for wide-char handling.
	Changing it now would result in incompatibilities.

	* stdio-common/vfprintf.c: New and fast implementation.

	* wcsmbs/Makefile (routines): Remove pre-ISO C multibyte functions
	mbsadvance, mbscat, mbschr, mbscmp, mbscpy, mbsdup, mbslen,
	mbsncat, mbsncmp, mbsncpy, mbsrchr, mbstomb.
	Change wcswcs to wcsstr.
	Add wmemchr, wmemcmp, wmemcpy, wmemmove, wmemset, btowc, wctob,
	mbsinit, mbrlen, mbrtowc, wcrtomb, mbsrtowcs, wcsrtombs.

	* wcsmbs/btowc.c, wcsmbs/mbrlen.c, wcsmbs/mbrtowc.c,
        wcsmbs/mbsinit.c, wcsmbs/mbsrtowcs.c, wcsmbs/wchar.h,
        wcsmbs/wcrtomb.c, wcsmbs/wcsrtombs.c, wcsmbs/wcsstr.c,
        wcsmbs/wctob.c, wcsmbs/wmemchr.c, wcsmbs/wmemcmp.c,
        wcsmbs/wmemcpy.c, wcsmbs/wmemmove.c, wcsmbs/wmemset.c: New
        function according to ISO C amendment 1.
	* wchar.h: Wrapper around "wcsmbs/wchar.h".

	* wcsmbs/wcscat.c, wcsmbs/wcschr.c, wcsmbs/wcscmp.c,
        wcsmbs/wcscpy.c, wcsmbs/wcscspn.c, wcsmbs/wcsdup.c,
        wcsmbs/wcslen.c, wcsmbs/wcsncat.c, wcsmbs/wcsncmp.c,
        wcsmbs/wcsncpy.c, wcsmbs/wcspbrk.c, wcsmbs/wcsrchr.c,
        wcsmbs/wcsspn.c, wcsmbs/wcstok.c: Changed to conform with ISO C
        amendment 1.

	* wcsmbs/mbsadvance.c, wcsmbs/mbscat.c, wcsmbs/mbschr.c,
        wcsmbs/mbscmp.c, wcsmbs/mbscpy.c, wcsmbs/mbsdup.c,
        wcsmbs/mbslen.c, wcsmbs/mbsncat.c, wcsmbs/mbsncmp.c,
        wcsmbs/mbsncpy.c, wcsmbs/mbsrchr.c, wcsmbs/mbstomb.c,
        wcsmbs/mbstr.h, wcsmbs/wcstr.h, wcsmbs/wcswcs.c: Removed.
        Implement functions from early drafts, not part of final standard.

Sun Mar 31 16:50:41 1996  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>

	* setjmp/setjmp.h (jmp_buf): Change gratuitous struct tag name to
	__jmp_bug_tag so its C++ implicit typedef does not conflict with the
	__jmp_buf typedef.

	* Makerules (BUILD_CFLAGS) [! objdir]: Use $(..)config.h when
	compiling in the source directories.

Fri Mar 29 16:26:35 1996  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>

	* sysdeps/libm-ieee754/w_gamma.c: Use signgam instead of __signgam.
	* sysdeps/libm-ieee754/s_signgam.c: Undo last change.

Fri Mar 29 11:29:46 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/libm-ieee754/s_signgam.c (signgam): Renamed to __signgam,
	with weak alias signgam.

Thu Mar 28 18:32:34 1996  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>

	* Makeconfig (+cflags, +gcc-nowarn): Use gcc flags unconditionally.

Thu Mar 28 14:22:51 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sunrpc/rpc_main.c (main): Call textdomain.

	* MakeTAGS (XGETTEXTFLAGS-siglist.pot, XGETTEXTFLAGS-errlist.pot): Add
	--no-location.
	(all-pot): Replace $(subdirs) files with $P/subdirs.pot.
	($P/subdirs.pot): New target.
	($P/SYS_libc.pot): Add -n switch.

	* locale/locale.h (LC_*): Values reordered to match Linux libc.

	* sysdeps/mach/hurd/kill.c: If proc_pid2task gives us MACH_PORT_NULL
	the process is a zombie; send no messages and return success.

Thu Mar 28 11:53:26 1996  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>

	* wctype/cname-lookup.h: Find localeinfo.h in ../locale.
	* wctype/wctype.c: Likewise.
	* wctype/wctrans.c: Likewise.

Thu Mar 28 03:00:43 1996  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>

	* locale/nl_langinfo.c (nl_langinfo): Use DATA->values instead of
	DATA->strings.

	* Makerules (BUILD_CFLAGS): Remove $(common-objpfx) from config.h.

	* configure.in (.weakext check): Fix asm code to use .weakext instead
	of .weak!  Fix bogus test calls.
	* configure: Regenerated.

Thu Mar 28 03:25:10 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* locale/programs/xmalloc.c: Test _LIBC as well as STDC_HEADERS.

	* locale/programs/ld-collate.c (collate_finish): Use error_at_line
	instead of error_with_loc.

	* locale/weight.h: Use u_int32_t instead of u32_t.
	* string/strxfrm.c: Likewise.

	* string/strxfrm.c: Find weight.h in ../locale; don't #include
	"localeinfo.h".
	* string/strcoll.c: Likewise.

	* intl/Makefile (copysrc): Add missing > in sed cmd.

Sat Mar 23 17:52:49 1996  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* Makeconfig: Rename Makefile variable nlsdir to i18ndir and
	change value to $(datadir)/i18n.  `nls' is not an appropriate
	name.

	* Makefile (subdirs): Add new subdir wctype.

	* ctype/ctype-info.c: Add new global variable __ctype_names
	and initialize from _nl_C_LC_CTYPE.

	* ctype/ctype.h: In P1003.3b/D11 `alnum' is a separate character
        class.  Use bit 11.
	[_ISbit]: Protect definition of bitmasks because they are also
	used in wctype.h.

	* libio/genops.c (_IO_sputbackc, _IO_sungetc): Clear EOF flag
	after successfully pushing back a character.

	Fundamental changes in locale implementation.  Almost nothing
	from the old code is used anymore.
	* locale/charmap.c, locale/collate.c, locale/config.h,
	locale/ctypedump.c, locale/hash.h, locale/keyword.gperf,
	locale/keyword.h, locale/loadlocale.c, locale/locale-ctype.c,
	locale/locale.c locale/localeconv.c, locale/localedef.c,
	locale/localedef.h, locale/locfile-hash.c, locale/locfile-lex.c,
	locale/locfile-parse.c, locale/messages.c, locale/monetary.c,
	locale/numeric.c, locale/setlocale.c, locale/token.h,
	locale/xmalloc.c: Removed.

	* locale/Makefile: Update for new locale implementation with
	program source code distributed in subdir.

	* locale/categories.def, locale/iso-4217.def: Updated file
        for new locale implementation.

	* locale/langinfo.h: Updated for new locale implementation.
	(ERA_D_T_FMT, ERA_T_FMT): New official values according to
	P1003.2b/D11.
	(_NL_COLLATE_NRULES, _NL_COLLATE_RULES, _NL_COLLATE_HASH_SIZE,
	_NL_COLLATE_HASH_LAYERS, _NL_COLLATE_TABLE_EB,
	_NL_COLLATE_TABLE_EL, _NL_COLLATE_UNDEFINED, _NL_COLLATE_EXTRA_EB,
	_NL_COLLATE_EXTRA_EL, _NL_CTYPE_NAMES_EB, _NL_CTYPE_NAMES_EL,
	_NL_CTYPE_HASH_SIZE, _NL_CTYPE_HASH_LAYERS, _NL_CTYPE_CLASS_NAMES,
	_NL_CTYPE_MAP_NAMES, _NL_CTYPE_WIDTH): New internal values for
	extended LC_CTYPE and LC_COLLATE implementation.

	* locale/programs/simple-hash.c, locale/programs/simple-hash.h,
	locale/programs/xmalloc.c, locale/programs/xstrdup.c: Helper functions
	for locale related programs.

	* locale/C-collate.c, locale/C-ctype.c,
        locale/C-messages.c, locale/C-monetary.c,
        locale/C-numeric.c, locale/C-time.c,
        locale/lc-collate.c, locale/lc-ctype.c,
        locale/lc-messages.c, locale/lc-monetary.c,
        locale/lc-numeric.c, locale/lc-time.c: New implementation of locale
        functions, and new generated "C" locale data.

	* locale/loadlocale.c: Now handles word fields in locale binary
        automatically by changing the endianess if necessary.

	* locale/localeinfo.h (LIMAGIC): Changed magic number because
	of incompatible changes.
	(locale_data): Changed definition to allow word as a value type.
	(coll_sort_rule): Values for collation sorting mode.
	(_NL_CURRENT_WORD): New macro to access word value of locale entry.
	(__collate_table, __collate_extra): Declare new global variables
	for collation tables.

	* locale/programs/charmap-kw.gperf, locale/programs/charmap-kw.h,
	locale/programs/charmap.c, locale/programs/charset.c,
	locale/programs/charset.h, locale/programs/config.h,
	locale/programs/ctypedump.c, locale/programs/ld-collate.c,
	locale/programs/ld-ctype.c, locale/programs/ld-messages.c,
	locale/programs/ld-monetary.c, locale/programs/ld-numeric.c,
	locale/programs/ld-time.c, locale/programs/linereader.c,
	locale/programs/linereader.h, locale/programs/locale.c,
	locale/programs/localedef.c, locale/programs/locales.h,
	locale/programs/locfile-kw.gperf, locale/programs/locfile-kw.h,
	locale/programs/locfile-token.h, locale/programs/locfile.c,
	locale/programs/locfile.h, locale/programs/stringtrans.c,
	locale/programs/stringtrans.h: Implementation of locale related
	programs.

	* locale/weight.h: Functions to access collation tables.

	* posix/unistd.h: Define _POSIX2_LOCALEDEF.

	* stdio-common/printf_fp.c: Fix bug with printing certain numbers
	< 10^-1.  Reported by Bill Metzenthen.

	* stdio-common/tfformat.c: Add new test for above bug.

	* string/strcoll.c, string/strxfrm.c: Real implementation of
        string collation according to ISO C.

	* wctype/Makefile, wctype/cname-lookup.h, wctype/iswctype.c,
        wctype/test_wctype.c, wctype/towctrans.c, wctype/wcfuncs.c,
        wctype/wctrans.c, wctype/wctype.c, wctype/wctype.h: New files.
        Implementation of wide character classes and mapping.

Wed Mar 27 14:52:11 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* elf/rtld.c (dl_main): Call _dl_sysdep_start_cleanup after
	_dl_relocate_object loop.  Avoid relocating RTLD_MAP in that loop, and
	do it individually if necessary after _dl_sysdep_start_cleanup call.

	* stdlib/Makefile (mpn-routines): Add divrem.

Tue Mar 26 22:54:14  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* stdio-common/printf_fp.c (__printf_fp): Use mpn_divmod
	instead of __mpn_divmod.

Wed Mar 27 10:26:21 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/alpha/setjmp.S: Must establish global pointer before
	address of __sigsetjmp_aux can be loaded.

Wed Mar 27 02:23:19 1996 Ulrich Drepper <drepper@gnu.ai.mit.edu>

	* sysdeps/i386/i586/memset.S: New file.  Highly optimized
	version for i586 contributed by Torbjorn Granlund.
	Adapted for use as bzero.
	* sysdeps/i386/i586/bzero.S: Use sysdeps/i386/i586/memset.S
	code to implement bzero().

Tue Mar 26 20:01:17 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* stdlib/Makefile (mpn-routines): Remove divmod.

Tue Mar 26 15:40:14 1996  Brendan Kehoe  <brendan@zen.org>

	* sysdeps/unix/sysv/sysv4/solaris2/sparc/sysdep.h (NO_UNDERSCORES): Use
	wrapped with #ifndef, to avoid config.h defining it.

Mon Mar 25 13:10:04 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* malloc/realloc.c (_realloc_internal): In case of growing large
	block, leave _heaplimit zero across _malloc_internal call.

	* intl/Makefile [gettext-srcdir]: Use gpl2lgpl.sed on copied sources.

Mon Mar 25 03:35:16 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* malloc/malloc.c (morecore): Don't attempt recursive realloc of info
	table when _heaplimit==0 during realloc growing large block.

	* MakeTAGS (extract): Remove /dev/null from xgettext command line.
	(text-srcs): New variable: extract only C sources from $(tags_sources).
	(po/$(domain).pot): Depend on that.
	If it's empty, cp /dev/null $@ instead of $(extract).

	* misc/Makefile (headers): Add iovec.h.
	* sysdeps/unix/sysv/linux/iovec.h: New file.
	* sysdeps/generic/iovec.h: New file.
	* misc/sys/uio.h (struct iovec): Type replaced with #include <iovec.h>.

	* configure.in (NO_UNDERSCORES check): Use AC_TRY_LINK instead of
	AC_TRY_COMPILE.

	* misc/sys/cdefs.h [__USE_BSD] (const, signed, volatile): Move these
	macros inside [! __STDC__].

	* stdlib/rpmatch.c: New file.
	* stdlib/Makefile (routines): Add rpmatch.
	* stdlib/stdlib.h [__USE_SVID]: Declare rpmatch.

	* MakeTAGS (MSGJOIN): Variable removed.
	(po/SYS_libc.pot): Use $(XGETTEXT) instead of $(MSGJOIN).

Wed Mar 20 20:08:46 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysdep.h: Don't define C_SYMBOL_NAME.

	* sysdeps/unix/sysv/linux/m68k/sysdep.h: Don't define
	NO_UNDERSCORES.

Thu Mar 21 11:19:15 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* mach/devstream.c (input): Translate \r to \n on input.

Wed Mar 20 11:28:49 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* stdio-common/printf.h, stdio-common/printf_fp.c,
	stdio-common/vfprintf.c: Place const in parameter list at
	correct place.

Wed Mar 20 23:58.12 1996  Ulrich Drepper <drepper@gnu.ai.mit.edu>

	* sysdeps/i386/ldbl2mpn.c: Copy of former version of
	sysdeps/ieee754/ldbl2mpn.c.
	* sysdeps/ieee754/ldbl2mpn.c: Remove i386 specific unification.
	Reported by Andreas Schwab.

Wed Mar 20 19:58:43 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* version.c: Include version.h to define RELEASE and VERSION macros.
	(__libc_release, __libc_version): Use them.
	* locale/SYS_libc.c (_libc_intl_domainname): Include ../version.h and
	use VERSION to define domainname as `SYS_GNU_libc-VERSION'.
	* Make-dist (rel+vers): Snarf the macro values from version.h.

	* MakeTAGS (extract): Pass $(XGETTEXTFLAGS-$(@F)).
	(XGETTEXTFLAGS-siglist.pot, XGETTEXTFLAGS-errlist.pot): New variables;
	pass -a for these files.

	* Makerules (po/%.pot): Depend on FORCE target so recursive make is
	always run.

Mon Mar 18 22:54:32 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/wait3.c: New file.
	* sysdeps/unix/sysv/linux/wait.c: Use the bsd4.4 wait, not the
	one from sysdeps/posix.

Wed Mar 20 09:42:11 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/unix/bsd/waitflags.h (WNOREAP): New macro.

	* elf/dl-load.c (_dl_map_object_from_fd): Always set L->l_type; if not
	lt_executable, then lt_library.
	* elf/rtld.c (dl_main): Don't set NEW->l_type after _dl_map_object.

Wed Mar 20 00:08:23 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/syscalls.list: Remove gtty and stty.

Tue Mar 19 16:31:06 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/termbits.h (CRTSCTS, CBAUDEX, VEOL,
	VEOL2, VMIN, VTIME): Corrected.
	(PAGEOUT, WRAP, VDSUSP): Deleted.

Tue Mar 19 14:18:42 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/unix/readdir.c: Test [! _DIRENT_HAVE_D_RECLEN] instead of
	(sizeof (DP->d_name) > 1) to detect fixed-size dir entries.

	* sysdeps/i386/fpu/__math.h (asinh): Call log1p instead of __log1p.

	* math/math.h: Move M_* constants before __math.h include.
	[__NO_MATH_INLINES || __OPTIMIZE__]: Include __math.h only #if this.

	* misc/efgcvt_r.c (ecvt_r): Declare floor, log10, fabs as weak extern.
	If log10 is not defined (i.e. no -lm), use stupid loop instead.

	* features.h (__FAVOR_BSD): Define only if _BSD_SOURCE is defined
	and no other _*_SOURCE macro is.
	(_GNU_SOURCE): Don't define by default.
	* libc-symbols.h (_GNU_SOURCE): Define it.

	* configure.in (alpha*-*-linux*): Unset $gnu_ld and $elf.

	* config.make.in (weak-symbols): Variable removed.
	* configure.in (--with-weak-symbols): Option removed.
	(NO_UNDERSCORES, HAVE_ASM_WEAK_DIRECTIVE, HAVE_ASM_WEAKEXT_DIRECTIVE):
	New tests.

	* config.h.in (HAVE_WEAK_SYMBOLS): #undef removed.
	(NO_UNDERSCORES, HAVE_ASM_WEAK_DIRECTIVE, HAVE_ASM_WEAKEXT_DIRECTIVE):
	New #undefs.
	* libc-symbols.h: Use them instead of HAVE_WEAK_SYMBOLS.

	* sysdeps/unix/bsd/pause.c: Moved to sysdeps/unix/common/pause.c.

Mon Mar  4 20:17:28 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* inet/inet_lnaof.c: Use u_int32_t instead of u_long.
	* inet/inet_mkadr.c: Likewise.
	* inet/inet_net.c: Likewise.
	* inet/inet_netof.c: Likewise.
	* inet/rcmd.c: Likewise.
	* inet/arpa/inet.h: Likewise.
	* inet/netinet/in.h: Likewise.
	* inet/netinet/tcp.h: Likewise.
	* inet/protocols/rwhod.h: Likewise.
	* inet/protocols/talkd.h: Likewise.
	* resolv/inet_addr.c: Likewise.

	* sysdeps/unix/sysv/linux/adjtime.c: Use INT_MAX instead of LONG_MAX.

	* sysdeps/unix/sysv/Makefile (sysdep_routines): Don't add s_getdents.

	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Don't add mount,
	umount.

	* sysdeps/alpha/__math.h (atan, cabs): New functions.

	* sysdeps/unix/sysv/linux/alpha/sigsuspend.S: new file (syscall
	expects set-value, not pointer to it).

Sun Feb 25 22:36:10 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/unix/sysv/linux/alpha/profil-counter.h: New file.

	* gmon/gmon.c (__bb_head): new variable.
	(write_hist, write_call_graph, write_bb_counts): new functions.
	(_mcleanup): modified to call above functions instead of directly
	writing out gmon.out.
	* gmon/sys/gmon.h (struct __bb): New type.
	(struct gmonhdr): Type removed.
	(struct gmonparam): New member `log_hashfraction'.
	(GMONVERSION): Macro removed.

	* gmon/sys/gmon_out.h, gmon/bb_exit_func.c,
	sysdeps/generic/bb_init_func.c, sysdeps/alpha/bb_init_func.S: new
	files.
	* gmon/Makefile (headers): Add sys/gmon_out.h.
	(routines): Add bb_init_func, bb_exit_func.

	* gmon/mcount.c: Avoid integer division.

Wed Feb 21 23:56:41 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/alpha/setjmp.S: switched order in which sp and fp are
	passed to match what __sigsetjmp_aux() expects.

Tue Feb 20 11:33:46 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/unix/sysv/linux/alpha/syscalls.list (select, bind,
	connect, getpeername, getsockname, listen, recv, recvfrom,
	recvmsg, send, sendmsg, sendto, setsockopt, shutdown, socketpair):
	added to override same-name assembly file in the parent directory.

	* stdlib/stdlib.h: add include of sys/types.h in front of random
	etc declarations to ensure int32_t is declared.

	* stdlib/random.c, stdlib/random_r.c: replaced "long int" by int32_t
	where 32 bit integers are required.  Also change LONG_MAX into
	0x7fffffff since the intent is to turn off the sign bit in a
	32 bit integer.

	* time/offtime.c (__offtime): Use Paul Eggert's code to deal
	with very large values for "days" (e.g., 64 bit values).

Mon Feb 19 22:22:12 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* stdlib/stdlib.h (__random, __random_r, random_r, struct
	random_data): use int32_t instead of `long int'.

Sat Feb 17 11:29:29 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/unix/sysv/linux/alpha/ioperm.c: new file.

	* sysdeps/alpha/ffs.S: new file.

	* sysdeps/alpha/fabs.c: File removed.

	* time/tzfile.c (__tzfile_read): counter variable is i, *not*
	num_transitions!

	* time/offtime.c: make capable of dealing with very large (64 bit)
	time_t values.  Use old algorithm until a year is reached that
	is an integer multiple of 400, then use DAYS_PER_400_YEARS to
	do the remainder in a single division.

	* sysdeps/generic/ffs.c (ffs): fix variable declarations to
	be unsigned int, not unsigned long.

	* string/test-ffs.c (main): add test case with all upper bits
	set.

	* stdlib/tst-strtol.c: add tests cases for machines where
	sizeof(long)==8.

	* stdlib/testrand.c (main): disallow rand() to return negative
	integers.

	* stdlib/testmb.c (main): fix format to use %lx instead of %x.

	* stdlib/stdlib.h: on 64 bit machines, declare
	struct random_data, __random(),  __random_r, and random_r to
	return "int" instead of "long int".

	* stdlib/random_r.c: 64 bit machines use "int" instead of "long
	int".  Similarly, use INT_MAX instead of LONG_MAX.

	* stdlib/random.c: on 64 bit machines, randtbl[] and __random[]
	need to operate on "int" instead of "long int".

	* locale/locfile-hash.c (compute_hashval): make shifted constant
	a long to avoid loosing bits on 64 bit machines.

	* dirent/tst-seekdir.c (main): fix confusing comment; print
	a line to mark point where directory is rewound.

Fri Feb 16 15:01:49 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* time/strftime.c (strftime): any hour > 11 is PM (not > 12!).

Wed Feb 14 00:21:17 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/unix/sysv/linux/alpha/Makefile,
	sysdeps/unix/sysv/linux/alpha/brk.S,
	sysdeps/unix/sysv/linux/alpha/fpu_control.c,
	sysdeps/unix/sysv/linux/alpha/fpu_control.h,
	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
	sysdeps/unix/sysv/linux/alpha/pipe.S,
	sysdeps/unix/sysv/linux/alpha/setfpucw.c,
	sysdeps/unix/sysv/linux/alpha/sigprocmask.c,
	sysdeps/unix/sysv/linux/alpha/speed.c,
	sysdeps/unix/sysv/linux/alpha/start.S,
	sysdeps/unix/sysv/linux/alpha/syscall.S,
	sysdeps/unix/sysv/linux/alpha/syscalls.list,
	sysdeps/unix/sysv/linux/alpha/alpha/regdef.h,
	sysdeps/unix/sysv/linux/alpha/sysdep.S,
	sysdeps/unix/sysv/linux/alpha/sysdep.h: New files.

	* sysdeps/alpha/setjmp_aux.c (__sigsetjmp_aux): restore return
	address register before returning (gcc 2.7.1 doesn't do it,
	presumably because $26 is declared as a global variable).

	* sysdeps/unix/sysv/linux/sys/mman.h: msync was missing "flags"
	argument.

	* sysdeps/unix/alarm.c (alarm): do roundup using test & increment
	instead of multiplication.

	* sysdeps/posix/sleep.c (sleep): initialize sa_mask to mask of
	currently blocked signals instead of the empty mask to ensure
	that execution of alarm handler occurs with none of the currently
	blocked signals enabled.

	* sysdeps/unix/alpha/sysdep.h: new file (adapted from OSF/1 version).

	* sysdeps/unix/bsd/osf/alpha/sysdep.h: include
	sysdeps/unix/alpha/sysdep.h and removed definitions now in that file.

	* sysdeps/alpha/divrem.S, sysdeps/alpha/htonl.S,
	sysdeps/alpha/htons.S, sysdeps/alpha/machine-gmon.h,
	sysdeps/alpha/_mcount.S, sysdeps/alpha/ntohl.s, sysdeps/alpha/ntohs.s,
	sysdeps/alpha/strlen.S: New files.

	* sysdeps/alpha/divl.S, sysdeps/alpha/divlu.S, sysdeps/alpha/divq.S,
	sysdeps/alpha/divqu.S, sysdeps/alpha/divrem.m4,
	sysdeps/alpha/macros.m4, sysdeps/alpha/reml.S, sysdeps/alpha/remlu.S,
	sysdeps/alpha/remq.S, sysdeps/alpha/remqu.S, sysdeps/alpha/strlen.c:
	Removed.

	* sysdeps/generic/sbrk.c (__sbrk): argument is of type ptrdiff_t, not
	int.

	* sysdeps/alpha/__longjmp.c (__longjmp): moved dummy while loop
	to end of function to avoid a jump across NOPs.

	* sysdeps/alpha/Makefile (sysdep_routines): Removed all rules
	pertaining to integer division/remainder routines since new code
	doesn't require them.

	* sunrpc/xdr_mem.c, sunrpc/xdr_stdio.c: Use 4 instead of sizeof(long)
	where 32 bit quantities are consumed/stored.  Various other minor
	64-bit cleanups (casting).

	* sunrpc/xdr.c (xdr_int): test for sizeof(int)==4 to determine
	whether xdr_long or xdr_short should be used to encode an int.
	Notice that an xdr_long is 4 bytes independent of the architecture
	(otherwise no Alpha could interoperate with existing NFS servers,
	for example).  Ditto for enums.

	* sunrpc/svc_udp.c (svcudp_recv): changed test from 4*sizeof(u_long)
	to 16 since it really wants 16 bytes.

	* sunrpc/svc.c (maskp): changed from u_long* to u_int32*.

	* sunrpc/rpc/xdr.h (IXDR_GET_LONG, IXDR_PUT_LONG): change casts to
	u_int32_t (instead of u_long).

	* sunrpc/rpc_cmsg.c (xdr_callmsg), sunrpc/svc_authux.c: increment
	"buf" pointer by casting it to a char* first since a long* may be 8
	bytes or more and oa->oa_length may be any multiple of 4.

	* sunrpc/clnt_udp.c (clntudp_call): replaced sizeof(u_long) by 4
	since it really is testing for 32 bits.  Fixed casts to use
	u_int32 instead of u_long.
	* sunrpc/xdr_rec.c: Likewise.

	* sunrpc/clnt_tcp.c (clnttcp_call): replaced u_long by u_int32.
	* sunrpc/rpc/auth.h: Likewise.

	* limits.h (LONG_MAX, LONG_MIN, ULONG_MAX): use 64 bit values
	for Alpha.

Tue Mar 19 13:27:49 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/i386/fpu/__math.h: New file.
	Contributed by John C. Bowman <bowman@hagar.ph.utexas.edu>.

Sun Mar 17 00:28:16 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/posix/clock.c: Don't multiply the return value by
	CLOCKS_PER_SEC or CLK_TCK.

Mon Mar 18 13:20:46 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/getcwd.c: Fail with ENOENT if a parent directory
	scan finds no match.

	* posix/unistd.h (setpgrp): Declare no-arg version unless __FAVOR_BSD.
	* misc/bsd-compat.c (setpgrp): New function, two arg version.
	* sysdeps/stub/setpgid.c: Remove setpgrp alias.
	* sysdeps/mach/hurd/setpgid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/setpgid.c: Likewise.
	* sysdeps/unix/common/syscalls.list (setpgid): Remove setpgrp alias.
	* sysdeps/unix/sysv/irix4/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/setpgrp.c: Obsolete file removed.
	* posix/setpgrp.c (setpgrp): New file.
	* posix/Makefile (routines): Add setpgrp.

	* elf/Makefile (rtld-link): New canned sequence.
	(ld.so, ld-linux.so.1): Use it.  Pass -soname option.

	* sysdeps/i386/setjmp.S (__setjmp): Define compatibility entry point.

Sun Mar 17 23:15:32 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/tcgetpgrp.c,
	sysdeps/unix/sysv/linux/tcsetpgrp.c: New files.

Sun Mar 17 07:19:33 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* db/Makefile (CFLAGS-hash_func.c): New variable; pass -Wno-unused.
	(CFLAGS): Append -Wno-unitialized.

Sat Mar 16 20:58:43 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* stdlib/erand48_r.c: Use FP division by powers of two to distribute
	short bits into double.

Sat Mar 16 20:08:22 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/alpha/memchr.S: New file.
	* sysdeps/alpha/memchr.c: Obsolete file removed.
	* string/tester.c: Soup up memchr tests.

Sat Mar 16 16:26:09 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* misc/Makefile (headers): Add sysexits.h.
	* misc/sysexits.h: New file.

Thu Mar 14 15:20:45 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/libm-ieee754/e_atan2.c (__ieee754_atan2): Change atan
	call to __atan.
	* sysdeps/libm-ieee754/e_atan2f.c (__ieee754_atan2f): Change atanf
	call to __atanf.

	* sysdeps/m68k/fpu/e_acos.c, sysdeps/m68k/fpu/e_acosf.c,
	sysdeps/m68k/fpu/e_asin.c, sysdeps/m68k/fpu/e_asinf.c,
	sysdeps/m68k/fpu/e_atanh.c, sysdeps/m68k/fpu/e_atanhf.c,
	sysdeps/m68k/fpu/e_cosh.c, sysdeps/m68k/fpu/e_coshf.c,
	sysdeps/m68k/fpu/e_exp.c, sysdeps/m68k/fpu/e_expf.c,
	sysdeps/m68k/fpu/e_fmod.c, sysdeps/m68k/fpu/e_fmodf.c,
	sysdeps/m68k/fpu/e_log.c, sysdeps/m68k/fpu/e_log10.c,
	sysdeps/m68k/fpu/e_log10f.c, sysdeps/m68k/fpu/e_logf.c,
	sysdeps/m68k/fpu/e_pow.c, sysdeps/m68k/fpu/e_powf.c,
	sysdeps/m68k/fpu/e_remainder.c, sysdeps/m68k/fpu/e_remainderf.c,
	sysdeps/m68k/fpu/e_scalb.c, sysdeps/m68k/fpu/e_scalbf.c,
	sysdeps/m68k/fpu/e_sinh.c, sysdeps/m68k/fpu/e_sinhf.c,
	sysdeps/m68k/fpu/e_sqrt.c, sysdeps/m68k/fpu/e_sqrtf.c,
	sysdeps/m68k/fpu/k_cos.c, sysdeps/m68k/fpu/k_cosf.c,
	sysdeps/m68k/fpu/k_sin.c, sysdeps/m68k/fpu/k_sinf.c,
	sysdeps/m68k/fpu/k_tan.c, sysdeps/m68k/fpu/k_tanf.c,
	sysdeps/m68k/fpu/s_atan.c, sysdeps/m68k/fpu/s_atanf.c,
	sysdeps/m68k/fpu/s_ceil.c, sysdeps/m68k/fpu/s_ceilf.c,
	sysdeps/m68k/fpu/s_cos.c, sysdeps/m68k/fpu/s_cosf.c,
	sysdeps/m68k/fpu/s_expm1.c, sysdeps/m68k/fpu/s_expm1f.c,
	sysdeps/m68k/fpu/s_fabs.c, sysdeps/m68k/fpu/s_fabsf.c,
	sysdeps/m68k/fpu/s_finite.c, sysdeps/m68k/fpu/s_finitef.c,
	sysdeps/m68k/fpu/s_floor.c, sysdeps/m68k/fpu/s_floorf.c,
	sysdeps/m68k/fpu/s_frexp.c, sysdeps/m68k/fpu/s_frexpf.c,
	sysdeps/m68k/fpu/s_ilogb.c, sysdeps/m68k/fpu/s_ilogbf.c,
	sysdeps/m68k/fpu/s_isinf.c, sysdeps/m68k/fpu/s_isinff.c,
	sysdeps/m68k/fpu/s_isnan.c, sysdeps/m68k/fpu/s_isnanf.c,
	sysdeps/m68k/fpu/s_ldexp.c, sysdeps/m68k/fpu/s_ldexpf.c,
	sysdeps/m68k/fpu/s_log1p.c, sysdeps/m68k/fpu/s_log1pf.c,
	sysdeps/m68k/fpu/s_logb.c, sysdeps/m68k/fpu/s_logbf.c,
	sysdeps/m68k/fpu/s_modf.c, sysdeps/m68k/fpu/s_modff.c,
	sysdeps/m68k/fpu/s_rint.c, sysdeps/m68k/fpu/s_rintf.c,
	sysdeps/m68k/fpu/s_scalbn.c, sysdeps/m68k/fpu/s_scalbnf.c,
	sysdeps/m68k/fpu/s_significand.c,
	sysdeps/m68k/fpu/s_significandf.c, sysdeps/m68k/fpu/s_sin.c,
	sysdeps/m68k/fpu/s_sinf.c, sysdeps/m68k/fpu/s_tan.c,
	sysdeps/m68k/fpu/s_tanf.c, sysdeps/m68k/fpu/s_tanh.c,
	sysdeps/m68k/fpu/s_tanhf.c: New files, for m68881 port of fdlibm.

	* sysdeps/m68k/fpu/__math.h: Rewritten for fdlibm.

	* sysdeps/m68k/fpu/isinfl.c: Rewritten to get argument type right.
	* sysdeps/m68k/fpu/isnanl.c: Likewise.

Thu Mar 14 06:01:07 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* posix/glob.c (glob): In GLOB_BRACE brace expansion, fix buffer size
	calculation to include trailing invariant portion.  Don't use alloca;
	instead use a dynamic auto array for GCC, malloc for non-GCC.
	Handle nested braces properly.

	* elf/elf.h (Elf32_auxv_t): Specify prototype (void) for `a_un.a_fcn'.

	* libc-symbols.h (lint): New macro.

Fri Mar 15 01:18:00 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libio/iosetvbuf.c: Add weak alias setvbuf.

Thu Mar 14 06:01:07 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* string/strnlen.c: New file.
	* string/Makefile (routines): Add strnlen.
	* string/string.h [__USE_GNU] (strnlen): Declare new function.
	[__OPTIMIZE__]: Define extern inline implementation of it.

	* stdlib/erand48_r.c: Use __mpn_construct_double instead of ldexp and
	addition, to avoid using anything from -lm.

Mon Mar  4 21:57:14 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/m68k/Makefile: New file.

	* sysdeps/unix/sysv/linux/m68k/sysdep.h (SYS_ify): Redefine.
	(CALL_MCOUNT): New macro, empty unless [PROF].
	(ENTRY): Do CALL_MCOUNT just after the label.
	(JUMPTARGET): New macro.
	(SYSCALL_ERROR_HANDLER): Fix syntax.

Thu Mar 14 04:20:48 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/init-first.c (init): Call `__personality'
	function instead of using inline asm i386 syscall.
	* sysdeps/unix/sysv/linux/syscalls.list: Add personality syscall.

	* posix/unistd.h [__USE_BSD]: Declare usleep.

Tue Mar 12 04:57:57 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* misc/efgcvt.c (MAXDIG): New macro computed from <floats.h> constants.
	(fcvt, ecvt): Use it for buffer size.

	* stdlib/drand48-iter.c (__drand48_iterate): Use u_int64_t instead of
	conditionalizing long vs long long.

	* stdlib/drand48-iter.c (__drand48_iterate): Don't check for null
	pointers; never return EFAULT.
	* stdlib/drand48_r.c (drand48_r): Likewise.
	* stdlib/erand48_r.c (erand48_r): Likewise.

	* setjmp/Makefile (tests): Add jmpbug.
	* setjmp/jmpbug.c: New file.

Tue Mar 12 04:42:01 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/sparc/jmp_buf.h: Rewritten; use array of ints, not struct.
	* sysdeps/sparc/setjmp.S: Rewritten; store %fp value as well.
	* sysdeps/sparc/__longjmp.S: Rewritten; unwind frames one by one with
	`restore' until the target frame is hit.

Sun Mar 10 20:29:40 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/sigsuspend.c: New file.
	* sysdeps/unix/sysv/linux/syscalls.list: Remove sigsuspend, add
	s_sigsuspend.

Thu Mar  7 21:30:58 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makerules (+make-deps, sed-remove-objpfx): Quote periods on the
	left side of sed substitutions.

Sun Mar 10 16:58:10 1996  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* stdio-common/printf_fp.c (hack_digit): __mpn_normal_size
	is not available anymore.  Do it ourselves.

	* sysdeps/unix/sysv/linux/i386/fpu_control.h (_FPU_SETCW):
	Correct GCC `asm' syntax.

Tue Mar 12 03:15:02 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* stdio-common/Makefile (tests): Add tst-ungetc.
	* stdio-common/tst-ungetc.c: New test from drepper.
	* stdio-common/tstscanf.c (main): New %[ test case from drepper.

	* sysdeps/libm-ieee754/s_scalbn.c (scalbn): Rename to __scalbn;
	somehow this was missed, though the weak alias is already there.

	* sysdeps/unix/sysv/linux/i386/fpu_control.h (_FPU_DEFAULT): Change
	default to double precision, all interrupts masked; fdlibm requires.

Sat Mar  9 18:44:27 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/i386/setfpucw.c: Obsolete file removed.

Fri Mar  8 22:16:48 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* stdio-common/printf_fp.c (HAVE_ALLOCA): New macro.

Tue Mar  5 18:45:14 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/select.c (__select): Include LASTFD in the
	final loop.

Mon Mar  4 20:54:40 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makeconfig ($(common-objpfx)config.make): Depend on config.h.in.

Tue Mar  5 12:14:57 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/select.c (__select): Also don't fault just
	because some fdmask is 0.

Mon Mar  4 17:35:35 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/select.c (__select):
	Don't increment GOT only because READ/WRITE/EXCEPTFDS is 0!
	Don't return without frobbing the bitmasks after a timeout.
	When clearing the bitmasks, only loop from FIRSTFD to LASTFD.

Mon Mar  4 17:35:09 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* hurd/catch-signal.c (hurd_safe_memmove): New function.
	(hurd_safe_copyin, hurd_safe_copyout): New functions.
	* hurd/hurd/sigpreempt.h: Declare them.

Sun Mar  3 08:43:44 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	Replace math code with fdlibm from Sun as modified for netbsd by
	JT Conklin and Ian Taylor, including x86 FPU support.
	* sysdeps/libm-ieee754, sysdeps/libm-i387: New directories.
	* math/math_private.h: New file.
	* sysdeps/i386/fpu/Implies: New file.
	* sysdeps/ieee754/Implies: New file.
	* math/machine/asm.h, math/machine/endian.h: New files.
	* math/Makefile, math/math.h: Rewritten.
	* mathcalls.h, math/mathcalls.h: New file, broken out of math.h.
	* math/finite.c: File removed.
	* sysdeps/generic/Makefile [$(subdir)=math]: Frobnication removed.

	* math/test-math.c: Include errno.h and string.h.

	* sysdeps/unix/bsd/dirstream.h: File removed.
	* sysdeps/unix/bsd/readdir.c: File removed.

Sat Mar  2 16:35:40 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/m68k/profil-counter.h: File removed.
	* sysdeps/unix/sysv/sysv4/solaris2/sparc/profil-counter.h: File
	removed.
	* sysdeps/generic/profil-counter.h: New file.

Fri Mar  1 17:11:59 1996  Brendan Kehoe  <brendan@zen.org>

	* sysdeps/unix/sysv/sysv4/solaris2/sparc/sigcontext.h: New file,
	including <sysdeps/unix/bsd/sun/sparc/sigcontext.h>.
	* sysdeps/unix/sysv/sysv4/solaris2/sparc/profil-counter.h: New file,
	same as linux/m68k/profil-counter.h except the comment.

Fri Mar  1 10:09:46 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* stdlib/Makefile (mpn-stuff): New target.
	(copy-mpn): Use it.

	* Code copied from GMP updated to 1.937 version.
	* stdlib/strtod.c (HAVE_ALLOCA): Define this for gmp headers.

	* posix/glob.c: Use canonical code from autoconf manual for dirent
	include.
	[_D_NAMLEN]: Redefine NAMLEN using this.
	(glob_in_dir): Use NAMLEN macro.

	* sysdeps/posix/profil.c: New file.

Thu Feb 29 20:55:57 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/m68k/profil-counter.h: New file.

Tue Feb 27 12:14:59 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* libc-symbols.h [GCC >= 2.8] (strong_alias, weak_alias): Remove
	`extern' keyword.

	* time/strftime.c: Support - and _ flags to affect number padding.

	* sysdeps/unix/common/tcsendbrk.c: New file.

Mon Feb 26 10:22:30 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/unix/dirstream.h: Rewritten.
	* sysdeps/unix/readdir.c: Rewritten.
	* sysdeps/unix/telldir.c: Rewritten.
	* sysdeps/unix/closedir.c: Use <...> instead of "..." for dirstream.h.
	Remove __ from DIR struct member names.
	* sysdeps/unix/dirfd.c: Likewise.
	* sysdeps/unix/seekdir.c: Likewise.
	* sysdeps/unix/rewinddir.c: Likewise.
	* sysdeps/unix/opendir.c: Likewise.  Don't allocate extra space after
	DIR structure.
	* sysdeps/stub/direct.h: File removed.
	* sysdeps/unix/bsd/bsd4.4/direct.h: File removed.
	* sysdeps/unix/bsd/direct.h: File removed.
	* sysdeps/unix/common/direct.h: File removed.
	* sysdeps/unix/sysv/irix4/direct.h: File removed.
	* sysdeps/unix/sysv/isc3/direct.h: File removed.
	* sysdeps/unix/sysv/sco3.2.4/direct.h: File removed.
	* sysdeps/unix/sysv/sysv4/solaris2/direct.h: File removed.
	* sysdeps/unix/common/direntry.h: New file.
	* sysdeps/unix/bsd/direntry.h: New file.
	* sysdeps/unix/bsd/bsd4.4/direntry.h: New file.
	* sysdeps/unix/sysv/direntry.h: New file.
	* sysdeps/stub/direntry.h: New file.
	* dirent/dirent.h (struct dirent): Type removed.  Include <direntry.h>
	to define it.
	(_D_EXACT_NAMLEN, _D_ALLOC_NAMLEN): New macros.
	* dirent/Makefile (headers): Add direntry.h.
	(distribute): Remove direct.h.
	* sysdeps/posix/getcwd.c: Use new macros instead of d_namlen.
	* dirent/scandir.c: Likewise.
	* io/fts.c (fts_build): Likewise.
	* io/ftw.c (ftw_dir): Likewise.
	* sysdeps/posix/ttyname.c: Likewise.

	* sysdeps/unix/sysv/sysv4/solaris2/syscalls.list: New file.

	* sysdeps/mach/hurd/profil.c (MAX_PC_SAMPLES): New macro.
	(collector_timeout): New static variable.
	(update_waiter): Actually call __task_enable_pc_sampling.
	Set collector_timeout based on the `tick' count returned.
	(profile_waiter): Use MAX_PC_SAMPLES.  Set nsamples before RPC.
	Use collector_timeout in __mach_msg call.

	* gmon/Makefile (noprof): New variable containing mcount.
	Append profil unless it is in $(unix-syscalls).
	(mcount.po): Use $(noprof) for list of targets in this rule.

	* libc-symbols.h: Define _LIBC before #include <config.h>.

Sun Feb 25 12:29:23 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* config.h.in [_LIBC] (HAVE_STRERROR): Define it.
	Protect 2nd page of #undef's for generator programs with #ifndef _LIBC.

	* time/zic.c, time/zdump.c, time/private.h: Updated from ADO 96e.

Fri Feb  9 12:40:19 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* libio/cleanup.c (_IO_cleanup_registration_needed)
	[!_G_HAVE_ATEXIT]: Init to NULL.
	* libio/filedoalloc.c (_IO_cleanup_registration_needed): Remove decl.

Thu Feb  8 08:12:50 1996  Brendan Kehoe  <brendan@cygnus.com>

	* libio/filedoalloc.c (_IO_cleanup_registration_needed): Revert
	previous change, since cleanup.c only defines it if _G_HAVE_ATEXIT.

Wed Feb  7 15:10:17 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* libio/filedoalloc.c (_IO_cleanup_registration_needed): Declare as
	extern.

Sat Feb 24 11:34:13 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/i386/memcmp.S: Fix argument %esp offsets.

	* time/sys/time.h (timeradd, timersub): New macros; BSD has these.

Wed Feb 21 02:25:07 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* Rules (others): Depend on $(extra-objs), $(install-lib),
	$(install-bin), $(install-sbin), in object directory.

	* Makeconfig (link-libc): Don't pass -rpath option with default
	path, since ld.so should use the same default.
	* Makerules (build-shlib): Likewise.

	* Makerules (make-target-directory): Use mkinstalldirs.

	* sysdeps/mach/i386/sysdep.h: Include unix/i386/sysdep.h to
	redefine ENTRY et al.

	* sysdeps/unix/sysv/linux/i386/sysdep.h (NO_UNDERSCORES, ENTRY):
	Macros removed.  The code in unix/i386/sysdep.h should now suffice.

	* sysdeps/unix/i386/sysdep.h (ALIGNARG): New macro, defns for
	[HAVE_ELF] and not.
	(ENTRY): Use it in .align directive.
	(CALL_MCOUNT): New macro, empty unless [PROF].
	(ENTRY): Do CALL_MCOUNT just after the label.

	* Makeconfig (CPPFLAGS-.po): New variable, use -DPROF so assembly
	code can call mcount.

Tue Feb 20 23:05:16 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* time/private.h, time/zdump.c, time/zic.c: Updated verbatim from ADO;
	translation markings are now integrated in his distribution.

	* stdlib/strtod.c (round_and_return): Add missing (mp_limb) 1 cast.

Mon Feb 19 18:31:59 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* po: New directory where `LANG.po' files for message translations
	will reside.
	* po/SYS_libc.pot: New file, template of message strings as in source.
	* MakeTAGS: New rules to build po/SYS_libc.pot automatically from
	the source using xgettext.
	* Makerules ($(..)po/%.pot): New rule.
	* manual/Makefile (../po/manual.pot): New target, make it empty.

	* sysdeps/unix/bsd/alarm.c: Moved to sysdeps/unix/alarm.c.
	* sysdeps/unix/bsd/nice.c: Moved to sysdeps/unix/nice.c.
	* sysdeps/unix/bsd/stime.c: Moved to sysdeps/unix/stime.c.
	* sysdeps/unix/bsd/time.c: Moved to sysdeps/unix/time.c.
	* sysdeps/unix/bsd/utime.c: Moved to sysdeps/unix/utime.c.

	* time/zic.c, time/scheck.c, time/private.h, time/tzfile.h:
	Updated from ADO 96d.

Sun Feb 18 14:08:04 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* csu/initfini.c (_init): Remove bogus volatile declarations and
	extra variable, take the address of __gmon_start__ only implicitly
	to avoid the test being optimized out.

Sun Feb 18 15:08:10 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/posix/utimes.c (__utimes): There are 1000000 usecs in a
	sec.

Sun Feb 18 13:56:00 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/Makefile, time/Makefile: Make `all' the default target.

Mon Feb 19 18:09:04 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* misc/sys/ptrace.h: Moved to ...
	* sysdeps/generic/sys/ptrace.h: ... here.
	* sys/ptrace.h: File removed.

Sun Feb 18 12:13:07 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/Makefile (headers): Add fpu_control.h.

	* sysdeps/unix/sysv/linux/i386/sysdep.S (errno): Put it into .bss
	so that the symbol alias works.

	* sysdeps/unix/sysv/linux/m68k/fpu_control.h (_FPU_SETCW): Corrected.

	* sysdeps/unix/sysv/linux/resourcebits.h: New file.

	* sysdeps/unix/sysv/linux/sys/ptrace.h: New file.

	* sysdeps/unix/sysv/linux/syscalls.list: Add getegid, geteuid,
	getppid and reboot.

	* sysdeps/unix/sysv/linux/sysconf.c: Special version that does not
	use getdtablesize.

Sat Feb 17 10:30:21 1996  David Mosberger-Tang  <davidm@AZStarNet.com>

	* stdio-common/printf_fp.c, stdlib/strtod.c, sysdeps/ieee754/dbl2mpn.c,
	sysdeps/ieee754/ldbl2mpn.c, sysdeps/ieee754/mpn2dbl.c,
	sysdeps/ieee754/mpn2ldbl.c: Cast left operands of shift instructions
	to `long' where necessary.

Thu Feb 15 20:04:50 1996  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* stdlib/fpioconst.h: Introduce new constant _FPIO_CONST_OFFSET.
	* stdio-common/printf_fp.c, stdlib/strtod.c: Use _FPIO_CONST_OFFSET
	to correctly access MPN array depending on architecture.

Mon Feb 19 15:30:26 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* stdio-common/tstscanf.c (main): Add check for "0" as %d.

	* sysdeps/stub/msync.c: Undo change of Jan 29; just two args.
	Only some systems have three args; let them define their own stub.

	* sysdeps/generic/dl-sysdep.c: Declare _dl_secure.

	* sysdeps/generic/machine-gmon.h: New file.
	* gmon/Makefile (distribute): Add machine-gmon.h.
	* gmon/mcount.c: Undo changes of Feb 13.
	Include "machine-gmon.h".

Sun Feb 18 13:24:06 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/direct.h: File removed, since it is
	identical to unix/common/direct.h.

	* sysdeps/unix/Makefile [no_deps]: Don't include s-proto.d.

	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Don't add ipc.

	* stdio-common/Makefile (tests): Remove scanf6.

	* sysdeps/unix/sysv/linux/Makefile (non-lib.a): Append libieee.a.

	* time/mktime.c (mktime): Move static variable localtime_offset to
	file scope.

	* stdio-common/vfscanf.c: Put '0' in buffer before scanning for %i
	base indicator.

Thu Feb 15 16:56:17 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/dl-machine.h (elf_machine_load_address): Corrected.
	(ELF_MACHINE_BEFORE_RTLD_RELOC): Define.
	(_dl_runtime_resolve): Save %a1 as well.
	(ELF_MACHINE_RUNTIME_FIXUP_ARGS): Add second dummy arg.
	(elf_machine_relplt): Define.

	* elf/dl-runtime.c: Include possible extra args in declaration of
	fixup.

Fri Feb 16 11:01:59 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* time/tzset.c: Limit hours to 23, not 12.  From jaffer.

Fri Feb 16 10:14:05 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* Makeconfig (CFLAGS-.po): Use -pg instead of -p.

Thu Feb 15 13:57:08 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* mach/Machrules: Use -include for $(*.ir).

	* hurd/hurd/ioctl.h (_HURD_HANDLE_IOCTLS): Mask off type bits in
	request values.
	* sysdeps/mach/hurd/ioctls.h (_IOC_NOTYPE): New macro.
	(_IOT_COUNT2): Field is 3 bits, not 2.
	* sysdeps/mach/hurd/ioctl.c: Ignore handler if it fails with ENOTTY.
	* hurd/hurdioctl.c (_hurd_lookup_ioctl_handler): Mask off type
	bits before looking up handler.
	(fioctl): Use __hurd_dfail.
	(fioctl, fioclex): Use ENOTTY for bogus request instead of EGRATUITOUS.

Thu Feb 15 11:49:45 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/sysv4/Makefile [$(subdir)-signal]
	(sysdep_routines): Don't add sys-sig.

	* sysdeps/unix/sysv/sysv4/solaris2/syscalls.list: New file.

Wed Feb 14 00:21:17 1996 David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/alpha/memchr.c (memchr): loop searching for matching
	character bailed out one too early; changed constant 6 to
	7 to fix this.

Wed Feb 14 01:08:58 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* posix/execvp.c: When executing shell on script, first arg is
	full file name, not argv[0].

	* mach/Makefile [no_deps]: Inhibit inclusion of mach-syscalls.mk.
	* mach/Machrules [no_deps]: Inhibit interface rules.

	* malloc/Makefile (distribute): Removed TODO.

Tue Feb 13 05:12:02 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/syscalls.list (ipc): Specify msgget in
	caller column.

	* sysdeps/unix/common/syscalls.list: Add sigaction syscall.

	* sysdeps/unix/sysv/linux/gnu/types.h: Moved from linux/i386.

	* sysdeps/unix/sysv/linux/Makefile [$(subdir)=math]
	(sysdep_routines): Append setfpucw.
	(extra-objs): Append ieee-fpucw.o.
	(install-lib): Append libieee.a.
	(libieee.a): New target.
	* sysdeps/unix/sysv/linux/ieee-fpucw.c: New file.
	* sysdeps/unix/sysv/linux/i386/fpu_control.h
	(_FPU_GETCW, _FPU_SETCW): New macros.
	(fpu_control_t): New typedef.
	(__setfpucw): Use fpu_control_t for argument type.
	* sysdeps/unix/sysv/linux/fpu_control.c: Moved from linux/i386.

	* sysdeps/unix/sysv/linux/init-first.c: Moved from linux/i386.

	* sysdeps/unix/sysv/linux/syscalls.list: Add ipc syscall.
	* sysdeps/unix/sysv/linux/i386/syscalls.list: File removed.

Sat Feb 10 13:09:03 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/m68k/brk.c,
	sysdeps/unix/sysv/linux/m68k/mmap.S,
	sysdeps/unix/sysv/linux/m68k/select.S,
	sysdeps/unix/sysv/linux/m68k/sigcontext.h,
	sysdeps/unix/sysv/linux/m68k/sigreturn.S,
	sysdeps/unix/sysv/linux/m68k/socket.S,
	sysdeps/unix/sysv/linux/m68k/syscall.S,
	sysdeps/unix/sysv/linux/m68k/sysdep.S,
	sysdeps/unix/sysv/linux/m68k/sysdep.h: New files.

	* sysdeps/unix/sysv/linux/m68k/fpu_control.h: New file.

	* sysdeps/m68k/fpu/isinfl.c, sysdeps/m68k/fpu/isnanl.c,
	sysdeps/m68k/isinfl.c, sysdeps/m68k/isnanl.c: New files.

	* sysdeps/unix/sysv/linux/sys/mman.h: Define MAP_ANON and
	MAP_FILE if not already defined.

	* elf/elf.h: Add m68k reloc definitions.
	* sysdeps/m68k/dl-machine.h, sysdeps/m68k/elf/start.S: New files.

Tue Feb 13 00:12:12 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* elf/dl-runtime.c (fixup) [ELF_MACHINE_RUNTIME_FIXUP_ARGS]: Let
	this macro declare extra leading args.

	* Makerules [$(elf)=yes] (ar-symtab-name): Define to empty.

	* sysdeps/i386/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE,
	elf_machine_relplt): New macros.
	* elf/dl-runtime.c: New file.
	* sysdeps/i386/dl-runtime.c, sysdeps/stub/dl-runtime.c: Files removed.

	* gmon/Makefile (headers): Remove machine-gmon.h.
	* sysdeps/stub/machine-gmon.h, sysdeps/i386/machine-gmon.h: Removed.
	* gmon/mcount.c [! NO_UNDERSCORES] (_mcount): Specify "mcount" as
	the asm name.
	(_mcount): Define normally, taking no args.
	Use __builtin_return_address to fetch PC values of caller and caller's
	caller.

	* Makerules: Rewrote rules to update libc archives of all flavors.
	Define separate specific rules for each flavor using o-iterator.

	* sysdeps/unix/Makefile: Include s-proto.d only ifdef subdir.

Sat Feb 10 11:35:16 1996 Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makerules (ar-symtab-name): New macro.  Replace all occurences
	of __.SYMDEF by $(ar-symtab-name).
	* sysdeps/unix/sysv/Makefile (ar-symtab-name): Define as empty.

Mon Feb 12 03:10:41 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* Makefile (configure, %/configure): Depend on aclocal.m4.
	* Make-dist (configure, %/configure): Likewise.

	* sysdeps/unix/Makefile: Include s-proto.d for its deps.

	* gmon/sys/gmon.h: Don't include machine-gmon.h; those defns are
	only needed in the implementation, not for any users.

	* time/northamerica: Updated from ADO 96c, new rules for Mexico in
	1996.

	* sunrpc/pm_getport.c: #if 0 out gratuitous inclusion of <net/if.h>.
	* sunrpc/pm_getmaps.c: Likewise.

	* sysdeps/unix/sysv/syscalls.list: Add setrlimit and settimeofday,
	so real syscalls override unix/sysv/*.c on sysv-derived systems
	that have them.
	* sysdeps/unix/common/syscalls.list: Add settimeofday here, to
	override unix/sysv/settimeofday.c since that overrides
	unix/syscalls.list.

	* Makeconfig (+link): Put $(link-libc) after deps from $^,
	regardless of where libc.a appears in the deps.

	* sysdeps/unix/sysv/sysv4/syscalls.list: Remove redundancies.
	Add __waitid.
	* sysdeps/unix/sysv/linux/syscalls.list: Remove redundancies.
	Define __ name for sigprocmask.
	* sysdeps/unix/bsd/ultrix4/syscalls.list: Remove redundancies.
	Add getsysinfo.
	* sysdeps/unix/bsd/sun/sunos4/syscalls.list: Remove redundancies.
	* sysdeps/unix/bsd/sun/syscalls.list: Remove redundancies.
	* sysdeps/unix/bsd/bsd4.4/syscalls.list: Remove redundancies.
	* sysdeps/unix/bsd/syscalls.list: Remove settimeofday, utimes.
	Add getdents, wait3, waitpid.
	* sysdeps/unix/syscalls.list: Add seteuid, setegid, setsid,
	settimeofday, sigsuspend, sstk, utimes.
	* sysdeps/unix/bsd/ultrix4/mips/sigvec.S: File removed.
	* sysdeps/unix/bsd/ultrix4/mips/syscalls.list: New file.
	* sysdeps/unix/bsd/ultrix4/mips/Makefile (sysdep_routines):
	Removed sigtramp.
	* sysdeps/unix/bsd/ultrix4/mips/sigvec.c: Renamed from sigtramp.c.
	* sysdeps/unix/bsd/bsd4.4/sstk.S: File removed.
	* sysdeps/unix/bsd/hp/m68k/syscalls.list: File removed.
	* sysdeps/unix/bsd/osf/alpha/getdents.S: File removed.
	* sysdeps/unix/bsd/ultrix4/getsysinfo.S: File removed.
	* sysdeps/unix/bsd/ultrix4/waitpid.S: File removed.
	* sysdeps/unix/bsd/ultrix4/mips/sigtramp.c: File removed.
	* sysdeps/unix/bsd/ultrix4/mips/sigvec.S: File removed.
	* sysdeps/unix/bsd/ultrix4/mips/sigvec.c: New file.
	* sysdeps/unix/bsd/ultrix4/mips/syscalls.list: New file.
	* sysdeps/unix/sysv/irix4/wait3.S: File removed.
	* sysdeps/unix/sysv/sysv4/__waitid.S: File removed.
	* sysdeps/unix/sysv/sysv4/fchdir.S: File removed.
	* sysdeps/unix/sysv/sysv4/setegid.S: File removed.
	* sysdeps/unix/sysv/sysv4/seteuid.S: File removed.
	* sysdeps/unix/sysv/sysv4/sigaltstack.S: File removed.
	* sysdeps/unix/sysv/sysv4/solaris2/utimes.S: File removed.

	* hurd/hurdfault.c (_hurdsig_fault_init): Set qlimit on
	FORWARD_SIGEXC to one.  Uncomment setting of thread exc port, and
	move it to last thing.

Sat Feb 10 05:57:08 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>

	* sysdeps/generic/make_siglist.c: #undef _SIGNAL_H before defining it.

	* sysdeps/unix/sysv/linux/syscalls.list: Add sigprocmask, sigsuspend.

Sat Feb 10 04:18:48 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/execvp.c: If execv fails with ENOEXEC, run the shell on
	the file.

Fri Feb  9 11:46:45 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* time/Makefile (CFLAGS-zdump.c, CFLAGS-zic.c, CFLAGS-ialloc.c,
	CFLAGS-scheck.c): Use -DNOID instead of -Wno-unused.

	* hurd/Makefile (user-interfaces): Added hurd/tioctl.

Thu Feb  8 18:55:27 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdioctl.c (tiocsctty): Set the terminal's pgrp to our own.

Wed Feb  7 18:48:30 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (subdirs): Added wcsmbs.
	* wcsmbs: New directory of wide char/multibyte char functions from
	drepper.

	* hurd/hurdmsg.c (_S_msg_report_wait): Function removed.
	* hurd/report-wait.c: New file.
	* hurd/Makefile (routines): Added report-wait.

	* sysdeps/mach/hurd/Makefile (inhibit-unix-syscalls): New variable.

	* sysdeps/mach/hurd/i386/intr-msg.h (struct mach_msg_trap_args):
	New type.
	(SYSCALL_EXAMINE, MSG_EXAMINE): New inline functions.
	* sysdeps/mach/hurd/i386/trampoline.c (struct mach_msg_trap_args):
	Structure moved to intr-msg.h; include that.

	* time/Makefile (CFLAGS-ialloc.c): Add -Wno-unused.
	(CFLAGS-scheck.c): New variable.

	* sysdeps/mach/hurd/dl-sysdep.c (__hurd_sigthread_stack_base,
	__hurd_sigthread_stack_end, __hurd_sigthread_variables,
	__hurd_threadvar_stack_mask): New variables.

	* sysdeps/mach/hurd/fork.c: Set the new task's exception port to
	its new message port.

	* misc/init-misc.c: Put __init_misc in the __libc_subinit set.

	* configure.in (uname): Add quoting.

	* sysdeps/mach/hurd/fchdir.c: Don't consult errno unless lookup fails.
	* hurd/fchroot.c: Likewise.

	* posix/sys/types.h [GCC >= 2.7]: Define intN_t/u_intN_t using
	__attribute__ ((__mode__ (__XX__))).

Wed Feb 7 03:24:05 1996 Torbjorn Granlund  <tege@tmg.se>

	* sysdeps/i386/i586/memcopy.h (WORD_COPY_FWD): Manually allocate
	destination cache lines.
	(WORD_COPY_BWD): Likewise.

Wed Feb  7 14:16:36 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/generic/Makefile (make_siglist): Get signum.h absolute
	file name first thing, before $(native-compile) changes directories.

	From Gord Matzigkeit <gord@enci.ucalgary.ca>:
	* sysdeps/unix/make_errlist.c: Use strerror if available.
	* sysdeps/unix/configure.in: New file

	* sysdeps/unix/bsd/sun/syscalls.list: Added sigvec.
	* sysdeps/unix/bsd/sun/sigvec.S: File removed.

	* sysdeps/stub/sendto.c: Make sockaddr arg pointer to const.
	* sysdeps/stub/connect.c: Likewise.
	* sysdeps/stub/bind.c: Likewise.

	* hurd/hurdlookup.c (__hurd_file_name_lookup_retry): RETRYNAME of
	"" is only special for FS_RETRY_NORMAL; for FS_RETRY_REAUTH, do
	another dir_lookup of "".

Tue Feb  6 12:46:29 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* libc-symbols.h (weak_alias, weak_symbol): added definitions
	for ECOFF (HAVE_ECOFF).

Fri Feb  2 13:09:18 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/fork.c: Clear trace flag in child.

Wed Jan 31 20:08:26 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Clear SS->intr_port
	when cancelled before RPC.

Tue Jan 30 13:32:05 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* dirent/scandir.c: Allocate dirents with correct size for name, and
	copy with correct size.

	* hurd/hurdinit.c [! PIC] (map0): New function, on _hurd_preinit_hook.

	* stdio-common/vfscanf.c (TYPEMOD): New macro of all type modifier
	flag bits.
	(__vfscanf): Fix checking of extra type modifiers.

	* time/asia, time/australasia, time/backward: Updated from ADO 96b.

Tue Jan 30 12:17:26 1996  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* stdlib/strtod.c: Only negate exponent when there really is one.

	* stdio-common/vfscanf.c: Accept type modifiers on %n.
	Fix FP number parsing.

Mon Jan 29 21:53:40 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/stub/msync.c (msync): Declare third arg FLAGS.

	* resolv/Makefile (+cflags): Append to this instead of CFLAGS.

Mon Jan 29 16:29:16 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/select.c (__select): Recalculate GOT to
	include an increment for each operation allowed on each fd.

Mon Jan 29 11:44:38 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/configure: Set $inhibit_glue.

	* Makefile: Use -include for sysd-dirs.

	* configure.in (uname): Check for uname in syscalls.list files.
	* sysdeps/unix/sysv/syscalls.list: Remove uname.
	* sysdeps/unix/syscalls.list: Add uname.

	* stdlib/strtol.c (weak1): New macro, to get the right name declared
	weak.

	* sysdeps/posix/getcwd.c (size_t): Don't define #ifdef __GNU_LIBRARY__.

	* db/hash/ndbm.c: Change all uses of `errno' struct member to `errnum'.
	(dbm_open): Use dynamic allocation for file name buffer, instead of
	limitting its size to MAXPATHLEN.

	* db/btree/bt_open.c (tmp): Use dynamic allocation for file name
	buffer, instead of limitting its size to MAXPATHLEN.

	* db/hash/hash.h (HTAB): Rename member `errno' to `errnum'.
	* db/hash/hash.c: Change all uses of `errno' struct member to `errnum'.

Sun Jan 28 19:42:04 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* time/Makefile: Fix check for cross compiling.

Thu Jan 25 21:10:39 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* db/Makefile (subdir-dirs): Renamed from dbdirs.

	* Makerules (distinfo-vars): Add subdir-dirs.

	* MakeTAGS: Remove vpath directives.
	(all-dirs): Prepend $(subdir-dirs).
	(all-sources, all-headers): Use wildcard to find sources.

Mon Jan 29 10:44:38 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* malloc/Makefile (CFLAGS-vm-limit.c, CFLAGS-ralloc.c): New
	variables.

	* mach/msgserver.c: Declare DEMUX arg with prototype.

Sun Jan 28 17:25:38 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* setjmp/setjmp.h (jmp_buf): Give a tag in the struct defn, to
	make C++ happy.
	* alpha/jmp_buf.h: Likewise.
	* m68k/jmp_buf.h: Likewise.
	* mips/jmp_buf.h: Likewise.
	* sparc/jmp_buf.h: Likewise.
	* vax/jmp_buf.h: Likewise.

	* sysdeps/generic/memmem.c: Fix return value in case where
	NEEDLE_LEN==0.

	* hurd/hurdlookup.c (__file_name_lookup_under,
	__file_name_lookup): Restrict mode with umask.
	* sysdeps/mach/hurd/xmknod.c: Restrict mode with umask.
	* sysdeps/mach/hurd/mkdir.c: Restrict mode with umask.

Fri Jan 26 12:20:45 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdlib/strtol.c: Undo last change.  ANSI C changed since the
	draft I checked yesterday.  Sigh.

Thu Jan 25 18:58:25 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdlib/strtol.c [UNSIGNED]: Don't recognize + or - as sign.

Wed Jan 24 03:22:07 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* malloc/mcheck.c (mabort): Declare prototype.

	* sysdeps/unix/sysv/linux/fcntlbits.h: Moved from linux/i386.

	* Makerules: Use -include for generated makefiles.

	* errno.h: Don't declare errno if it's defined as a macro.

	* stdio-common/vfscanf.c: Disallow l flag after ll or L.

	* stdio-common/Makefile (tests): Add scanf[1-9].
	* stdio-common/scanf[1-9].c: New files.  Bug tests from hjl.

Wed Jan 24 04:18:36 1996  Paul Eggert  <eggert@twinsun.com>

	* strftime.c (strftime):
	When invoking self, check whether the subsidiary invocation failed.
	Use "???" (not "") to denote unknown time zone information.

	Make this source file portable to standalone contexts (e.g. GNU Emacs).
	<config.h>: Include if HAVE_CONFIG_H is defined.
	(HAVE_LIMITS_H, HAVE_MBLEN, HAVE_TM_ZONE, STDC_HEADERS): New symbols,
	defined if _LIBC or if <config.h> defines them.
	<ansidecl.h>, "../locale/localeinfo.h": Include only if _LIBC.
	<sys/types.h>: New include; some hosts require it for `time_t'.
	<ctype.h>: Include only if HAVE_MBLEN (since it's only needed then).
	<limits.h>: Include only if HAVE_LIMITS_H.
	<stddef.h, stdlib.h, string.h>: Include only if STDC_HEADERS.
	(memcpy): Define in terms of bcopy if !STDC_HEADERS.
	(__P, PTR): Define if not already defined.
	(__tzname, __daylight, __timezone): Remove macros; no longer needed.
	(add, strftime): Don't use NULL, for portability to some weird hosts.
	(fmt): If !_LIBC, don't assume sprintf returns a count.
	(week, strftime): Use old-style function declarations.
	(weekday_name, month_name): New constants.
	(strftime): Use traditional C values if locale support isn't available.
	Use `const' instead of CONST.  For time zones, use tm_zone if
	possible, then fall back on tzname.  Don't check for multibyte
	characters unless mblen is supported.  Use formats like %02d instead
	of %.2d, for portability to older hosts.

Wed Jan 24 00:07:52 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdio-common/vfscanf.c (GROUP, MALLOC): New flag macros.
	(__vfscanf): Eliminate flag vars that were redundant with FLAGS bits.
	Fix bug in recognition of %ll flag for long long.
	Fix overeager checks for conflicting type modifiers.
	With ' flag, match thousands separators for decimal numbers.

Tue Jan 23 22:02:40 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/Makefile (CFLAGS-locfile-lex.c): New variable.

	* resolv/Makefile (CFLAGS): Disable some warnings.

	* sysdeps/generic/Makefile (elided-routines): Removed hypot.
	(+gccwarn): Set with override.

	* stdio-common/Makefile (CFLAGS-tst-printf.c): New variable.

	* posix/Makefile (CFLAGS-regex.c): New variable.

	* malloc/Makefile (CFLAGS-obstack.c): New variable.

	* io/Makefile (CFLAGS-fts.c): New variable.
	* io/fts.c (fts_open): Use prototypes for COMPAR decl.

Tue Jan 23 21:35:32 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/bind.c (bind): Ensure NAME for the AF_LOCAL
	case is '\0'-terminated.

Tue Jan 23 19:49:54 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/rtld.c (dl_main): Support additional args in --list mode for
	debugging: look them up as symbol names and print values.

	* misc/getttyent.c (skip, value): Declare with prototypes in file
	scope.

	* csu/initfini.c (_init): Explicitly set a variable that is
	pointer to volatile with the address of __gmon_start__, to avoid
	the test being optimized out.

Mon Jan 22 10:40:40 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/posix/getcwd.c [__GNU_LIBRARY__]: Include unistd.h.

	* io/fts.h (FTSENT): Define fts_compar member with prototype.

	* hurd/hurd.h: Use prototype in getcttyid decl.

	* stdlib/l64a.c: Fix typo in last change.

	* stdlib/drand48-iter.c: Test limits.h macros instead of sizeof
	for determining size of types.
	* stdlib/srand48_r.c: Likewise.

	* misc/utmp.h: Declare login, logout, logwtmp.
	* misc/logout.c: Declare argument as pointer to const.
	* misc/login.c: Likewise.
	* misc/logwtmp.c: Likewise.
	Include time.h, string.h.

	* misc/efgcvt_r.c: Include stdlib.h.

	* io/mknod.c: Include sys/types.h.

	* gmon/sys/gmon.h: Declare monstartup, _mcleanup.

	* csu/gmon-start.c (_start, etext): Declare with prototypes.

	* stdio-common/vfscanf.c (%[): Fix range handling.

Sun Jan 21 00:55:25 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* misc/Makefile (headers): Rename queue.h to sys/queue.h.
	* misc/queue.h: Moved to misc/sys/queue.h.

	* sysdeps/unix/sysv/linux/shmat.c: Include sys/shm.h instead of
	sys/sem.h.

	* stdlib/stdlib.h [__USE_SVID]: Declare a64l, l64a.

	* stdlib/l64a.c: Use 6-bit numbers as indices in CONV_TABLE, not
	literal byte values.

	* misc/bsd-compat.c (getpgrp): Define with prototype.

	* misc/init-misc.c (__progname_full): New variable.
	(program_invocation_name, program_invocation_short_name): New aliases.
	(__init_misc): Define with prototype.  Set __progname_full.
	* misc/progname.c: File removed.
	* misc/Makefile (aux): Remove progname.

	* misc/hsearch_r.c (isprime): Define with prototype.

	* sysdeps/unix/sysv/linux/seteuid.c: Just include unix/bsd version.
	* sysdeps/unix/bsd/seteuid.c: Disallow arg of -1.
	* sysdeps/unix/bsd/setegid.c: Likewise.

Fri Jan 19 13:28:59 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/tcdrain.c: Define tcdrain, not
	__tcdrain.

	* posix/glob.c (glob): Use prototype in getlogin decl.

	* db/ndbm.h: Declare dbm_error, dbm_clearerr.
	* db/db/db.c (__dberr): Define with prototype.
	(__dbpanic): Use prototypes in casts.
	* db/hash/hash_log2.c: Add prototype decl.

	* sysdeps/generic/_strerror.c (_strerror_internal): Define with
	prototype.

	* sysdeps/unix/mkdir.c, syspdep/unix/rmdir.c: Moved from unix/sysv.
	They will be overridden with syscalls if extant by unix/syscalls.list.

	* Makeconfig (+gccwarn): Add -Wstrict-prototypes.

	* stdio-common/printf_fp.c (__printf_fp): Define with prototype.
	* stdio-common/vfprintf.c (_IO_helper_overflow): Likewise.

Thu Jan 18 00:32:43 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* io/Makefile (routines): Add mknod, xstat fxstat lxstat xmknod.

	* sysdeps/unix/sysv/linux/ptrace.c: Use ... decl, and stdarg.h to
	get args.

	* posix/glob.c (_GNU_SOURCE): Define if undefined, so glob.h
	defines GNU extensions.
	* posix/fnmatch.c: Likewise.

	Replaced all simple system call files *.S throughout sysdeps/unix
	with syscalls.list files to be processed by make-syscalls.sh.
	* sysdeps/unix/s-proto.S: New file.
	* sysdeps/unix/syscalls.list: New file.
	* sysdeps/unix/bsd/syscalls.list: New file.
	* sysdeps/unix/bsd/bsd4.4/syscalls.list: New file.
	* sysdeps/unix/bsd/hp/m68k/syscalls.list: New file.
	* sysdeps/unix/bsd/osf/syscalls.list: New file.
	* sysdeps/unix/bsd/osf/alpha/syscalls.list: New file.
	* sysdeps/unix/bsd/sony/newsos4/syscalls.list: New file.
	* sysdeps/unix/bsd/sun/syscalls.list: New file.
	* sysdeps/unix/bsd/sun/sunos4/syscalls.list: New file.
	* sysdeps/unix/bsd/ultrix4/syscalls.list: New file.
	* sysdeps/unix/common/syscalls.list: New file.
	* sysdeps/unix/inet/syscalls.list: New file.
	* sysdeps/unix/mman/syscalls.list: New file.
	* sysdeps/unix/sysv/syscalls.list: New file.
	* sysdeps/unix/sysv/irix4/syscalls.list: New file.
	* sysdeps/unix/sysv/isc2.2/syscalls.list: New file.
	* sysdeps/unix/sysv/linux/syscalls.list: New file.
	* sysdeps/unix/sysv/linux/i386/syscalls.list: New file.
	* sysdeps/unix/sysv/sco3.2.4/syscalls.list: New file.
	* sysdeps/unix/sysv/sysv4/syscalls.list: New file.
	* sysdeps/unix/sysv/sysv4/i386/syscalls.list: New file.
	* sysdeps/unix/sysv/sysv4/solaris2/sparc/syscalls.list: New file.
	* sysdeps/unix/acct.S: File removed.
	* sysdeps/unix/chdir.S: File removed.
	* sysdeps/unix/chmod.S: File removed.
	* sysdeps/unix/chown.S: File removed.
	* sysdeps/unix/chroot.S: File removed.
	* sysdeps/unix/close.S: File removed.
	* sysdeps/unix/configure: File removed.
	* sysdeps/unix/configure.in: File removed.
	* sysdeps/unix/dup.S: File removed.
	* sysdeps/unix/fcntl.S: File removed.
	* sysdeps/unix/fsync.S: File removed.
	* sysdeps/unix/getgid.S: File removed.
	* sysdeps/unix/getpid.S: File removed.
	* sysdeps/unix/getuid.S: File removed.
	* sysdeps/unix/ioctl.S: File removed.
	* sysdeps/unix/kill.S: File removed.
	* sysdeps/unix/link.S: File removed.
	* sysdeps/unix/lseek.S: File removed.
	* sysdeps/unix/open.S: File removed.
	* sysdeps/unix/ptrace.S: File removed.
	* sysdeps/unix/read.S: File removed.
	* sysdeps/unix/reboot.S: File removed.
	* sysdeps/unix/setgid.S: File removed.
	* sysdeps/unix/setuid.S: File removed.
	* sysdeps/unix/sync.S: File removed.
	* sysdeps/unix/umask.S: File removed.
	* sysdeps/unix/unlink.S: File removed.
	* sysdeps/unix/write.S: File removed.
	* sysdeps/unix/bsd/flock.S: File removed.
	* sysdeps/unix/bsd/getdtsz.S: File removed.
	* sysdeps/unix/bsd/getpagesize.S: File removed.
	* sysdeps/unix/bsd/killpg.S: File removed.
	* sysdeps/unix/bsd/profil.S: File removed.
	* sysdeps/unix/bsd/readv.S: File removed.
	* sysdeps/unix/bsd/settimeofday.S: File removed.
	* sysdeps/unix/bsd/sigblock.S: File removed.
	* sysdeps/unix/bsd/sigpause.S: File removed.
	* sysdeps/unix/bsd/sigsetmask.S: File removed.
	* sysdeps/unix/bsd/sigstack.S: File removed.
	* sysdeps/unix/bsd/sigvec.S: File removed.
	* sysdeps/unix/bsd/utimes.S: File removed.
	* sysdeps/unix/bsd/writev.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/chflags.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/fchdir.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/fchflags.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/getdents.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/getdomain.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/revoke.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/setdomain.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/setegid.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/seteuid.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/setlogin.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/setsid.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/sigaltstack.S: File removed.
	* sysdeps/unix/bsd/bsd4.4/wait4.S: File removed.
	* sysdeps/unix/bsd/hp/m68k/getdents.S: File removed.
	* sysdeps/unix/bsd/osf/msync.S: File removed.
	* sysdeps/unix/bsd/osf/alpha/wait4.S: File removed.
	* sysdeps/unix/bsd/sony/newsos4/fchdir.S: File removed.
	* sysdeps/unix/bsd/sony/newsos4/sys_wait4.S: File removed.
	* sysdeps/unix/bsd/sun/getdents.S: File removed.
	* sysdeps/unix/bsd/sun/sunos3/m68k/wait.S: File removed.
	* sysdeps/unix/bsd/sun/sunos4/msync.S: File removed.
	* sysdeps/unix/bsd/sun/sunos4/poll.S: File removed.
	* sysdeps/unix/bsd/sun/sunos4/setsid.S: File removed.
	* sysdeps/unix/bsd/sun/sunos4/sys_mmap.S: File removed.
	* sysdeps/unix/bsd/sun/sunos4/sys_wait4.S: File removed.
	* sysdeps/unix/bsd/sun/sunos4/uname.S: File removed.
	* sysdeps/unix/bsd/ultrix4/getdents.S: File removed.
	* sysdeps/unix/bsd/ultrix4/setsid.S: File removed.
	* sysdeps/unix/bsd/ultrix4/uname.S: File removed.
	* sysdeps/unix/common/access.S: File removed.
	* sysdeps/unix/common/adjtime.S: File removed.
	* sysdeps/unix/common/dup2.S: File removed.
	* sysdeps/unix/common/fchmod.S: File removed.
	* sysdeps/unix/common/fchown.S: File removed.
	* sysdeps/unix/common/ftruncate.S: File removed.
	* sysdeps/unix/common/getgroups.S: File removed.
	* sysdeps/unix/common/getitimer.S: File removed.
	* sysdeps/unix/common/getpgid.S: File removed.
	* sysdeps/unix/common/getpriority.S: File removed.
	* sysdeps/unix/common/getrlimit.S: File removed.
	* sysdeps/unix/common/getrusage.S: File removed.
	* sysdeps/unix/common/gettimeofday.S: File removed.
	* sysdeps/unix/common/mkdir.S: File removed.
	* sysdeps/unix/common/readlink.S: File removed.
	* sysdeps/unix/common/rename.S: File removed.
	* sysdeps/unix/common/rmdir.S: File removed.
	* sysdeps/unix/common/select.S: File removed.
	* sysdeps/unix/common/setgroups.S: File removed.
	* sysdeps/unix/common/setitimer.S: File removed.
	* sysdeps/unix/common/setpgid.S: File removed.
	* sysdeps/unix/common/setpriority.S: File removed.
	* sysdeps/unix/common/setregid.S: File removed.
	* sysdeps/unix/common/setreuid.S: File removed.
	* sysdeps/unix/common/setrlimit.S: File removed.
	* sysdeps/unix/common/swapon.S: File removed.
	* sysdeps/unix/common/symlink.S: File removed.
	* sysdeps/unix/common/truncate.S: File removed.
	* sysdeps/unix/common/vhangup.S: File removed.
	* sysdeps/unix/inet/accept.S: File removed.
	* sysdeps/unix/inet/bind.S: File removed.
	* sysdeps/unix/inet/connect.S: File removed.
	* sysdeps/unix/inet/gethostid.S: File removed.
	* sysdeps/unix/inet/gethostname.S: File removed.
	* sysdeps/unix/inet/getpeername.S: File removed.
	* sysdeps/unix/inet/getsockname.S: File removed.
	* sysdeps/unix/inet/getsockopt.S: File removed.
	* sysdeps/unix/inet/listen.S: File removed.
	* sysdeps/unix/inet/recv.S: File removed.
	* sysdeps/unix/inet/recvfrom.S: File removed.
	* sysdeps/unix/inet/recvmsg.S: File removed.
	* sysdeps/unix/inet/send.S: File removed.
	* sysdeps/unix/inet/sendmsg.S: File removed.
	* sysdeps/unix/inet/sendto.S: File removed.
	* sysdeps/unix/inet/sethostid.S: File removed.
	* sysdeps/unix/inet/sethostname.S: File removed.
	* sysdeps/unix/inet/setsockopt.S: File removed.
	* sysdeps/unix/inet/shutdown.S: File removed.
	* sysdeps/unix/inet/socket.S: File removed.
	* sysdeps/unix/inet/socketpair.S: File removed.
	* sysdeps/unix/mman/madvise.S: File removed.
	* sysdeps/unix/mman/mmap.S: File removed.
	* sysdeps/unix/mman/mprotect.S: File removed.
	* sysdeps/unix/mman/msync.S: File removed.
	* sysdeps/unix/mman/munmap.S: File removed.
	* sysdeps/unix/sysv/alarm.S: File removed.
	* sysdeps/unix/sysv/ftime.S: File removed.
	* sysdeps/unix/sysv/nice.S: File removed.
	* sysdeps/unix/sysv/pause.S: File removed.
	* sysdeps/unix/sysv/poll.S: File removed.
	* sysdeps/unix/sysv/s_getdents.S: File removed.
	* sysdeps/unix/sysv/signal.S: File removed.
	* sysdeps/unix/sysv/stime.S: File removed.
	* sysdeps/unix/sysv/time.S: File removed.
	* sysdeps/unix/sysv/times.S: File removed.
	* sysdeps/unix/sysv/ulimit.S: File removed.
	* sysdeps/unix/sysv/uname.S: File removed.
	* sysdeps/unix/sysv/utime.S: File removed.
	* sysdeps/unix/sysv/irix4/getpgid.S: File removed.
	* sysdeps/unix/sysv/irix4/msync.S: File removed.
	* sysdeps/unix/sysv/irix4/setpgid.S: File removed.
	* sysdeps/unix/sysv/irix4/signal.S: File removed.
	* sysdeps/unix/sysv/irix4/sysmp.S: File removed.
	* sysdeps/unix/sysv/irix4/syssgi.S: File removed.
	* sysdeps/unix/sysv/isc2.2/rename.S: File removed.
	* sysdeps/unix/sysv/linux/adjtimex.S: File removed.
	* sysdeps/unix/sysv/linux/fork.S: File removed.
	* sysdeps/unix/sysv/linux/getpgid.S: File removed.
	* sysdeps/unix/sysv/linux/getpgrp.S: File removed.
	* sysdeps/unix/sysv/linux/getsid.S: File removed.
	* sysdeps/unix/sysv/linux/gtty.S: File removed.
	* sysdeps/unix/sysv/linux/mlock.S: File removed.
	* sysdeps/unix/sysv/linux/mlockall.S: File removed.
	* sysdeps/unix/sysv/linux/mount.S: File removed.
	* sysdeps/unix/sysv/linux/munlock.S: File removed.
	* sysdeps/unix/sysv/linux/munlockall.S: File removed.
	* sysdeps/unix/sysv/linux/pipe.S: File removed.
	* sysdeps/unix/sysv/linux/s_ptrace.S: File removed.
	* sysdeps/unix/sysv/linux/setpgid.S: File removed.
	* sysdeps/unix/sysv/linux/setsid.S: File removed.
	* sysdeps/unix/sysv/linux/settimeofday.S: File removed.
	* sysdeps/unix/sysv/linux/sigpending.S: File removed.
	* sysdeps/unix/sysv/linux/stty.S: File removed.
	* sysdeps/unix/sysv/linux/umount.S: File removed.
	* sysdeps/unix/sysv/linux/wait4.S: File removed.
	* sysdeps/unix/sysv/linux/i386/ipc.S: File removed.
	* sysdeps/unix/sysv/sco3.2.4/pathconf.S: File removed.
	* sysdeps/unix/sysv/sco3.2.4/pgrpsys.S: File removed.
	* sysdeps/unix/sysv/sco3.2.4/sco_getgrp.S: File removed.
	* sysdeps/unix/sysv/sco3.2.4/sigpending.S: File removed.
	* sysdeps/unix/sysv/sco3.2.4/sigprocmask.S: File removed.
	* sysdeps/unix/sysv/sco3.2.4/sigsuspend.S: File removed.
	* sysdeps/unix/sysv/sysv4/pgrpsys.S: File removed.
	* sysdeps/unix/sysv/sysv4/sigprocmask.S: File removed.
	* sysdeps/unix/sysv/sysv4/sigsuspend.S: File removed.
	* sysdeps/unix/sysv/sysv4/sysconfig.S: File removed.
	* sysdeps/unix/sysv/sysv4/sysinfo.S: File removed.
	* sysdeps/unix/sysv/sysv4/solaris2/sparc/sys-sig.S: File removed.

	* io/mknod.c: New file.

	* Makerules (COMPILE.s): New variable.

	* sysdeps/unix/Makefile (sysd-syscalls): New target; generate with
	make-syscalls.sh and include it.
	[$(subdir)=misc] (sysdep_routines): Append extra syscalls from
	sysd-syscalls.
	* sysdeps/unix/make-syscalls.sh: New file.

	* Makerules (COMPILE.S): New variable.

Wed Jan 17 11:04:58 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/statbuf.h (_STAT_VER_LINUX,
	_STAT_VER_SVR4, _STAT_VER): New macros.
	(_MKNOD_VER_LINUX, _MKNOD_VER_SVR4, _MKNOD_VER): New macros.

	* sysdeps/unix/sysv/sysv4/i386/statbuf.h (_STAT_VER, _MKNOD_VER):
	New macros.

	* io/sys/stat.h (_STAT_VER, _MKNOD_VER): New macros.
	(__xstat, __fxstat, __lxstat, __xmknod): Declare new functions.
	[__GNUC__] (stat, fstat, lstat, mknod): Define these (and __ names)
	as `extern inline's calling the `x' functions.
	* io/fstat.c: New file.
	* io/lstat.c: New file.
	* io/stat.c: New file.
	* sysdeps/generic/lstat.c: File removed.
	* sysdeps/generic/lxstat.c: New file.
	* sysdeps/mach/hurd/fstat.c: File removed.
	* sysdeps/mach/hurd/fxstat.c: New file.
	* sysdeps/mach/hurd/lstat.c: File removed.
	* sysdeps/mach/hurd/lxstat.c: New file.
	* sysdeps/mach/hurd/mknod.c: File removed.
	* sysdeps/mach/hurd/stat.c: File removed.
	* sysdeps/mach/hurd/xmknod.c: New file.
	* sysdeps/mach/hurd/xstat.c: New file.
	* sysdeps/stub/fstat.c: File removed.
	* sysdeps/stub/fxstat.c: New file.
	* sysdeps/stub/lstat.c: File removed.
	* sysdeps/stub/lxstat.c: New file.
	* sysdeps/stub/mknod.c: File removed.
	* sysdeps/stub/stat.c: File removed.
	* sysdeps/stub/xmknod.c: New file.
	* sysdeps/stub/xstat.c: New file.
	* sysdeps/unix/common/lstat.S: File removed.
	* sysdeps/unix/common/lxstat.c: New file.
	* sysdeps/unix/fstat.S: File removed.
	* sysdeps/unix/fxstat.c: New file.
	* sysdeps/unix/mknod.S: File removed.
	* sysdeps/unix/stat.S: File removed.
	* sysdeps/unix/sysv/linux/fstat.c: File removed.
	* sysdeps/unix/sysv/linux/i386/fxstat.S: File removed.
	* sysdeps/unix/sysv/linux/i386/lxstat.S: File removed.
	* sysdeps/unix/sysv/linux/i386/xmknod.S: File removed.
	* sysdeps/unix/sysv/linux/i386/xstat.S: File removed.
	* sysdeps/unix/sysv/linux/lstat.c: File removed.
	* sysdeps/unix/sysv/linux/mknod.c: File removed.
	* sysdeps/unix/sysv/linux/stat.c: File removed.
	* sysdeps/unix/sysv/sysv4/i386/fstat.S: File removed.
	* sysdeps/unix/sysv/sysv4/i386/lstat.S: File removed.
	* sysdeps/unix/sysv/sysv4/i386/mknod.S: File removed.
	* sysdeps/unix/sysv/sysv4/i386/stat.S: File removed.
	* sysdeps/unix/xmknod.c: New file.
	* sysdeps/unix/xstat.c: New file.
	* sysdeps/unix/mkfifo.c: Use __xmknod instead of __mknod.
	* misc/Makefile (routines): Remove mknod.

	* sysdeps/ieee754/ieee754.h (union ieee854_long_double.ieee_nan):
	Add missing ; in little-endian case.

	* elf/dynamic-link.h [ELF_MACHINE_NO_REL] (ELF_DYNAMIC_DO_REL):
	Define this instead of ELF_DYNAMIC_DO_RELA.

	* sysdeps/unix/sysv/time.S: Moved from sysv4.
	* sysdeps/unix/sysv/irix4/time.S: File removed.

	* sysdeps/unix/sysv/linux/signum.h: Moved from
	sysdeps/unix/sysv/linux/i386.
	(_NSIG): Move inside #ifdef _SIGNAL_H.

Tue Jan 16 17:37:39 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/seekdir.c: Don't modify POS before seeking.
	* sysdeps/unix/telldir.c: Fix position calculation to account for
	buffered data properly.

	* sysdeps/m68k/Makefile (crypt): Don't define if building a shared
	library.

	* csu/initfini.c (_init): Call __gmon_start__ if defined (weak ref).
	* csu/gmon-start.c (__gmon_start__): Renamed from gmon_start, made
	global.
	[! HAVE_INITFINI]: Only make it a constructor in this case.

	* gmon/Makefile (CFLAGS-mcount.c): New variable.
	(mcount.po): New target.

	* Makeconfig (CFLAGS): Append $(CFLAGS-$(<F)).

	* csu/Makefile [have-initfini=yes] (CPPFLAGS): Append -DHAVE_INITFINI.
	(initfini): Compile initfini.c with -fPIC.

Sun Jan 14 01:01:10 1996  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* sysdeps/mips/bytesex.h: Add default byte sex.  By Ralf Baechle.

	* sysdeps/unix/sysv/linux/adjtime.c [! MOD_OFFSET]: Use `mode'
	member of `struct timex' instead of `modes'.  From Andreas Schwab.

	* sysdeps/unix/sysv/linux/mknod.c: New file.  Generic C version.
	* sysdeps/unix/sysv/linux/i386/mknod.S: Remove assembler version.

	* sysdeps/unix/sysv/linux/Makefile (inhibit-glue): New variable.
	[$(subdir) = misc] (sysdep_routines): Add mount, umount, and s_ptrace.
	[$(subdir) = misc] (headers): Append sys/mount.h.

	* sysdeps/unix/sysv/linux/mount.S, sysdeps/unix/sysv/linux/umount.S:
	New files.  Implement system calls.
	* sysdeps/unix/sysv/linux/sys/mount.h: New header file.

	* sysdeps/unix/sysv/linux/ptrace.c: New file.  Wrapper around
	ptrace system call.
	* sysdeps/unix/sysv/linux/s_ptrace.S: New file: ptrace system call.

	* sysdeps/unix/sysv/linux/i386/gnu/types.h: New file with correct
	types for i386/Linux.

Sun Jan 14 17:51:09 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* MakeTAGS (all-sources, all-headers): Always search the
	current directory first.

	* db/btree/bt_seq.c (__bt_first): Return RET_SPECIAL when key not
	found.

	* stdio-common/vfscanf.c (inchar, conv_error, input_error,
	memory_error): Add cast to void to avoid gcc warning.
	(vfscanf): Rewrite character class parsing to make it more efficient.

	* misc/efgcvt_r.c (ecvt_r): Handle negative values.

	* stdlib/stdlib.h: Replace __CONSTVALUE by attribute.
	* stdlib/abs.c, stdlib/div.c, stdlib/labs.c, stdlib/ldiv.c,
	sysdeps/generic/hypot.c: Remove obsolete __CONSTVALUE.

	* stdio-common/printf_fp.c (__printf_fp): Fix parameter
	declaration.

	* sysdeps/generic/putenv.c (putenv): Fix second argument of
	setenv.

	* sysdeps/ieee754/hypot.c: New file, extracted out of cabs.c.
	* sysdeps/ieee754/cabs.c: Don't define hypot here.

	* sysdeps/ieee754/ieee754.h (union ieee854_long_double): Fix
	definition of ieee_nan alternative.

	* sysdeps/m68k/__longjmp.c, sysdeps/m68k/setjmp.c: Add register
	prefix spec.

	* sysdeps/m68k/ffs.c (ffs): Fix register constraint.

	* sysdeps/m68k/fpu/__math.h: Include <errno.h>.  Replace obsolete
	__CONSTVALUE by attribute.
	(floor): Round to negative infinity.
	(rint, expm1) [__NO_MATH_INLINES]: Don't define, to avoid type
	clash when compiling source.
	(pow): Handle x == 0 and x < 0.
	(ceil, __isinf, __isnan): Fix register constraints.
	(__isinfl, __isnanl): Added.
	* sysdeps/m68k/fpu/acos.c, sysdeps/m68k/fpu/atan2.c,
	sysdeps/m68k/fpu/fmod.c, sysdeps/m68k/fpu/ldexp.c,
	sysdeps/m68k/fpu/pow.c: Remove obsolete __CONSTVALUE.

	* sysdeps/m68k/bsd-_setjmp.S, sysdeps/m68k/bsd-setjmp.S: Fix
	assembler syntax.

	* sysdeps/unix/bsd/bsd4.4/fchdir.S (fchdir): Take only one
	argument.

	* sysdeps/unix/bsd/clock.c (timeval_to_clock_t): Fix timeval to
	clock_t conversion.
	(clock): Don't multiply by CLOCKS_PER_SEC.

	* sysdeps/unix/bsd/poll.c (poll): Fix msec to timeval conversion.

	* sysdeps/unix/bsd/sun/m68k/brk.S (brk): Compare with address of
	__end.

	* sysdeps/unix/bsd/sun/m68k/vfork.S: Fix assembler syntax.

	* sysdeps/unix/bsd/ualarm.c (ualarm): Fix timeval calculation.

	* sysdeps/unix/bsd/vax/vfork.S: Remove duplicate label.

Sun Jan 14 01:01:10 1996  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* stdlib/strtol.c: Return correct pointer for strings
	like "0xyz" and base 0 or 16.

	* string/strxfrm.c: Handle case for LENGTH == 0 correct.

	* sunrpc/etc.rpc: Add some more known protocols.

Fri Jan 12 13:40:01 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/gnu/types.h: Moved to sysdeps/generic/gnu/types.h.

	* posix/glob.c (glob): Add parens in glob call flags arg for
	GLOB_BRACE case.

	* string/string.h (strdupa): New macro.

	* stdio-common/vfscanf.c (%[): Grok ] as first char in set, not
	terminator on empty set.  From drepper.

Thu Jan 11 13:09:20 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/do-rel.h (elf_dynamic_do_rel): Use referring symbol as
	referent for STB_LOCAL.

Wed Jan 10 10:11:39 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* time/africa, time/antarctica, time/asia, time/australasia,
	time/europe, time/northamerica, time/pacificnew, time/solar87,
	time/solar88, time/solar89, time/southamerica: Updated from ADO 96a.

Tue Jan  9 16:10:26 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/dl-load.c (_dl_map_object_from_fd): After mapping first
	segment to find location, mprotect excess region to no access,
	don't munmap it.

	* sysdeps/mach/hurd/dl-sysdep.c (mmap): If vm_map returns
	KERN_NO_SPACE for fixed location, deallocate it and try again.

Mon Jan  8 17:43:23 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/Makefile (lib-modules): Renamed hash to locfile-hash.
	* locale/hash.c: Renamed to locale/locfile-hash.c.

Sat Jan  6 16:39:14 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (subdirs): Added db.

	* resolv/Makefile (routines): Add res_data.
	* resolv/res_data.c, resolv/res_debug.c, resolv/resolv.h:
	Updated from BIND 4.9.3 final release.

	* elf/dynamic-link.h (elf_get_dynamic_info): Handle
	processor-specific tags.
	(ELF_DYNAMIC_DO_REL, ELF_DYNAMIC_DO_RELA): Handle absent DT_PLTREL tag.

	* elf/elf.h (DT_MIPS_NUM, DT_PROCNUM): New macros.
	* elf/link.h (struct link_map): Extend `l_info' by DT_PROCNUM.

	* sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): Take new
	arg LAZY.  Only do our work if LAZY and there is a DT_JMPREL record.
	* elf/dl-reloc.c (_dl_relocate_object): Call
	elf_machine_runtime_setup unconditionally, and pass it LAZY flag.

	* elf/dl-load.c: Fixed ELFMAG check to work for either byte order.
	Align end of load segment only to page size, not to segment alignment.

Thu Jan  4 11:35:18 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/setitimer.c: Code rearranged a bit to use new
	preemption interface.

	* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
	Use _hurdsig_catch_memory_fault.

	* hurd/Makefile (headers): Add hurd/sigpreempt.h.
	(sig): Add catch-signal.

	* hurd/hurdfault.c (_hurdsig_fault_catch_exception_raise):
	Rewritten using a preempter in new interface.
	* hurd/hurdfault.h (_hurdsig_catch_fault): Likewise.
	(_hurdsig_catch_memory_fault): New macro.

Wed Jan  3 20:23:42 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/catch-signal.c: New file.

	* hurd/intr-msg.c: When restarting RPC, fetch a new reply port.

	* hurd/hurdsig.c: Use new hurdfault.h interface.
	(abort_all_rpcs): Mutate return value to EINTR in threads whose
	replies we will wait for.

	* hurd/hurdkill.c (_hurd_sig_post): When doing pgrp, make sure we
	do ourselves last.

Wed Jan  3 19:17:10 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/access.c (__access): Put the uid/gid arguments
	to auth_makeauth() in the right order.

Wed Jan  3 17:19:04 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/generic/strsep.c: Rewritten.

	* sysdeps/mach/hurd/fork.c: Use a different workaround for the
	suspended page fault deadlock kernel bug: thread_abort our signal
	thread first thing after proc_dostop.

	* sysdeps/mach/hurd/setgid.c: Rewrote gid frobnication to
	recognize rootness properly.

Tue Jan  2 00:50:10 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurd/signal.h (struct hurd_sigstate): New member `preempters'.
	(hurd_preempt_signals, hurd_unpreempt_signals): Decls removed.
	* hurd/hurd/sigpreempt.h: New file.
	* hurd/preempt-sig.c: Rewritten with new interface.
	* sysdeps/mach/hurd/jmp-unwind.c (_longjmp_unwind): Remove local signal
	preempters being unwound past.
	* hurd/hurdsig.c: Use new signal preemption interface.

	* db: New directory, 4.4 BSD db package incorporated from BSD db-1.85
	release.

	* sysdeps/unix/sysv/linux/sys/param.h: Several new macros for BSD
	compatibility.

	* misc/queue.h: New file, incorporated from 4.4BSD.
	* misc/Makefile (headers): Add queue.h.

	* posix/sys/types.h [__USE_BSD]: Include endian.h.

	* io/sys/stat.h (DEFFILEMODE, ALLPERMS, ACCESSPERMS, S_BLKSIZE):
	New macros.

Thu Dec 28 10:21:35 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/generic/confname.h: Define all names as self-referential
	macros so #ifdef works.

	* hurd/preempt-sig.c (hurd_unpreempt_signals): Remove bogus asgnmt
	of _hurd_signal_preempters[SIGNO].

Mon Dec 25 20:56:39 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/bind.c: Translate EEXIST from dir_link into
	EADDRINUSE.  If translated node doesn't grok ifsock protocol,
	return EADDRINUSE.

	* sysdeps/mach/hurd/connect.c: Make address arg
	`const struct sockaddr_un *'.
	The redecl is kosher and avoids another variable for AF_LOCAL case.
	* sysdeps/mach/hurd/sendto.c: Likewise.
	* sysdeps/mach/hurd/bind.c: Likewise.

	* socket/sys/socket.h (__SOCKADDR_ARG): Enable transparent_union
	code for GCC >= 2.7; use __transparent_union__ for name safety;
	add several sockaddr flavors.
	(__SOCKADDR_ALLTYPES, __SOCKADDR_ONETYPE): New macros used in
	constructing the transparent union declarations.
	(__CONST_SOCKADDR_ARG): New type (or macro if not GCC 2.7).
	(bind, connect, sendto): Make the sockaddr argument use that.

Fri Dec 22 00:57:38 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/setgid.c: In root case, store into NEWAUX, not
	old vector.
	* sysdeps/mach/hurd/setuid.c: Likewise.

	* sysdeps/mach/hurd/setuid.c: Rewrote ID frobnication to do the
	right thing.
	* sysdeps/mach/hurd/setgid.c: Likewise.
	* sysdeps/mach/hurd/setreuid.c: Likewise.
	* sysdeps/mach/hurd/setregid.c: Likewise.
	* sysdeps/mach/hurd/setegid.c: Likewise.
	* sysdeps/mach/hurd/seteuid.c: Likewise.

	* sysdeps/mach/hurd/fork.c: Peek __mach_task_self_ value before
	proc_dostop call to work around kernel paging bug.

Fri Dec 22 00:38:00 1995  H.J. Lu  <hjl@nynexst.com>

        * stdio-common/vfscanf.c: Correctly handle white space skipping.
	* stdio-common/Makefile (tests): Add bug11.
	* stdio-common/bug11.c: New file.

Thu Dec 21 12:19:32 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/setuid.c (__setuid): Actually add the new uid
	instead of putting it (and other uids) in the gids and leaving the
	old uids as is.

Wed Dec 20 18:23:10 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdio/internals.c (flushbuf): If the target is -1, always
	discard the buffer of read data.
	Only set TWIDDLED flag in !ALIGNED case.
	Never increment target or offset when old value is -1.

Tue Dec 19 17:00:42 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdpid.c (_S_msg_proc_newids): Only run the hook when the
	pgrp changes.

Mon Dec 18 13:40:37 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdio/fread.c: Don't increment __offset when it's -1.

	* elf/rtld.c (dl_main): Prepend tab to "statically linked".  Exit
	0 in that case.

	* misc/err.c (vwarnx, vwarn): Fix major brainos.

	* sysdeps/mach/hurd/dl-sysdep.c (mmap): Fix setting of
	inheritance.

Sun Dec 17 15:56:35 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* misc/getpass.c (getpass): Don't barf if getline returns a null BUF.

Sat Dec 16 10:33:11 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makerules: Use $(do-install-so) for installing shared objects.
	(do-install-so): New canned sequence.  Make a symlink LIB.so after
	installing LIB.so.VERSION.

	* inet/netinet/in.h: Fixed typo in IPPORT_WHOIS.

Fri Dec 15 04:41:22 1995  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* stdio-common/Makefile (tests): Add bug10.
	* stdio-common/bug10.c: New file.  From HJ Lu.

	* stdio-common/tstdiomisc.c: Make more test-suite like: exit
	status tells about successful run.

	* stdio-common/vfscanf.c [!USE_IN_LIBIO]: Use `flags' to check
	format correctness.
	Correct handling of trailing white spaces in format + EOF.

Fri Dec 15 01:31:56 1995  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* stdio-common/Makefile (tests): Add bug8 and bug9.
	* stdio-common/bug8.c, stdio-common/bug9.c: New tests.

	* stdio-common/vfscanf.c: Fix bug in dynamic buffer handling.

	* stdlib/strtod.c: Correct spelling: nominator -> numerator.
	Thanks to Jim Meyering.

Sat Nov 25 06:05:12 1995  H.J. Lu  <hjl@nynexst.com>

	* stdio-common/vfscanf.c: Always check width !=0.
	Correctly handle %%.

Thu Dec 14 02:28:22 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c (glob_in_dir): Cast result of opendir to __ptr_t,
	and cast STREAM to DIR * before passing to readdir and closedir.

Wed Dec 13 22:06:07 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdsig.c (_hurd_internal_post_signal: suspend): Reply
	after aborting RPCs but before calling proc_mark_stop.

Mon Dec 11 20:07:54 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c [! STDC_HEADERS]: Declare getenv.
	(glob): Avoid using function as value.

	* elf/rtld.c (dl_main): When mapping argument executable, set
	l_name to "", not l_libname.
	After loading DT_NEEDED library, set its l_type to lt_library.

	* sysdeps/mach/hurd/mmap.c: Don't interpret MAP_INHERIT to mean
	VM_INHERIT.  We can't handle MAP_INHERIT easily.
	Handle non-page-aligned addresses if congruent to offset.

	* elf/dl-init.c: Skip the initializer for l_type lt_executable
	with l_name "". Start at _dl_loaded; don't skip the first element.

	* elf/dl-load.c (MAP_FILE): Define to zero if undefined.
	(MAP_COPY): Define to MAP_PRIVATE if undefined.
	(_dl_map_object_from_fd): Don't use MAP_INHERIT in mmap calls.
	If file it ET_EXEC, set its l_type to lt_executable.

Sun Dec 10 09:56:06 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/dl-minimal.c (malloc): Use MAP_PRIVATE in mmap call.

Fri Dec  8 13:04:51 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/error.c, locale/error.h: Files removed.
	* locale/Makefile (distribute): Remove error.h.
	(lib-modules): Remove error.

	* hurd/hurdlookup.c (__hurd_file_name_lookup_retry): For "tty"
	magic, return ENXIO if no ctty.

	* sysdeps/mach/hurd/mmap.c: For MAP_FIXED, deallocate a previous
	mapping if vm_map fails for that reason.

	* posix/glob.c: Implement new options GLOB_ALTDIRFUNC, GLOB_BRACE,
	GLOB_TILDE, GLOB_NOMAGIC.
	(glob): Use stat instead of lstat to determine directoriness.
	* posix/glob.h (GLOB_ALTDIRFUNC, GLOB_BRACE, GLOB_NOMAGIC, GLOB_TILDE):
	New flag bits.
	(__GLOB_FLAGS): Include them.
	(glob_t): New members gl_closedir, gl_readdir, gl_opendir, gl_lstat,
	gl_stat.

	* elf/elf.h (ET_NUM, SHT_NUM, STB_NUM, STT_NUM, PT_NUM): New macros.

	* sysdeps/unix/sysv/linux/sys/mman.h: Include <linux/mman.h> to
	define all the bit values.
	(MAP_*, MCL_*): Macros removed.

Thu Dec  7 02:27:56 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* resolv/res_comp.c, resolv/res_debug.c, resolv/res_send.c:
	Updated from BIND 4.9.3-BETA27.

Wed Dec  6 18:44:01 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/select.c (__select): Swap size args to mach_msg.

	* sysdeps/mach/hurd/select.c (__select): Frob TYPES correctly when
	we get a delayed reply.
	Only grab values out of entries in TYPES that have SELECT_RETURNED
	turned on, and turn it on whenever an rpc returns.
	Only clear bits in the user's fdsets -- those needing to be set
	should be already.
	Use SELECT_ALL in appropiate places.
	(SELECT_RETURNED, SELECT_ALL): New macros.

Wed Dec  6 09:10:39 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/sys/param.h (NBBY): New macro.

	* gnu-versions.h (_GNU_GLOB_INTERFACE_VERSION): New macro.

Tue Dec  5 14:00:17 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* misc/Makefile (headers): Add error.h, err.h.
	(routines): Add error, err.
	(gpl2lgpl): New variable.
	* misc/err.c: New file.
	* misc/err.h: New file.
	* misc/error.c, misc/error.h: New files.

	* sysdeps/mach/hurd/ioctl.c: Fix typo in last change.

	* Makeconfig (+link): Translate libc% from $^, not just libc.a.
	(link-libc): Append $(libc.so-version) to libc.so.
	(built-program-cmd): Fix comma usage.
	* Makerules [libc.so-version] (libc.so$(libc.so-version)): Make a
	symlink to libc.so in the build directory.
	* Rules ($(others) $(tests)): Depend on the library that appears
	in $(link-libc).
	(%.out): Use $(built-program-cmd) in commands.

	* posix/unistd.h [__USE_MISC]: Declare brk, sbrk.

	* sysdeps/generic/setenv.c: Added canonical portability cruft.
	(setenv): Use realloc on LAST_ENVIRON instead of always copying.
	(unsetenv): New function.
	* stdlib/stdlib.h [__USE_BSD]: Declare unsetenv.
	* sysdeps/generic/putenv.c: Rewritten using setenv and unsetenv.

Tue Dec  5 02:27:32 1995  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* libio/Makefile (routines): Remove iofscanf, add iopopen, pclose.

	* libio/iofscanf.c: Remove file.

	* libio/iogetdelim.c (_IO_getdelim): Correct stupid bug at string
        termination.

	* libio/iopopen.c: New file from GNU libio.

	* libio/memstream.c: Fixed bug in fclose handling.  Instead of
	providing a close callback we need a finish callback.

	* libio/pclose.c: New file.  Derived from popen.c in GNU libio.

	* posix/gnu/types.h: Fixed typo.

	* stdio-common/errnobug.c: fputs returns EOF in error case.  Do
	not test for != 0.

	* stdio-common/printf-parse.h (parse_one_spec): Do not force
	padding with ' ' if precision is given.  Fix by HJ Lu.

	* stdio-common/printf_fp.c: Fix comment.

	* stdio-common/tfformat.c, stdio-common/tiformat.c,
	stdio-common/tstdiomisc.c: New files from GNU libio test suite.

	* stdio-common/tstgetln.c: Provide ssize_t type when testing
	libio.

	* stdio-common/vfprintf.c (outchar): Use PUTC instead of putc.
	(vfprintf): Cleasr args_type array before using it.
	When printing 0 as an integer with precision 0 nothing must be
	written for the number.
	Based on patch by HJ Lu.

	* stdio-common/vfscanf.c: Remove fixed input buffer.  Now we
        have a dynamically extended buffer.

	* stdlib/strtod.c: Merge with version in Linux libc.  This fixes
        some bugs with handling of very small numbers and has different
        solution for formaer patches.

	* sysdeps/i386/i586/add_n.S, sysdeps/i386/i586/sub_n.S: Rename
        macros r1 and r2 to t1, and t2 resp.  This is necessary because
        glibc headers also define r1.

Mon Dec  4 12:10:28 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdlib/gen-mpn-copy (translations): Updated for new layout in
	GMP 1.910.

	* malloc/malloc.c (__malloc_initialize): Renamed from initialize;
	made global.
	(malloc): Caller changed.
	* malloc/realloc.c (realloc): Call __malloc_initialize if
	necessary, before checking hook.
	* malloc/malloc.h: Declare __malloc_initialize.

	* sysdeps/mach/hurd/ioctl.c: For IOC_VOID request, send ARG itself
	as integer_t arg in RPC.

Sat Dec  2 03:47:27 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/brk.c (DATA_SIZE): Bump to 128MB.
	(_hurd_set_brk): Try to allocate more space when we run out.

	* sysdeps/generic/sbrk.c: If __curbrk is zero, call __brk with
	zero and examine it again.
	* sysdeps/unix/sysv/linux/i386/brk.c: New file.
	* sysdeps/unix/sysv/linux/i386/brk.S: File removed.
	* sysdeps/unix/sysv/linux/i386/sbrk.S: File removed.
	* sysdeps/unix/sysv/linux/dl-sysdep.c: New file.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start) [DL_SYSDEP_INIT]:
	Invoke this macro before calling DL_MAIN.

	* malloc/malloc.c (malloc): Do initialization here, before
	checking the hook.
	(_malloc_internal): Don't do it here.

Wed Nov 29 12:30:50 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* libio/vsnprintf.c (__vsnprintf): Define as alias.
	* libio/iovsscanf.c (__vsscanf): Define as alias.
	* asprintf.c: Remove libio adaptation code added by drepper.
	* dprintf.c: Likewise.
	* printf.c: Likewise.
	* scanf.c: Likewise.
	* snprintf.c: Likewise.
	* sprintf.c: Likewise.
	* sscanf.c: Likewise.
	* vprintf.c: Likewise.
	* stdio-common/vfscanf.c [USE_IN_LIBIO] (__vfscanf): New wrapper
	function.
	(vfscanf): Define unconditionally.

	* sysdeps/i386/dl-machine.h (elf_machine_rel): If SYM is null, use
	zero for value.

	* misc/getpass.c: Write a newline after reading the unechoed
	password.

Mon Nov 27 19:24:18 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/Makefile (routines): Add getsid.
	* sysdeps/unix/sysv/linux/getsid.S: New file.
	* sysdeps/mach/hurd/getsid.c: New file.
	* sysdeps/stub/getsid.c: New file.
	* posix/unistd.h [__USE_GNU]: Declare getsid.

Sun Nov 26 12:44:38 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* libc-symbols.h (N_): New macro.

Sat Nov 25 02:48:47 1995  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
	malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
	resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
	sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
	sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
	sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
	sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
	sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
	strings.

Sun Nov 26 02:00:02 1995  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* misc/syslog.c (vsyslog) [USE_IN_LIBIO]: Adapted for libio.

Thu Nov 23 02:21:55 1995  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/{mlock,munlock,mlockall,munlockall}.S:
	New files.
	* sysdeps/unix/sysv/linux/sys/mman.h: Add prototypes for new functions
	mlock, munlock, mlockall, and munlockall.

Thu Nov 23 18:26:52 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* configure.in (--enable-libio): Set $stdio based on $enableval,
	not always to libio.

Thu Nov 23 18:06:48 1995  Richard Stallman  <rms@gnu.ai.mit.edu>

	* malloc/malloc.c (_malloc_internal): Can't use
	get_contiguous_space when the heap info table
	will be growing.  Account for new contiguous space in _heaplimit.

Wed Nov 22 12:37:39 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/i386/sysdep.S (_errno): Define as alias
	for errno.

	* stdio-common/vfprintf.c [USE_IN_LIBIO] (vfprintf): Define as
	alias for _IO_vfprintf.

	* sysdeps/unix/sysv/linux/sockaddrcom.h: File removed.

	* sysdeps/unix/sysv/linux/i386/init-first.c (init): Use
	__fpu_control instead of ___fpu_control.
	* sysdeps/unix/sysv/linux/i386/ieee_fpu.c
	(___fpu_control): Renamed to __fpu_control.
	* sysdeps/unix/sysv/linux/i386/fpu_control.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/fpu_control.c: Likewise.

	* elf/dl-minimal.c: New file.
	* elf/Makefile (rtld-routines): Add dl-minimal.
	* elf/rtld.c (__dgettext, __assert_fail, __assert_perror_fail):
	Functions moved to dl-minimal.c.
	* sysdeps/mach/hurd/dl-sysdep.c (malloc, free, realloc,
	sigjmp_save, longjmp): Likewise.

	* sysdeps/unix/sysv/linux/i386/brk.S (__curbrk): Always initialize
	to &_end, regardless of PIC.

	* stdio-common/vfscanf.c (__vfscanf): Fix arg name in defn.

Tue Nov 21 14:12:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* malloc/malloc.c (align): Don't check contiguity and call abort.

	* hurd/hurdsig.c (post_reply): Function removed.
	(abort_thread, abort_all_rpcs, _hurdsig_abort_rpcs): Don't call it.
	Take single callback fn arg instead of reply port and type.
	(_hurd_internal_post_signal): Callers changed.
	Cache reply stub fn ptr in local var before UNTRACED might be changed.

	* sysdeps/mach/hurd/mmap.c: Cope with a null write memobj for
	PROT_READ|PROT_WRITE copy mapping.  Pass a proper vm_inherit_t to
	vm_map.

	* elf/rtld.c (_dl_start): For --list, do output and exit before
	relocating.

Mon Nov 20 16:19:15 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* intl/Makefile [gettext-srcdir]: Rewrote copying rules to only
	get .c and .h files.

	* malloc/malloc.c (align): Use abort instead of assert.

Sun Nov 19 18:23:07 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makeconfig (+includes): Add $($(stdio)-include).
	(libio-include): New variable.

	* stdlib/strtod.c: Put weak_symbol after function defn.
	* stdlib/strtol.c: Likewise.

	* configure.in (--enable-libio): If not present, set $stdio to
	"default".  Move stdio/libio check to end, so sysdeps fragments
	can affect it.  Reset $stdio to "stdio" if it's "default".
	* sysdeps/unix/sysv/linux/configure: New file.

Sat Nov 18 16:46:01 1995  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* libio/Makefile, libio/cleanup.c, libio/clearerr.c, libio/feof.c,
	libio/ferror.c, libio/fgetc.c, libio/filedoalloc.c, libio/fileno.c,
	libio/fileops.c, libio/fputc.c, libio/freopen.c, libio/fseek.c,
	libio/genops.c, libio/getc.c, libio/getchar.c, libio/iofclose.c,
	libio/iofdopen.c, libio/iofflush.c, libio/iofgetpos.c, libio/iofgets.c,
	libio/iofopen.c, libio/iofprintf.c, libio/iofputs.c, libio/iofread.c,
	libio/iofscanf.c, libio/iofsetpos.c, libio/ioftell.c, libio/iofwrite.c,
	libio/iogetdelim.c, libio/iogetline.c, libio/iogets.c, libio/iolibio.h,
	libio/iopadn.c, libio/ioprims.c, libio/ioputs.c, libio/ioseekoff.c,
	libio/ioseekpos.c, libio/iosetbuffer.c, libio/iosetvbuf.c,
	libio/iosprintf.c, libio/ioungetc.c, libio/iovsprintf.c,
	libio/iovsscanf.c, libio/libio.h, libio/libioP.h, libio/putc.c,
	libio/putchar.c, libio/rewind.c, libio/setbuf.c, libio/setlinebuf.c,
	libio/stdfiles.c, libio/stdio.c, libio/stdio.h, libio/strfile.h,
	libio/strops.c, libio/vasprintf.c, libio/vscanf.c, libio/vsnprintf.c:
	New files.  Slightly modified version from Linux libc.

	* libio/memstream.c, libio/vdprintf.c: New files for functions not
	(yet) part of GNU libio.

	* libio/iofopncook.c: Implementation of `fopencookie', mainly written
	by Per Bothner.

	* stdio-common/getline.c: Adapted to libio.
	* stdio-common/snprintf.c: Adapted to libio.
	* stdio-common/vfprintf.c: Adapted to libio.
	* stdio-common/vfscanf.c: Adapted to libio.
	* sysdeps/posix/tempname.c: Adapted to libio.

Fri Nov 17 17:57:00 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/generic/Makefile (make_siglist): Add missing backslash.

	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start_cleanup): New
	function.

	* hurd/hurdfault.c: Replace __libc_fatal calls with assert_perror.
	(_hurdsig_fault_init): Remove #if 0 from setting exception port.
	Insert send right for SIGEXC before thread_set_special_port.
	* hurd/hurdsig.c: Replace __libc_fatal calls with assert_perror.
	(_hurdsig_init): Remove #if 0 from setting exception port.

	* sysdeps/mach/hurd/ptrace.c (ptrace: PTRACE_CONT): Use
	HURD_MSGPORT_RPC macro.

Thu Nov 16 06:07:49 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start_cleanup): New
	function.
	(_dl_sysdep_start): Move cleanup code there.

	* Makeconfig (default-rpath): New variable.
	(link-libc): Use it.
	* elf/Makefile (ld.so): Pass -rpath=$(default-rpath).
	* elf/rtld.c (_dl_rpath): New variable.
	(_dl_start): Set it from rtld_map's DT_RPATH.
	Call _dl_setup_hash on rtld_map.
	(dl_main): Cache address of _exit in variable before relocating,
	and use that in later calls.  Call _dl_sysdep_start_cleanup before
	relocating.  Keep track of dependency order while loading; remove
	rtld_map from chain, and reinsert in proper order if there is a
	dependency on it.

	* sysdeps/generic/Makefile (make_siglist): Pass
	-DSIGNUM_H=... with config's signum.h location.
	* sysdeps/generic/make_siglist.c: Include SIGNUM_H to define
	signal numbers.
	(HAVE_STRSIGNAL, HAVE_PSIGNAL): Define these before including signame.c
	(main): Deansideclize output.

	* elf/dl-load.c (_dl_map_object): Use _dl_rpath variable in place
	of DEFAULT_RPATH macro.
	* elf/Makefile: Undo last change.

	* sysdeps/mach/hurd/dl-sysdep.c (free): Don't abort, just nop.

Wed Nov 15 19:22:07 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/dl-lookup.c (_dl_lookup_symbol): Undefined symbol is no
	error if weak.

	* elf/Makefile (default-rpath): New variable.
	(CPPFLAGS): Append -DDEFAULT_RPATH=....
	* elf/dl-load.c (_dl_map_object): Use DEFAULT_RPATH instead of
	hard-coded "/lib:/usr/lib".

	* sysdeps/mach/hurd/dl-sysdep.c: Include _itoa.h from stdio-common
	instead of stdio.
	(_dl_sysdep_start): If passed user entry is zero and
	EXEC_STACK_ARGS flag set, reset user entry to &_start.

	* elf/rtld.c (dl_main): Only call _dl_setup_hash if there is a
	DT_HASH element.

	* libc-symbols.h [HAVE_ELF] (symbol_set_declare): Gratuitously
	repeat weak decl using weak_symbol macro, in case using broken GCC
	(<2.8).

Wed Nov 15 18:49:55 1995  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* sysdeps/i386/isnanl.c: New file.
	* sysdeps/i386/isinfl.c: New file.

Tue Nov 14 18:44:21 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* malloc/free.c (free): Moved null and aligned_blocks checks
	inside _free_internal.

Mon Nov 13 15:23:01 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* malloc/malloc.c (morecore): Fix inverted test in allocating new
	info table.

	* malloc/malloc.c (align): Fix assertion.

	* malloc/malloc.c: Include assert.h.

	* libc-symbols.h: Use __attribute__ for GCC 2.8, not 2.7.

	* malloc/malloc.h [emacs] (emacs_loser_valloc): Macro removed.
	(valloc): Protect decl with [! (_MALLOC_INTERNAL && emacs)].

Fri Nov 10 14:15:21 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* malloc/malloc.c (align): Assert that space for alignment
	adjustment is same original space.

	* hurd/hurdprio.c (_hurd_priority_which_map): Cast vm_deallocate
	arg to vm_address_t.

	* hurd/hurdsig.c (_hurd_internal_post_signal): For SIGNO == 0,
	skip straight to pending check.  When UNTRACED, resume process
	from suspension first.

	* intl/Makefile (headers): New variable, libintl.h.
	[gettext-srcdir]: New rules to copy source from $(gettext-srcdir)/intl.
	* configure.in: Check for --with-gettext arg.

Fri Nov 10 13:51:30 1995  Richard Stallman  <rms@gnu.ai.mit.edu>

	* malloc/malloc.c (get_contiguous_space): New function.
	(morecore): Rewrite allocating new malloc info table.
	(_malloc_internal): Use get_contiguous_space.

Fri Nov 10 13:03:40 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdexec.c (_hurd_exec): If exec'ing self, pass
	_hurd_msgport to be destroyed.

	* Makerules (installed-libcs): Filter out %_pic.a.

	* hurd/hurdinit.c (_hurd_proc_init): When traced, use msg_sig_post
	to our msgport to take SIGTRAP, instead of _hurd_raise_signal.

	* hurd/Makefile (user-interfaces): Add hurd/process_request.

Wed Nov  8 16:31:25 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* termios/Makefile (headers): Add sys/ttychars.h.
	* termios/sys/ttychars.h: New file, incorporated from 4.4BSD-Lite
	for compatibility.

	* signal/signal.h [__USE_BSD] (sig_t): New typedef.

Wed Nov  8 15:12:47 1995  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/ptrace.c (ptrace) [PTRACE_TRACEME]: Notify the
	proc server that we are now traced.

Tue Nov  7 12:29:46 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/Makefile (ldd): Make it executable.

	* Makeconfig (config-LDFLAGS): Find dynamic linker in $(slibdir).

	* Makeconfig (slibdir): New variable.
	* Makerules (install): Install libc.so in $(slibdir).
	* elf/Makefile (install-others): Install ld.so and ld-linux.so.1
	in $(slibdir).

	* elf/linux-compat.c: New file.
	* elf/Makefile (distribute): Add linux-compat.c.
	(generated): Add librtld.so.
	[$(config-os)=linux*] (extra-objs): Add linux-compat.so.
	[$(config-os)=linux*] (extra-objs): Add ld-linux.so.1.
	(librtld.so): New target.
	(ld.so, ld-linux.so.1): Make from librtld.so.

	* elf/rtld.c (dl_main): Instead of weak call to _dl_compat_init,
	call our own DT_INIT if we have one (and then clear it).
	(__dgettext): New weak function.

	* intl/localealias.c (read_alias_file): Avoid sprintf; use memcpy
	by hand instead.

	* sysdeps/generic/_strerror.c (_strerror_internal): Use _itoa
	instead of snprintf.

	* sysdeps/mach/_strerror.c (_strerror_internal): Don't write
	BUF[BUFLEN].

	* elf/rtld.c (rtld_map): New static variable.
	(_dl_start): Use a differently named local BOOTSTRAP_MAP for the
	bootstrapping.  Then copy data into `rtld_map'.
	(dl_main): Finish filling in rtld_map and link it into the chain,
	instead of allocating a new structure.
	(dl_main): Call _dl_compat_init if it is defined (use weak ref).

	* elf/dlsym.c: Fix last change: move REF out of `doit'.

Mon Nov  6 16:20:14 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/dlsym.c: Return the proper value, not just the defining
	object's loadbase.

Sun Nov  5 16:09:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdio-common/vfprintf.c (%c): Count the character itself towards
	the field width in all cases.

	* sysdeps/mach/hurd/getpriority.c (getpriority): Cast
	__vm_deallocate arg to vm_address_t.

Fri Nov  3 17:27:49 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/sendto.c: Don't pass BINDING arg to
	socket_create_address.
	* sysdeps/mach/hurd/connect.c: Likewise.
	* sysdeps/mach/hurd/bind.c: Likewise.

	* hurd/hurdprio.c (_hurd_priority_which_map): Pass threadwaits
	args to proc_getprocinfo.
	* sysdeps/mach/hurd/getpriority.c: Likewise.

	* hurd/hurdmsg.c (_S_msg_report_wait): New stub function.

Thu Nov  2 19:24:37 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/i386/sysdep.S (errno): Define as common.

Tue Oct 31 00:07:29 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/getpriority.c (getpriority): Pass
	PI_FETCH_TASKINFO to proc_getprocinfo and through
	_hurd_priority_which_map.

	* sysdeps/mach/hurd/setpriority.c (setpriority): Pass new arg to
	_hurd_priority_which_map.
	* hurd/hurdprio.c (_hurd_priority_which_map): New arg PI_FLAGS,
	passed through to proc_getprocinfo RPC.
	* hurd/hurd/resource.h: Add PI_FLAGS arg in decl.

	* sysdeps/mach/hurd/group_member.c: New file.
	* sysdeps/generic/group_member.c: New file.

	* Makerules (lib-noranlib): Don't depend on $(install-lib).
	(others): Do.
	* extra-lib.mk: Fix test of $(lib)-no-lib-dep.

Mon Oct 30 12:33:10 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Rules (others): Depend on $(extra-objs).

	* posix/unistd.h [__USE_GNU]: Declare group_member, __group_member.
	* posix/Makefile (routines): Add group_member.

	* sysdeps/posix/euidaccess.c: New file, adapted from fileutils.

	* sysdeps/unix/sysv/linux/i386/sigaction.c: Tighten constraint for
	SIG operand in asm so it must be a register.
	Add dead return to quiet gcc warning.

	* Makerules (sysd-rules): Write a defn for sysd-rules-done.
	[! sysd-rules-done]: Inhibit deps.

Thu Oct 26 23:11:11 1995  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* sysdeps/unix/sysv/linux/poll.c: Don't define as stub.  Use
	simulation of system call using select.

	* sysdeps/unix/sysv/linux/signal.c: Use POSIX implementation.

	* sysdeps/unix/sysv/linux/statbuf.h: Define _STAT_VER.

	* sysdeps/unix/sysv/linux/i386/sigaction.c: Correct parameter
	name usage (new->act, old->oact).
	Correct asm statement because of gcc strangeness.

	* sysdeps/i386/i586/strchr.S: Correct typos: cmp -> cmpb.

	* sunrpc/clnt_perr.c: Remove declaration of sys_errlist.  They
	conflict with the ones in stdio.h.

	* string/tester.c: %Z is no complete format.  Change to %Zd.

Thu Oct 26 18:13:33 1995  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/bind.c (bind): Swap args to dir_link.
	* sysdeps/mach/hurd/link.c (__link): Ditto.
	* sysdeps/mach/hurd/symlink.c (__symlink): Ditto.
	* sysdeps/mach/hurd/mknod.c (__mknod): Ditto.
	Include "stdio-common/_itoa.h" instead of "stdio/_itoa.h".

Thu Oct 26 00:11:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/i386/sigaction.c: New file.

	* sysdeps/unix/sysv/linux/i386/xstat.S: Don't use JUMPTARGET macro
	on syscall_error.  For PIC, it is a local label;
	for non-PIC, JUMPTARGET expands to the unadorned name anyway.
	* sysdeps/unix/sysv/linux/i386/xmknod.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/syscall.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/socket.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/sbrk.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/brk.S: Likewise.

Thu Oct 26 03:01:22 1995  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* sysdeps/unix/sysv/linux/syscall.h: Strip list of syscalls in
	comment to the necessary ones.  Add _readv and _writev.

	* sysdeps/unix/configure.in: Change syntax for system call test
	candidates and adapt sed script for this.  Now use : to separate
	syscall name and file name.

	* sysdeps/unix/sysv/linux/i386/sysdep.h (ENTRY): System call
	number is now set is DO_CALL.  So call with additional argument.
	(DO_CALL): Takes an additional argument.  Load system call
	number according to new argument.
	(SYSCALL_ERROR_HANDLER): Add ; after last ret statement.
	* sysdeps/unix/sysv/linux/i386/brk.S [PIC]: Define __syscall_error
	locally using SYSCALL_ERROR_HANDLER macro.
	* sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/sbrk.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/socket.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/xmknod.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/xstat.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/syscall.S: Likewise.
	Don't use DO_CALL macro; instead use lower level macros for better
	control.

	* sysdeps/unix/sysv/linux/sigaction.h: New file.
	* sysdeps/unix/sysv/linux/sigaction.S: File removed.
	* sysdeps/unix/sysv/linux/signal.S: File removed.

Wed Oct 25 14:23:35 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdstartup.c (_hurd_startup): Use new
	exec_startup_get_info RPC from exec_startup.defs
	in place of old exec_startup from exec.defs.  Remove kludge to
	guess user entry and phdr locations, since the new RPC gives us
	that info.

	* stdio/stdio.h (sys_errlist, _sys_errlist): Declare const.
	* sysdeps/generic/_strerror.c: Undo last change.

	* sysdeps/unix/sysv/linux/stat.c: New file.
	* sysdeps/unix/sysv/linux/fstat.c: New file.
	* sysdeps/unix/sysv/linux/lstat.c: New file.
	* sysdeps/unix/sysv/linux/i386/stat.S: File removed.
	* sysdeps/unix/sysv/linux/i386/fstat.S: File removed.
	* sysdeps/unix/sysv/linux/i386/lstat.S: File removed.

Tue Oct 24 15:22:58 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER):
	New macro.
	(PSEUDO): Use it instead of SYSCALL_PIC_SETUP and jmp syscall_error.

	* sysdeps/unix/sysv/linux/i386/sysdep.S (__syscall_error): Define
	only #ifndef PIC.

	* Makeconfig (built-program-cmd): New variable.
	* sunrpc/Makefile (rpcgen-cmd): Use $(built-program-cmd).
	* time/Makefile (zic-cmd): Likewise.

	* hurd/Makefile (user-interfaces): Add hurd/exec_startup.

	* sunrpc/Makefile (librpcsvc-no-lib-dep): New variable.
	* extra-lib.mk: If $(lib)-no-lib-dep is defined and MAKELEVEL>0,
	make `others' rather than `lib-noranlib' depend on the libraries.

	* sysdeps/unix/configure.in: Check for fchdir syscall.
	Improve sed script to allow / on rhs without / on lhs.

Thu Oct 19 03:47:32 1995  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* sysdeps/unix/sysv/linux/termbits.h: Don't define speed constants.

	* elf/rtld.c: Include _itoa.h from stdio-common instead of stdio.

	* sysdeps/unix/sysv/linux/select.S: New file.

Wed Oct 18 03:33:22 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/i386/sysdep.h (PSEUDO): Use
	SYSCALL_PIC_SETUP before jumping to syscall_error.
	* sysdeps/unix/i386/sysdep.h (SYSCALL_PIC_SETUP): New macro.
	(PSEUDO): Use it before jumping to syscall_error.
	* sysdeps/unix/i386/sysdep.S [! PIC]: Don't find GOT address;
	expect it in %ebx on entry.  Pop old %ebx value off stack after
	using it.

	* signal/signal.h [__USE_BSD] (_sys_siglist, sys_siglist): Declare
	them.

	* sysdeps/generic/_strerror.c: Declare _sys_errlist and _sys_nerr.

	* hurd/hurdlookup.c (__hurd_file_name_lookup_retry): For magic
	`fd/', pass the right pointer to strtol to parse the number.

Tue Oct 17 23:00:10 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/_strerror.c: Include stdio-common/_itoa.h instead
	of stdio/_itoa.h.

Tue Oct 17 19:51:17 1995  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* sysdeps/unix/sysv/linux/i386/stat.S [PIC] (__stat): Set GOT
	register %ebx before calling __xstat through PLT.

	* sysdeps/unix/sysv/linux/i386/sysdep.S: Fix typo in comment.

	* sysdeps/unix/sysv/linux/sigset.h: Remove file.

Tue Oct 17 01:21:21 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdsock.c: Include stdio-common/_itoa.h instead of
	stdio/_itoa.h.
	* hurd/hurdlookup.c: Likewise.

	* hurd/hurd/signal.h: Declare hurd_preempt_signals and
	hurd_unpreempt_signals.

	* stdio/stdio.h: Declare __snprintf and __vsnprintf.

	* stdio-common/psignal.c: Translate signal description strings.
	* string/strsignal.c: Likewise.
	* sysdeps/generic/_strerror.c (_strerror_internal): Translate
	error strings.
	* sysdeps/mach/_strerror.c: Likewise.

	* stdio-common/snprintf.c (__snprintf): Renamed from snprintf;
	call __vsnprintf.
	(snprintf): Define as weak alias.
	* stdio/vsnprintf.c (__vsnprintf): Renamed from vsnprintf.
	(vsnprintf): Define as weak alias.

Mon Oct 16 03:22:37 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makerules (install-lib): Filter out %_pic.a; install only the
	linked shared objects.

	* locale/Makefile (aux): Add SYS_libc.
	* locale/SYS_libc.c: New file.
	* libc-symbols.h [! ASSEMBLER] (_): New macro.

	* configure.in (libc_cv_asm_set_directive): Link program into
	conftest instead of letting it default to a.out.

	* elf/Makefile (install-others): Add missing slash.

	* elf/ldd.sh.in: Prepend `./' to relative file names so ld.so
	won't search LD_LIBRARY_PATH.

	* Makefile (subdirs): Replace stdio with stdio-common and $(stdio).
	* configure.in: Grok arg --enable-libio.
	($stdio = libio): Define USE_IN_LIBIO.
	* config.h.in (USE_IN_LIBIO): Add #undef.
	* config.make.in (stdio): New variable, set by configure.
	* Makeconfig (stdio): New variable.
	* stdio.h [USE_IN_LIBIO]: Include libio/stdio.h instead of
	stdio/stdio.h.
	* stdio-common/Makefile: New file.
	* stdio/Makefile: Half the contents moved to stdio-common/Makefile.
	* stdio/_itoa.c: Moved to stdio-common.
	* stdio/_itoa.h: Moved to stdio-common.
	* stdio/asprintf.c: Moved to stdio-common.
	* stdio/bug1.c: Moved to stdio-common.
	* stdio/bug1.input: Moved to stdio-common.
	* stdio/bug2.c: Moved to stdio-common.
	* stdio/bug3.c: Moved to stdio-common.
	* stdio/bug4.c: Moved to stdio-common.
	* stdio/bug5.c: Moved to stdio-common.
	* stdio/bug6.c: Moved to stdio-common.
	* stdio/bug6.input: Moved to stdio-common.
	* stdio/bug7.c: Moved to stdio-common.
	* stdio/dprintf.c: Moved to stdio-common.
	* stdio/errnobug.c: Moved to stdio-common.
	* stdio/getline.c: Moved to stdio-common.
	* stdio/getw.c: Moved to stdio-common.
	* stdio/perror.c: Moved to stdio-common.
	* stdio/printf-parse.h: Moved to stdio-common.
	* stdio/printf-prs.c: Moved to stdio-common.
	* stdio/printf.c: Moved to stdio-common.
	* stdio/printf.h: Moved to stdio-common.
	* stdio/printf_fp.c: Moved to stdio-common.
	* stdio/psignal.c: Moved to stdio-common.
	* stdio/putw.c: Moved to stdio-common.
	* stdio/reg-printf.c: Moved to stdio-common.
	* stdio/scanf.c: Moved to stdio-common.
	* stdio/snprintf.c: Moved to stdio-common.
	* stdio/sprintf.c: Moved to stdio-common.
	* stdio/sscanf.c: Moved to stdio-common.
	* stdio/tempnam.c: Moved to stdio-common.
	* stdio/temptest.c: Moved to stdio-common.
	* stdio/test-fseek.c: Moved to stdio-common.
	* stdio/test-fwrite.c: Moved to stdio-common.
	* stdio/test-popen.c: Moved to stdio-common.
	* stdio/test_rdwr.c: Moved to stdio-common.
	* stdio/tmpfile.c: Moved to stdio-common.
	* stdio/tmpnam.c: Moved to stdio-common.
	* stdio/tst-fileno.c: Moved to stdio-common.
	* stdio/tst-printf.c: Moved to stdio-common.
	* stdio/tstgetln.c: Moved to stdio-common.
	* stdio/tstgetln.input: Moved to stdio-common.
	* stdio/tstscanf.c: Moved to stdio-common.
	* stdio/tstscanf.input: Moved to stdio-common.
	* stdio/vfprintf.c: Moved to stdio-common.
	* stdio/vfscanf.c: Moved to stdio-common.
	* stdio/vprintf.c: Moved to stdio-common.
	* stdio/xbug.c: Moved to stdio-common.
	* sysdeps/generic/Makefile (siglist.c rules): Do this in subdir
	stdio-common instead of stdio.
	* sysdeps/unix/Makefile (errlist.c rules): Likewise.
	* stdio-common/asprintf.c [USE_IN_LIBIO]: Call libio primitive
	function.
	* stdio-common/dprintf.c: Likewise.
	* stdio-common/printf.c: Likewise.
	* stdio-common/scanf.c: Likewise.
	* stdio-common/snprintf.c: Likewise.
	* stdio-common/sprintf.c: Likewise.
	* stdio-common/sscanf.c: Likewise.
	* stdio-common/vprintf.c: Likewise.

	* Makerules: Include $(+depfiles) directly instead of generating
	depend-$(subdir).
	(depend-$(subdir)): Target removed.
	(common-clean): Don't remove depend-$(subdir).

	* sysdeps/unix/sysv/linux/Makefile (rtld-installed-name): New variable.
	(config-LDFLAGS): Variable removed.

	* sysdeps/mach/hurd/getcwd.c: Use __file_name_lookup_under.
	* sysdeps/mach/hurd/bind.c: Likewise.
	* sysdeps/mach/hurd/access.c: Use new __hurd_file_name_lookup
	calling convention.

	* hurd/hurdexec.c: Undo last change (10 Oct 95).

Sun Oct 15 21:04:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurd/lookup.h: New file.
	* hurd/hurdlookup.c (__file_name_lookup_under): New function.
	(__hurd_file_name_lookup, __hurd_file_name_lookup_retry,
	__hurd_file_name_split): Rewritten to take callback functions for
	using any needed init or dtable port, instead of passing in crdir
	and cwdir ports.
	(__file_name_lookup, __file_name_split): Use new calling
	convention; pass _hurd_ports_use and __getdport as the callback
	functions.

	* sysdeps/mach/hurd/chroot.c: Use __file_name_lookup_under instead
	of __hurd_file_name_lookup.
	* sysdeps/mach/hurd/chdir.c: Likewise.
	* sysdeps/mach/hurd/fchdir.c: Likewise.
	* hurd/fchroot.c: Likewise.

	* stdlib/Makefile (mpn-found): Don't omit %.s.
	(mpn-copy-sysdep): Omit files in nonexistent directories.
	(copy-mpn): Commit files to CVS.
	* stdlib/gen-mpn-copy (translations): Update translations for GMP
	1.906.7.

	* configure.in (machine): Translate alpha* to alpha/&, hppa* to hppa/&.

Sat Oct 14 02:52:36 1995  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* malloc/malloc.c (_malloc_internal): Performance fix.  Move
	if statement out of loop.

	* stdio/_itoa.c, stdio/_itoa.h: Complete rewrite.  Much faster
	implementation using GMP functions.  Contributed by
	Torbjorn Granlund and Ulrich Drepper.

	* stdio/test_rdwr.c: Include <errno.h>.

	* sysdeps/i386/i586/Implies: New file.

	New highly optimized string functions for i[345]86.
	* sysdeps/i386/memchr.S, sysdeps/i386/memcmp.S: New files.
        * sysdeps/i386/stpcpy.S, sysdeps/i386/stpncpy.S: New files.
        * sysdeps/i386/strchr.S, sysdeps/i386/strcspn.S: New files.
        * sysdeps/i386/strpbrk.S, sysdeps/i386/strrchr.S: New files.
        * sysdeps/i386/strspn.S, sysdeps/i386/i486/strcat.S: New files.
        * sysdeps/i386/i486/strlen.S, sysdeps/i386/i586/strchr.S: New files.
        * sysdeps/i386/i586/strlen.S: New file.
	* sysdeps/i386/memchr.c: Removed.  There is now an assembler version.

	* sysdeps/i386/i586/memcopy.h (WORD_COPY_BWD): Parameters did
	not correspond to used values.

	* sysdeps/unix/sysv/linux/nfs/nfs.h: New file.  Simply a wrapper
        around a kernel header file.
	* sysdeps/unix/sysv/linux/Dist: Add it.
	* sysdeps/unix/sysv/linux/Makefile [$(subdir)=sunrpc] (headers):
	Likewise.

	* sysdeps/unix/sysv/linux/local_lim.h: Rewrite.  Instead of
        defining ourself we use a kernel header file.

	* sysdeps/unix/sysv/linux/i386/sysdep.h (DO_CALL): Optimize system
        call handler for i586.

	* sysdeps/unix/sysv/linux/sys/param.h: Add copyright and clean up.

Thu Oct 12 15:45:32 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurd.h (file_name_lookup_under): Declare it.
	* hurd/Makefile (headers): Add hurd/lookup.h.

	* hurd/hurdinit.c (_hurd_ports_use): New function.
	* hurd/hurd.h (_hurd_ports_use): Declare it.
	(hurd_invoke_translator, hurd_file_name_lookup, hurd_file_name_split,
	hurd_file_name_lookup_retry): Remove these decls.
	* hurd/Makefile (routines): Remove invoke-trans.

Wed Oct 11 00:00:00 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/i386/dl-machine.h (elf_machine_rel): Use +=, not =, to
	apply R_386_PC32 reloc.

	* Makeconfig (config-LDFLAGS): Add missing slash.

	* sysdeps/mach/hurd/profil.c (fork_profil): Only call
	update_waiter if profiling was enabled in the parent.

	* csu/initfini.c: Don't pass -f flag to cp.

Tue Oct 10 23:08:53 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makerules (build-shlib): Pass -rpath and -rpath-link options.
	(LDFLAGS-c.so): Don't pass -dynamic-linker here.
	* Makeconfig (+link): Pass $(sysdep-LDFLAGS).
	(link-libc): Pass -rpath and -rpath-link options.

	* MakeTAGS (all-dirs): Omit CVS directories.
	Specify vpath directives to find source files in $(all-dirs).
	(sources, headers): Append sources and headers from $(all-dist) to
	these.
	(all-dist): Filter them out of this.
	(all-headers, all-sources): Use $(shell find ...) instead of
	$(wildcard ...).

	* sysdeps/mach/hurd/Makefile (sysdep-LDFLAGS): New variable; pass
	-rpath-link.

	* hurd/hurdexec.c: Pass poly and dealloc args to __file_exec.

	* elf/Makefile (install-others): Add missing $.

Mon Oct  9 02:54:14 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* mach/Makefile ($(objpfx)errsystems.c): Rule reenabled.

	* Makeconfig (config-LDFLAGS): Define to
	-Wl-dynamic-linker=$(libdir)$(rtld-installed-name).
	(rtld-installed-name): New variable.
	* elf/Makefile (install-lib): Variable removed.
	(install-others): Define this instead, to
	$(libdir)(rtld-installed-name).
	($(libdir)(rtld-installed-name)): New target; install from ld.so.

	* elf/ldd.sh.in: New file.
	* elf/Makefile (distribute): Add ldd.sh.in.
	(install-bin): Add ldd.
	($(objpfx)ldd: ldd.sh.in): New rule.

	* sysdeps/mach/hurd/dl-sysdep.c: Use __hurd_fail throughout.
	* hurd/hurd.h (__hurd_fail): Replace macro with inline function.
	Translate some Mach errors to Hurd errors.

	* elf/rtld.c (dl_main): Under --list, print msg if executable is
	statically linked.

	* elf/dl-load.c (_dl_map_object_from_fd): Rewrote program header
	table processing.

Sat Oct  7 01:25:48 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/stub/machine-gmon.h: Add #error.

Fri Oct  6 01:49:48 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/dynamic-link.h (elf_get_dynamic_info): If DYN is null, don't
	examine it.

Fri Sep 29 03:43:51 1995  Paul Eggert  <eggert@twinsun.com>

	Rewrite mktime from scratch for performance, and for correctness
	in the presence of leap seconds.

	* time/mktime.c	(ydhms_tm_diff, not_equal_tm, print_tm, check_result):
	New functions.
	(LEAP_SECONDS_POSSIBLE, CHAR_BIT, INT_MIN, INT_MAX,
	TIME_T_MIN, TIME_T_MAX, TM_YEAR_BASE, EPOCH_YEAR): New macros.
	<limits.h>, <stdlib.h>: New #includes.
	(main): Support tests with given broken-down value; support benchmarks.
	(__mon_lengths, debugging_enabled, printtm, dist_tm, doit,
	do_normalization, normalize, BAD_STRUCT_TM, SKIP_VALUE,
	<ctype.h>): Remove.

	* time/time.h, time/mktime.c (__mktime_internal): New offset arg.
	* time/mktime.c (mktime), time/timegm.c (timegm): Use it.

	* time/mktime.c (__mon_yday): New variable; replaces `__mon_lengths'.
	time/offtime.c (__offtime), time/tzset.c (compute_change): Use it.

	* time/offtime.c (__offtime): Remove useless assignment
	`tp->tm_isdst = -1'.

	* manual/maint.texi: Update credits.

Fri Oct  6 00:28:53 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/common/readv.S: Moved to sysdeps/unix/bsd.
	* sysdeps/unix/common/writev.S: Moved to sysdeps/unix/bsd.
	* sysdeps/unix/sysv/linux/readv.c: File removed.
	* sysdeps/unix/sysv/linux/writev.c: File removed.
	* sysdeps/unix/configure.in: Check for readv and writev syscalls.

	* sysdeps/unix/configure.in: If eval doesn't set $unix_srcname,
	set it to $unix_syscall instead of $unix_function.

Thu Oct  5 00:59:58 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/rtld.c (dl_main): Grok --list flag.
	* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): Ignore -- args.

Wed Oct  4 00:21:03 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_message): New function.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_message): New function.
	* elf/link.h (_dl_sysdep_message): Declare it.

	* sysdeps/unix/Makefile ($(common-objpfx)ioctls): Remove NULL from
	the list.

	* time/northamerica: Corrections to Canada data from ADO 95i.

	* sysdeps/unix/sysv/linux/Makefile (headers): Don't append to this
	unconditionally.  In socket subdir, append sys/socketcall.h; in
	time subdir, append sys/timex.h.
	(config-LDFLAGS): New variable.
	* sysdeps/unix/sysv/linux/Dist: New file.
	* Makeconfig (+link): Pass $(config-LDFLAGS) before $(LDFLAGS).

	* sysdeps/generic/stpncpy.c: Don't increment DEST when zero-filling.

	* elf/dlopen.c (dlopen): Don't pass USER_ENTRY arg to _dl_map_object.

Sat Sep 30 11:47:05 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): If started by
	kernel with args on stack, point _dl_hurd_data at zero data
	instead of garbage.  When ld.so run as program, grok args
	-LIB=MEMOBJ and pre-load shared object files found in memory
	objects loaded by the boot loader.

	* elf/link.h (struct link_map): New member `l_entry'.
	(_dl_map_object, _dl_map_object_from_fd): Remove last arg ENTRY_POINT.
	* elf/dl-load.c (_dl_map_object, _dl_map_object_from_fd): Remove
	last arg ENTRY_POINT.  Store the entry point location in the
	`l_entry' member of the new map.
	* elf/rtld.c (dl_main): Don't pass USER_ENTRY arg to
	_dl_map_object.  When run as program, set *USER_ENTRY to L->l_entry.
	* elf/dl-init.c (_dl_init_next): Don't pass ENTRY_POINT arg to
	_dl_map_object.

	* posix/tstgetopt.c, posix/tstgetopt.args: Test long options too.

	* sysdeps/unix/sysv/linux/i386/init-first.c (init): Save, set, and
	restore %ebx by hand for personality syscall.
	GCC cannot deal with spilling the dedicated GOT register.

	* misc/Makefile (routines): Add mntent, which was somehow omitted.

Fri Sep 29 15:07:10 1995  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* sysdeps/unix/sysv/linux/adjtime.c (__adjtime):
	Change name of field `mode' in `struct timex' to `modes'.
	Linux-1.3.28 updates this name according to RFC 1589.

Thu Sep 28 13:05:54 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	Merge new message handling code from GNU gettext, by Drepper.
	* intl: New directory.
	* Makefile (subdirs): Add intl.

	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Return
	USER_ENTRY instead of storing it on our stack.

	* elf/rtld.c (rtld_command): Variable removed.
	(_dl_skip_args): New variable.
	(dl_main): Increment _dl_skip_args instead of setting rtld_command.
	If the link_map for the executable itself is not first in the chain,
	make it so.
	* sysdeps/i386/dl-machine.h (RTLD_START): Use _dl_skip_args as
	count of args to skip.

Thu Sep 28 09:20:04 1995  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

	* stdlib/strtod.c (STRTOF): Fix handling of numbers with lots of
	leading zeroes.

Wed Sep 27 00:27:25 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/getcwd.c (__getcwd): Renamed from getcwd.
	(getcwd): Define as weak alias.
	* sysdeps/posix/getcwd.c: Likewise.
	* sysdeps/stub/getcwd.c: Likewise.
	* posix/unistd.h: Declare __getcwd.

	* string/string.h: Declare __strcasecmp.
	* sysdeps/generic/strcasecmp.c (__strcasecmp): Renamed from
	strcasecmp.
	(strcasecmp): Define as weak alias.

	* string/string.h: Declare __stpcpy.
	* sysdeps/generic/stpcpy.c (__stpcpy): Renamed from stpcpy.
	(stpcpy): Define as weak alias.

	* sysdeps/unix/sysv/linux/Implies: Add unix/common.

	* sysdeps/unix/i386/sysdep.h [HAVE_ELF] (ASM_TYPE_DIRECTIVE):
	Don't use `type' for arg name, since we are using it as a keyword
	in the rhs.

	* sysdeps/unix/configure.in: Check for syscalls getpriority,
	setpriority, getrlimit, setrlimit.

	* sysdeps/posix/truncate.c: Include fcntl.h.

	* sysdeps/generic/getdomain.c: Include string.h for strncpy decl.

	* sysdeps/stub/getpriority.c: Don't include obsolete gnu-stabs.h;
	use new stub_warning syntax.
	* sysdeps/stub/setpriority.c: Likewise.
	* sysdeps/stub/__longjmp.c: Likewise.
	* sysdeps/stub/_exit.c: Likewise.
	* sysdeps/stub/accept.c: Likewise.
	* sysdeps/stub/acos.c: Likewise.
	* sysdeps/stub/alarm.c: Likewise.
	* sysdeps/stub/asin.c: Likewise.
	* sysdeps/stub/atan2.c: Likewise.
	* sysdeps/stub/bind.c: Likewise.
	* sysdeps/stub/cbrt.c: Likewise.
	* sysdeps/stub/chroot.c: Likewise.
	* sysdeps/stub/closedir.c: Likewise.
	* sysdeps/stub/connect.c: Likewise.
	* sysdeps/stub/cos.c: Likewise.
	* sysdeps/stub/cosh.c: Likewise.
	* sysdeps/stub/ctermid.c: Likewise.
	* sysdeps/stub/cuserid.c: Likewise.
	* sysdeps/stub/defs.c: Likewise.
	* sysdeps/stub/exp.c: Likewise.
	* sysdeps/stub/fmod.c: Likewise.
	* sysdeps/stub/frexp.c: Likewise.
	* sysdeps/stub/fsync.c: Likewise.
	* sysdeps/stub/getcwd.c: Likewise.
	* sysdeps/stub/getenv.c: Likewise.
	* sysdeps/stub/gethostid.c: Likewise.
	* sysdeps/stub/getlogin.c: Likewise.
	* sysdeps/stub/getpeername.c: Likewise.
	* sysdeps/stub/getrlimit.c: Likewise.
	* sysdeps/stub/getsockname.c: Likewise.
	* sysdeps/stub/getsockopt.c: Likewise.
	* sysdeps/stub/listen.c: Likewise.
	* sysdeps/stub/log.c: Likewise.
	* sysdeps/stub/log10.c: Likewise.
	* sysdeps/stub/mkfifo.c: Likewise.
	* sysdeps/stub/morecore.c: Likewise.
	* sysdeps/stub/nice.c: Likewise.
	* sysdeps/stub/nlist.c: Likewise.
	* sysdeps/stub/opendir.c: Likewise.
	* sysdeps/stub/pipestream.c: Likewise.
	* sysdeps/stub/ptrace.c: Likewise.
	* sysdeps/stub/putenv.c: Likewise.
	* sysdeps/stub/readdir.c: Likewise.
	* sysdeps/stub/reboot.c: Likewise.
	* sysdeps/stub/recv.c: Likewise.
	* sysdeps/stub/recvfrom.c: Likewise.
	* sysdeps/stub/rename.c: Likewise.
	* sysdeps/stub/rewinddir.c: Likewise.
	* sysdeps/stub/seekdir.c: Likewise.
	* sysdeps/stub/send.c: Likewise.
	* sysdeps/stub/sendto.c: Likewise.
	* sysdeps/stub/setegid.c: Likewise.
	* sysdeps/stub/seteuid.c: Likewise.
	* sysdeps/stub/setgroups.c: Likewise.
	* sysdeps/stub/sethostid.c: Likewise.
	* sysdeps/stub/sethostname.c: Likewise.
	* sysdeps/stub/setjmp.c: Likewise.
	* sysdeps/stub/setrlimit.c: Likewise.
	* sysdeps/stub/setsockopt.c: Likewise.
	* sysdeps/stub/shutdown.c: Likewise.
	* sysdeps/stub/signal.c: Likewise.
	* sysdeps/stub/sigsuspend.c: Likewise.
	* sysdeps/stub/sin.c: Likewise.
	* sysdeps/stub/sinh.c: Likewise.
	* sysdeps/stub/socket.c: Likewise.
	* sysdeps/stub/socketpair.c: Likewise.
	* sysdeps/stub/sqrt.c: Likewise.
	* sysdeps/stub/sync.c: Likewise.
	* sysdeps/stub/system.c: Likewise.
	* sysdeps/stub/tan.c: Likewise.
	* sysdeps/stub/tanh.c: Likewise.
	* sysdeps/stub/tcdrain.c: Likewise.
	* sysdeps/stub/tcflow.c: Likewise.
	* sysdeps/stub/tcgetpgrp.c: Likewise.
	* sysdeps/stub/tcsendbrk.c: Likewise.
	* sysdeps/stub/tcsetattr.c: Likewise.
	* sysdeps/stub/tcsetpgrp.c: Likewise.
	* sysdeps/stub/telldir.c: Likewise.
	* sysdeps/stub/tempname.c: Likewise.
	* sysdeps/stub/ttyname.c: Likewise.
	* sysdeps/stub/ttyname_r.c: Likewise.
	* sysdeps/stub/utime.c: Likewise.

	* gmon/gmon.c (moncontrol): Don't cast buffer arg to profil.

	* time/mktime.c (localtime_r): Use 0 instead of NULL.

	* config.make.in (AS): New variable; set to `$(CC) -c'.

	* posix/unistd.h [__USE_BSD]: Declare profil.

	* elf/dl-load.c (_dl_map_object_from_fd): New function, broken out
	of _dl_map_object.
	(_dl_map_object): Call it.
	* elf/link.h (_dl_map_object_from_fd): Declare it.

Tue Sep 26 16:50:17 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/libintl.h: Rewritten by Ulrich Drepper for use with GNU
	gettext code.

	* sysdeps/unix/sysv/linux/sys/param.h: New file.
	* sysdeps/unix/sysv/linux/Subdirs: File removed.

	* libc-symbols.h (_LIBC): Define to 1, not just empty.

	* gmon: New directory of profiling code, incorporated from
	4.4BSD-Lite and modified.
	* sysdeps/i386/machine-gmon.h: New file.
	* sysdeps/stub/machine-gmon.h: New file.
	* sysdeps/mach/hurd/profil.c: New file.
	* sysdeps/stub/profil.c: New file.
	* sysdeps/unix/bsd/profil.S: New file.
	* Makefile (subdirs): Add gmon.
	* csu/gmon-start.c: New file.
	* csu/Makefile (extra-objs): Add gmon-start.o,
	g$(start-installed-name).
	(install-lib, omit-deps): Add g$(start-installed-name).
	($(objpfx)g$(start-installed-name)): New target.

Fri Sep 22 14:24:25 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/Makefile: Elide sunrpc from $(subdirs) for the
	time being.

Thu Sep 21 00:03:53 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/configure.in: Check for `profil' syscall.

	* manual/Makefile (infodir, prefix, INSTALL, INSTALL_DATA): Variables
	removed.

	* time/africa, time/asia, time/europe, time/northamerica,
	time/yearistype: New data from ADO 95h.

	* Makerules (build-shlib): Use $(@F:lib%.so=%) in place of
	$(notdir $*), so it wins for the explicit libc.so rule as well as the
	pattern rule.

	* sysdeps/stub/sys/sem_buf.h (union semun): New type.

	* sysdeps/mach/hurd/i386/init-first.c (init1) [PIC]: Call
	__libc_global_ctors.
	* sysdeps/i386/init-first.c: Rewritten.
	* sysdeps/unix/sysv/linux/i386/init-first.S: File removed.
	* sysdeps/unix/sysv/linux/i386/init-first.c: New file.

	* sysdeps/unix/sysv/linux/i386/fpu_control.h: Fix name in decl of
	___fpu_control.

	* Makerules (build-shlib): New canned sequence, broken out of
	lib%.so rule.  Link in $^ instead of just $<.
	(lib%.so: lib%_pic.a): Use it.
	(libc.so): New target; use $(build-shlib) for cmds, but also depend
	on soinit.so first and sofini.so last.

	* elf/soinit.c: New file.
	* elf/sofini.c: New file.
	* elf/Makefile (distribute): Add soinit.c and sofini.c.
	(extra-objs): Add soinit.so and sofini.so.

	* sysvipc/sys/shm.h (shmat): Fix return type to char *.
	* sysdeps/stub/sys/ipc_buf.h (key_t): Type removed.

	* misc/syslog.c (vsyslog): Rewritten using open_memstream to
	dynamically allocate buffers.

	* Makerules (install-lib-nosubdir): Make this, rather than
	install-no-libc.a, depend on the installed shared libraries.

Wed Sep 20 18:02:03 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/locale.c: Include errno.h.
	* locale/localedef.c: Likewise.

Tue Sep 19 00:02:06 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (distclean-1): Remove config.cache, config.log, config.h.
	(parent-mostlyclean): Remove all flavors of the parent library.

	* misc/mntent.c (getmntent): Skip multiple whitespace chars
	between fields.

	* hurd/hurdstartup.c (_hurd_startup): If RPC returns
	EXEC_STACK_ARGS flag, get args from stack.
	If args on stack but have info from RPC, relocate args on stack to make
	space for struct hurd_startup_data.

Mon Sep 18 15:06:00 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/dl-object.c: Include errno.h.
	* posix/execvp.c: Likewise.
	* dirent/scandir.c: Likewise.
	* sysdeps/posix/system.c: Likewise.
	* sysdeps/generic/setenv.c: Likewise.
	* stdlib/msort.c: Likewise.
	* stdio/memstream.c: Likewise.
	* stdio/fclose.c: Likewise.
	* stdio/getdelim.c: Likewise.
	* stdio/setvbuf.c: Likewise.
	* sysdeps/ieee754/ldexp.c: Likewise.
	* locale/locfile-parse.c: Likewise.

	* stdlib/lcong48_r.c: Don't check for null argument; let it fault.
	* stdlib/seed48_r.c: Likewise.
	* stdlib/srand48_r.c: Likewise.
	* stdlib/jrand48_r.c: Likewise.
	* stdlib/nrand48_r.c: Likewise.

	* Makeconfig (+gccwarn): Remove -Wbad-function-cast, which seems
	to be useless.

Mon Sep 18 12:39:22 1995  Paul Eggert  <eggert@twinsun.com>

	* mktime.c (localtime_r): Add substitute if the system doesn't
	provide one.

Mon Sep 18 14:39:20 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* time/gmtime.c (gmtime_r): Define as weak alias.
	* time/localtime.c (localtime_r): Define as weak alias.
	* time/time.h [__USE_REENTRANT] (gmtime_r, localtime_r): Declare them.

	* errno.h: Only define _ERRNO_H #ifndef __need_Emath.
	#undef __need_Emath after including errnos.h.
	[_ERRNO_H]: Protect decls with this.

Sun Sep 17 08:22:12 1995  Paul Eggert  <eggert@twinsun.com>

	Fix mktime so that it does not write over localtime's returned value.
	* localtime.c (__localtime_r): New function, with extra arg
	specifying where to store result.
	(localtime): Use it.
	(_tmbuf): New var.
	* gmtime.c (__gmtime_r, gmtime, _tmbuf): Likewise.
	* mktime.c (__mktime_internal):	Conversion function is now
	__localtime_r style, not localtime style.
	(mktime): Pass __localtime_r, not localtime.
	* timegm.c (timegm): Pass __gmtime_r, not gmtime.
	* offtime.c (__offtime): New arg specifying where to store result.
	* time.h (__mktime_internal, __offtime): Adjust decls accordingly.
	(__gmtime_r, __localtime_r): New decls.

	* time/localtime.c: <stddef.h>, <ctype.h>, <stdio.h>,
	<stdlib.h>, <string.h>: Remove includes.
	<errno.h>: Add include.

	* time/mktime.c, time/time.h, time/timegm.c (__mktime_internal):
	Renamed from _mktime_internal to avoid namespace pollution.

	* time/gmtime.c: Clear tm_isdst.

Mon Sep 18 01:58:40 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* misc/efgcvt_r.c (ecvt_r, fcvt_r): Last arg is size_t, not int.
	* stdlib/stdlib.h (ecvt_r, fcvt_r): Fix type of last arg: make it
	size_t.

	* sysdeps/mach/hurd/fpathconf.c: Call __io_pathconf instead of
	__file_pathconf.
	* sysdeps/mach/hurd/pathconf.c: Likewise.

	* Makefile (subdirs): Add sysvipc.

	* stdlib/srand48_r.c (srand48_r): Use UL suffix for huge constant.
	* stdlib/drand48-iter.c (__drand48_iterate): Likewise.

Sun Sep 17 18:29:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdlookup.c (__hurd_file_name_lookup_retry): Call
	 __file_set_size instead of __file_truncate.

	* features.h (__USE_REENTRANT): New macro.

	* sysdeps/mach/hurd/truncate.c: Call __file_set_size instead of
	__file_truncate.
	* sysdeps/mach/hurd/ftruncate.c: Likewise.

	* sysdeps/unix/sysv/linux/dl-machine.h: File removed.

Sat Sep 16 17:47:19 1995  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* elf/elf.h (AT_GID): Fix typo: Read -> Real.

	* misc/efgvt_r.c: New file.  Reentrant version of [efg]cvt functions.
	* misc/efgcvt.c: Rewrite to use reentrant functions.
	* misc/search.h: Many decls for hsearch functions.
	* misc/hsearch_r.c: New file.  Reentrant version of functions from
	hsearch family.
	* misc/hsearch.c, misc/tsearch.c: New files.
	* misc/Makefile (routines): Add efgcvt_r, hsearch_r, hsearch, tsearch.

	* posix/unistd.h (ttyname_r): Add prototype for new function.

	* stdlib/drand48_r.c, stdlib/erand48_r.c, stdlib/jrand48_r.c,
	stdlib/lrand48_r.c, stdlib/mrand48_r.c, stdlib/nrand48_r.c,
	stdlib/seed48_r.c, stdlib/srand48_r.c, stdlib/lcong48_r.c,
	stdlib/drand48-iter.c: New files implementing reentrant versions
	of functions from drand48 family.
	* stdlib/seed48.c, stdlib/drand48.c, stdlib/erand48.c,
	stdlib/jrand48.c, stdlib/lrand48.c, stdlib/mrand48.c,
	stdlib/nrand48.c, stdlib/srand48.c, stdlib/lcong48.c:
	Rewrite to use reentrant versions.
	* stdlib/a64l.c, stdlib/l64a.c: New files.  Implement a64l()
	and l64a() functions from SysV library.
	* stdlib/Makefile (routines): Add drand48_r, erand48_r, lrand48_r,
	nrand48_r, mrand48_r, jrand48_r, srand48_r, seed48_r, lcong48_r,
	drand48-iter, a64l, l64a.
	* stdlib/stdlib.h: Declare them.

	* stdlib/random_r.c: New file.  Reentrant version of functions
	from random family.
	* stdlib/stdlib.h: Declare them.
	* stdlib/random.c: Rewrite to use reentrant functions.

	* string/strerror_r.c: New file.  Reentrant version.
	* string/strerror.c: Change for new _strerror_internal form.
	* string/Makefile (routines): Add strerror_r.

	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Set default
	value of user_entry to `_start'.
	Close AT_ENTRY case with `break'.

	* sysdeps/generic/strstr.c: New and much faster implementation
	by Stephen R. van den Berg.

	* sysdeps/generic/_strerror.c: _strerror_internal now takes
	three argument and has and explicit buffer length.
	* sysdeps/mach/_strerror.c: Change for new interface with three
	arguments.
	* stdio/perror.c, stdio/vfprintf.c: Callers changed.

	* sysdeps/mach/hurd/ttyname_r.c: New file.  Reentrant version.
	* sysdeps/posix/ttyname_r.c: New file.  Reentrant version.
	* sysdeps/stub/ttyname_r: New file.  Define as dummy function.

	* sysdeps/posix/utimes.c: Include <utime.h> for prototype.
	(utimes): First parameter to utime must be file, not path.

	* sysdeps/posix/sysconf.c (__sysconf): Test for CLK_TCK in case
	_SC_CLK_TCK and return it when available.
	Test for STREAM_MAX in case _SC_STREAM_MAX and return it when
	available.
	Add case for _SC_2_LOCALEDEF which is now available.

	* posix/sys/types.h [__USE_SVID] (key_t): New type.
	* sysvipc/Makefile, sysvipc/ftok.c, sysvipc/sys/ipc.h,
	sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h,
	sysdeps/stub/sys/msq_buf.h, sysdeps/stub/sys/sem_buf.h,
	sysdeps/stub/sys/shm_buf.h, sysdeps/stub/sys/ipc_buf.h,
	sysdeps/stub/semctl.c, sysdeps/stub/semget.c, sysdeps/stub/semop.c,
	sysdeps/stub/shmat.c, sysdeps/stub/shmctl.c, sysdeps/stub/shmdt.c,
	sysdeps/stub/shmget.c, sysdeps/stub/msgctl.c, sysdeps/stub/msgget.c,
	sysdeps/stub/msgrcv.c, sysdeps/stub/msgsnd.c: New files.
	Add implementation of System V IPC.

Fri Sep 15 21:34:28 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdsig.c: Include <hurd/crash.h> in place of <hurd/core.h>.
	(write_corefile): Call __crash_dump_task instead of __core_dump_task.
	Use envariable CRASHSERVER instead of CORESERVER.
	* hurd/Makefile (user-interfaces): Replace hurd/core with hurd/crash.

Tue Sep 12 14:30:07 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* misc/mntent.c: New file.
	* misc/mntent.h: New file.
	* misc/Makefile (headers): Added mntent.h.
	(routines): Added mntent.
	* misc/fstab.c: Rewritten using mntent functions.

Mon Sep 11 14:00:14 1995  Roland McGrath  <roland@whiz-bang.gnu.ai.mit.edu>

	* posix/glob.c (glob): Comment fix.

Fri Sep  8 16:25:22 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* libc-symbols.h [HAVE_ELF] (symbol_set_declare): Declare the
	symbols weak.

	* conf/portability.h (NEED_INETADDR, NEED_INETATON): Define to 1,
	not empty.

Fri Sep  8 16:32:12 1995  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

        * sysdeps/unix/sysv/linux/Implies,
        sysdeps/unix/sysv/linux/Makefile, sysdeps/unix/sysv/linux/Subdirs,
        sysdeps/unix/sysv/linux/accept.S, sysdeps/unix/sysv/linux/adjtime.c,
        sysdeps/unix/sysv/linux/adjtimex.S, sysdeps/unix/sysv/linux/bind.S,
        sysdeps/unix/sysv/linux/connect.S, sysdeps/unix/sysv/linux/direct.h,
        sysdeps/unix/sysv/linux/dl-machine.h, sysdeps/unix/sysv/linux/errnos.h,
        sysdeps/unix/sysv/linux/fork.S, sysdeps/unix/sysv/linux/gethostid.c,
        sysdeps/unix/sysv/linux/gethostname.C,
        sysdeps/unix/sysv/linux/getpeername.S,
        sysdeps/unix/sysv/linux/getpgid.S, sysdeps/unix/sysv/linux/getpgrp.S,
	sysdeps/unix/sysv/linux/getsockname.S,
	sysdeps/unix/sysv/linux/getsockopt.S, sysdeps/unix/sysv/linux/gtty.S,
	sysdeps/unix/sysv/linux/listen.S, sysdeps/unix/sysv/linux/local_lim.h,
	sysdeps/unix/sysv/linux/madvise.c, sysdeps/unix/sysv/linux/msgctl.c,
	sysdeps/unix/sysv/linux/msgget.c, sysdeps/unix/sysv/linux/msgrcv.c,
	sysdeps/unix/sysv/linux/msgsnd.c, sysdeps/unix/sysv/linux/pipe.S,
	sysdeps/unix/sysv/linux/poll.c, sysdeps/unix/sysv/linux/readv.c,
	sysdeps/unix/sysv/linux/recv.S, sysdeps/unix/sysv/linux/recvfrom.S,
	sysdeps/unix/sysv/linux/recvmsg.S, sysdeps/unix/sysv/linux/semctl.c,
	sysdeps/unix/sysv/linux/semget.c, sysdeps/unix/sysv/linux/semop.c,
	sysdeps/unix/sysv/linux/send.S, sysdeps/unix/sysv/linux/sendmsg.S,
	sysdeps/unix/sysv/linux/sendto.S, sysdeps/unix/sysv/linux/setegid.c,
	sysdeps/unix/sysv/linux/seteuid.c, sysdeps/unix/sysv/linux/sethostid.c,
	sysdeps/unix/sysv/linux/setpgid.c, sysdeps/unix/sysv/linux/setpgrp.c,
	sysdeps/unix/sysv/linux/setsid.S, sysdeps/unix/sysv/linux/setsockopt.S,
	sysdeps/unix/sysv/linux/settimeofday.S,
	sysdeps/unix/sysv/linux/shmat.c, sysdeps/unix/sysv/linux/shmctl.c,
	sysdeps/unix/sysv/linux/shmdt.c, sysdeps/unix/sysv/linux/shmget.c,
	sysdeps/unix/sysv/linux/shutdown.S,
	sysdeps/unix/sysv/linux/sigaction.S, sysdeps/unix/sysv/linux/signal.S,
	sysdeps/unix/sysv/linux/sigpending.S, sysdeps/unix/sysv/linux/sigset.h,
	sysdeps/unix/sysv/linux/sockaddrcom.h,
	sysdeps/unix/sysv/linux/socketpair.S, sysdeps/unix/sysv/linux/speed.c,
	sysdeps/unix/sysv/linux/statbuf.h, sysdeps/unix/sysv/linux/stty.S,
	sysdeps/unix/sysv/linux/syscall.h, sysdeps/unix/sysv/linux/sysconf.c,
	sysdeps/unix/sysv/linux/tcdrain.c, sysdeps/unix/sysv/linux/tcflow.c,
	sysdeps/unix/sysv/linux/tcflush.c, sysdeps/unix/sysv/linux/tcgetattr.c,
	sysdeps/unix/sysv/linux/tcsetattr.c,
	sysdeps/unix/sysv/linux/termbits.h, sysdeps/unix/sysv/linux/ualarm.c,
	sysdeps/unix/sysv/linux/ulimit.c, sysdeps/unix/sysv/linux/usleep.c,
	sysdeps/unix/sysv/linux/utsnamelen.h, sysdeps/unix/sysv/linux/vfork.c,
	sysdeps/unix/sysv/linux/wait.c, sysdeps/unix/sysv/linux/wait4.S,
	sysdeps/unix/sysv/linux/waitpid.c, sysdeps/unix/sysv/linux/writev.c:
	New Linux/ELF specific, architecture independent files.
	* sysdeps/unix/sysv/linux/i386/Dist,
	sysdeps/unix/sysv/linux/i386/Makefile,
	sysdeps/unix/sysv/linux/i386/brk.S,
	sysdeps/unix/sysv/linux/i386/fcntlbits.h,
	sysdeps/unix/sysv/linux/i386/fpu_control.c,
	sysdeps/unix/sysv/linux/i386/fpu_control.h,
	sysdeps/unix/sysv/linux/i386/fstat.S,
	sysdeps/unix/sysv/linux/i386/fxstat.S,
	sysdeps/unix/sysv/linux/i386/ieee_fpu.c,
	sysdeps/unix/sysv/linux/i386/init-first.S,
	sysdeps/unix/sysv/linux/i386/ipc.S,
	sysdeps/unix/sysv/linux/i386/lstat.S,
	sysdeps/unix/sysv/linux/i386/lxstat.S,
	sysdeps/unix/sysv/linux/i386/mknod.S,
	sysdeps/unix/sysv/linux/i386/mmap.S,
	sysdeps/unix/sysv/linux/i386/sbrk.S,
	sysdeps/unix/sysv/linux/i386/setfpucw.c,
	sysdeps/unix/sysv/linux/i386/signum.h,
	sysdeps/unix/sysv/linux/i386/socket.S,
	sysdeps/unix/sysv/linux/i386/stat.S,
	sysdeps/unix/sysv/linux/i386/syscall.S,
	sysdeps/unix/sysv/linux/i386/sysdep.S,
	sysdeps/unix/sysv/linux/i386/sysdep.h,
	sysdeps/unix/sysv/linux/i386/xmknod.S,
	sysdeps/unix/sysv/linux/i386/xstat.S:
	New Linux i386/ELF specific files.
	* sysdeps/unix/sysv/linux/sys/ipc_buf.h,
	sysdeps/unix/sysv/linux/sys/mman.h,
	sysdeps/unix/sysv/linux/sys/msq_buf.h,
	sysdeps/unix/sysv/linux/sys/sem_buf.h,
	sysdeps/unix/sysv/linux/sys/shm_buf.h,
	sysdeps/unix/sysv/linux/sys/socketcall.h,
	sysdeps/unix/sysv/linux/sys/timex.h:
	New Linux/ELF specific, architecture independent header files.
	* sysdeps/unix/sysv/sysv4/linux: Tree removed.

Thu Sep  7 17:05:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdlib/msort.c (msort_with_tmp): Fixed alignment test.  B1 and
	B2 are always congruent; just test that B1 is aligned.

Wed Sep  6 19:41:10 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/dl-lookup.c (_dl_lookup_symbol): Test WEAK_VALUE.s rather
	than WEAK_VALUE.a to see if a weak value has been set.  A valid
	weak value may set WEAK_VALUE.a to 0.

Fri Sep  1 16:16:12 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/i386/longjmp-ts.c: Use new array format for
	jmp_buf.

	* libc-symbols.h (link_warning): Take new first arg SYMBOL; ask
	for a warning on references to that specific symbol, not the
	entire containing object file.
	(stub_warning): Pass symbol name to link_warning.
	* stdio/gets.c: Pass function name in link_warning invocation.

	* hurd/intr-msg.c: Treat apparent EINTR return from msg trap like
	MACH_SEND_INTERRUPTED.  That indicates interrupt_operation was
	sent, but failed.

	* stdlib/msort.c: Include memcopy.h.
	(msort_with_tmp): If operating on aligned op_t words, use direct word
	fetches and stores.

	* sysdeps/i386/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC): Add
	missing backslash.

Thu Aug 31 13:23:35 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/i386/brk.S [PIC]: Set __curbrk through the GOT.

	Rewrote i386 setjmp code in assembly, so as to avoid fighting
	with the compiler for the register values.
	* sysdeps/i386/setjmp.S, sysdeps/i386/__longjmp.S: New files.
	* sysdeps/i386/setjmp.c, sysdeps/i386/__longjmp.c: Files removed.
	* sysdeps/i386/jmp_buf.h [! _ASM] (__jmp_buf): Define as array of ints.
	[__USE_MISC || _ASM] (JB_*): New macros, for indices therein.
	(_JMPBUF_UNWINDS): Use JB_SP.

Wed Aug 30 16:44:55 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/select.c: Deal with out of order replies
	during io_select request loop.
	Handle MACH_RCV_TIMED_OUT error from requests.
	* hurd/intr-msg.c: If the user passed the MACH_RCV_TIMEOUT option,
	distinguish MACH_RCV_TIMED_OUT from EINTR.

	* posix/glob.c (glob): Use realloc to extend strings for GLOB_MARK
	slash.
	(glob_in_dir): Don't allocate extra byte here.

	* sysdeps/i386/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
	Decrement the DT_RELSZ value for the skipped reloc.

Tue Aug 29 12:35:56 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* time/australasia: Updated data from ADO.

Mon Aug 28 17:47:11 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* dirent/dirent.h: Don't include <dirstream.h>.
	Instead, define DIR as typedef for (undefined) `struct __dirstream'.

Fri Aug 25 12:12:42 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/dirstream.h: Define `struct __dirstream'
	instead of `DIR'.
	* sysdeps/unix/bsd/dirstream.h: Likewise.
	* sysdeps/stub/dirstream.h: Likewise.
	* sysdeps/unix/dirstream.h: Likewise.
	* sysdeps/mach/hurd/telldir.c: Include "dirstream.h".
	* sysdeps/mach/hurd/seekdir.c: Likewise.
	* sysdeps/mach/hurd/opendir.c: Likewise.
	* sysdeps/mach/hurd/closedir.c: Likewise.
	* sysdeps/mach/hurd/readdir.c: Likewise.
	* sysdeps/unix/telldir.c: Likewise.
	* sysdeps/unix/seekdir.c: Likewise.
	* sysdeps/unix/rewinddir.c: Likewise.
	* sysdeps/unix/readdir.c: Likewise.
	* sysdeps/unix/opendir.c: Likewise.
	* sysdeps/unix/closedir.c: Likewise.
	* sysdeps/unix/bsd/telldir.c: Likewise.
	* sysdeps/unix/bsd/readdir.c: Likewise.
	* dirent/Makefile (headers): Remove dirstream.h.
	(distribute): Put it here instead.

	* sysdeps/mach/hurd/mmap.c: Fix inverted test of MAP_FIXED.

	* stdio/vfscanf.c (number): Allow field width to inhibit first
	digit after base detection.

	* stdio/vfprintf.c (vfprintf: %s): Never search past the limit
	specified by the precision.

	* grp/grpread.c (__grpscan): New function.
	* grp/grp.h (__grpscan): Declare it.
	* grp/getgrgid.c: Use __grpscan.
	* grp/getgrnam.c: Likewise.
	* pwd/pwdread.c (__pwdscan): New function.
	* pwd/pwd.h (__pwdscan): Declare it.
	* pwd/getpwnam.c: Use __pwdscan.
	* pwd/getpwuid.c: Likewise.

Thu Aug 24 16:29:40 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/mmap.c: Treat (FLAGS & MAP_TYPE) == 0 like
	MAP_FILE.

	* hurd/thread-cancel.c: Return EINTR when called on self.
	* sysdeps/i386/elf/start.S (data_start): Define as weak alias for
	__data_start.

Tue Aug 22 16:49:12 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* inet/netdb.h: Moved to resolv.
	* inet/Makefile (headers): Remove netdb.h.
	* resolv/Makefile (headers): Add netdb.h.
	* resolv/gethnamaddr.c, resolv/inet_addr.c, resolv/netdb.h,
	resolv/res_send.c: Updated from BIND-4.9.3-BETA26.

	* hurd/thread-cancel.c: If SS->cancel_hook is not null, call it before
	resuming the thread.
	* hurd/hurd/signal.h (struct hurd_sigstate): New member `cancel_hook'.

	* hurd/Makefile: Removed dep on hurd/signal.h for RPC stub objects.

Mon Aug 21 16:37:09 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/i386/dl-machine.h (elf_machine_rel): Grok R_386_NONE
	relocs, and do nothing.  Why the linker generates them we may
	never know.

Thu Aug 17 16:18:38 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/Makefile: Don't elide sunrpc and manual from
	`subdirs' variable.

	* sysdeps/mach/hurd/i386/intr-msg.h: New file.
	* hurd/intr-msg.c: Use INTR_MSG_TRAP macro from machine-dependent
	"intr-msg.h" for special syscall code, instead of i386-specific asm.
	* hurd/hurdsig.c: Use INTR_MSG_BACK_OUT macro from
	machine-dependent "intr-msg.h" before mutating thread state to
	skip RPC.

	* sysdeps/mach/hurd/i386/trampoline.c: If PC is inside
	_hurd_intr_rpc_mach_msg special syscall code, use real SP saved in
	%ecx.

	* Makeconfig (link-libc): New variable; use shared library if
	available.
	(+link): Use it.

	* sysdeps/mach/hurd/fork.c (_hurd_fork_locks): Variable removed.
	Instead, declare with `symbol_set_declare'.
	(fork): Use symbol_set_* macros for _hurd_fork_locks.
	Use SS->thread instead of __mach_thread_self ().  Suspend all
	other threads during task_create and port copying.

Wed Aug 16 17:04:26 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/intr-msg.c: Fixed calculation of syscall %esp.

Tue Aug 15 12:26:18 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdsig.c (_hurdsig_abort_rpcs): Remove `static'.

	* hurd/Makefile (sig): Add intr-msg.

Mon Aug 14 16:51:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/thread-cancel.c: New file.
	* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler): In
	rpc_wait case, frob mach_msg args to set timeout on receive.
	(_hurdsig_rcv_interrupted_p): Function removed.
	* sysdeps/mach/hurd/alpha/trampoline.c: Likewise.
	* sysdeps/mach/hurd/hppa/trampoline.c: Likewise.
	* sysdeps/mach/hurd/mips/trampoline.c: Likewise.
	* hurd/intr-msg.c: New file.
	* hurd/hurd/signal.h (struct hurd_sigstate): New member `cancel'.
	(_hurdsig_rcv_interrupted_p): Declaration removed.
	(HURD_EINTR_RPC): Macro removed.
	(_hurd_longjmp_thread_state, _hurd_interrupted_rpc_timeout): Declare
	these.
	* hurd/intr-rpc.h: New file.
	* hurd/intr-rpc.defs: Just import intr-rpc.h.
	* hurd/hurdsig.c (_hurd_interrupted_rpc_timeout): New variable.
	(interrupted_reply_port_location): Take new flag arg; only catch
	faults if it's set.
	(abort_rpcs): Rename to _hurdsig_abort_rpcs; take same new flag arg.
	No longer use _hurdsig_rcv_interrupted_p; instead compare PC to
	&_hurd_intr_rpc_msg_in_trap.  If before it, mutate state to simulate
	MACH_SEND_INTERRUPTED return; on it, interrupt the operation.  All
	callers changed.
	* hurd/hurd.h (hurd_thread_cancel, hurd_check_cancel): Declare these.
	* hurd/Makefile (distribute): Remove intr-rpc.awk.
	(sig): Add thread-cancel.
	(transform-user-stub, transform-user-stub-output): Variables removed.
	* sysdeps/mach/hurd/dl-sysdep.c: Change all RPCs from
	`__hurd_intr_rpc_*' to `__*'.
	(_hurd_intr_rpc_mach_msg): New function.
	(_hurd_thread_sigstate): Function removed.
	* sysdeps/mach/hurd/ioctl.c: Use _hurd_intr_rpc_mach_msg function,
	instead of __mach_msg inside HURD_EINTR_RPC macro.

	* sysdeps/generic/morecore.c [__GNU_LIBRARY__]: Declare `__sbrk'
	to take ptrdiff_t arg.

	* sysdeps/mach/hurd/fork.c: Remove _hurd_longjmp_thread_state decl.

	* sysdeps/mach/hurd/kill.c (kill_pid): Don't make `inline'.

	* libc-symbols.h [GCC >= 2.7] (strong_alias, weak_symbol,
	weak_alias): Use `extern' storage class.

Wed Aug  9 14:25:35 1995  Miles Bader  <miles@geech.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/setuid.c (__setuid): Switch the port-type and
	port-count parameters to __auth_makeauth.
	* sysdeps/mach/hurd/setgid.c (__setgid): Ditto.

Tue Aug  8 12:22:59 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/sigunwind.c: Remove _hurd_longjmp_thread_state decl.

	* inet/netinet/tcp.h: New file, incorporated from 4.4BSD-Lite.

Tue Aug  8 12:06:04 1995  Michael I. Bushnell, p/BSG  <mib@duality.gnu.ai.mit.edu>

	* inet/netinet/in.h (IP_MULTICAST_TTL, IP_MULTICAST_LOOP,
	IP_MULTICAST_IP, IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP): New IP
	layer socket options.
	(IPPROTO_GGP): Delete obsolote protocol.
	(IPPROTO_IGMP): Add new protocol (with same value [2] as old GGP).
	(struct ip_mreq): New type.

Mon Aug  7 14:04:36 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdlib/strtol.c: Use #ifdef, not #if, for HAVE_LIMITS_H.

	* posix/glob.c (glob_in_dir): Allocate GLOB_MARK byte in case when
	(NFOUND == 0 && (FLAGS & GLOB_NOCHECK)).

	* sysdeps/generic/sysd-stdio.c (__stdio_reopen): Return failure
	when __stdio_open fails with a code other than ENFILE or EMFILE.

Fri Aug  4 16:01:59 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (headers): Added gnu-versions.h.

Thu Aug  3 14:41:11 1995  Michael I. Bushnell  <mib@duality.gnu.ai.mit.edu>

	* inet/netinet/in.h (IN_CLASSD, IN_EXPERIMENTAL, IN_BADCLASS): Use
	equality, not assignment, to test bitfields.

Sat Jul 29 10:41:06 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/sendto.c (sendto): Use the ifsock protocol to
	resolve AF_LOCAL addresses.

	* sysdeps/mach/hurd/accept.c (accept): If the protocol family
	can't tell us what an address means, just return a zero-length
	buffer instead.
	* sysdeps/mach/hurd/recvfrom.c (recvfrom): Ditto.

Fri Jul 28 15:29:11 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/bind.c (bind): Don't use
	file_invoke_translator, as it doesn't work.  Instead just lookup
	the translated node again, and hope we're not hit by any race
	conditions.

Wed Jul 26 02:00:29 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* csu/Makefile [$(elf)=yes] (have-initfini): Set to yes.
	[$(have-initfini)=yes]: Test this rather than $(elf) for crtstuff.
	[start-installed-name-rule]: If this is defined, elide rule for
	$(objpfx)$(start-installed-name).
	* csu/initfini.c (SECTION): New macro, different definitions for
	#ifdef HAVE_ELF and not.
	(_init, _fini): Use that macro.
	* sysdeps/unix/sysv/sco3.2.4/Makefile [$(subdir)=csu]
	(start-installed-rule, start-installed-name-rule): New variables;
	specify crt1.o, created by our own rule.
	($(objpfx)crt1.o): New rule.
	* configure.in: Require autoconf 2.4.2 or later.  Change all
	AC_CACHE_VAL uses to use new AC_CACHE_CHECK macro instead;
	prettify some messages.
	[$elf!=yes] (libc_cv_have_initfini): New test for `.init' and `.fini'
	sections.
	* munch-tmpl.c [HAVE_INITFINI]: Call _init and atexit (_fini) in
	this case rather than #ifdef HAVE_ELF.
	* config.h.in (HAVE_INITFINI): New macro.
	* config.make.in (have-initfini): New variable, set by configure.

	* stdio/vfscanf.c (conv_error): Simplify expression to avoid
	"value computed is not used" warning.

	* Makeconfig (+gccwarn): Removed -Wconversion.

	* csu/initfini.c (GLOBAL): Macro removed.
	(_init, _fini): Always define globally.
	* csu/Makefile (crtstuff, initfini): Don't make crt[in]_s.o.

	* asia, backward, europe, leapseconds, southamerica: New data from
	ADO's 95e.

	* inet/Makefile (routines): Removed inet_addr.
	* inet/inet_addr.c: Moved to resolv/ subdirectory.
	* resolv/Makefile (routines): Added inet_addr.
	* resolv/inet_addr.c: Incorporated from BIND 4.9.3-BETA24 release.
	* resolv/gethnamaddr.c: Likewise.
	* resolv/getnetbyaddr.c: Likewise.
	* resolv/getnetbyname.c: Likewise.
	* resolv/getnetent.c: Likewise.
	* resolv/getnetnamadr.c: Likewise.
	* resolv/herror.c: Likewise.
	* resolv/nsap_addr.c: Likewise.
	* resolv/res_comp.c: Likewise.
	* resolv/res_debug.c: Likewise.
	* resolv/res_init.c: Likewise.
	* resolv/res_mkquery.c: Likewise.
	* resolv/res_query.c: Likewise.
	* resolv/res_send.c: Likewise.
	* resolv/resolv.h: Likewise.
	* resolv/sethostent.c: Likewise.
	* resolv/arpa/nameser.h: Likewise.
	* inet/netdb.h: Incorporated from BIND 4.9.3-BETA24 release.
	[__GNU_LIBRARY__]: Include <rpc/netdb.h> instead of repeating
	its declarations (and doing so only #ifdef sun!).
	* conf/portability.h (NEED_INETADDR, NEED_INETATON): New macros.

	* posix/sys/types.h [__USE_BSD] (__BIT_TYPES_DEFINED__): New macro.
	[__USE_BSD] [__GNUC__] (int64_t, u_int64_t, register_t): New typedefs.

	* malloc/memalign.c: Allocate (SIZE + ALIGNMENT - 1) and then trim
	if possible.

	* mach/shortcut.awk: Emit decls for RPC.

	* libc-symbols.h [GCC >= 2.7 && !ASSEMBLER] (weak_symbol,
	weak_alias, strong_alias): Define using GCC __attribute__ syntax.

	* Makerules ($(installed-libcs)): Depend on `lib' (only).

Tue Jul 25 09:14:53 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/pathconf.c: Declare VALUE as int, not long int.

	* stdlib/strtol.c [_LIBC]: Define STDC_HEADERS.

	* sysdeps/unix/sysv/ftime.S: New file.

	* locale/locfile-parse.c (categories_write): Cast "" to char *.

	* io/fcntl.h [__OPTIMIZE__] (creat): Macro removed.

	* time/strftime.c: Use year modulo 100 for %y.

	* time/sys/timeb.h: Add __BEGIN_DECLS and __END_DECLS.

	* sysdeps/unix/snarf-ioctls (snarfexclude): Use two sed's instead
	of one, to work around bug in sunos4.1.2 sed.

	* stdio/vfprintf.c (vfprintf): For %s with precision spec, use
	memchr instead of strlen to limit search for NUL by precision.

Mon Jul 24 03:13:16 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/posix/pathconf.c: New file.

Sat Jul 22 20:53:18 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/i386/sysdep.h (JUMPTARGET): Use ## to avoid space
	before @PLT.
	* sysdeps/mach/i386/sysdep.h (JUMPTARGET): New macro.
	* sysdeps/i386/bsd-_setjmp.S: Use JUMPTARGET macro in jmp insn.
	* sysdeps/i386/bsd-setjmp.S: Likewise.

Sat Jul 22 19:58:54 1995  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* inet/Makefile (routines): Added `ruserpass'.
	* inet/ruserpass.c: New file, from BSD Net-2 sources for the FTP
	client.  Modified to remove the fourth arg AACCT.  Do nothing for
	the `account' and `macdef' keywords.  Other incidental changes
	because we are not in the FTP source tree.

Sat Jul 22 01:56:03 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/stub/init-posix.c: Removed stub warning.

	* Makefile (autoconf-it): Make it executable and unwritable.

	* configure.in (sysnames): Under --enable-debug-configure, spew
	potential sysnames.

	* sysdeps/unix/i386/sysdep.h (JUMPTARGET): New macro; use name@PLT
	#ifdef PIC.
	(PSEUDO): Use JUMPTARGET(syscall_error) in jump insn.
	* sysdeps/unix/i386/syscall.S: Use JUMPTARGET(syscall_error) in
	jump insn.

	* sysdeps/unix/sysv/sysv4/linux/i386/sysdep.h: Rewritten.
	* sysdeps/unix/sysv/sysv4/linux/i386/syscall.S: New file.
	* sysdeps/unix/sysv/sysv4/linux/i386/socket.S: Include
	<sys/socketcall.h>.  Save %ebx in call-clobbered %edx instead of
	stack.  Use JUMPTARGET(syscall_error) in jump insn.

	* Makeconfig (+gccwarn): Add -Wbad-function-cast -Wconversion.

	* sysdeps/unix/i386/sysdep.h (ENTRY): Use ASM_GLOBAL_DIRECTIVE and
	ASM_TYPE_DIRECTIVE.
	(ASM_TYPE_DIRECTIVE): New macro; defined using `.type' #ifdef ELF.

	* sysdeps/unix/sysv/sysv4/linux/i386/sysdep.S (__syscall_error):
	Rewritten, #include'ing unix/i386/sysdep.S for most of the code.
	* sysdeps/unix/i386/sysdep.S [PIC]: Store into `errno' through the GOT.

	* configure.in (os=linux*): Use unix/sysv/sysv4 for $base_os,
	instead of unix/sysv.
	* sysdeps/unix/sysv/linux/{accept,connect,getsockname,rename,
	socketpair,waitpid,bind,getpeername,listen,setsid,wait4}.S: Moved
	to new directory sysdeps/unix/sysv/sysv4/linux.
	* sysdeps/unix/sysv/linux: Directory removed.
	* sysdeps/unix/sysv/i386/linux/{socket.S,sysdep.h,sysdep.S}: Moved
	to new directory sysdeps/unix/sysv/sysv4/linux/i386.
	* sysdeps/unix/sysv/linux/i386: Directory removed.

	Fixes to help Linux, inspired by drepper's work:
	* sysdeps/posix/utimes.c: New file.
	* sysdeps/generic/getdomain.c: New file.
	* sysdeps/i386/init-first.c: Removed gratuitous #include <hurd.h>.
	* sysdeps/generic/dl-sysdep.c: Include <unistd.h> and declare
	externals _dl_argc, _dl_argc, and _environ.

Fri Jul 21 12:57:29 1995  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/socket.c (socket): Consider MIG_BAD_ID and
	EOPNOTSUPP as indications that the server has died.
	* sysdeps/mach/hurd/pipe.c (__pipe): Likewise.
	* sysdeps/mach/hurd/socketpair.c (socketpair): Likewise.

Mon Jul 17 08:45:40 1995  Jim Meyering  (meyering@comco.com)

	* strtol.c: Portability changes from Uli Drepper.
	[!STDC_HEADERS && !defined(NULL)]: Define NULL.

Mon Jul 10 05:39:21 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/i386/init-first.c (init): Take just one arg,
	DATA for the entry SP; DATA[-1] is always the return address
	location.  In both cthreads and non-cthreads cases, use asm to
	force parameters into %eax and %ecx before return, and mutate
	DATA[-1] to return to specific asm code to set up the user from
	%eax and %ecx.
	[PIC] (_init): Caller changed.
	(__libc_init_first) [! PIC] (doinit): Use asm to effect call to init
	with SP unwound to argument data ptr.

Thu Jul  6 14:28:56 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/dl-sysdep.c (fmh): Fixed this kludge to work
	when 0x08000000 and up are not mapped.

	* Makerules (stamp$o-$(subdir) rule): Remove the timestamp file
	before touching it.
	(lib%.so): Use -Wl to get -soname to ld.

	* elf/dlsym.c: Pass final arg to _dl_lookup_symbol.

	* elf/Makefile (libdl.so): Pass $(LDFLAGS.so).

Tue Jun 20 02:18:19 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makerules (lib%.so: lib%_pic.a): Pass -soname switch giving the
	library's name including $(libprefix) and major version number.

	* locale/locale-ctype.c (allocate_arrays): Use xmalloc and bzero
	in place of xcalloc.

	* Makeconfig (prefix, exec_prefix, libprefix): Instead of
	`ifndef', use the $(origin) function to only set these if they are
	undefined, and not if they are defined to empty.

	* gnu-versions.h: New file.
	* features.h (__GNU_LIBRARY__): Increase value to 5.

Wed Jun 14 03:45:24 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdio/stdio.h (__validfp): Use ({...}) rather than a comma
	expression, to avoid gcc's "value computed is not used" warning.

	* libc-symbols.h (_elf_set_element): Give the set-element variable
	an `unused' attribute.

	* hurd/hurd/threadvar.h (__hurd_threadvar_location): Declare with
	__attribute__ ((__const__)).
	* hurd/hurd/signal.h (_hurd_self_sigstate): Likewise.

	* hurd/hurd/userlink.h (_hurd_userlink_link): Properly set
	LINK->resource.next->resource.prevp when appropriate, not
	LINK->resource.next->thread.prevp!!!

Tue Jun 13 15:45:10 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* configure.in (libc_cv_asm_set_directive): Make sure that the
	`.set' directive really worked by linking against a reference to
	the alias.

	* sysdeps/stub/init-first.c: Don't include <hurd.h>.
	[PIC] (soinit): Renamed to (global) _init.

Mon Jun 12 13:15:45 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* malloc/Makefile (gmalloc-routines): Remove valloc.
	(dist-routines): Add it here.

	* malloc/malloc.h [_MALLOC_INTERNAL] [emacs] (valloc): #define to
	emacs_loser_valloc to inhibit valloc declaration below.

	* Makerules (lib%.so: lib%_pic.a): Moved this rule to after
	installation rules.

	* sysdeps/mach/sysdep.h [HAVE_ELF] (ENTRY): Redefine this macro so
	it uses the `.type' directive, which is necessary for shared
	libraries to work properly.

Thu Jun  8 02:50:26 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/dl-load.c (_dl_map_object): Add MAP_INHERIT flag in mmap
	from zero fill.

	* elf/dl-lookup.c (_dl_lookup_symbol): Take new flag arg NOSELF;
	if nonzero, don't let *REF satisfy the reference itself.
	* elf/link.h (_dl_lookup_symbol): Add new arg NOSELF in decl.
	* sysdeps/i386/dl-runtime.c (_dl_runtime_resolve): Pass new arg to
	_dl_lookup_symbol.
	* elf/do-rel.h (elf_dynamic_do_rel): Pass new second arg of
	R->r_offset to RESOLVE callback.
	* elf/dl-reloc.c (_dl_relocate_object: resolve): Don't let *REF
	satisfy the reference itself if its value equals the reloc's
	offset.

	* elf/rtld.c (dl_main): Write a newline in fatal msg.

	* Makerules (lib%.so: lib%_pic.a): Pass $(LDFLAGS.so).

	* elf/rtld.c [! NDEBUG] (__assert_perror_fail): New function.

	* hurd/hurdstartup.c (_hurd_startup): Fancier kludge to guess phdr
	and user entry point addresses.

	* elf/dl-load.c (open_path): Don't do strlen on DIRPATH if it's null.
	(_dl_map_object): DT_RPATH value is relative to DT_STRTAB value.

	* Makerules (install-lib.so): Don't include libc.so.
	[$(build-shared)=yes] (install): Depend on the installed libc.so file.
	[$(build-shared)=yes] (install-no-libc.a): Make this, rather than
	install, depend on the installed $(install-lib.so) files.
	[$(build-shared)=yes] (install-lib.so): Append libc.so after that rule.

	* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): Add kludge to
	allocate high addresses to avoid random mappings appearing there.
	(mmap): Comment out mask; always pass zero.

Tue Jun  6 13:34:53 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/i386/dl-machine.h (ELF_MACHINE_USER_ADDRESS_MASK): New macro.
	* sysdeps/mach/hurd/dl-sysdep.c (mmap): Use it as mask in vm_map call.

	* elf/dl-error.c (_dl_catch_error): Clear *ERRSTRING and *OBJNAME
	when successful.

	* sysdeps/mach/hurd/dl-sysdep.c (threadvars): New static variable.
	(__hurd_threadvar_max, __hurd_threadvar_stack_offset): Define these
	variables, using the `threadvars' buffer.

	* elf/dl-reloc.c: Don't dereference L->l_prev when it's null.
	* sysdeps/i386/dl-runtime.c: Likewise.

	* elf/rtld.c (dl_main): Add missing NULL terminating argument in
	_dl_sysdep_fatal call.
	(__assert_fail): Likewise.

	* locale/Makefile (localedef-modules): Renamed ctype to
	locale-ctype so as not to conflict with the object file for
	ctype/ctype.c in the build directory.

Mon Jun  5 04:02:26 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/elf.h (ELFMAG): Use \177 instead of \x7f.  It seems GCC
	insists on seeing the following E as part of hex 7FE, and
	complaining that is wider than a byte.

Sun Jun  4 22:14:11 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/Makefile (sig): Added thread-self.
	* hurd/hurd.h: Declare hurd_thread_self.
	* hurd/thread-self.c: New file.

Thu Jun  1 12:17:52 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/rtld.c: Initialize RTLD_MAP.l_type.
	* elf/dl-reloc.c (_dl_relocate_object): Clear LAZY if relocating
	the dynamic linker itself.
	* sysdeps/i386/dl-machine.h (elf_machine_rel): If MAP->l_type is
	lt_interpreter, first undo relocation done during bootstrapping.

Tue May 30 15:52:32 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* mach/Makefile (server-interfaces): Removed notify and
	device_reply.  For shlibs with eager binding, libmachuser.so must
	not refer to any functions not defined in libc.

Sat May 27 16:23:22 1995  Jim Meyering  (meyering@comco.com)

	* sysdeps/generic/memchr.c: Cast RHS to const unsigned char *
	to avoid error from Irix-4.0.5's C compiler.  From Kaveh Ghazi.

Fri May 26 13:00:08 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdsig.c (_hurd_internal_post_signal): Don't loop to check
	pending signals if the thread is in a critical section.  It will
	send us a msg when it finishes.

	* sysdeps/mach/hurd/pathconf.c: New file.
	* sysdeps/mach/hurd/fpathconf.c: New file.

	* sysdeps/mach/hurd/sigaction.c: Only notify the proc server for
	SIGCHLD when the SA_NOCLDSTOP bit actually changes.

Sun May 21 05:05:37 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/Makefile (ld.so): Use -nostartfiles in addition to
	-nostdlib.

Sun May 21 02:01:29 1995  Jim Meyering  (meyering@comco.com)

	* sysdeps/generic/memchr.c: Don't include <string.h> at all.
	HPUX-9.01 and IRIX-4.0.5 vendor C compilers get conflicting dcls for
	memchr unless one manually arranges for them to define __STDC__.

Fri May 19 17:16:46 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/i386/init-first.c: In cthreads case, handle
	args on stack from kernel.

	* posix/Makefile, sysdeps/alpha/Makefile,
	* sysdeps/mach/hurd/Makefile, sysdeps/sparc/Makefile, Makefile,
	* Makerules, Make-dist: Fix "cvs commit" cmds in rules to not fail
	in the absence of CVS dirs.

	* hurd/hurdstartup.c: Don't call __mach_init.  Grok args from the
	kernel on the stack properly.

	* set-init.c: Never call _init/_fini; just run __libc_subinit.

	* Makerules (LDFLAGS-c.so): Add -nostartfiles.
	* mach/Machrules (LDFLAGS-$(interface.so)): Likewise.

	* configure.in: Move defaulting of --with-elf and --with-gnu-*
	based on host os outside the AC_CACHE_VAL for the sysdirs
	calculation.

	* Makeconfig (localedir, nlsdir): New variables.

	* values.h: New file.
	* Makefile (headers): Add values.h.

	* locale/Makefile (distribute): Add error.h.
	* locale/localedef.c: Include "error.h".
	(main): Use error_message_count instead of warning_cntr.

Wed May 17 16:50:21 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	Merged 1003.2 locale and localedef programs by Ulrich Drepper.
	* locale/charmap.c: New file.
	* locale/collate.c: New file.
	* locale/config.h: New file.
	* locale/ctype.c: New file.
	* locale/ctypedump.c: New file.
	* locale/hash.c: New file.
	* locale/hash.h: New file.
	* locale/iso-4217.def: New file.
	* locale/keyword.gperf: New file.
	* locale/keyword.h: New file.
	* locale/libintl.h: New file.
	* locale/locale.c: New file.
	* locale/localedef.c: New file.
	* locale/localedef.h: New file.
	* locale/locfile-lex.c: New file.
	* locale/locfile-parse.c: New file.
	* locale/messages.c: New file.
	* locale/monetary.c: New file.
	* locale/numeric.c: New file.
	* locale/token.h: New file.

	* posix/regex.c, posix/regex.h: New files, incorporated from GNU regex.
	* posix/Makefile (headers): Add regex.h.
	(routines): Add regex.
	(gpl2lgpl): Add regex.c and regex.h.

Tue May 16 17:35:07 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/loadlocale.c: Expect macro LOCALE_PATH to be defined,
	instead of hard-coding "/share/locale".

Sat May 13 02:16:42 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* configure.in (os=gnu*): Always set elf=yes, not just for os=gnu*elf*.

Fri May 12 15:31:22 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/elf.h (ELFMAG, SELFMAG): New macros.

Fri May 12 11:24:53 1995  Michael I Bushnell  <mib@duality.gnu.ai.mit.edu>

	* hurd/alloc-fd.c (_hurd_alloc_fd): Don't reduce FIRST_FD in
	the case where it starts out less than _hurd_dtablesize.

Thu May 11 20:51:05 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/alloc-fd.c (_hurd_alloc_fd): When expanding the dtable,
	make sure the new size exceeds FIRST_FD.

Wed May 10 21:00:47 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/i386/sysdep.h (RETURN_TO): New macro.

Tue May  9 01:26:52 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makerules (install-lib.so): Add %.so for each %_pic.a.

	* sysdeps/i386/elf/start.S (__data_start): Define this symbol as
	the first thing in .data.

	* sysdeps/mach/_strerror.c (_strerror_internal): Eschew sprintf.

	* hurd/hurdstartup.h: New file.

	* sysdeps/i386/elf/start.S: Give two operands to `testl' when they
	are the same.  Use `jz' instead of `jeq'.

	* Makeconfig (config.make): Depend on config.status, and run it to
	update.
	(config.status): New target; depend on configure.
	If target (config.status) exists, run it with --recheck to update;
	if not, give error msg saying to run confiugre by hand.
	* Makerules [$(sysd-Makefile-sysdirs) != $(sysdirs)]
	(sysd-Makefile-force): Set this variable to FORCE in this case, to
	force a rebuild of sysd-Makefile.
	(sysd-Makefile): Depend on $(sysd-Makefile-force).
	Write into the file sysd-Makefile-sysdirs:=$(sysdirs).
	[$(sysd-rules-sysdirs) != $(sysdirs)] (sysd-rules-force): Set this
	variable to FORCE in this case, to force a rebuild of sysd-rules.
	(sysd-rules): Depend on $(sysd-rules-force).
	Write into the file sysd-rules-sysdirs:=$(sysdirs).

	* Makerules (LDFLAGS-c.so): Change ld option -interp to
	-dynamic-linker.

	* Makerules (do-install-program): New canned sequence.
	(install-bin, install-sbin): Use it.
	(install for lib*.so): Use it instead of $(do-install).
	Fix .so installation rules to handle lib*.so and *.so, deal with
	$(libprefix) right, and install *.so as *.so$($(*.so)-version);
	i.e. "libc.so-version = .1".

Mon May  8 05:10:25 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/do-rel.h: New file, split out of dynamic-link.h.
	* elf/Makefile (distribute): Add do-rel.h.

Sat May  6 11:06:47 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makeconfig (+gccwarn): Add -Winline.

	* hurd/hurdsig.c (_hurd_internal_post_signal): If SS->context is
	set, avoid abort_rpcs, and use reply and intr ports saved in
	SS->context.
	* sysdeps/mach/hurd/i386/trampoline.c: Don't set SS->intr_port
	from SS->context.  Don't clear SS->context.
	* sysdeps/mach/hurd/i386/sigreturn.c: Don't set SS->intr_port when
	setting SS->context.  If msg_sig_post returns, re-lock and clear
	SS->context.

Fri May  5 10:37:09 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* mach/Makefile (errsystems.c): Comment out generation rule.

	* sysdeps/mach/_strerror.c: Consider a system unknown if its
	bad_sub member is null.

	* mach/mig-alloc.c: Add weak alias to non-__ name.

Wed May  3 11:56:35 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/dup2.c: Fixed broken test in last change.

Tue May  2 01:52:58 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/dl-error.c (_dl_catch_error): Actually call the OPERATE
	function.  Duh.

	* hurd/Makefile (distribute): Added hurdstartup.h.
	* hurd/hurd.h: Remove _hurd_startup decl.

	* hurd/hurd/ioctl.h (_HURD_HANDLE_IOCTLS): Use __attribute__
	((__unused__)) instead of gratuitous self reference.

	* sysdeps/mach/hurd/dup2.c: Call _hurd_alloc_fd to expand the
	table if FD2 doesn't fit.

	* sysdeps/mach/hurd/getdtsz.c: Return the RLIM_NOFILE soft limit,
	not the current table size.

	* sysdeps/mach/i386/sysdep.h (SNARF_ARGS, CALL_WITH_SP): Rewritten.

	Implemented runtime dynamic linker to support ELF shared libraries.
	* elf/Makefile: Added rules to make ld.so and libdl.
	* elf/dl-error.c: New file.
	* elf/dl-fini.c: New file.
	* elf/dl-init.c: New file.
	* elf/dl-load.c: New file.
	* elf/dl-lookup.c: New file.
	* elf/dl-object.c: New file.
	* elf/dl-reloc.c: New file.
	* elf/dlclose.c: New file.
	* elf/dlerror.c: New file.
	* elf/dlopen.c: New file.
	* elf/dlsym.c: New file.
	* elf/dynamic-link.h: New file.
	* elf/link.h: New file.
	* elf/rtld.c: New file.
	* sysdeps/i386/dl-machine.h: New file.
	* sysdeps/stub/dl-machine.h: New file.
	* sysdeps/i386/dl-runtime.c: New file.
	* sysdeps/stub/dl-runtime.c: New file.
	* sysdeps/i386/elf/start.S: New file.
	* sysdeps/generic/dl-sysdep.c: New file.
	* sysdeps/mach/hurd/dl-sysdep.c: New file.
	* sysdeps/mach/hurd/i386/init-first.c: New file.
	* sysdeps/i386/init-first.c: New file.
	* sysdeps/stub/init-first.c: New file.

Mon May  1 18:48:30 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makerules (LDFLAGS-c.so): Add -interp and -e switches to make
	libc.so runnable.
	* version.c (__libc_print_version): Add "et al" and missing NL to
	author credit.

Sat Apr 29 15:46:57 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c (S_ISDIR): Define if undefined.

Thu Apr 27 01:24:09 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* configure.in: Unless --without-fp, prepend */fpu before each
	machine dir in $mach; don't prepend FPU dirs at end.  If
	--with-elf, prepend MACHINE/elf directories at end; don't insert
	them into $mach.

	* Makerules (dist): Filter out *.[cSs] from $(distribute) in deps.

	* sysdeps/stub/clock.c: Added stub warning.
	* sysdeps/stub/dirfd.c: Likewise.
	* sysdeps/stub/exc2signal.c: Likewise.
	* sysdeps/stub/fdopen.c: Likewise.
	* sysdeps/stub/flock.c: Likewise.
	* sysdeps/stub/fpathconf.c: Likewise.
	* sysdeps/stub/ftruncate.c: Likewise.
	* sysdeps/stub/gtty.c: Likewise.
	* sysdeps/stub/isatty.c: Likewise.
	* sysdeps/stub/killpg.c: Likewise.
	* sysdeps/stub/madvise.c: Likewise.
	* sysdeps/stub/mkstemp.c: Likewise.
	* sysdeps/stub/mktemp.c: Likewise.
	* sysdeps/stub/mprotect.c: Likewise.
	* sysdeps/stub/msync.c: Likewise.
	* sysdeps/stub/pathconf.c: Likewise.
	* sysdeps/stub/poll.c: Likewise.
	* sysdeps/stub/raise.c: Likewise.
	* sysdeps/stub/readv.c: Likewise.
	* sysdeps/stub/setenv.c: Likewise.
	* sysdeps/stub/setlogin.c: Likewise.
	* sysdeps/stub/sigaltstack.c: Likewise.
	* sysdeps/stub/sigintr.c: Likewise.
	* sysdeps/stub/sigstack.c: Likewise.
	* sysdeps/stub/sleep.c: Likewise.
	* sysdeps/stub/sstk.c: Likewise.
	* sysdeps/stub/stime.c: Likewise.
	* sysdeps/stub/stty.c: Likewise.
	* sysdeps/stub/syscall.c: Likewise.
	* sysdeps/stub/sysconf.c: Likewise.
	* sysdeps/stub/truncate.c: Likewise.
	* sysdeps/stub/ualarm.c: Likewise.
	* sysdeps/stub/usleep.c: Likewise.
	* sysdeps/stub/utimes.c: Likewise.
	* sysdeps/stub/writev.c: Likewise.

	* sysdeps/stub/libc_fatal.c: Remove __NORETURN keyword.

Wed Apr 26 16:06:42 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/loadlocale.c (_nl_free_locale): Do nothing if DATA is null.

Tue Apr 25 17:17:19 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob.c (glob): If GLOB_MARK set, stat names to find
	directories and append slashes to them in final pass before
	sorting.
	(glob_in_dir): If GLOB_MARK set, just allocate the extra char for the
	slash; never append it here.

Sat Apr 22 14:48:03 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* mach/Machrules [interface-library]
	(LDFLAGS-$(interface-library:lib%=%.so)): New variable, set to
	-nostdlib.

	* sysdeps/mach/hurd/fork.c: Subfunction `unlockss' removed.  Lock
	_hurd_siglock only around initial task creation in parent.  Use
	_hurd_critical_section_unlock at end.  Handle dead name rights
	properly, and deal with a send right dying while we try to copy
	it.  For the time being, use assert_perror for kernel and proc RPC
	failures.

Fri Apr 21 01:10:15 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* extra-lib.mk: Don't include $(o-iterator); construct it by hand
	using $(object-suffixes-$(lib)) instead.

	* sysdeps/mach/hurd/Makefile (LDLIBS-c.so): New variable.

	* Makerules (lib%.so: lib%_pic.a): Pass $(LDFLAGS-$(notdir $*).so).
	(LDFLAGS-c.so): New variable.

	* resolv/res_init.c (res_init): Don't clobber _res.options with
	RES_DEFAULT.  If RES_INIT is clear, OR in RES_DEFAULT.

	* hurd/hurd.h: Declare _hurd_startup.
	* hurd/hurdstartup.c: New file.
	* hurd/Makefile (routines): Add hurdstartup.

Thu Apr 20 22:23:58 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdsig.c: Use assert_perror for many calls which should
	never fail and previously were not checked.

	* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
	Point the return address for sigreturn's frame at a "hlt" insn so
	it will definitely crash if sigreturn returns.

Wed Apr 19 18:40:11 1995  Brendan Kehoe  (brendan@zen.org)

	* time/tzset.c (__tzname, __daylight, __timezone): Don't check
	HAVE_WEAK_SYMBOLS for doing weak_alias.

Wed Apr 19 18:12:56 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* configure.in: Move $os tests to set $elf et al earlier, before
	construction of $sysnames.  Instead of prepending MACHINE/elf to
	$sysnames, append &/elf after each elt appended to $mach.

Tue Apr 18 14:00:19 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* configure.in (libc_cv_asm_global_directive): New check to define
	ASM_GLOBAL_DIRECTIVE.
	* config.h.in: Add #undef ASM_GLOBAL_DIRECTIVE.
	* libc-symbols.h (strong_alias_asm, strong_alias): Use
	ASM_GLOBAL_DIRECTIVE on the alias.

	* sysdeps/unix/make_errlist.c (main): Don't generate "#ifdef
	HAVE_WEAK_SYMBOLS" #defns.

Mon Apr 17 12:02:49 1995  Brendan Kehoe  (brendan@zen.org)

	* sysdeps/alpha/strlen.c (strlen): Fix cmpbge insn, and returning
	of the byte that was zero, so we return a valid number.

Sun Apr 16 03:23:09 1995  Brendan Kehoe  (brendan@zen.org)

	* sysdeps/unix/bsd/ultrix4/mips/sysdep.h: New file defining
	NO_UNDERSCORES then using sysdeps/unix/mips/sysdep.h.

Fri Apr 14 18:49:03 1995  Brendan Kehoe  (brendan@zen.org)

	* sysdeps/ieee754/mpn2dbl.c (__mpn_construct_double)
	[BITS_PER_MP_LIMB == 64]: Refer to `u', not to non-existent `i'.
	* sysdeps/ieee754/mpn2ldbl.c (__mpn_construct_long_double)
	[BITS_PER_MP_LIMB == 64]: Likewise.

	* sysdeps/unix/bsd/osf/alpha/killpg.S (killpg): Add .end directive.
	* sysdeps/unix/bsd/osf/alpha/sigblock.S (__sigblock): Likewise.
	* sysdeps/unix/bsd/osf/alpha/sigsetmask.S (__sigsetmask): Likewise.
	* sysdeps/unix/bsd/osf/alpha/sigpause.S (__sigpause): Likewise.
	* sysdeps/unix/bsd/osf/alpha/sigvec.S (__sigvec): Likewise.
	* sysdeps/unix/bsd/osf/alpha/getdents.S (__getdirentries): Likewise.
	* sysdeps/unix/bsd/osf/alpha/fork.S (__fork): Likewise.
	* sysdeps/unix/bsd/osf/alpha/pipe.S (__pipe): Likewise.
	* sysdeps/unix/bsd/osf/alpha/recv.S (recv): Likewise.
	* sysdeps/unix/bsd/osf/alpha/send.S (send): Likewise.
	* sysdeps/unix/bsd/osf/alpha/vhangup.S (vhangup): Likewise.

	* sysdeps/unix/mips/brk.S (__brk, __curbrk): Add .end directive.
	* sysdeps/unix/mips/fork.S (fork): Likewise.
	* sysdeps/unix/mips/pipe.S (fork): Likewise.
	* sysdeps/unix/mips/sigreturn.S (__sigreturn): Likewise.
	* sysdeps/unix/mips/sysdep.S (sysdep_error): Likewise.
	* sysdeps/unix/mips/wait.S (__handler): Likewise.
	* sysdeps/mips/setjmp.S (__sigsetjmp): Likewise.
	* sysdeps/mips/bsd-setjmp.S (setjmp): Likewise.
	* sysdeps/unix/bsd/ultrix4/getsysinfo.S (getsysinfo): Likewise.
	* sysdeps/unix/bsd/ultrix4/wait3.S (waitpid): Likewise.
	* sysdeps/unix/bsd/ultrix4/waitpid.S (waitpid): Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/__handler.S (__handler): Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/sigvec.S (__raw_sigvec): Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/start.S (__start): Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/vfork.S (vfork): Likewise.
	* sysdeps/mips/bsd-_setjmp.S (setjmp): Likewise.  Use `$0'
	instead of `zero' for the li instruction.

	* sysdeps/unix/bsd/osf/alpha/start.S: Change comments to be
	preprocessor comments, not assembler comments.
	* sysdeps/unix/bsd/osf/alpha/brk.S: Likewise.
	* sysdeps/unix/bsd/osf/alpha/sysdep.h (NO_UNDERSCORES): Define.

Fri Apr 14 15:53:46 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* malloc/malloc.c (register_heapinfo) [__GNUC__]: Use __inline__
	in place of inline.

Thu Apr 13 09:45:01 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (distribute): Add ChangeLog.[0-9].

	* configure.in: Add check for .set directive.
	* config.h.in: Add #undef HAVE_ASM_SET_DIRECTIVE.
	* libc-symbols.h [! HAVE_ASM_SET_DIRECTIVE] (strong_alias,
	strong_alias_asm): Use `foo = bar' syntax instead.

	* Makerules [! subdir] (O%-lib): Don't prepend ../.

	* sysdeps/generic/expm1.c: #undef expm1 before weak_alias.

	* configure.in: Fix AC_ARG_WITH uses; check for --with-fp.  Move
	$host_os checks to set gnu_ld/as and elf before sysdirs
	generation.  Fix $with_fp test.
	[$elf=yes]: Prepend MACHINE/elf directory.

	* elf/libelf.h (elf_hash): Use XOR instead of ANDN when the bits
	being cleared are already known to be set.  Thanks Ulrich.

Wed Apr 12 23:27:22 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/environ.c: Add weak alias `_environ'.

Tue Apr 11 20:38:55 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/i386/add_n.S [PIC]: Use self-call to avoid generating reloc.
	* sysdeps/i386/sub_n.S [PIC]: Likewise.

Mon Apr 10 14:53:15 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* libc-symbols.h (_elf_set_element) [PIC]: Don't make the element
	word `const'.

	* Makeconfig (CPPFLAGS, CFLAGS): Fix swapped references to
	$(foo-$(suffix $@)).

	* manual/Makefile (chapters-incl): Filter out summary.texi.

	* stdlib/strtod.c (STRTOF): Use extra macro to make STRTOF's #defn
	a weak symbol instead of literal "STRTOF".

	* locale/setlocale.c: Work around ld bug: don't weakify refs to
	_nl_{current,C}_*.

Sun Apr  9 01:24:33 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makerules (+depfiles): Translate %.so to %.o in $(extra-objs).

	* malloc/free.c [emacs] (__malloc_safe_bcopy): Define to safe_bcopy.
	* malloc/realloc.c (__malloc_safe_bcopy): Undefine before defining.

	* malloc/free.c (memmove, __malloc_safe_bcopy): Do include these
	#ifdef emacs, but only #ifndef memmove.
	* malloc/realloc.c [emacs] (__malloc_safe_bcopy): Just #define to
	safe_bcopy.
	(memmove): Define only if undefined.

Sat Apr  8 00:40:59 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* extra-lib.mk (install-lib, extra-objs, alltypes-$(lib)): Make
	sure these are simply-expanded variables.

	* locale/loadlocale.c (_nl_load_locale): Use MAP_INHERIT flag in
	mmap call.

	* configure.in (os=freebsd*|bsdi*): Set base_os=unix/bsd/bsd4.4
	for these too.

	* sysdeps/unix/sysv/tcsetattr.c: Use |= instead of = to properly
	set c_oflag value.

	* Makeconfig [! objpfx] (csu-objpfx): Add trailing slash.

	* locale/Makefile (categories): Uncomment collate.
	* locale/lc-collate.c: New file.

	* malloc/free.c (__malloc_safe_bcopy, memmove): Don't define
	#ifdef emacs.
	* malloc/realloc.c: Likewise.

	* stdio/_itoa.h (_EXTERN_INLINE): Define if undefined.
	(_itoa): Use it in defn.
	* stdio/_itoa.c (_EXTERN_INLINE): Define to empty before #include
	"_itoa.h".
	(_itoa): Function removed.

	* malloc/free.c: Remove use of `assert'.

	* malloc/realloc.c [! emacs] (safe_bcopy): Renamed to
	__malloc_safe_bcopy; #define safe_bcopy.
	* malloc/free.c: Cope with systems lacking `memmove'.
	(_free_internal): Cast result of _malloc_internal.

Wed Apr  5 00:13:45 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdinline.c: Include signal.h first, so we don't define
	its inlines too.

	* sysdeps/unix/sysv/sysv4/sigset.h (__sigfillset): Use ~0L instead
	of -1 to avoid compiler warning.

	* configure.in (host_os=linux*): Set elf=yes for this, not just
	linux*elf*.

	* misc/login_tty.c [! TIOCSCTTY]: Try an emulation using ttyname
	and open.

	* sysdeps/i386/bsd-_setjmp.S: Fix typo in name: setjmp -> _setjmp.

Tue Apr  4 00:48:53 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/start.c: Remove spurious decl and #endif.

	* misc/progname.c (program_invocation_name,
	program_invocation_short_name): Make these initialized data
	definitions.

	* sysdeps/mach/hurd/setitimer.c (fork_itimer): Add self reference
	so gcc doesn't optimize out the function entirely.

Sun Apr  2 13:13:52 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/execvp.c: Don't use stat to search path; just try execv
	until it works.

	* sysdeps/mach/hurd/i386/trampoline.c: Add a link to
	SS->active_resources, so that _hurdsig_longjmp_from_handler will
	be called when a longjmp unwinds the signal frame.
	* sysdeps/mach/hurd/i386/sigreturn.c: Remove the link on the
	SS->active_resources chain added by _hurd_setup_sighandler.
	* hurd/sigunwind.c: New file.
	* hurd/Makefile (sig): Add sigunwind.

	* Makerules (lib%.so: lib%_pic.a): Remove dir name from $*.

	* MakeTAGS (tags-sources): Include $(all-dist).
	[subdir] (all-dist): Define to $(distribute).

Sat Apr  1 00:08:06 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makerules (lib%.so: lib%_pic.a): Pass -L options for subdir and
	parent objdirs.

	* extra-lib.mk (object-suffixes-$(lib)): New variable, produced by
	filtering out $($(lib)-inhibit-o); use that instead of
	$(object-suffixes) in all the other variables.

	* locale/loadlocale.c (_nl_load_locale) [MAP_FILE]: Define it zero
	if undefined.

	* string/strxfrm.c: Just copy the string (for now).
	* string/strcoll.c: Just call strcmp (for now).

	* mach/Makefile (lock): Add mutex-init.
	* mach/mutex-solid.c (_cthread_mutex_lock_routine,
	_cthread_mutex_unlock_routine): Variables removed.
	(__mutex_lock_solid, __mutex_unlock_solid): Don't use them; just stub.
	(__mutex_init): Function moved to new file mutex-init.c.
	* mach/mutex-init.c: New file, broken out of mutex-solid.c.

Thu Mar 30 20:43:02 1995  Brendan Kehoe  <brendan@zen.org>

	* sysdeps/mips/__longjmp.c (__longjmp): Take out CONST.
	* sysdeps/alpha/__longjmp.c (__longjmp): Take out const.

Thu Mar 30 01:38:00 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/elf.h (STN_UNDEF): New macro (distinct from SHN_UNDEF, though
	both are zero).

Wed Mar 29 11:26:48 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/dlfcn.h: New file.

	* Make-dist (README): Commit it to CVS if there is a CVS directory.

	More changes from Germano Caronni <caronni@tik.ethz.ch>:
	* malloc/free.c: Relocate _heapinfo when that allows us to return
	core to the system.

	* malloc/malloc.c: Move #include <errno.h> outside #ifndef
	_MALLOC_INTERNAL.

Mon Mar 27 02:23:15 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* mach/Makefile (headers): Add mach/mach_traps.h.

	* Makerules ($(installed-libcs) rule): Fix typos.

	* sysdeps/unix/bsd/bsd4.4/revoke.S: New file.
	* sysdeps/stub/revoke.c: New file.
	* misc/Makefile (routines): Add revoke.
	* posix/unistd.h [__USE_BSD] (revoke): Declare it.
	* sysdeps/generic/pty.c (openpty, forkpty): Declare return types.
	(forkpty): Declare login_tty.
	* misc/logwtmp.c (logwtmp): Declare to return void.
	* misc/login_tty.c (login_tty): Include unistd.h.  Declare return type.

	* posix/unistd.h [__USE_BSD] (ttyslot): Declare it.

	* posix/unistd.h [__USE_BSD] (L_SET, L_INCR, L_XTND): Define
	unless L_SET already defined.
	* misc/sys/file.h (L_SET, L_INCR, L_XTND): Don't define if L_SET
	already defined.

	Incorporated -lutil library from 4.4-Lite.
	* misc/Makefile (extra-libs, libutil-routines): New variables.
	* misc/login.c, misc/login_tty.c, misc/logout.c, misc/logwtmp.c,
	sysdeps/generic/pty.c: New files for -lutil incorporated from 4.4-Lite.

	Support simple, light-weight unwind-protect mechanism for longjmp.
	* setjmp/longjmp.c: Call _longjmp_unwind first thing.
	* sysdeps/mach/hurd/jmp-unwind.c: New file.
	* sysdeps/stub/jmp-unwind.c: New file.
	* sysdeps/i386/jmp_buf.h (_JMPBUF_UNWINDS): New macro.
	* sysdeps/mips/jmp_buf.h (_JMPBUF_UNWINDS): New macro.
	* setjmp/Makefile (routines): Add jmp-unwind.
	* hurd/hurd/userlink.h (struct hurd_userlink): Move `next' and
	`prevp' members into new substructure `resource'; add another such
	substructure `thread' and members `cleanup' (function ptr) and
	`cleanup_data' (generic ptr).
	(_hurd_userlink_link, _hurd_userlink_unlink): Insert/remove LINK
	into the `_hurd_self_sigstate ()->active_resources' list via the
	`thread' substructure.
	* hurd/hurd/port.h (_hurd_port_cleanup): Declare it.
	(_hurd_port_locked_get): Set LINK->cleanup to _hurd_port_cleanup and
	LINK->cleanup_data' to the port extracted.
	* hurd/hurd/signal.h (struct hurd_sigstate): New member
	`active_resources'.
	* hurd/port-cleanup.c: New file.
	* hurd/Makefile (routines): Add port-cleanup.

	* malloc/malloc.c: Include errno.h.

Sat Mar 25 18:24:21 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/loadlocale.c (_nl_load_locale): Avoid */ inside comment.

Fri Mar 24 02:35:37 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* misc/Makefile (headers): Add utmp.h.
	* misc/utmp.h: New file, incorporated from 4.4-Lite.

	* stdio/printf-parse.h: New file, mostly written by drepper.
	* stdio/vfprintf.c: Rewritten, mostly by drepper.
	* stdio/printf-prs.c: Rewritten.
	* stdio/Makefile (distribute): Add printf-parse.h.

Thu Mar 23 22:03:44 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/start.c [! NO_UNDERSCORES]: Don't declare _start
	with asm name.  Just do a ".set start, __start".

	* malloc/realloc.c: Call _free_internal instead of free.

Tue Mar 21 00:14:27 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/loadlocale.c (_nl_load_locale): If LOCALE/LC_* is a
	directory, open LOCALE/LC_*/SYS_LC_* instead.

Mon Mar 20 03:19:23 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdio/fpioconst.c, stdio/fpioconst.h, stdio/gmp-impl.h,
	stdio/gmp.h, stdio/longlong.h, stdio/mp_clz_tab.c,
	stdio/gen-mpn-copy: Files moved to stdlib.
	* stdio/Makefile: All mpn stuff moved to stdlib/Makefile.
	* stdlib/Makefile: All the mpn stuff moved here from stdio/Makefile.
	* stdio/printf_fp.c: Use ../stdlib to find fpioconst.h and gmp
	headers.
	* stdlib/strtod.c: Don't use ../stdio to find fpioconst.h and gmp
	headers.

	* Makefile (parent-mostlyclean): Don't use $(libc.a).
	(parent-clean): Use $(objpfx) to find sysd-*.
	* Rules (generated): Append dummy.o dummy.c.
	* Makerules (lib): Depend on lib-noranlib.
	(lib-noranlib): Depend on $(install-lib) in objdir.
	(common-mostlyclean): Remove $(install-lib) and stub-$(subdir)
	from objdir.  Don't remove TAGS; it comes in the distribution.

	* malloc/malloc.c (morecore): Save errno around call to
	_realloc_internal.  Don't account for the additional new blocks of
	the info table itself when choosing the new table size for the
	first crack; if it succeeds, the new blocks will have been found
	in existing free space already described by the existing info
	table.

	* stdio/vfscanf.c (%n): Use READ_IN - 1, so as not to count the
	read-ahead character.

Sat Mar 18 14:07:08 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/dtable.c, hurd/getdport.c, hurd/hurd.h, hurd/hurdexec.c,
	  hurd/hurdinit.c, hurd/hurdprio.c, hurd/hurdsock.c,
	  hurd/ports-get.c, hurd/ports-set.c, hurd/setauth.c,
	  hurd/setuids.c, sysdeps/mach/hurd/i386/trampoline.c:
	Get anal with unsigned to pacify compiler.

	* stdio/vfscanf.c: Grok positional parameter specs (i.e. %3$d
	means %d from 3rd arg).

	* sysdeps/mach/hurd/closedir.c: Include hurd/fd.h.

	* stdlib/strtol.c: If !GROUP, set END to null.  In loop, test only
	END, not GROUP.

Fri Mar 17 12:58:37 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (subdirs): Put elf last.

	* sunrpc/Makefile (install-lib): Variable removed.
	(rpcsvc-objs): Variable removed.
	(extra-objs): Don't include $(rpcsvc-objs).
	(extra-libs): New variable, contains librpcsvc.
	(librpcsvc-routines): New variable.
	(librpcsvc-inhibit-o): New variable, contains .so.
	(omit-deps): Set this to $(librpcsvc-routines).
	($(objpfx)rpcgen): Don't use $(libc.a).
	(lib, $(objpfx)librpcsvc.a): Targets removed.

	* o-iterator.mk, extra-lib.mk: New files.
	* Makerules (o-iterator): New variable.
	[extra-libs]: Include extra-lib.mk to generate rules for each word
	of $(extra-libs).
	* Makefile (distribute): Add extra-lib.mk, o-iterator.mk.

Fri Mar 17 13:28:04 1995  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* sysdeps/ieee754/ldbl2mpn.c (__mpn_extract_long_double):
	Handle 80-bit denormalized numbers correctly.

	* stdlib/strtod.c, stdlib/strtof.c, stdlib/strtold.c:
	(IMPLICIT_ONE, *_MAX_10_EXP_LOG): Macros removed; no longer needed.
	* stdlib/strtod.c (RETURN): Add parentheses around return value.
	(round_and_return): Correct handling of denormalized numbers.

	* stdio/fpioconst.c, stdio/fpioconst.h: Don't use
	LDBL_MAX_10_EXP_LOG; LAST_POW10 defines the maximal available
	exponent.

Thu Mar 16 00:04:41 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/C-ctype.c: New correct data generated by drepper.

	* Rules: Don't use $(libc.a).

	Parsing of grouped numbers contributed by Ulrich Drepper.
	* stdlib/strtol.c (__strtol_internal): Renamed from strtol.  Take
	new flag arg; if nonzero, parse locale-dependent thousands
	grouping and interpret only the prefix that is correctly grouped.
	(strtol): Define this to call _strtol_internal with zero for the flag.
	Use a weak symbol for the definition.
	* stdlib/strtod.c (strtod, __strtod_internal): Likewise.
	Check for the exponent of the number overflowing the float format.
	* stdlib/stdlib.h (__strtof, __strtold): Declarations removed.
	(__strto{f,d,ld,l,ul,q,uq}_internal): Declare these functions.
	[__OPTIMIZE__]: Define inline functions calling those.
	* stdlib/strtold.c (STRTOF): Set to strtold, not __strtold.
	(strtold): Remove weak alias.
	* stdlib/strtof.c (STRTOF): Set to strtof, not __strtof.
	(strtof): Remove weak alias.
	* stdlib/grouping.h: New file, written by drepper.
	* stdlib/Makefile (distribute): Add grouping.h.
	* stdio/vfscanf.c: Grok %' modifier to numeric conversions.  Call
	__strtoX_internal with the grouping flag set iff the modifier is
	present.

Wed Mar 15 00:40:54 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/generic/memchr.c: Fix typos: limit.h -> limits.h.

	* mach/Machrules: Produce static deps for all object flavors.
	[interface-library]: Remove all these variables and rules.
	($(interface-library)-routines): Define this variable.
	(extra-libs): Append $(interface-library) to this.
	* mach/Makefile (interface-library): Omit .a suffix.
	* hurd/Makefile: Likewise.

Tue Mar 14 23:40:31 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdio/internals.c (flushbuf): If !FLUSH_ONLY, don't skip out
	early if no new data in buffer after priming.

Mon Mar 13 01:48:16 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makerules (object-suffixes, libtypes): Move all these variables
	to Makeconfig.
	* Makeconfig (object-suffixes, libtypes): Moved here from Makerules.

	* Makerules (build-extra-lib): New canned sequence.

	* sysdeps/mach/hurd/euidaccess.c: Include fcntl.h.  Declare ERR;
	fix uses of FILE and PORT.  Remove bogus weak alias for `access'.

	* sysdeps/mach/hurd/dirfd.c: Include hurd/fd.h and errno.h.
	Add missing semicolon.
	* sysdeps/mach/hurd/opendir.c: Include hurd/fd.h.  Use a `struct
	hurd_fd *' temp var, since DIRP->__fd is a `void *'.
	* sysdeps/mach/hurd/readdir.c: Include hurd/fd.h.

	* stdlib/wcstombs.c: #if 0 out code for non-ASCII chars until the
	locale data format is implemented.

	* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
	Pass &__sigreturn on the stack to the trampoline code, so it is
	not position-dependent.

	* stdio/printf_fp.c (NDEBUG): Define this to disable assert.
	Don't include <stdarg.h>.
	(__printf_fp): Last arg ARGS is now `const void **const';
	dereference ARGS[0] instead of using va_arg.

	* locale/setlocale.c: In LC_ALL case, initialize CATEGORY before
	loop to install data.

	* locale/loadlocale.c (_nl_category_num_items): Use _NL_ITEM_INDEX
	to extract number from item code.
	(_nl_load_locale): Close the descriptor when finished.

	* malloc/realloc.c (_realloc_internal): Call _malloc_internal in
	place of malloc.

	* time/tzfile.c (__tzfile_default): Initialize RULE_STDOFF to zero.

	* stdio/printf_fp.c (group_number): Cast *GROUPING to unsigned int
	to avoid warning.
	* sysdeps/generic/sigset.h (__SIGSETFN): Cast result of sizeof to
	int to avoid warning.

	Support building several flavors of objects and libraries.
	* Makerules (libtypes, object-suffixes): New variables.
	(libtype.*, CFLAGS-*, CPPFLAGS-*): New variables for each object
	suffix.
	(CFLAGS, CPPFLAGS): Append $(C{,CPP}FLAGS-$(suffix $@)).
	(%.so, %.po, %.go): New compilation rules for %.S, %.s, %.c.
	(close-check-inhibit-asm): Append a semicolon.
	(sysd-rules): Generate rules for each object suffix.
	(compile.S, compile.c): Always assume gcc.
	(OUTPUT_OPTION): Define unconditionally.
	(+make-deps): In generated rule, produce a dependent for each
	object suffix.
	(.SUFFIXES): Add $(object-suffixes) in place of .o.
	(.PRECIOUS): Make all suffix flavors precious.
	($(libc.a)): Target removed.
	(lib): Depend on each enabled libtype.
	(libobjs, objects, objs): Depend on all the enabled object flavors.
	(lib%.a): New pattern rule.
	[$(build-shared)=yes] (lib%.so: lib%_pic.a): New pattern rule.
	(stamp-$(subdir)): Rewritten to a pattern rule for stamp.%-$(subdir)
	to make one for each flavor; library dep rule likewise rewritten.
	($(libc.a)(__.SYMDEF)): Target replaced with one target for each
	flavor.
	(symdef.%): New pattern rule; helper for __.SYMDEF targets.
	(installed-libcs): New variable.
	(install): Depend on that instead of
	$(libdir)/lib$(libprefix)$(libc-name).a;
	that file's rule rewritten to make each enabled libtype.
	(install-lib.so): New variable, filters lib%.so from $(install-lib).
	(install-lib): Filter out lib%.so after setting install-lib.so.
	[$(build-shared)=yes] (install): Install $(install-lib.so).
	(common-mostlyclean): Remove all flavors of objects.
	* Makefile ($(libc.a)(__.SYMDEF)): Target removed.
	[$(build-shared)=yes] (lib): Depend on $(common-objpfx)libc.so.

Sun Mar 12 18:21:10 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/stub/ulimit.c: Don't include gnu-stabs.h.
	* sysdeps/stub/pause.c: Likewise.
	* sysdeps/stub/time.c: Likewise.

	* stdlib/mbtowc.c: #if 0 out code for non-ASCII chars until the
	locale data format is implemented.
	* stdlib/wctomb.c: Likewise.

	* mach/Makefile ($(objpfx)errsystems.c): Reenable this rule; the
	gcc bug is fixed.
	* mach/errsystems.c: File removed.

	* Makeconfig (libc.a): Variable removed.
	(+link): Don't use it.

	* configure.in (AC_ARG_ENABLE calls): Use $enableval instead of
	assuming `yes'.

	* malloc/malloc.h (_malloc_internal, _realloc_internal): Declare these.
	* malloc/realloc.c (_realloc_internal): Renamed from realloc;
	don't use __realloc_hook.
	(realloc): New function; call __realloc_hook ?: _realloc_internal.
	* malloc/malloc.c (_malloc_internal): Renamed from malloc;
	don't use __malloc_hook.
	(malloc): New function; call __malloc_hook ?: _malloc_internal.
	Changes from Germano Caronni <caronni@tik.ethz.ch>:
	(initialize): Set up _heaplimit to cover the _heapinfo table.
	(morecore_recursing): New static variable.
	(morecore): If that is set, return null immediately.
	When growing the info table, before getting new core from the
	system for it, set morecore_recursing and try moving _heapinfo
	with _realloc_internal.  When that fails and we get new core, set
	_heaplimit to cover the core for the new _heapinfo table.
	(register_heapinfo): New function.  Record the _heapinfo table's
	own blocks in that table and in the statistics variables.
	(initialize, _malloc_internal): Use it after allocating new table.

Fri Mar 10 22:26:28 1995  Jim Meyering  (meyering@comco.com)

	* sysdeps/generic/memchr.c: Remove ansidecl.h and clean up for use
	by other packages.
	[LONG_MAX <= LONG_MAX_32_BITS]: Don't compile 64-bit code.

Fri Mar 10 13:31:29 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* mach/errorlib.h (errors): Use const for decl.

	* time/tzfile.c (uc2ul, _uc2ul): Macros removed.
	(decode): New inline function; decode signed 32-bit integers, and
	sign-extend properly when long is longer than 32 bits.
	(__tzfile_read): Changed all uses of uc2ul to decode.
	Decode the transition times properly when sizeof (time_t) > 4.

	* stdio/printf.h: Doc fixes.  Don't #include <stddef.h>.
	(printf_function): Make last arg ARGS a vector of pointers instead of a
	pointer to va_list.

Fri Mar 10 13:46:25 1995  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>

	* stdio/vfprintf.c [USE_IN_LIBIO] (PAD): Use return value of _IO_padn.
	(buffered_vfprintf): Remove line buffer when flush failed.

Fri Mar 10 00:04:55 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* time/tzfile.c (struct ttinfo): New member `isgmt'.
	(__tzfile_read): Read isgmt flags for each type.
	(__tzfile_default): When using TZDEFRULES DST rules, adjust
	transition times according to the isstd and isgmt flags for the
	types of each transition, and adjust each transition to point to
	type index either 0 or 1.  Reset type indices 0 and 1 to describe
	the user's settings.

Thu Mar  9 22:29:03 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/categories.def (LC_CTYPE): Merge CLASS_EB and CLASS_EL
	into just CLASS.  Add standard/optional flag to all items.

	* locale/localeinfo.h (_NL_CURRENT_DEFINE): Fix typo.

	* ctype/ctype.h [__BYTE_ORDER == __LITTLE_ENDIAN] (_ISbit):
	Rearrange defn to satisfy compiler.

	* locale/localeinfo.h: Declare _nl_current.

	* configure.in: Use AC_CHECK_TOOL for CC, AR, RANLIB.  Accept args
	--enable-shared, --enable-profile, --enable-omitfp; pass settings
	through to config.make.
	* config.make.in (build-shared, build-profile, build-omitfp): New
	config vars.

	* elf/elf.h (STN_UNDEF): Renamed to SHN_UNDEF (typo).
	(DT_NUM): New macro.

	* locale/nl_langinfo.c: Include errno.h and stddef.h.  Fix typos.

	* locale/lc-ctype.c (_nl_postload_ctype): Fix macro insanity.

	* locale/loadlocale.c (_nl_load_locale) [! MAP_COPY]: Define
	MAP_COPY to MAP_PRIVATE.

Thu Mar  9 17:16:53 1995  Brendan Kehoe  (brendan@zen.org)

	* sysdeps/alpha/divrem.m4: Undefine `ret' to avoid the definition
	that's used inside the alpha sysdep.h.

	* sysdeps/alpha/__longjmp.c (__longjmp): Remove obsolete __NORETURN
	keyword.
	* sysdeps/alpha/__math.h (__copysign): Remove obsolete __CONSTVALUE.

	* configure.in: Match `osf*', not `osf1*'.
	* configure: Likewise.
	* sysdeps/unix/bsd/osf: Renamed from `sysdeps/unix/bsd/osf1'.

Wed Mar  8 13:38:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/configure.bat: Fixes from DJ.

	* time/backward, time/europe, time/northamerica, time/pacificnew,
	time/zdump.c, time/zic.c, time/tzfile.h, time/private.h,
	time/ialloc.c: Code and data updated from ADO's 95b.
	* time/emkdir.c: File removed.
	* time/Makefile (distribute, extra-objs, zic): Omit it.

	* time/localtime.c: Deansideclized.  Never #define __tzname et al
	to non-__ names.

	* locale/lc-ctype.c (__ctype_tolower, __ctype_toupper): Use int *
	instead of short int *.
	* ctype/ctype-info.c: Likewise.
	* ctype/ctype.h: Likewise.

	* locale/langinfo.h (_NL_CTYPE_CLASS): Use this (just one) instead
	of EB and EL versions.

Mon Mar  6 12:34:56 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* ctype/ctype.h (_ISbit): New macro, defined dependent on byte order.
	(_IS* enum): Use _ISbit to produce values.

Sun Mar  5 19:40:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* locale/localeinfo.h: Rewritten for new locale system, using
	locale data files and with <langinfo.h> interface.
	* locale/setlocale.c: Rewritten to use locale data files.
	* langinfo.h: New file.
        * locale/langinfo.h: New file.
        * locale/nl_langinfo.c: New file.
        * locale/loadlocale.c: New file.
        * locale/lc-ctype.c: New file.
        * locale/lc-messages.c: New file.
        * locale/lc-monetary.c: New file.
        * locale/lc-numeric.c: New file.
        * locale/lc-time.c: New file.
        * locale/categories.def: New file.
	* locale/Makefile (headers): Remove localeinfo.h.
	(distribute): New variable; put localeinfo.h here, and categories.def.
	(routines): Add loadlocale.
	(categories): New variable.
	(aux): Use that to get C-category and lc-category.
	* ctype/ctype.h (_IS*): Use independent bits for all but _ISalnum.
	* ctype/ctype-info.c: For initial tables, use
	_nl_C_LC_CTYPE_{class,toupper,tolower} constant tables defined in
	locale/C-ctype.c.
	* locale/C-ctype.c, locale/C-messages.c: New files.
	* locale/C-monetary.c, locale/C-numeric.c, locale/C-time.c:
	Default "C" locale data updated for new locale system.
	* locale/C-collate.c: File removed.
        * locale/C-ctype_ct.c: File removed.
        * locale/C-ctype_mb.c: File removed.
        * locale/C-response.c: File removed.
	* locale/localeconv.c: Use _NL_CURRENT macro to access locale data.
	* stdio/printf_fp.c, stdio/vfprintf.c, stdio/vfscanf.c,
	  stdlib/strtod.c, time/asctime.c, time/strftime.c:
	Include ../locale/localeinfo.h and use _NL_CURRENT macro to access
	locale data.
	* time/localtime.c: Don't include <localeinfo.h>.
	* time/tzset.c: Don't use locale items for default TZ value or
	"GMT" string (use "UTC").

	* stdio/vfprintf.c [USE_IN_LIBIO] (PAD): Only call the function if
	WIDTH>0; update DONE.

	* malloc/malloc.c (morecore): Fix last change to calculate by
	blocks instead of bytes.

Fri Mar  3 12:24:52 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/generic/sys/mman.h (__mmap, __munmap): Declare these.
	* sysdeps/unix/sysv/irix4/sys/mman.h: Likewise.
	* sysdeps/unix/bsd/ultrix4/sys/mman.h: Likewise.
	* sysdeps/unix/bsd/osf1/sys/mman.h: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/sys/mman.h: Likewise.
	* sysdeps/stub/munmap.c (munmap): Rename to __munmap, add weak
	alias munmap.
	* sysdeps/unix/mman/munmap.S: Likewise.
	* sysdeps/mach/munmap.c: Likewise.
	* sysdeps/mach/hurd/mmap.c (mmap): Rename to __mmap, add weak
	alias mmap.
	* sysdeps/unix/mman/mmap.S: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/mmap.c: Likewise.
	* sysdeps/stub/mmap.c: Likewise.

	* sysdeps/unix/bsd/setsid.c: Use __getpgid instead of __getpgrp.

	* sysdeps/unix/dirfd.c: #undef dirfd before function defn.

Thu Mar  2 12:15:24 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* misc/search.h: Add missing semicolon.

	* sysdeps/unix/dirfd.c: Fix typo.

	* sysdeps/generic/sys/mman.h (mmap): Use __off_t instead of off_t
	in decl.

	* stdio/vfscanf.c (%c): In no-assign case, fix loop to decrement
	WIDTH before test.

Wed Mar  1 00:57:47 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdlib/strtod.c: Fixes from drepper.
	[IMPLICIT_ONE]: New macro, one for IEEE754 formats.
	* stdlib/strtold.c [IMPLICIT_ONE]: New macro, 0.
	* stdlib/strtof.c [IMPLICIT_ONE]: New macro, 1.

	* stdio/vfprintf.c: Correctly notice Z modifier.

	* misc/search.h: New file.
	* misc/Makefile (headers): Add search.h.
	* misc/insremque.c: Include search.h.
	(struct qelem): Type removed.

Mon Feb 27 07:00:57 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* elf/libelf.h: New file.
	* elf/elf_hash.c: New file.

Sun Feb 26 15:51:00 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	Changes from Germano Caronni <caronni@tik.ethz.ch>:
	* malloc/malloc.c (morecore): Account in NEWSIZE for the
	malloc_info structures for each new block.

Sat Feb 25 02:17:52 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/kill.c: When the process has no message port
	registered and we have its task port, translate a few signals to
	task_suspend/task_resume/task_terminate.

Fri Feb 24 14:40:48 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* io/Makefile (routines): Add euidaccess.
	* sysdeps/mach/hurd/euidaccess.c: New file.
	* sysdeps/stub/euidaccess.c: New file.
	* posix/unistd.h [__USE_GNU] (euidaccess): Declare it.

	* dirent/Makefile (routines): Add dirfd.
	* sysdeps/stub/dirfd.c: New file.
	* sysdeps/unix/dirfd.c: New file.
	* sysdeps/unix/dirstream.h (_DIR_dirfd): New macro.
	* dirent/dirent.h (dirfd): Declare new function.  Define as macro
	_DIR_dirfd if that is defined.
	* sysdeps/mach/hurd/dirstream.h (DIR): Replace `__port' member
	with `void *__fd'.
	* sysdeps/mach/hurd/opendir.c: Use DIRP->__fd instead of DIRP->__port.
	Open the file with `open'; set FD_CLOEXEC on the fd.
	* sysdeps/mach/hurd/closedir.c: Likewise.
	* sysdeps/mach/hurd/readdir.c: Likewise.
	* sysdeps/mach/hurd/dirfd.c: New file.

	* posix/Makefile (glob/configure): Do cvs commit if there is a CVS
	directory.
	(glob/ChangeLog): Likewise.

	* locale/locale.h (LC_*): Use small integers instead of bit masks.

	* stdio/bug4.c: Put temporary files in /tmp.
	* stdio/bug3.c: Likewise.
	* stdio/bug5.c: Likewise.
	* stdio/test-fseek.c: Likewise.
	* stdio/test-popen.c: Likewise.

Wed Feb 22 00:44:41 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/configure.in: Put AC_ISC_POSIX before AC_CONST.

	* libc-symbols.h (weak_symbol): New macro.

	* hurd/hurdsig.c (_hurd_internal_post_signal): Ignore preempter
	elts with null handlers.

	* sysdeps/mach/hurd/i386/sigreturn.c: Restore the FPU state.

Tue Feb 21 21:53:30 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdlib/random.c (__srandom): Change algorithm used to populate
	the state array.
	(randtbl): Recomputed with new algorithm.

	* sysdeps/sparc/Makefile [subdir=crypt] (crypt): Reset only if set
	to original value of `crypt'.
	* sysdeps/unix/sysv/sysv4/solaris2/sparc/Makefile [subdir=crypt]
	(crypt): New variable, set to crypt.solar.

Tue Feb 21 11:50:37 1995  Brendan Kehoe  (brendan@zen.org)

	* sysdeps/sparc/Makefile (routines): Reference `dotmul', not `mul'.

	* config.h.in: Put comment around ^L to pacify Solaris as here too.

Tue Feb 21 00:10:50 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* string/Makefile (distribute): Add pagecopy.h.
	* sysdeps/mach/pagecopy.h: New file.
	* sysdeps/generic/pagecopy.h: New file.
	* sysdeps/generic/memcpy.c: Include pagecopy.h; call
	PAGE_COPY_FWD_MAYBE first when word aligned.
	* sysdeps/generic/memmove.c: Likewise.

	* misc/bsd-compat.c (longjmp, setjmp): Functions removed.
	(getpgrp): Call __getpgid instead of __getpgrp.

	* Makefile (subdirs): Add elf first.
	* elf/Makefile: New file.
	* elf/elf.h: New file.

	* sysdeps/unix/start.c (errno): Only define if it's not #define'd
	as a macro.
	[! NO_UNDERSCORES]: Define `start' as a weak alias, not a symbol
	indirection.

	* csu/Makefile (crtstuff): New variable consolidates crti, crtn;
	add crti_s, crtn_s.
	(install-lib, extra-objs, generated-, omit-deps): Use that.
	(initfini): New canned sequence, broken out of crt[in].s rule.
	(crt[in].s rule): Use it.
	(crt[in]_s.s): New rule.
	* csu/initfini.c (GLOBAL): New macro; define it to empty if undefined.
	(_init, _fini): Use GLOBAL as storage class.
	Add self reference to avoid GCC optimizing out the functions.

	* Makefile (headers): Remove $(stddef.h).
	* Makeconfig (stddef.h): Variable removed; now require gcc version
	>= 2.2.
	* stddef.h: File removed.

Mon Feb 20 19:42:31 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/bsd/ultrix4/mips/start.S: Remove `__environ'
	definition.
	* sysdeps/unix/bsd/osf1/alpha/start.S: Likewise.

	* stdlib/strtod.c: Allow the string to start with a decimal point
	without a leading zero.

Mon Feb 20 04:04:57 1995  Roland McGrath  <roland@duality.gnu.ai.mit.edu>

	* Makefile (subdirs): Put csu first.

	* sysdeps/mach/hurd/start.c: Include unistd.h for __environ decl.

	* Makeconfig [elf=yes] (+preinit, +postinit): New variables, set
	to crt[in].o.
	(csu-objpfx): New variable.
	(+link): Use it to find start.o and $(+preinit), $(+postinit).

	* Rules (subdir_lib, all): Depend on objs.

	* config.h.in [HAVE_ELF || HAVE_GNU_LD]: Define HAVE_WEAK_SYMBOLS.

	* stdlib/strtod.c (PASTE, PASTE1): New helper macros; use these in
	access to float.h macros.

	* misc/efgcvt.c: New file.
	* misc/Makefile (routines): Add efgcvt.

Sun Feb 19 20:10:43 1995  Brendan Kehoe  <brendan@zen.org>

	* sysdeps/sparc/mul.S: Renamed to `dotmul.S'.
        * sysdeps/sparc/Makefile (routines): Reference `dotmul.S', not `mul.S',
        to avoid a misreference that would override sysdeps/generic/mul.c.
	* sysdeps/sparc/Dist: Likewise.

Sun Feb 19 17:46:13 1995  Roland McGrath  <roland@duality.gnu.ai.mit.edu>

	* posix/Makefile (aux): Add environ.
	* posix/environ.c: New file.
	* sysdeps/unix/sparc/start.c: Remove __environ definition.
	* sysdeps/unix/start.c: Likewise.
	* sysdeps/unix/sysv/irix4/start.c: Likewise.
	* sysdeps/mach/hurd/start.c: Likewise.
	* sysdeps/mach/start.c: Likewise.
	* sysdeps/stub/start.c: Likewise.

	* sysdeps/unix/make_errlist.c: In produced program, test
	HAVE_WEAK_SYMBOLS instead of HAVE_GNU_LD.
	* sysdeps/unix/sysv/sysv4/dup2.c: Fix #include of renamed file.
	Remove extra weak alias.

	* sysdeps/unix/sysv/sysv4/sigaltstack.S: Fix unsquashed file name
	in #include.

	* libc-symbols.h: Put comment around ^L to pacify Solaris as.

	* sysdeps/posix/Makefile (cded-objdir-includes): New variable
	replaced cded-objdir-CPPFLAGS; transform $(+includes) instead of
	$(CPPFLAGS).
	(mk-stdiolim): Use it instead.

Fri Feb 17 12:16:27 1995  Roland McGrath  <roland@duality.gnu.ai.mit.edu>

	* mach/mach_init.c (__vm_page_size): Make it initialized.  It does
	not work to make a weak alias to a bss symbol.

	* stdio/Makefile (distribute): Remove mpn-copy.mk; add gen-mpn-copy.
	(tests): Add test-fwrite.
	* stdio/test-fwrite.c: New file.

	* stdlib/stdlib.h [__USE_GNU]: Declare strtof, strtold, __strtof,
	__strtold.

	* Makefile (autoconf-it): New canned sequence.  Do cvs commit if
	there is a CVS directory.
	(configure, %/configure): Use $(autoconf-it) for cmds.
	* Make-dist: Likewise.
	* sysdeps/mach/hurd/Makefile (errlist.c, errnos.h): Do cvs commit
	if there is a CVS directory.
	* sysdeps/sparc/Makefile (divrem output): Likewise.
	* sysdeps/alpha/Makefile (divrem output): Likewise.
	* Makerules ($(gpl2lgpl)): Likewise.

	* Makerules (rule to install lib%.a from $(install-lib)): Fix
	patsubst to elide ranlib for $(non-lib.a).

	* stdio/tst-printf.c: Enable FP tests.  Add some new tests from rfg.

Thu Feb 16 04:06:06 1995  Roland McGrath  <roland@duality.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/mig-reply.c: Add weak aliases to non-__ names.
	* mach/mig-dealloc.c: Add weak alias mig_deallocate.

Wed Feb 15 13:34:01 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurd/signal.h (HURD_MSGPORT_RPC): Take new arg
	DEALLOC_REFPORT; deallocate the refport after use only if it
	evaluates to nonzero.
	* sysdeps/mach/hurd/kill.c: Pass DEALLOC_REFPORT arg of one.
	* hurd/hurdkill.c: Pass DEALLOC_REFPORT arg of zero.

	* hurd/hurdsig.c (abort_rpcs): Take new arg int *STATE_CHANGE; set
	*STATE_CHANGE to indicate whether or not we changed *STATE and it
	should be committed to the thread.
	(abort_all_rpcs): Take new arg LIVE; if nonzero and abort_rpcs changes
	state for a thread, do thread_set_state on that thread.  Don't use
	SS->intr_port for collecting reply ports, it is not safe to
	clobber that when suspending; instead, alloca a temporary array.
	(_hurd_internal_post_signal): Pass LIVE flag to abort_all_rpcs:
	zero when dying, one when suspending.  Pass new arg to abort_rpcs.

	* sysdeps/mach/hurd/stdio_init.c: Don't lock the file descriptor;
	HURD_FD_PORT_USE will.  Don't use critical sections around
	HURD_FD_PORT_USE invocations.

	* sysdeps/mach/hurd/stdio_init.c: Don't make pipes/FIFOs unbuffered.
	* sysdeps/posix/stdio_init.c: Likewise.

Tue Feb 14 03:01:12 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurd/fd.h (_hurd_fd_get): Don't do critical section
	locking; don't leave the descriptor locked on return.
	(HURD_FD_PORT_USE): Don't expect _hurd_fd_get to return the fd locked.
	Use a critical section around locking the descriptor.
	Check for an empty descriptor and return EBADF.
	* sysdeps/mach/hurd/dup2.c: Likewise.
	* sysdeps/mach/hurd/fcntl.c: Likewise.
	Use HURD_FD_PORT_USE macro for RPCs.
	* sysdeps/mach/hurd/sysd-stdio.c: Don't lock the descriptor before
	using HURD_FD_PORT_USE.
	* sysdeps/mach/hurd/defs.c (init_stdio): Don't expect _hurd_fd_get
	to lock the descriptor.
	* sysdeps/mach/hurd/stdio_init.c: Use critical sections while
	locking the descriptor.
	* sysdeps/mach/hurd/fdopen.c: Likewise.
	* hurd/fd-close.c: Likewise.
	Don't expect the descriptor to be locked on entry.
	Check for empty descriptor and return EBADF.

	Factor ctty RPC code for SIGTTIN/SIGTTOU generation out into
	new functions _hurd_ctty_input and _hurd_ctty_output, each
	called with (io_t port, io_t ctty, error_t (*rpc) (io_t)).
	* hurd/ctty-input.c: New file.
	* hurd/ctty-output.c: New file.
	* hurd/Makefile (dtable): Add ctty-input and ctty-output.
	* hurd/fd-read.c: Use _hurd_ctty_input.
	* hurd/fd-write.c: Use _hurd_ctty_output.
	* sysdeps/mach/hurd/ioctl.c: Likewise.
	* hurd/hurd/fd.h (_hurd_ctty_input, _hurd_ctty_output): Declare them.

Mon Feb 13 11:36:12 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdio/vfscanf.c (%e, %f, %g): Use strtod, __strtold, or __strtof
	as appropriate to the type.

	* sysdeps/ieee754/huge_val.h (__huge_val_t): New macro to avoid
	repeating the union.
	(HUGE_VAL, __huge_val): Use it.
	[__USE_GNU] (HUGE_VALf, HUGE_VALl): New macros, along with
	analogous macros to HUGE_VAL's: __huge_val[fl]_t, __HUGE_VAL[fl]_bytes.
	* stdlib/strtold.c (FLOAT_HUGE_VAL): Define this to HUGE_VALl.
	(STRTOF): Set to __strtold; define strtold as weak alias.
	* stdlib/strtof.c (FLOAT_HUGE_VAL): Define this to HUGE_VALf.
	(STRTOF): Set to __strtof; define strtof as weak alias.

	* sysdeps/ieee754/ieee754.h (union ieee754_float): New type.
	(IEEE754_FLOAT_BIAS): New macro.

	* sysdeps/ieee754/mpn2ldbl.c: Fix typos.

	* stdlib/testmb.c: Add tests from rfg for using normal chars as
	multibyte chars.

	* hurd/hurdmalloc.c (malloc_init): Add self reference to avoid not
	only the `defined but not used' warning, but also to avoid GCC
	optimizing out the entire function (!).

	* stdlib/wctomb.c: Include ctype.h.

	* Makerules (install-lib-non.a): Don't include $(non-lib.a).

	* hurd/hurdmalloc.c: Include string.h; #define bcopy using memcpy.

Sat Feb 11 04:05:29 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdio/printf_fp.c: Include "fpioconst.h".
	(_tens_p): Table moved to fpioconst.c, renamed to _fpioconst_pow10.
	(__printf_fp): All references changed.
	Don't bother computing THOUSANDS_SEP if GROUPING is empty.
	(group_number): Use memmove instead of memcpy, since operands overlap.
	* stdio/fpioconst.c: New file, tables broken out of stdio/printf_fp.c.
	* stdio/fpioconst.h: New file, header declaring the table data.
	* stdio/Makefile (aux): Add fpioconst.
	(distribute): Add fpioconst.h.
	* stdlib/strtod.c: Complete rewrite from drepper.
	* stdlib/strtof.c: New file.
	* stdlib/strtold.c: New file.
	* stdlib/Makefile (routines): Add strtof, strtold.
	* stdio/Makefile (routines): Add mpn2flt, mpn2dbl, mpn2ldbl.
	* sysdeps/stub/mpn2flt.c: New file.
	* sysdeps/stub/mpn2dbl.c: New file.
	* sysdeps/stub/mpn2ldbl.c: New file.
	* sysdeps/ieee754/mpn2flt.c: New file.
	* sysdeps/ieee754/mpn2dbl.c: New file.
	* sysdeps/ieee754/mpn2ldbl.c: New file.

	* Makerules (install-lib.a): Don't filter out $(non-lib.a).
	($(install-lib.a) in $(libdir) rule): Elide ranlib command when $@
	appears in $(non-lib.a).

Fri Feb 10 17:20:14 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdlib/wctomb.c: A normal ASCII character translates to itself.
	* stdlib/mbtowc.c: Likewise.

Thu Feb  9 03:55:55 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* setjmp/setjmp.h (longjmp, _longjmp, __longjmp, siglongjmp):
	Remove `const' from prototypes.
	* sysdeps/m68k/__longjmp.c: Likewise.
	* setjmp/longjmp.c: Likewise.
	* sysdeps/i386/__longjmp.c: Likewise.

	* sysdeps/posix/tempname.c: Increment *IDX at beginning of loop,
	so when we return a name, it is incremented past the value that
	produces that same name.

	* stdio/fgets.c (fgets): Change `size_t' to `int' in prototype.  Sigh.
	* stdio/stdio.h (fgets): Likewise.

	* stdio/vfprintf.c (printf_unknown): Print ' for INFO->group flag.

	* hurd/fd-write.c: Don't clobber ERR with the msg_sig_post call
	when it's EBACKGROUND; we need to notice that it is EBACKGROUND
	and retry the RPC.
	* hurd/fd-read.c: Likewise.

Wed Feb  8 05:01:11 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/sysdep.h (FATAL_PREPARE_INCLUDE): New macro, set to
	<mach/mig_support.h>.
	* assert/assert-perr.c [FATAL_PREPARE_INCLUDE]: Include it.
	* assert/assert.c: Likewise.
	* sysdeps/posix/libc_fatal.c: Likewise.

Tue Feb  7 12:17:58 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdio/stdio.h [__STRICT_ANSI__] (stdin, stdout, stderr): Define
	as macros, to satisfy ANSI pedants.

	* stdio/internals.c (flushbuf): When there is no new data after
	priming the stream, return without writing out the buffer.
	* stdio/Makefile (tests): Add bug7.
	* stdio/bug7.c: New file.

	* io/sys/stat.h (S_IFIFO, S_IFLNK, S_IFSOCK, S_ISFIFO, S_ISLNK,
	S_ISSOCK): Define only if the corresponding underlying __S_IF* macro
	is defined.

	* stdio/getdelim.c: Decrement COPY after getting a char from __fillbf.

	* stdio/Makefile (tests): Add errnobug.
	* stdio/errnobug.c: New file.

	* mach/mig_strncpy.c: Include string.h.

	* sysdeps/mach/sysdep.h: Don't #include <mach/mig_support.h>.  Its
	inlines cause trouble for files defining global register variables.

	* stdio/vfprintf.c: Use _strerror_internal for %m.

	* sysdeps/ieee754/dbl2mpn.c: Fixes from drepper for 64-bit limbs.

	* stdio/printf.h (struct printf_info): New member `group', for %' flag.
	* stdio/printf-prs.c (parse_printf_format): Grok %' flag and set flag.
	* stdio/vfprintf.c (group_number): New function.
	(vfprintf): Support %' flag for integer formats, by calling
	group_number after formatting the number in WORK.
	* stdio/printf_fp.c (guess_grouping, group_number): New functions.
	(__printf_fp): Implement `group' flag using them.

	* Makefile (include sysd-dirs): Protect with ifndef avoid-generated.
	(parent-clean): Remove sysd-rules, not sysdirs.
	(distclean): Pass avoid-generated=yes to submake.
	(distclean-1): Remove $(sysdep-$(distclean-1)).

	* Makerules (objects, objs): Depend on $(extra-objs) too.
	(include sysd-Makefile): Protect with ifndef avoid-generated.

	* Makeconfig (+defines, +gnu-stabs, gnu-as): Variables removed.
	(CPPFLAGS): Use $(defines) in place of $(+defines).
	Replace -D_LIBC with -include $(..)libc-symbols.h.

	* stdio/freopen.c: Set seen bit before calling fclose.

Mon Feb  6 18:34:40 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/setpriority.c: Keep track of numbers of
	successes and each kind of failure.  Return EPERM or EACCES only
	if every task failed that way.

	* sysdeps/mach/hurd/getpriority.c: Handle out of band buffers
	correctly.

	* sysdeps/mach/hurd/ptrace.c (PTRACE_ATTACH, PTRACE_DETACH): Stop
	or resume the process after frobbing.

	* hurd/hurdsig.c: Use spin lock operations on sigstate locks
	throughout.
	(_hurd_thread_sigstate): Don't lock the sigstate lock.
	(_hurd_internal_post_signal): New subfunction `mark_pending'; replace
	repeated sequences with calls to it.  Don't expect the sigstate
	lock to be held on entry; lock it just before examining sigaction.
	In handler case, check SS->critical_section after calling
	abort_rpcs; if set, mark the signal pending and resume the thread.
	* hurd/hurd/signal.h (_hurd_self_sigstate_unlocked): Function removed.
	(_hurd_self_sigstate): Don't lock the sigstate lock.
	(HURD_EINTR_RPC): Call _hurd_self_sigstate instead of
	_hurd_self_sigstate_unlocked.
	* hurd/msgportdemux.c: Don't expect _hurd_self_sigstate to lock
	the sigstate lock.
	* hurd/hurdexec.c: Use spin lock operations on sigstate lock.
	Don't expect _hurd_self_sigstate to lock it.  Fix critical section
	locking.
	* hurd/hurd-raise.c: Likewise.
	* sysdeps/mach/hurd/sigsuspend.c: Likewise.
	* sysdeps/mach/hurd/sigpending.c: Likewise.
	* sysdeps/mach/hurd/sigaltstack.c: Likewise.
	* sysdeps/mach/hurd/sigaction.c: Likewise.
	* sysdeps/mach/hurd/sigprocmask.c: Likewise.
	* hurd/fd-write.c: Likewise.
	* hurd/fd-read.c: Likewise.
	* sysdeps/mach/hurd/ioctl.c: Likewise.
	* sysdeps/mach/hurd/fork.c: Likewise.
	* sysdeps/mach/hurd/i386/sigreturn.c: Likewise.
	* sysdeps/mach/hurd/mips/sigreturn.c: Likewise.
	* sysdeps/mach/hurd/alpha/sigreturn.c: Likewise.
	* hurd/hurdmsg.c (get_int): Likewise.

	* stdio/vfprintf.c: Include stddef.h.  Fix typos in libio code.

	* stdio/vfprintf.c (__pad): Function renamed to __printf_pad, made
	global.
	(PAD): Caller changed.
	* stdio/printf_fp.c (__pad): Function removed.
	(PAD): Use __printf_pad instead.

Sun Feb  5 17:59:53 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	Merged new FP printer by Ulrich Drepper.
	* stdio/printf_fp.c: Rewrite by drepper.
	* stdio/Makefile (routines): Add ldbl2mpn.
	* sysdeps/ieee754/ieee754.h (union ieee754_double): Add `ieee_nan'
	member.
	(union ieee854_long_double): New type, from drepper.
	(IEEE754_DOUBLE_BIAS, IEEE854_LONG_DOUBLE_BIAS): New macros.
	* sysdeps/ieee754/ldbl2mpn.c: New file, by drepper.
	* sysdeps/stub/ldbl2mpn.c: New file.
	* math/Makefile (routines): Add isinfl and isnanl.
	* sysdeps/ieee754/isinfl.c: New file.
	* sysdeps/stub/isinfl.c: New file.
	* sysdeps/ieee754/isnanl.c: New file.
	* sysdeps/stub/isnanl.c: New file.

	* malloc/malloc.c (__malloc_extra_blocks): New variable.
	(malloc): When getting more core, get __malloc_extra_blocks extra;
	put the new block at the end of the free list and let the next loop
	iteration use the initial portion of it.
	* malloc/free.c (_free_internal): Account for twice
	__malloc_extra_blocks in deciding if we have so much extra memory
	we should return it to the system.
	* malloc/malloc.h (__malloc_extra_blocks): Declare it.
	* posix/glob.c (prefix_array, glob_pattern_p): Remove gratuitous
	const in parameter decl.

	* sysdeps/unix/mips/sysdep.h (ENTRY): Add `.ent' directive.

Fri Feb  3 18:15:52 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* munch.awk (EXTERNS): Print decls using __P instead of EXFUN.

	* sysdeps/mips/setjmp_aux.c: Use ENV[0].__jmpbuf[0].
	* sysdeps/mips/bsd-_setjmp.S: Use `li' insn instead of `move'.
	* sysdeps/mips/bsd-setjmp.S: Likewise.
	* sysdeps/mips/__longjmp.c: Remove obsolete __NORETURN keyword.
	* sysdeps/mach/hurd/mips/trampoline.c (_hurd_setup_sighandler):
	Use `long int' for sigcode.  Use explicit register numbers instead
	of names.
	(_hurdsig_rcv_interrupted_p): Use _hurdsig_catch_fault.
	* sysdeps/mach/hurd/mips/exc2signal.c: Use `long int' for sigcode.

Thu Feb  2 20:06:45 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdmalloc.c: Remove bogus bcopy decl.

	* mach/mig_strncpy.c: Add missing `const' in prototype.  Rewritten
	using __stpncpy.

	* io/ftw.c (ftw, ftw_dir): Treat ENOENT from stat like EACCES.

	* stdio/vfprintf.c: Set PREC to zero for %. without following digit.

Tue Jan 31 13:49:57 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* mach/mig_strncpy.c: Include mach.h instead of string.h.  Use
	vm_size_t instead of size_t for arg and return types.

	* mach/mach_init.c: Don't declare __mig_init; mach/mig_support.h
	already does.

Mon Jan 30 00:33:35 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* set-hooks.h (RUN_HOOK): Dereference PTR properly.

	* configure.in (friendly stddef.h check): Write override defn for
	`stddef.h' Make variable.
	(AC_LINK_FILES): Use `echo ...` to avoid " " appearing nonempty.

	* configure.in (host_os=sysv4*|solaris2*): Set elf=yes.

	* Rules ($(objpfx)dummy.o): Write an empty function, not just an
	empty file.

	* sysdeps/sparc/Makefile (sysdep-realclean): New variable.

Sat Jan 28 03:38:56 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makefile (distribute): Remove gnu-stabs.h; add libc-symbols.h.

	* sysdeps/mach/sysdep.h [ASSEMBLER]: Protect include of
	mach/machine/syscall_sw.h with this.

Fri Jan 27 18:33:20 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurd/signal.h: Include <hurd/msg.h>, and <spin-lock.h>
	instead of <lock-intern.h>.
	(struct hurd_sigstate): Member `lock' changed to a `spin_lock_t'.
	(_hurd_critical_section_lock): Use spin lock operators.
	Don't hold the sigstate lock, unlock it after setting the flag.
	(_hurd_critical_section_unlock): Take the sigstate lock
	to clear the flag; while holding it, check pending signals.  After
	unlocking, sig_post ourselves if there were pending signals.

	* hurd/catch-exc.c (_S_catch_exception_raise): Don't take the
	sigstate lock.  If it is locked, clear SS->critical_section and
	SS->context, and unlock it.

	* sysdeps/mach/sysdep.h (EXT, LEXT): New macros.

	* set-init.c (__libc_init) [HAVE_ELF]: Run _init and atexit (_fini).
	* munch-tmpl.c: Likewise.

	* mach/Makefile (routines): Don't filter out syscall_% from
	$(mach-syscalls).

Fri Jan 27 17:53:49 1995  Jim Meyering  (meyering@comco.com)

	* posix/fnmatch.c: Declare errno if it's not defined.
	That's simpler than testing #if !defined(__GNU_LIBRARY__)
	&& !defined(STDC_HEADERS).

Fri Jan 27 15:40:29 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* csu/Makefile: New file.
	* csu/initfini.c: New file.
	* Makefile (+other_dirs): Add csu.
	(+init): Variable renamed to libc-init.  All references changed.
	(aux): Remove start.
	(install-lib): Variable removed.
	(crt0.o, Mcrt1.o  crt1.o): Targets removed.

	* mach/Machrules (static deps of RPC_*.o): Add $(..)libc-symbols.h
	and $(objpfx)config.h.
	(static deps of RPC alias *.o): Removed.

	* sysdeps/unix/sysv/sysv4/solaris2/sparc/sysdep.h [ASSEMBLER]:
	Protect macros with this.
	* sysdeps/unix/bsd/osf1/alpha/sysdep.h: Likewise.
	* sysdeps/unix/bsd/sequent/i386/sysdep.h: Likewise.
	* sysdeps/unix/bsd/vax/sysdep.h: Likewise.
	* sysdeps/unix/bsd/sun/m68k/sysdep.h: Likewise.
	* sysdeps/unix/bsd/sony/newsos/m68k/sysdep.h: Likewise.
	* sysdeps/unix/mips/sysdep.h: Likewise.

Thu Jan 26 00:02:01 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* Makerules (compile.[Sc]): Match gcc in $(CC) better.
	(BUILD_CFLAGS): Instead of $(config-defines), use -include config.h.

	* hurd/intr-rpc.awk: Emit weak alias.

	* sysdeps/unix/bsd/sun/sunos4/wait4.c: Call getpgrp instead of
	__getpgrp.

	* sysdeps/unix/bsd/hp/m68k/sysdep.h [ASSEMBLER]: Protect macros with
	this.
	* sysdeps/unix/i386/sysdep.h: Likewise.
	* sysdeps/unix/sparc/sysdep.h: Likewise.

	* io/ftw.c: Avoid `ret' as variable name.
	* posix/glob.c: Likewise.

	* ctype/ctype.h (_ISalpha): Define as its own bit.
	* locale/C-ctype_ct.c (__ctype_b_C): Set _ISalpha bit in all letters.

	* stdlib/exit.c [HAVE_GNU_LD]: Protect #include "set-hooks.h" and
	DEFINE_HOOK with this.

Wed Jan 25 00:45:56 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdinit.c: Use DECLARE_HOOK instead of `extern DEFINE_HOOK'.
	* mach/spin-solid.c (spin_lock_solid): Define as weak alias to __name.
	* mach/shortcut.awk: Emit weak alias.
	* mach/spin-lock.c: Add weak aliases for all spin-lock.h functions.
	* mach/mach_init.c (mach_init, vm_page_size): Defin weak aliases for
	__ names.
	* mach/Makefile (lock): Remove spin-syms.
	(routines): Remove __ names, vm_page_size, msgserver_t.
	($(mach-syscalls) rule): Generate files without __, add weak alias.
	Remove symbol alias file rule.
	($(mach-shortcuts) rule): Likewise.
	[!mach-shortcuts] (user-interfaces): Filter out mach/mach4 too.
	* mach/Machrules (if-calls.c): Variable and rule removed.
	(interface-headers): Don't add $($(if)-calls).
	(transform-user-stub): Define to add weak alias.
	* set-hooks.h: Use new libc-symbols.h set access macros.
	* time/Makefile (routines): Remove __ names.
	(aux): Variable removed.
	* hurd/Makefile: Likewise.
	* sysdeps/unix/start.c (environ): Define as weak alias for __environ.
	(data_start): Define as weak alias for __data_start.
	* sysdeps/mach/hurd/start.c: Likewise.
	* sysdeps/unix/sparc/start.c: Likewise.
	* sysdeps/unix/make_errlist.c: Emit weak aliases for sys_nerr and
	sys_errlist.
	* sysdeps/mach/hurd/errlist.awk: Likewise.
	* sysdeps/unix/bsd/osf1/alpha/start.S (environ): Define as weak
	alias for __environ.
	* sysdeps/unix/bsd/ultrix4/mips/start.S: Likewise.
	* sysdeps/stub/setdomain.c: Use new stub_warning macro.
	* sysdeps/stub/getdomain.c: Likewise.
	* sysdeps/stub/vhangup.c: Likewise.
	* sysdeps/stub/swapon.c: Likewise.
	* sysdeps/stub/sendmsg.c: Likewise.
	* sysdeps/stub/recvmsg.c: Likewise.
	* sysdeps/stub/acct.c: Likewise.
	* sysdeps/stub/isinf.c: Likewise.  Add weak alias isinf for __isinf.
	* sysdeps/mach/hurd/_exit.c: Remove obsolete __NORETURN keyword.
	* sysdeps/posix/libc_fatal.c: Likewise.
	* sysdeps/i386/abort.c: Likewise.
	* sysdeps/i386/__longjmp.c: Likewise.
	* sysdeps/generic/make_siglist.c: Emit defn always for
	_sys_siglist.  Emit weak alias to sys_siglist.
	* sysdeps/generic/atan.c: Remove obsolete __CONSTVALUE keyword.
	* sysdeps/ieee754/log10.c: Likewise.
	* time/difftime.c: Likewise.
	* stdlib/random.c (srand): Define as weak alias for __srandom.
	* stdlib/exit.c: Remove obsolete __NORETURN keyword.  Use set-hooks
	macros for __libc_atexit.
	* stdlib/Makefile (routines): Remove __random, srand.
	* stdio/gets.c: Use new link_warning macro instead of old
	warn_references.
	* stdio/Makefile (routines): Remove __ names.
	(aux): Remove syms-stdio.
	* socket/Makefile (routines): Added e on getpeernam and getsocknam.
	* setjmp/longjmp.c: Remove obsolete __NORETURN keyword.
	* setjmp/Makefile (routines): Remove _longjmp, siglongjmp.
	* setjmp/setjmp.h: Replace __NORETURN keyword with __attribute__ uses.
	* stdio/stdio.h: Likewise.
	* misc/Makefile (routines): Remove __ names.
	(aux): Remove data_start.
	* sysdeps/mach/hurd/defs.c: Don't include gnu-stabs.h.
	* sysdeps/mach/hurd/brk.c: Likewise.
	* hurd/hurdid.c: Likewise.
	* hurd/hurdpid.c: Likewise.
	* hurd/openport.c: Likewise.
	* hurd/hurdsock.c: Likewise.
	* hurd/hurdsig.c: Likewise.
	* hurd/hurdrlimit.c: Likewise.
	* hurd/hurdmalloc.c: Likewise.
	* hurd/dtable.c: Likewise.
	* hurd/setauth.c: Likewise.
	* misc/progname.c: Likewise.
	* misc/init-misc.c: Likewise.
	* sysdeps/generic/vfork.c: Likewise.
	* sysdeps/unix/bsd/init-posix.c: Likewise.
	* math/math.h: Replace __CONSTVALUE keyword with __attribute__ uses.
	* time/time.h: Likewise.
	* math/Makefile (routines): Remove __ names.
	* io/Makefile: Likewise.
	* termios/Makefile: Likewise.
	* resource/Makefile: Likewise.
	* signal/Makefile: Likewise.
	* dirent/Makefile: Likewise.
	* assert/assert.h: Replace __NORETURN keyword with __attribute__
	uses.  Functions return void and macros deal with this.
	* assert/assert-perr.c: Remove obsolete __NORETURN keyword.
	Return void.  Don't include gnu-stabs.h.
	* assert/assert.c: Likewise.
	* posix/Makefile (routines): Remove __ names, setpgrp.  Add
	getpgid.
	(aux): Remove environ.
	* stdlib/stdlib.h (abort, exit): Replace __NORETURN keyword with
	__attribute__ use.
	* posix/unistd.h (_exit): Likewise.
	(__getpgrp, __setpgrp): Declarations removed.
	(__getpgid, getpid): Declare these.

	* configure.in (host_os=gnuelf|linuxelf): Set elf=yes.  Do AC_SUBST
	for gnu_ld, gnu_as, elf, and weak.  Call AC_LINK_FILEES on
	$libc_link_{sources,dests}.
	* sysdeps/unix/configure.in: Remove __ from file names.  Don't
	create files, just add to libc_link_{dests,sources}.

	* config.make.in (gnu-as, gnu-ld, elf, weak-symbols): New variables.

	* config.h.in: Add #undefs used by sysdeps configures.

	* sysdeps/unix/sysv/sysv4/Makefile (sysdep_routines): Removed
	__setpgid, __getpgid.
	* sysdeps/unix/sysv/sco3.2.4/setpgid.c: Included file was renamed
	from setpgrp.c.
	* sysdeps/unix/sysv/sco3.2.4/getpgid.c: Included file was renamed
	from __getpgrp.c.
	* sysdeps/unix/bsd/getpgrp.c: File removed.
	* sysdeps/generic/getpgrp.c: Moved from sysdeps/stub/getpgrp.c.
	Call __getpgid with zero.
	* sysdeps/stub/setpgid.c: Renamed __setpgrp to __setpgid, added
	weak aliases setpgid and setpgrp.
	* sysdeps/unix/sysv/irix4/setpgid.S: Likewise.
	* sysdeps/unix/common/setpgid.S: Likewise.
	* sysdeps/mach/hurd/setpgid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/setpgid.c: Likewise.
	Use subcall 5 to __pgrpsys.
	* sysdeps/stub/getpgid.c: Renamed __getpgrp to __getpgid, added
	weak alias getpgid.
	* sysdeps/mach/hurd/getpgid.c: Likewise.
	* sysdeps/unix/sysv/irix4/getpgid.S: Likewise.
	* sysdeps/unix/common/getpgid.S: Likewise.
	* sysdeps/unix/sysv/sysv4/getpgid.c: Likewise.
	Use subcall 4 to __pgrpsys.
	* sysdeps/stub/__getpgrp.c: Renamed to getpgid.c.
	* sysdeps/unix/sysv/sysv4/__getpgrp.c: Renamed to getpgid.c.
	* sysdeps/unix/sysv/sco3.2.4/__getpgrp.c: Renamed to getpgid.c.
	* sysdeps/unix/sysv/irix4/__getpgrp.S: Renamed to getpgid.S.
	* sysdeps/unix/common/__getpgrp.S: Renamed to getpgid.S.
	* sysdeps/mach/hurd/__getpgrp.c: Renamed to getpgid.c.
	* sysdeps/stub/setpgrp.c: Renamed to setpgid.c.
	* sysdeps/unix/sysv/sysv4/setpgrp.c: Renamed to setpgid.c.
	* sysdeps/unix/sysv/sco3.2.4/setpgrp.c: Renamed to setpgid.c.
	* sysdeps/unix/sysv/irix4/setpgrp.S: Renamed to setpgid.S.
	* sysdeps/unix/common/setpgrp.S: Renamed to setpgid.S.
	* sysdeps/mach/hurd/setpgrp.c: Renamed to setpgid.c.

	* sysdeps/unix/bsd/hp/m68k/getdents.S: Included file was renamed
	from __getdents.S.

	* sysdeps/posix/defs.c: Don't include gnu-stabs.h.
	* sysdeps/stub/sigpending.c: Use new libc-symbols.h macro for stub
	warning.
	* sysdeps/stub/fexecve.c: Likewise.
	* sysdeps/stub/fchdir.c: Likewise.
	* sysdeps/stub/fchflags.c: Likewise.
	* sysdeps/stub/chflags.c: Likewise.

	* sysdeps/m68k/__longjmp.c: Remove __NORETURN; it's obsolete.
	* sysdeps/generic/abort.c: Likewise.
	* sysdeps/ieee754/ldexp.c: Remove __CONSTVALUE; it's obsolete.

	* hurd/hurdioctl.c: Include hurd/ioctl.h.
	(_hurd_ioctl_handler_lists): Define this set.
	(_hurd_lookup_ioctl_handler): New function.
	* hurd/hurd/fd.h: ioctl handler stuff moved to hurd/ioctl.h.
	* hurd/hurd/ioctl.h: New file, broken out of hurd/fd.h.
	(_hurd_lookup_ioctl_handler): Declare it.
	(ioctl_handler_t): New typedef.  Use it throughout.
	* sysdeps/mach/hurd/ioctl.c: Include hurd/ioctl.h.
	(_hurd_ioctl_handler_lists): Don't define.
	(__ioctl): Call _hurd_lookup_ioctl_handler.

	* stdlib/strtol.c (maxquad): Make this const.
	[__GNUC__ == 2 && __GNUC_MINOR__ < 7]: Only use maxquad in this case.

	* posix/glob/configure.in: Put AC_AIX and AC_MINIX early, before
	any compile tests.

	* sysdeps/mach/hurd/setitimer.c (timer_thread): Call
	__msg_sig_post_request, not __sig_post_request.

	* misc/getusersh.c: Renamed to getusershell.c.
	* sysdeps/stub/sethostnam.c: Renamed to sethostname.c.
	* sysdeps/unix/inet/sethostnam.S: Renamed to sethostname.S.
	* sysdeps/unix/sysv/sysv4/sethostnam.c: Renamed to sethostname.c.
	* sysdeps/mach/hurd/sethostnam.c: Renamed to sethostname.c.

Tue Jan 24 00:14:30 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/stub/settod.c: Renamed to settimeofday.c.
	* sysdeps/unix/bsd/settod.S: Renamed to settimeofday.c.
	* sysdeps/unix/sysv/settod.c: Renamed to settimeofday.c.
	* sysdeps/mach/hurd/settod.c: Renamed to settimeofday.c.
	* sysdeps/stub/setitmr.c: Renamed to setitimer.c.
	* sysdeps/unix/common/setitmr.S: Renamed to setitimer.S.
	* sysdeps/mach/hurd/setitmr.c: Renamed to setitimer.c.
	* sysdeps/posix/fpathcon.c: Renamed to fpathconf.c.
	* sysdeps/stub/fpathcon.c: Renamed to fpathconf.c.
	* sysdeps/unix/sysv/irix4/fpathcon.c: Renamed to fpathconf.c.
	* sysdeps/stub/getprio.c: Renamed to getpriority.c.
	* sysdeps/unix/sysv/irix4/getprio.c: Renamed to getpriority.c.
	* sysdeps/unix/common/getprio.S: Renamed to getpriority.S.
	* sysdeps/mach/hurd/getprio.c: Renamed to getpriority.c.
	* sysdeps/stub/setprio.c: Renamed to setpriority.c.
	* sysdeps/unix/sysv/irix4/setprio.c: Renamed to setpriority.c.
	* sysdeps/unix/common/setprio.S: Renamed to setpriority.S.
	* sysdeps/mach/hurd/setprio.c: Renamed to setpriority.c.
	* sysdeps/stub/getpeernam.c: Renamed to getpeername.c.
	* sysdeps/unix/inet/getpeernam.S: Renamed to getpeername.S.
	* sysdeps/unix/sysv/linux/getpeernam.S: Renamed to getpeername.S.
	* sysdeps/mach/hurd/getpeernam.c: Renamed to getpeername.c.
	* sysdeps/stub/getsocknam.c: Renamed to getsockname.c.
	* sysdeps/unix/inet/getsocknam.S: Renamed to getsockname.S.
	* sysdeps/unix/sysv/linux/getsocknam.S: Renamed to getsockname.S.
	* sysdeps/mach/hurd/getsocknam.c: Renamed to getsockname.c.
	* sysdeps/stub/sigaltstk.c: Renamed to sigaltstack.c.
	* sysdeps/unix/bsd/bsd4.4/sigaltstk.S: Renamed to sigaltstack.S.
	* sysdeps/unix/sysv/sysv4/sigaltstk.S: Renamed to sigaltstack.S.
	* sysdeps/mach/hurd/sigaltstk.c: Renamed to sigaltstack.c.

	* sysdeps/mach/hurd/i386/sigreturn.c: Call __msg_sig_post instead
	of __sig_post.
	* sysdeps/mach/hurd/sigsuspend.c: Likewise.
	* sysdeps/mach/hurd/kill.c: Likewise.
	* sysdeps/mach/hurd/sigprocmask.c: Likewise.

	* misc/sys/cdefs.h (__NORETURN, __CONSTVALUE): Macros removed.
	[!__GNUC__ || __GNUC__<2] (__attribute__): Define to empty.

	* sysdeps/stub/remove.c: New file.
	* sysdeps/posix/remove.c: New file.

Mon Jan 23 03:26:09 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* time/mktime.c [weak_alias] (timelocal): Define as weak alias for
	mktime.
	* mach/mig_strncpy.c (mig_strncpy): Define as weak alias for
	__mig_strncpy.
	* mach/msg-destroy.c: Renamed from __msg_dest.c.
	(mach_msg_destroy): Define as weak alias for __mach_msg_destroy.
	* mach/setup-thread.c (mach_setup_thread): Define as weak alias.
	* time/tzset.c (tzname, daylight, timezone): Define as weak
	aliases for __ names.
	* hurd/hurdkill.c (hurd_sig_post): Define as weak alias.
	* hurd/hurdlookup.c: Add weak aliases for non-__ names.
	* Makefile (+init): Test $(gnu-ld)=yes, not for $(+gnu-stabs)
	being defined.

Sun Jan 22 15:19:51 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* string/Makefile (routines): Remove __ names, index, rindex, and
	bcmp.
	* sysdeps/alpha/strchr.c [weak_alias] (index): Define as weak
	alias for strchr.
	* sysdeps/generic/strchr.c: Likewise.
	* sysdeps/generic/strrchr.c [weak_alias] (rindex): Define as weak
	alias for strrchr.
	* sysdeps/generic/memcmp.c [weak_alias] (bcmp): Define as weak
	alias for memcmp.

	* malloc/free.c (cfree): Define this function, with weak_alias if
	available, otherwise a C function.
	* malloc/Makefile (gmalloc-routines): Remove cfree.

Sat Jan 21 08:08:58 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdio/fseek.c: Do move bufp by O when that puts it exactly at
	get_limit.  This has the effect of no-op'ing properly for zero.

	* configure.in: Add AC_CONFIG_HEADER(config.h).
	(--with-elf, --with-weak-symbols): Grok these and define HAVE_*.
	* config.h.in: New file.

	* setjmp/longjmp.c: Add weak aliases _longjmp, siglongjmp.
	All code converted to use weak symbols, defined in the files which
	define the real code (with the __ names, the non-__ names are weak).
	All old symbol alias files removed.
	Many files renamed to remove __ prefix since there is now just
	the one file for both the __ and non-__ name for each function.
	* libc-symbols.h: New file.
	* set-hooks.h: Use libc-symbols.h macros for accessing symbol
	sets.
	* gnu-stabs.h: Prepend #error this file is obsolete.
	* sysdeps/ieee754/ldexp.c: Add weak aliases scalb and __scalb.
	* sysdeps/stub/__access.c: Renamed to access.c; added weak alias
	access.
	* sysdeps/unix/common/__access.S: Likewise.
	* sysdeps/mach/hurd/__access.c: Likewise.
	* sysdeps/stub/__adjtime.c: Renamed to adjtime.c; added weak alias
	adjtime.
	* sysdeps/unix/common/__adjtime.S: Likewise.
	* sysdeps/mach/__adjtime.c: Likewise.
	* sysdeps/mach/hurd/__adjtime.c: Likewise.
	* sysdeps/stub/__brk.c: Renamed to brk.c; added weak alias brk.
	* sysdeps/unix/bsd/sun/m68k/__brk.S: Likewise.
	* sysdeps/unix/bsd/vax/__brk.S: Likewise.
	* sysdeps/unix/bsd/hp/m68k/__brk.S: Likewise.
	* sysdeps/unix/bsd/osf1/alpha/__brk.S: Likewise.
	* sysdeps/unix/i386/__brk.S: Likewise.
	* sysdeps/unix/sparc/__brk.S: Likewise.
	* sysdeps/unix/mips/__brk.S: Likewise.
	* sysdeps/mach/hurd/__brk.c: Likewise.
	* sysdeps/standalone/__brk.c: Likewise.
	* sysdeps/stub/__chdir.c: Renamed to chdir.c; added weak alias chdir.
	* sysdeps/unix/__chdir.S: Likewise.
	* sysdeps/mach/hurd/__chdir.c: Likewise.
	* sysdeps/stub/__chmod.c: Renamed to chmod.c; added weak alias chmod.
	* sysdeps/unix/__chmod.S: Likewise.
	* sysdeps/mach/hurd/__chmod.c: Likewise.
	* sysdeps/stub/__chown.c: Renamed to chown.c; added weak alias chown.
	* sysdeps/unix/__chown.S: Likewise.
	* sysdeps/mach/hurd/__chown.c: Likewise.
	* sysdeps/stub/__close.c: Renamed to close.c; added weak alias close.
	* sysdeps/unix/__close.S: Likewise.
	* sysdeps/mach/hurd/__close.c: Likewise.
	* sysdeps/standalone/__close.c: Likewise.
	* sysdeps/generic/__copysign.c: Renamed to copysign.c; added weak
	alias copysign.
	* sysdeps/ieee754/__copysign.c: Likewise.
	* sysdeps/alpha/__copysign.c: Likewise.
	* sysdeps/ieee754/__drem.c: Renamed to drem.c; added weak alias drem.
	* sysdeps/m68k/fpu/__drem.c: Likewise.
	* sysdeps/stub/__drem.c: Likewise.
	* sysdeps/posix/__dup.c: Renamed to dup.c; added weak alias dup.
	* sysdeps/stub/__dup.c: Likewise.
	* sysdeps/unix/__dup.S: Likewise.
	* sysdeps/posix/__dup2.c: Renamed to dup2.c; added weak alias dup2.
	* sysdeps/stub/__dup2.c: Likewise.
	* sysdeps/unix/sysv/sysv4/__dup2.c: Likewise.
	* sysdeps/unix/sysv/irix4/__dup2.c: Likewise.
	* sysdeps/unix/common/__dup2.S: Likewise.
	* sysdeps/mach/hurd/__dup2.c: Likewise.
	* sysdeps/stub/__execve.c: Renamed to execve.c; added weak alias
	execve.
	* sysdeps/unix/__execve.S: Likewise.
	* sysdeps/mach/hurd/__execve.c: Likewise.
	* sysdeps/generic/__expm1.c: Renamed to expm1.c; added weak alias
	expm1.
	* sysdeps/m68k/fpu/__expm1.c: Likewise.
	* sysdeps/stub/__fchmod.c: Renamed to fchmod.c; added weak alias
	fchmod.
	* sysdeps/unix/common/__fchmod.S: Likewise.
	* sysdeps/mach/hurd/__fchmod.c: Likewise.
	* sysdeps/stub/__fchown.c: Renamed to fchown.c; added weak alias
	fchown.
	* sysdeps/unix/common/__fchown.S: Likewise.
	* sysdeps/mach/hurd/__fchown.c: Likewise.
	* sysdeps/stub/__fcntl.c: Renamed to fcntl.c; added weak alias fcntl.
	* sysdeps/unix/__fcntl.S: Likewise.
	* sysdeps/mach/hurd/__fcntl.c: Likewise.
	* math/__finite.c: Renamed to finite.c; added weak alias finite.
	* sysdeps/posix/__flock.c: Renamed to flock.c; added weak alias flock.
	* sysdeps/stub/__flock.c: Likewise.
	* sysdeps/unix/bsd/__flock.S: Likewise.
	* sysdeps/mach/hurd/__flock.c: Likewise.
	* hurd/__fopenport.c: Renamed to fopenport.c; added weak alias
	fopenport.
	* sysdeps/stub/__fork.c: Renamed to fork.c; added weak alias fork.
	* sysdeps/unix/__fork.S: Likewise.
	* sysdeps/unix/bsd/osf1/alpha/__fork.S: Likewise.
	* sysdeps/unix/i386/__fork.S: Likewise.
	* sysdeps/unix/sparc/__fork.S: Likewise.
	* sysdeps/unix/mips/__fork.S: Likewise.
	* sysdeps/mach/hurd/__fork.c: Likewise.
	* sysdeps/posix/__fpathcon.c: Renamed to fpathcon.c; added weak
	alias fpathconf.
	* sysdeps/stub/__fpathcon.c: Likewise.
	* sysdeps/unix/sysv/irix4/__fpathcon.c: Likewise.
	* sysdeps/stub/__fstat.c: Renamed to fstat.c; added weak alias fstat.
	* sysdeps/unix/__fstat.S: Likewise.
	* sysdeps/unix/sysv/sysv4/i386/__fstat.S: Likewise.
	* sysdeps/mach/hurd/__fstat.c: Likewise.
	* stdio/__getdelim.c: Renamed to getdelim.c; added weak alias
	getdelim.
	* sysdeps/stub/__getdents.c: Renamed to getdents.c; added weak
	alias getdents.
	* sysdeps/unix/__getdents.c: Likewise.
	* sysdeps/unix/bsd/sun/__getdents.S: Likewise.
	* sysdeps/unix/bsd/hp/m68k/__getdents.S: Likewise.
	* sysdeps/unix/bsd/ultrix4/__getdents.S: Likewise.
	* sysdeps/unix/bsd/bsd4.4/__getdents.S: Likewise.
	* sysdeps/unix/bsd/osf1/alpha/__getdents.S: Likewise.
	* sysdeps/unix/sysv/__getdents.c: Likewise.
	* sysdeps/mach/hurd/__getdents.c: Likewise.
	* hurd/__getdport.c: Renamed to getdport.c; added weak alias getdport.
	* sysdeps/posix/__getdtsz.c: Renamed to getdtsz.c; added weak
	alias getdtablesize.
	* sysdeps/stub/__getdtsz.c: Likewise.
	* sysdeps/unix/bsd/__getdtsz.S: Likewise.
	* sysdeps/unix/sysv/sysv4/__getdtsz.c: Likewise.
	* sysdeps/mach/hurd/__getdtsz.c: Likewise.
	* sysdeps/stub/__getegid.c: Renamed to getegid.c; added weak alias
	getegid.
	* sysdeps/unix/__getegid.S: Likewise.
	* sysdeps/mach/hurd/__getegid.c: Likewise.
	* sysdeps/stub/__geteuid.c: Renamed to geteuid.c; added weak alias
	geteuid.
	* sysdeps/unix/__geteuid.S: Likewise.
	* sysdeps/mach/hurd/__geteuid.c: Likewise.
	* sysdeps/stub/__getgid.c: Renamed to getgid.c; added weak alias
	getgid.
	* sysdeps/unix/__getgid.S: Likewise.
	* sysdeps/mach/hurd/__getgid.c: Likewise.
	* sysdeps/stub/__getgrps.c: Renamed to getgroups.c; added weak
	alias getgroups.
	* sysdeps/unix/bsd/sequent/i386/__getgrps.S: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/__getgrps.c: Likewise.
	* sysdeps/unix/sysv/irix4/__getgrps.c: Likewise.
	* sysdeps/unix/common/__getgrps.S: Likewise.
	* sysdeps/mach/hurd/__getgrps.c: Likewise.
	* sysdeps/stub/__gethstnm.c: Renamed to gethostname.c; added weak
	alias gethostname.
	* sysdeps/unix/inet/__gethstnm.S: Likewise.
	* sysdeps/unix/sysv/__gethstnm.c: Likewise.
	* sysdeps/unix/sysv/sysv4/__gethstnm.c: Likewise.
	* sysdeps/mach/hurd/__gethstnm.c: Likewise.
	* sysdeps/stub/__getitmr.c: Renamed to getitimer.c; added weak
	alias getitimer.
	* sysdeps/unix/common/__getitmr.S: Likewise.
	* sysdeps/mach/hurd/__getitmr.c: Likewise.
	* stdio/__getline.c: Renamed to getline.c; added weak alias getline.
	* sysdeps/posix/__getpgsz.c: Renamed to getpagesize.c; added weak
	alias getpagesize.
	* sysdeps/stub/__getpgsz.c: Likewise.
	* sysdeps/unix/__getpgsz.c: Likewise.
	* sysdeps/unix/bsd/__getpgsz.S: Likewise.
	* sysdeps/unix/sysv/sysv4/__getpgsz.c: Likewise.
	* sysdeps/mach/__getpgsz.c: Likewise.
	* sysdeps/stub/__getpid.c: Renamed to getpid.c; added weak alias
	getpid.
	* sysdeps/unix/__getpid.S: Likewise.
	* sysdeps/mach/hurd/__getpid.c: Likewise.
	* sysdeps/stub/__getppid.c: Renamed to getppid.c; added weak alias
	getppid.
	* sysdeps/unix/__getppid.S: Likewise.
	* sysdeps/mach/hurd/__getppid.c: Likewise.
	* sysdeps/posix/__gettod.c: Renamed to gettimeofday.c; added weak
	alias gettimeofday.
	* sysdeps/stub/__gettod.c: Likewise.
	* sysdeps/unix/sysv/irix4/__gettod.c: Likewise.
	* sysdeps/unix/common/__gettod.S: Likewise.
	* sysdeps/mach/__gettod.c: Likewise.
	* sysdeps/stub/__getuid.c: Renamed to getuid.c; added weak alias
	getuid.
	* sysdeps/unix/__getuid.S: Likewise.
	* sysdeps/mach/hurd/__getuid.c: Likewise.
	* sysdeps/generic/__infnan.c: Renamed to infnan.c; added weak
	alias infnan.
	* sysdeps/ieee754/__infnan.c: Likewise.
	* sysdeps/vax/__infnan.c: Likewise.
	* sysdeps/stub/__ioctl.c: Renamed to ioctl.c; added weak alias ioctl.
	* sysdeps/unix/__ioctl.S: Likewise.
	* sysdeps/mach/hurd/__ioctl.c: Likewise.
	* sysdeps/posix/__isatty.c: Renamed to isatty.c; added weak alias
	isatty.
	* sysdeps/stub/__isatty.c: Likewise.
	* sysdeps/unix/bsd/__isatty.c: Likewise.
	* sysdeps/mach/hurd/__isatty.c: Likewise.
	* sysdeps/ieee754/__isinf.c: Renamed to isinf.c; added weak alias
	isinf.
	* sysdeps/m68k/fpu/__isinf.c: Likewise.
	* sysdeps/stub/__isinf.c: Likewise.
	* sysdeps/generic/__isnan.c: Renamed to isnan.c; added weak alias
	isnan.
	* sysdeps/ieee754/__isnan.c: Likewise.
	* sysdeps/m68k/fpu/__isnan.c: Likewise.
	* sysdeps/stub/__kill.c: Renamed to kill.c; added weak alias kill.
	* sysdeps/unix/__kill.S: Likewise.
	* sysdeps/mach/hurd/__kill.c: Likewise.
	* sysdeps/stub/__link.c: Renamed to link.c; added weak alias link.
	* sysdeps/unix/__link.S: Likewise.
	* sysdeps/mach/hurd/__link.c: Likewise.
	* sysdeps/ieee754/__logb.c: Renamed to logb.c; added weak alias logb.
	* sysdeps/m68k/fpu/__logb.c: Likewise.
	* sysdeps/stub/__logb.c: Likewise.
	* sysdeps/stub/__lseek.c: Renamed to lseek.c; added weak alias lseek.
	* sysdeps/unix/__lseek.S: Likewise.
	* sysdeps/mach/hurd/__lseek.c: Likewise.
	* sysdeps/generic/__lstat.c: Renamed to lstat.c; added weak alias
	lstat.
	* sysdeps/stub/__lstat.c: Likewise.
	* sysdeps/unix/sysv/sysv4/i386/__lstat.S: Likewise.
	* sysdeps/unix/common/__lstat.S: Likewise.
	* sysdeps/mach/hurd/__lstat.c: Likewise.
	* sysdeps/generic/__memccpy.c: Renamed to memccpy.c; added weak
	alias memccpy.
	* sysdeps/vax/__memccpy.c: Likewise.
	* sysdeps/stub/__mkdir.c: Renamed to mkdir.c; added weak alias mkdir.
	* sysdeps/unix/sysv/__mkdir.c: Likewise.
	* sysdeps/unix/common/__mkdir.S: Likewise.
	* sysdeps/mach/hurd/__mkdir.c: Likewise.
	* sysdeps/stub/__mknod.c: Renamed to mknod.c; added weak alias mknod.
	* sysdeps/unix/__mknod.S: Likewise.
	* sysdeps/unix/sysv/sysv4/i386/__mknod.S: Likewise.
	* sysdeps/mach/hurd/__mknod.c: Likewise.
	* mach/__msg.c: Renamed to msg.c; added weak alias mach_msg.
	* mach/__msgserver.c: Renamed to msgserver.c; added weak alias
	mach_msg_server.
	* sysdeps/stub/__open.c: Renamed to open.c; added weak alias open.
	* sysdeps/unix/__open.S: Likewise.
	* sysdeps/mach/hurd/__open.c: Likewise.
	* sysdeps/standalone/__open.c: Likewise.
	* sysdeps/stub/__pathconf.c: Renamed to pathconf.c; added weak
	alias pathconf.
	* sysdeps/unix/sysv/sco3.2.4/__pathconf.S: Likewise.
	* sysdeps/unix/sysv/irix4/__pathconf.c: Likewise.
	* hurd/__pid2task.c: Renamed to pid2task.c; added weak alias pid2task.
	* sysdeps/stub/__pipe.c: Renamed to pipe.c; added weak alias pipe.
	* sysdeps/unix/bsd/vax/__pipe.S: Likewise.
	* sysdeps/unix/bsd/m68k/__pipe.S: Likewise.
	* sysdeps/unix/bsd/osf1/alpha/__pipe.S: Likewise.
	* sysdeps/unix/i386/__pipe.S: Likewise.
	* sysdeps/unix/sparc/__pipe.S: Likewise.
	* sysdeps/unix/mips/__pipe.S: Likewise.
	* sysdeps/mach/hurd/__pipe.c: Likewise.
	* stdlib/__random.c: Renamed to random.c; added weak alias random.
	* sysdeps/stub/__read.c: Renamed to read.c; added weak alias read.
	* sysdeps/unix/__read.S: Likewise.
	* sysdeps/mach/hurd/__read.c: Likewise.
	* sysdeps/standalone/__read.c: Likewise.
	* sysdeps/stub/__readlink.c: Renamed to readlink.c; added weak
	alias readlink.
	* sysdeps/unix/common/__readlink.S: Likewise.
	* sysdeps/mach/hurd/__readlink.c: Likewise.
	* sysdeps/generic/__rint.c: Renamed to rint.c; added weak alias rint.
	* sysdeps/m68k/fpu/__rint.c: Likewise.
	* sysdeps/stub/__rmdir.c: Renamed to rmdir.c; added weak alias rmdir.
	* sysdeps/unix/sysv/__rmdir.c: Likewise.
	* sysdeps/unix/common/__rmdir.S: Likewise.
	* sysdeps/mach/hurd/__rmdir.c: Likewise.
	* sysdeps/generic/__sbrk.c: Renamed to sbrk.c; added weak alias sbrk.
	* sysdeps/stub/__sbrk.c: Likewise.
	* sysdeps/mach/hurd/__sbrk.c: Likewise.
	* math/__scalb.c: Renamed to scalb.c; added weak alias scalb.
	* sysdeps/stub/__select.c: Renamed to select.c; added weak alias
	select.
	* sysdeps/unix/common/__select.S: Likewise.
	* sysdeps/mach/hurd/__select.c: Likewise.
	* hurd/__setauth.c: Renamed to setauth.c; added weak alias setauth.
	* sysdeps/stub/__setgid.c: Renamed to setgid.c; added weak alias
	setgid.
	* sysdeps/unix/__setgid.S: Likewise.
	* sysdeps/unix/bsd/__setgid.c: Likewise.
	* sysdeps/mach/hurd/__setgid.c: Likewise.
	* sysdeps/stub/__setitmr.c: Renamed to setitmr.c; added weak alias
	setitmr
	* sysdeps/unix/common/__setitmr.S: Likewise.
	* sysdeps/mach/hurd/__setitmr.c: Likewise.
	* sysdeps/stub/__setpgrp.c: Renamed to setpgrp.c; added weak alias
	setpgrp
	* sysdeps/unix/sysv/sysv4/__setpgrp.c: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/__setpgrp.c: Likewise.
	* sysdeps/unix/sysv/irix4/__setpgrp.S: Likewise.
	* sysdeps/unix/common/__setpgrp.S: Likewise.
	* sysdeps/mach/hurd/__setpgrp.c: Likewise.
	* sysdeps/stub/__setregid.c: Renamed to setregid.c; added weak
	alias setregid.
	* sysdeps/unix/common/__setregid.S: Likewise.
	* sysdeps/mach/hurd/__setregid.c: Likewise.
	* sysdeps/stub/__setreuid.c: Renamed to setreuid.c; added weak
	alias setreuid.
	* sysdeps/unix/common/__setreuid.S: Likewise.
	* sysdeps/mach/hurd/__setreuid.c: Likewise.
	* sysdeps/stub/__setsid.c: Renamed to setsid.c; added weak alias
	setsid.
	* sysdeps/unix/bsd/__setsid.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/__setsid.S: Likewise.
	* sysdeps/unix/bsd/ultrix4/__setsid.S: Likewise.
	* sysdeps/unix/bsd/bsd4.4/__setsid.S: Likewise.
	* sysdeps/unix/sysv/linux/__setsid.S: Likewise.
	* sysdeps/unix/sysv/sysv4/__setsid.c: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/__setsid.c: Likewise.
	* sysdeps/mach/hurd/__setsid.c: Likewise.
	* sysdeps/stub/__settod.c: Renamed to settod.c; added weak alias
	settimeofday.
	* sysdeps/unix/bsd/__settod.S: Likewise.
	* sysdeps/unix/sysv/__settod.c: Likewise.
	* sysdeps/mach/hurd/__settod.c: Likewise.
	* sysdeps/stub/__setuid.c: Renamed to setuid.c; added weak alias
	setuid.
	* sysdeps/unix/__setuid.S: Likewise.
	* sysdeps/unix/bsd/__setuid.c: Likewise.
	* sysdeps/mach/hurd/__setuid.c: Likewise.
	* sysdeps/posix/__sigblock.c: Renamed to sigblock.c; added weak
	alias sigblock.
	* sysdeps/stub/__sigblock.c: Likewise.
	* sysdeps/unix/bsd/__sigblock.S: Likewise.
	* sysdeps/unix/bsd/bsd4.4/__sigblock.c: Likewise.
	* sysdeps/unix/bsd/osf1/alpha/__sigblock.S: Likewise.
	* sysdeps/posix/__sigpause.c: Renamed to sigpause.c; added weak
	alias sigpause.
	* sysdeps/stub/__sigpause.c: Likewise.
	* sysdeps/unix/bsd/__sigpause.S: Likewise.
	* sysdeps/unix/bsd/osf1/alpha/__sigpause.S: Likewise.
	* sysdeps/stub/__sigproc.c: Renamed to sigprocmask.c; added weak
	alias sigprocmask.
	* sysdeps/unix/bsd/__sigproc.c: Likewise.
	* sysdeps/unix/sysv/sysv4/__sigproc.S: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/__sigproc.S: Likewise.
	* sysdeps/mach/hurd/__sigproc.c: Likewise.
	* sysdeps/stub/__sigret.c: Renamed to sigreturn.c; added weak
	alias sigreturn.
	* sysdeps/unix/bsd/sun/__sigret.S: Likewise.
	* sysdeps/unix/sysv/i386/__sigret.S: Likewise.
	* sysdeps/unix/sysv/irix4/__sigret.S: Likewise.
	* sysdeps/unix/i386/__sigret.S: Likewise.
	* sysdeps/unix/mips/__sigret.S: Likewise.
	* sysdeps/mach/hurd/i386/__sigret.c: Likewise.
	* sysdeps/mach/hurd/alpha/__sigret.c: Likewise.
	* sysdeps/mach/hurd/mips/__sigret.c: Likewise.
	* sysdeps/posix/__sigvec.c: Renamed to sigvec.c; added weak alias
	sigvec.
	* sysdeps/stub/__sigvec.c: Likewise.
	* sysdeps/unix/bsd/__sigvec.S: Likewise.
	* sysdeps/unix/bsd/sun/__sigvec.S: Likewise.
	* sysdeps/unix/bsd/sequent/i386/__sigvec.S: Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/__sigvec.S: Likewise.
	* sysdeps/unix/bsd/bsd4.4/__sigvec.c: Likewise.
	* sysdeps/unix/bsd/osf1/alpha/__sigvec.S: Likewise.
	* sysdeps/stub/__stat.c: Renamed to stat.c; added weak alias stat.
	* sysdeps/unix/__stat.S: Likewise.
	* sysdeps/unix/sysv/sysv4/i386/__stat.S: Likewise.
	* sysdeps/mach/hurd/__stat.c: Likewise.
	* sysdeps/generic/__stpncpy.c: Renamed to stpncpy.c; added weak
	alias stpncpy.
	* sysdeps/stub/__symlink.c: Renamed to symlink.c; added weak alias
	symlink.
	* sysdeps/unix/common/__symlink.S: Likewise.
	* sysdeps/mach/hurd/__symlink.c: Likewise.
	* sysdeps/posix/__sysconf.c: Renamed to sysconf.c; added weak
	alias sysconf.
	* sysdeps/stub/__sysconf.c: Likewise.
	* sysdeps/unix/bsd/ultrix4/__sysconf.c: Likewise.
	* sysdeps/unix/sysv/sysv4/__sysconf.c: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/__sysconf.S: Likewise.
	* sysdeps/unix/sysv/irix4/__sysconf.c: Likewise.
	* hurd/__task2pid.c: Renamed to task2pid.c; added weak alias task2pid.
	* sysdeps/stub/__times.c: Renamed to times.c; added weak alias times.
	* sysdeps/unix/bsd/__times.c: Likewise.
	* sysdeps/unix/sysv/__times.S: Likewise.
	* time/__tzset.c: Renamed to tzset.c; added weak alias tzset.
	* sysdeps/stub/__umask.c: Renamed to umask.c; added weak alias umask.
	* sysdeps/unix/__umask.S: Likewise.
	* sysdeps/mach/hurd/__umask.c: Likewise.
	* sysdeps/stub/__unlink.c: Renamed to unlink.c; added weak alias
	unlink.
	* sysdeps/unix/__unlink.S: Likewise.
	* sysdeps/mach/hurd/__unlink.c: Likewise.
	* sysdeps/stub/__utimes.c: Renamed to utimes.c; added weak alias
	utimes.
	* sysdeps/unix/bsd/__utimes.S: Likewise.
	* sysdeps/unix/sysv/sysv4/solaris2/__utimes.S: Likewise.
	* sysdeps/mach/hurd/__utimes.c: Likewise.
	* sysdeps/generic/__vfork.c: Renamed to vfork.c; added weak alias
	vfork.
	* sysdeps/unix/bsd/sun/m68k/__vfork.S: Likewise.
	* sysdeps/unix/bsd/vax/__vfork.S: Likewise.
	* sysdeps/unix/bsd/i386/__vfork.S: Likewise.
	* sysdeps/unix/bsd/hp/m68k/__vfork.S: Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/__vfork.S: Likewise.
	* sysdeps/unix/sysv/sysv4/i386/__vfork.S: Likewise.
	* sysdeps/unix/sparc/__vfork.S: Likewise.
	* stdio/__vfscanf.c: Renamed to vfscanf.c; added weak alias vfscanf.
	* stdio/__vsscanf.c: Renamed to vsscanf.c; added weak alias vsscanf.
	* sysdeps/posix/__wait.c: Renamed to wait.c; added weak alias wait.
	* sysdeps/stub/__wait.c: Likewise.
	* sysdeps/unix/bsd/sony/newsos4/__wait.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/__wait.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos3/m68k/__wait.S: Likewise.
	* sysdeps/unix/bsd/vax/__wait.S: Likewise.
	* sysdeps/unix/bsd/m68k/__wait.S: Likewise.
	* sysdeps/unix/bsd/bsd4.4/__wait.c: Likewise.
	* sysdeps/unix/sysv/i386/linux/__wait.S: Likewise.
	* sysdeps/unix/sysv/irix4/__wait.S: Likewise.
	* sysdeps/unix/i386/__wait.S: Likewise.
	* sysdeps/unix/mips/__wait.S: Likewise.
	* sysdeps/posix/__wait3.c: Renamed to wait3.c; added weak alias wait3.
	* sysdeps/stub/__wait3.c: Likewise.
	* sysdeps/unix/bsd/sony/newsos4/__wait3.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/__wait3.c: Likewise.
	* sysdeps/unix/bsd/vax/__wait3.S: Likewise.
	* sysdeps/unix/bsd/i386/__wait3.S: Likewise.
	* sysdeps/unix/bsd/hp/m68k/__wait3.S: Likewise.
	* sysdeps/unix/bsd/ultrix4/__wait3.S: Likewise.
	* sysdeps/unix/bsd/bsd4.4/__wait3.c: Likewise.
	* sysdeps/unix/sysv/irix4/__wait3.S: Likewise.
	* sysdeps/stub/__wait4.c: Renamed to wait4.c; added weak alias wait4.
	* sysdeps/unix/bsd/sony/newsos4/__wait4.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/__wait4.c: Likewise.
	* sysdeps/unix/bsd/bsd4.4/__wait4.S: Likewise.
	* sysdeps/unix/bsd/osf1/alpha/__wait4.S: Likewise.
	* sysdeps/unix/sysv/linux/__wait4.S: Likewise.
	* sysdeps/mach/hurd/__wait4.c: Likewise.
	* sysdeps/stub/__waitpid.c: Renamed to waitpid.c; added weak alias
	waitpid.
	* sysdeps/unix/bsd/sun/sunos4/__waitpid.c: Likewise.
	* sysdeps/unix/bsd/ultrix4/__waitpid.S: Likewise.
	* sysdeps/unix/bsd/bsd4.4/__waitpid.c: Likewise.
	* sysdeps/unix/bsd/osf1/alpha/__waitpid.c: Likewise.
	* sysdeps/unix/sysv/linux/__waitpid.S: Likewise.
	* sysdeps/unix/sysv/sysv4/__waitpid.c: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/__waitpid.S: Likewise.
	* sysdeps/unix/sysv/irix4/__waitpid.c: Likewise.
	* sysdeps/stub/__write.c: Renamed to write.c; added weak alias write.
	* sysdeps/unix/__write.S: Likewise.
	* sysdeps/mach/hurd/__write.c: Likewise.
	* sysdeps/standalone/__write.c: Likewise.
	* sysdeps/stub/__tcgetatr.c: Renamed to tcgetattr.c; added weak
	alias tcgetattr.
	* sysdeps/unix/bsd/__tcgetatr.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/__tcgetatr.c: Likewise.
	* sysdeps/unix/bsd/bsd4.4/__tcgetatr.c: Likewise.
	* sysdeps/unix/sysv/__tcgetatr.c: Likewise.
	* sysdeps/stub/__sigact.c: Renamed to sigaction.c; added weak
	alias sigaction.
	* sysdeps/unix/bsd/__sigact.c: Likewise.
	* sysdeps/unix/sysv/__sigact.c: Likewise.
	* sysdeps/unix/sysv/sysv4/__sigact.c: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/__sigact.S: Likewise.
	* sysdeps/mach/hurd/__sigact.c: Likewise.
	* sysdeps/posix/__sigstmsk.c: Renamed to sigsetmask.c; added weak
	alias sigsetmask.
	* sysdeps/stub/__sigstmsk.c: Likewise.
	* sysdeps/unix/bsd/__sigstmsk.S: Likewise.
	* sysdeps/unix/bsd/bsd4.4/__sigstmsk.c: Likewise.
	* sysdeps/unix/bsd/osf1/alpha/__sigstmsk.S: Likewise.
	* sysdeps/stub/__getrusag.c: Renamed to getrusage.c; added weak
	alias getrusage.
	* sysdeps/unix/sysv/irix4/__getrusag.c: Likewise.
	* sysdeps/unix/common/__getrusag.S: Likewise.
	* hurd/task2pid.c: File removed.
	* hurd/setauth.c: File removed.
	* hurd/pid2task.c: File removed.
	* hurd/hurdsyms.c: File removed.
	* hurd/getdport.c: File removed.
	* hurd/fopenport.c: File removed.
	* mach/thread-sym.c: File removed.
	* mach/spin-syms.c: File removed.
	* mach/msgserver_t.c: File removed.
	* mach/msgserver.c: File removed.
	* mach/msg.c: File removed.
	* mach/mig_syms.c: File removed.
	* malloc/mcheck-init.c: File removed.
	* malloc/cfree.c: File removed.
	* io/flock.c: File removed.
	* io/write.c: File removed.
	* io/unlink.c: File removed.
	* io/umask.c: File removed.
	* io/symlink.c: File removed.
	* io/rmdir.c: File removed.
	* io/readlink.c: File removed.
	* io/read.c: File removed.
	* io/pipe.c: File removed.
	* io/open.c: File removed.
	* io/mkdir.c: File removed.
	* io/lstat.c: File removed.
	* io/lseek.c: File removed.
	* io/link.c: File removed.
	* io/isatty.c: File removed.
	* io/stat.c: File removed.
	* io/fstat.c: File removed.
	* io/fchown.c: File removed.
	* io/fchmod.c: File removed.
	* io/dup2.c: File removed.
	* io/dup.c: File removed.
	* io/close.c: File removed.
	* io/fcntl.c: File removed.
	* io/chmod.c: File removed.
	* io/chdir.c: File removed.
	* io/access.c: File removed.
	* io/chown.c: File removed.
	* time/tzset.c: File removed.
	* time/timelocal.c: File removed.
	* time/syms-time.c: File removed.
	* time/settod.c: File removed.
	* time/setitmr.c: File removed.
	* time/gettod.c: File removed.
	* time/getitmr.c: File removed.
	* time/adjtime.c: File removed.
	* termios/tcgetattr.c: File removed.
	* string/stpncpy.c: File removed.
	* string/rindex.c: File removed.
	* string/memccpy.c: File removed.
	* string/index.c: File removed.
	* string/bcmp.c: File removed.
	* stdlib/srand.c: File removed.
	* stdlib/random.c: File removed.
	* stdio/vsscanf.c: File removed.
	* stdio/vfscanf.c: File removed.
	* stdio/syms-stdio.c: File removed.
	* stdio/remove.c: File removed.
	* stdio/getline.c: File removed.
	* stdio/getdelim.c: File removed.
	* signal/ssignal.c: File removed.
	* signal/sigvec.c: File removed.
	* signal/sigsetmask.c: File removed.
	* signal/sigret.c: File removed.
	* signal/sigproc.c: File removed.
	* signal/sigpause.c: File removed.
	* signal/sigblock.c: File removed.
	* signal/sigaction.c: File removed.
	* signal/kill.c: File removed.
	* signal/gsignal.c: File removed.
	* setjmp/siglongjmp.c: File removed.
	* setjmp/_longjmp.c: File removed.
	* resource/getrusage.c: File removed.
	* posix/waitpid.c: File removed.
	* posix/wait4.c: File removed.
	* posix/wait3.c: File removed.
	* posix/wait.c: File removed.
	* posix/times.c: File removed.
	* posix/sysconf.c: File removed.
	* posix/setuid.c: File removed.
	* posix/setsid.c: File removed.
	* posix/setpgrp.c: File removed.
	* posix/setpgid.c: File removed.
	* posix/setgid.c: File removed.
	* posix/pathconf.c: File removed.
	* posix/getuid.c: File removed.
	* posix/getppid.c: File removed.
	* posix/getpid.c: File removed.
	* posix/getgrps.c: File removed.
	* posix/getgid.c: File removed.
	* posix/geteuid.c: File removed.
	* posix/getegid.c: File removed.
	* posix/fpathcon.c: File removed.
	* posix/fork.c: File removed.
	* posix/execve.c: File removed.
	* posix/environ.c: File removed.
	* misc/utimes.c: File removed.
	* misc/setreuid.c: File removed.
	* misc/setregid.c: File removed.
	* misc/select.c: File removed.
	* misc/sbrk.c: File removed.
	* misc/mknod.c: File removed.
	* misc/ioctl.c: File removed.
	* misc/getpgsz.c: File removed.
	* misc/gethstnm.c: File removed.
	* misc/getdtsz.c: File removed.
	* misc/data_start.c: File removed.
	* misc/brk.c: File removed.
	* math/scalb.c: File removed.
	* math/rint.c: File removed.
	* math/logb.c: File removed.
	* math/isnan.c: File removed.
	* math/isinf.c: File removed.
	* math/infnan.c: File removed.
	* math/finite.c: File removed.
	* math/expm1.c: File removed.
	* math/drem.c: File removed.
	* math/copysign.c: File removed.
	* math/__scalb.c: File removed.
	* dirent/getdents.c: File removed.

Fri Jan 20 16:11:06 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/generic/morecore.c (__default_morecore): Use
	__malloc_ptrdiff_t; don't cast arg to int.

	* resolv/getnetnamadr.c: Include "conf/portability.h".

Thu Jan 19 02:20:04 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* stdlib/strtol.c: Include errno.h.
	[QUAD] (ULONG_MAX): Define to a static variable initialized to
	ULONG_LONG_MAX. This is to work around a GCC bug in using the
	constant in arithmetic.

	* posix/unistd.h (daemon): Declare it.

	* malloc/mcheck-init.c: Remove GNU ld hacks.
	(__malloc_initialize_hook): Initialize this hook to turn_on_mcheck.
	* malloc/malloc.c (__malloc_initialize_hook): New hook variable.
	(initialize): Call the hook if set.
	* malloc/malloc.h: Use __malloc_{size,ptrdiff}_t in prototypes.
	(__malloc_initialize_hook): Declare new hook variable.

Wed Jan 18 01:43:39 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdsig.c: Prepend `msg_' to server RPC names.
	* hurd/hurdpid.c: Likewise.
	* hurd/hurdauth.c: Likewise.

Tue Jan 17 03:16:47 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/__select.c: If some replies are EINTR, succeed
        if any are successful.

	* hurd/hurdmsg.c: Prepend `msg_' to all RPC names.
	(_S_msg_get_exec_flags, _S_msg_set_exec_flags,
	_S_msg_set_some_exec_flags, _S_msg_clear_some_exec_flags): New
        functions.
	(_S_io_select_done, _S_dir_changed, _S_file_changed): Stubs removed.

	* hurd/hurdkill.c: __sig_post renamed to __msg_sig_post.
	* hurd/hurd-raise.c: Likewise.
	* hurd/hurdsig.c (post_reply): Prepend `msg_' to RPC names.

	* sysdeps/mach/hurd/ptrace.c: New file.

	* sysdeps/mach/hurd/__select.c: Revamped to use new io_select
	interface, which has normal EINTR semantics.  Instead of waiting
	for io_select_done notification messages, send io_select messages
	with short reply timeout and then wait for io_select_reply
	messages.

	* hurd/hurdexec.c (_hurd_exec): Pass (_hurd_exec_flags &
        EXEC_INHERITED) to file_exec.

	* hurd/hurdsig.c (post_reply): Take new arg UNTRACED; if nonzero,
	use sig_post_untraced_reply.  All callers changed.
	(abort_thread, abort_rpcs): Take same new arg and pass it through.
	All callers changed.
	(_hurd_internal_post_signal): Take new arg UNTRACED.
	If zero and process is traced, stop with SIGNO as stop signal.  If
	nonzero, resume process before delivering signal (unless
	ACT==stop).  Expand local fn sigwakeup into block at end taken iff
	SIGNO!=0.
	(signal_allowed): New function, broken out of _S_sig_post.
	(_S_sig_post): Call it.  Pass UNTRACED arg of false to
	_hurd_internal_post_signal.
	(_S_sig_post_untraced): New function.  Just like _S_sig_post, but
	pass true for UNTRACED.
	* hurd/hurd/signal.h (_hurd_internal_post_signal): Take new arg
        UNTRACED.
	* hurd/catch-exc.c (_S_catch_exception_raise): Pass UNTRACED arg
        to _hurd_internal_post_signal (value zero).

Mon Jan 16 16:40:01 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* hurd/hurdinit.c (_hurd_exec_flags): New variable.
	(_hurd_init): Initialize it from FLAGS arg.
	(_hurd_proc_init): If EXEC_TRACED is set in _hurd_exec_flags,
	raise a SIGTRAP signal (with a sigcode of zero).
	* hurd/hurd.h (_hurd_exec_flags): Declare it.

	* Version 1.09.5.

Mon Jan 16 16:16:55 1995  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* malloc/malloc.c (malloc): Fix 1-off in previous change.

Mon Jan 16 15:49:07 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/Makefile.in: Remove config.h and config.log.

Sun Jan 15 06:56:47 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* posix/glob/configure.in: Add AC_CONST check.

	* conf/portability.h: #undef sun.
	* resolv/res_query.c: Updated from BIND-4.9.3-BETA17.
	* resolv/getnetnamadr.c: Likewise.

	* socket/Makefile (headers): Add sockaddrcom.h.
	* inet/netinet/in.h: Include <sockaddrcom.h>.
	(struct sockaddr_in): Use the __SOCKADDR_COMMON macro.
	* socket/sys/un.h (struct sockaddr_in): Likewise.
	* socket/sys/socket.h (struct sockaddr): Likewise.
	* sysdeps/unix/bsd/bsd4.4/sockaddrcom.h: New file.
	* sysdeps/generic/sockaddrcom.h: New file.

	* sysdeps/unix/sysv/sysv4/ftruncate.c: New file.
	* sysdeps/unix/common/fcntlbits.h [__USE_SVID] (F_ALLOCSP,
        F_FREESP): New macros.
	* sysdeps/posix/truncate.c: New file.

	* malloc/malloc.c (malloc): Fix typos in RMS's change.

	* malloc/Makefile (dist-routines): Add malloc-find.
	* malloc/malloc.h (malloc_find_object_address): Declare it.
	* malloc/malloc-find.c: New file.

	* malloc/malloc.h (__malloc_ptrdiff_t): New macro, defined a la
        __malloc_size_t.
	(malloc_info): Use that type for member `busy.info.size'.

	* stdlib/strtol.c: Change uses of `long' keyword throughout to use
        `LONG' macro.
	[! QUAD] (LONG): Define as long.
	[QUAD] (LONG): Define as long long.
	[QUAD] (LONG_MIN, LONG_MAX, ULONG_MAX): Redefine to long long
	versions.
	[QUAD] (strtoul, strtol): Define to strtouq, strtoq.
	* stdlib/Makefile (routines): Add strtoq and strtouq.
	* stdlib/strtoq.c, stdlib/strtouq.c: New files.
	* stdlib/stdlib.h [__GNUC__ && __USE_BSD] (strtoq, strtouq):
        Declare them.

	* stdio/vfprintf.c: If there was a precision specified, ignore the
	0 flag and always pad with spaces.

	* stdio/vfprintf.c: Don't use strchr to skip text until next %.
	Use a loop and also stop on first !isascii char.

Wed Jan 11 00:07:10 1995  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* malloc/malloc.h (malloc_info): Change usage of .busy.info.size.

	* malloc/malloc.c (malloc): For a multi-block object, store a
	negative number into the busy.info.size of all but the first block.

Tue Jan 10 13:45:20 1995  Brendan Kehoe  <brendan@zen.org>

	* sysdeps/unix/bsd/ultrix4/mips/start.S: Use s0, s1, and s2
	instead of t0, t1, and t2.

Tue Jan 10 05:53:50 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* malloc/memalign.c (__memalign_hook): New variable.
	(memalign): Call it if set.
	* malloc/malloc.h (__memalign_hook): Declare new variable.

Wed Dec 28 03:27:21 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* conf/portability.h: Include string.h and stdlib.h.
	* inet/netdb.h (NETDB_INTERNAL, NETDB_SUCCESS): New macros.
	* resolv/resolv.h, resolv/arpa/nameser.h, resolv/gethnamaddr.c,
	resolv/getnetbyname.c, resolv/getnetent.c, resolv/herror.c,
	resolv/res_mkquery.c, resolv/res_send.c, resolv/res_comp.c,
	resolv/res_debug.c, resolv/res_init.c: Updated from BIND 4.9.3-BETA14.

	* sysdeps/m68k/fpu/__math.h (__m81_inline): New macro.  Replace
	all uses of `extern __inline' with `__m81_inline'.

	* sysdeps/unix/bsd/hp/m68k/__vfork.S: Use subl, not decl.
	* sysdeps/unix/__fork.S: Swap args in subl.

	* posix/sys/types.h [__USE_MISC] (ushort, uint): New typedefs, for
        compatibility.

Tue Dec 20 13:33:20 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* sysdeps/mach/hurd/__setpgrp.c (__setpgrp): Use __swtch_pri instead
        of swtch.
	* sysdeps/mach/hurd/__setsid.c (__setsid): Likewise.
	* mach/spin-solid.c (__spin_lock_solid): Likewise.

Thu Dec 15 12:01:07 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* inet/rcmd.c (iruserok): Use alloca instead of fixed-size buffer
        for PBUF.
	(__ivaliduser): Use getline instead of fgets with fixed-size buffer.

	* sysdeps/mach/hurd/Makefile (subdirs): Don't elide inet.

Wed Dec 14 18:20:56 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/alpha/bsd-setjmp.S: Reverse register and immediate args
	in `bis' insn; immediate must be second.

	* sysdeps/unix/__fork.S: Use subl instead of decl.
	* sysdeps/unix/i386/__fork.S: New file.

	* sysdeps/mach/hurd/alpha/trampoline.c (_hurd_setup_sighandler):
	Remove A macro; just use `asm volatile' with proper quotes in each
	line.
	* sysdeps/mach/alpha/sysdep.h (CALL_WITH_SP): Put parens around
        jmp target register.

	* time/africa, time/asia, time/australasia, time/emkdir.c,
	time/europe, time/ialloc.c, time/northamerica, time/private.h,
	time/scheck.c, time/yearistype, time/zdump.c, time/zic.c: New code
	and data from ADO 94h distribution.

	* sysdeps/sparc/setjmp.S: Use sethi and or to put address of
	__sigjmp_save in %g1 and jmp there.  jmp cannot contain a complete
	absolute pointer.  Put second store in jmp delay slot.

Tue Dec 13 15:47:52 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/sparc/bsd-_setjmp.S: Use sethi and or to put address of
	__sigsetjmp in %g1 and jmp there.  jmp cannot contain a complete
	absolute pointer.
	* sysdeps/sparc/bsd-setjmp.S: Likewise.

	* configure.in: Use ; before } in { ... } exprs.



See ChangeLog.4 for earlier changes.
