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.
