Thu Sep  3 17:31:13 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/unix/bsd/setgroups.S: New file.  How did this manage not
	to exist already??

	* Version 1.04.

	* sysdeps/generic/memmem.c (memmem): Fixed loop condition not to
	use nonexistent variable.

	* string/string.h (memmem): Put const qualifier on args.

	* sysdeps/stub/sigaltstack.c (sigaltstack): Fix arg type.

	* setjmp/sigsetjmp.c: #undef sigsetjmp before defining the function.

Wed Sep  2 16:43:58 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* misc/Makefile (headers): Add syscall.h.
	* sysdeps/unix/Makefile: Only generate syscall.h if it would
	otherwise come from stub.
	* sysdeps/stub/syscall.h: New file.

	* time/Makefile (routines): Add stime.

	* io/Makefile (routines): Add fchdir.

	* signal/Makefile (routines): Add sigaltstack.

	* string/Makefile (routines): Add memmem.

	* setjmp/Makefile (routines): Add sigsetjmp, _setjmp.

	* misc/Makefile (routines): Add getpass.

	* Makefile (distribute): Add NEWS.

	* Makerules (ar-it) [! objdir]: Pass `ru' instead of `u' to ar.
	Use $(..)libc.a instead of $(libc.a).

	* sysdeps/unix/sysv/i386/linux/sysdep.h (PSEUDO): Call numbers are
	SYS_*, not __NR_*.

	* sysdeps/unix/sysv/i386/linux/__wait.S: Prepend extra _ to
	`__waitpid' for jmp.

	* Makerules (check): New rule; alias for `tests'.

	* sysdeps/stub/__setregid.c: Args are gid_t, not int.

	* sysdeps/posix/readv.c: #include <string.h>.

	* sysdeps/generic/printf_fp.c: If LDBL_DIG or LDBL_MAX_10_EXP is
	defined by float.h, #define each to DBL_*.

Tue Sep  1 16:29:07 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/unix/Makefile (syscall.h): Add missing backslashes.

	* Makeconfig [!objdir && !..] (common-objpfx): Define as
	`sysdeps/..'; The Almighty KludgeMeister 2000 wins again.

	* Makerules (sysdep-Makefile): Rename to sysd-Makefile.

	* Makeconfig (CC): Don't use -pipe by default.

	* configure (switches): Put quotes around os-release and
	os-version values.

Mon Aug 31 19:33:15 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/stub/cbrt.c: New file.

	* sysdeps/generic/cabs.c: New file.

	* sysdeps/generic/ceil.c: New file, split from floor.c.
	* sysdeps/generic/__rint.c: Replaced with code split from floor.c.
	* sysdeps/generic/Makefile (routines): Don't remove ceil, __rint.

Thu Aug 27 15:58:13 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* malloc/malloc.h [! __STDC__] (ptrdiff_t): #define.

Wed Aug 26 18:15:47 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* malloc/free.c (__free): Rename to _free_internal.
	(free), malloc/malloc.c (morecore): Change callers.
	* malloc/malloc.h: Change decl.

Tue Aug 18 17:38:13 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/generic/__copysign.c: New file.

	* sysdeps/unix/sysv/sysdep.h: #include <syscall.h>, not
	<sys/syscall.h>.  Don't #define _SYS_SYS_S; should no longer be
	necessary.

	* sysdeps/unix/Makefile (syscall.h): Replaced simple code to just
	find the file in any of several places, with hairier code to find
	it and massage it.

	* malloc/Makefile (obstack.%): Remove rule.
	(gpl2lgpl): Define this instead.
	* posix/Makefile (gpl2lgpl): Define to include getopt source files.
	* Makerules ($(gpl2lgpl)): New rule to snarf code and frob its
	copying notices.

Fri Aug 14 13:28:39 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* Makeconfig (common-objdir, common-objpfx): Define new vars.
	(libc.a): Define in terms of $(common-objpfx).
	Find config.make with $(common-objpfx), not $(objpfx).
	* Makerules (common-objdir-compile): Define canned sequence.
	(native-compile): Use $(@D)/$(@F) instead of stripping off $(objpfx).
	* sysdeps/unix/Makefile, sysdeps/unix/bsd/Makefile,
	sysdeps/generic/Makefile: Use it.
	Use $(common-objpfx) for generated things not specific to one subdir.

	* sysdeps/unix/Makefile (sysdep_headers): Add
	$(sys/param.h-includes) to this instead of to headers.

Thu Aug 13 18:30:58 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c: Always #include <sys/types.h>.
	[! USG]: Don't do it here.
	[STDC_HEADERS]: Test this instead of __STDC__ for size_t.
	[HAVE_STRCOLL]: Test this instead of ANSI_STRING for strcoll.

	* posix/glob/Makefile.in (Makefile): Remove rule.

Wed Aug 12 16:12:52 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/sparc/jmp_buf.h: Deansideclized.

	* sysdeps/generic/make_siglist.c: #undef HAVE_SYS_SIGLIST, not
	SYS_SIGLIST_MISSING.
	* sysdeps/generic/signame.[ch]: Re-symlinked from /gd/gnu/lib.
	Who's been removing random things from my source tree??

Tue Aug 11 15:01:50 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/getconf.c (main): Cast printf field with arg to int.

	* Makefile (distribute): Remove ansidecl, ansidecl.m4.

	* posix/glob.c [_AIX]: Don't declare alloca.

Mon Aug 10 17:09:40 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/m68k/fpu/__math.h (__expm1): Define just like expm1.

	* sysdeps/unix/ioctls-tmpl.c [SMIOSTATS, SMIOGETREBOOT0,
	ZIOCBCMD]: Include headers for these.

Fri Aug  7 16:01:43 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* string/tester.c (main): Use sys_nerr and sys_errlist, not _sys_*.

	* stdio/stdio.h [__USE_GNU] (_sys_nerr, _sys_errlist): Declare.

	* string/strerror.c, stdio/perror.c
	[HAVE_GNU_LD] (_sys_errlist, _sys_nerr): Remove decls.

	* stdio/memstream.c (enlarge_buffer): Notice when target is -1 and
	don't treat it as a huge value.

	* stdio/tst-printf.c: #if 0 code that tickles printf_fp bugs.

	* grp/testgrp.c: Don't bomb if uid not in passwd file.

	* stdlib/tst-strtol.c (tests): C-t on LONG_MIN and LONG_MIN-1 elts.

	* stdlib/strtol.c: Use int flag NEGATIVE instead of char 1/-1 SIGN.
	Fixed checking for overflow of long int that fits in unsigned long
	int--must cast LONG_MIN before negating!

Thu Aug  6 18:46:24 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* stdio/bug3.c (main): Define ansideclifily.

	* sysdeps/unix/bsd/sun/sparc/__pipe.S: Define __pipe, not ___pipe.

	* math/test-math.c (main): Remove unused vars.

	* io/flock.c: #include <sys/file.h>, and not fcntl.h or sys/types.h.

	* sysdeps/m68k/fpu/__math.h (__rint): Define just like rint.

	* math/math.h (__rint): Declare.

	* configure (esix*): base_os=unix/sysv.

	* dirent/getdents.c: #include <dirent.h>.

	* Rules (subdir): Avoid TAB before # at end of defn.

	* sysdeps/unix/bsd/bsd4.4/__wait3.c: Last arg type is struct rusage *.

Tue Aug  4 18:19:43 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/ieee754/Makefile: Removed.

	* math/math.h: Declare __expm1.

Mon Aug  3 13:02:05 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/ieee754/cabs.c (cabs, z_abs): Members of structure have __.

	* sysdeps/unix/bsd/seq386: Remove directory.

Thu Jul 30 15:42:01 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/unix/bsd/sun/sparc/sigcontext.h: Deansideclized.

	* sysdeps/unix/bsd/sun/sunos4/__wait4.c: Make last arg struct rusage
	instead of PTR.

	* sysdeps/unix/morecore.c (__default_morecore): Make arg ptrdiff_t.

	* sysdeps/ieee754/cabs.c (cabs, z_abs): Use `struct __complex' for arg.

	* sysdeps/generic/pow.c: #include <limits.h>.

	* sysdeps/generic/mathimpl.c: #include <math.h> before frobnication.

	* misc/getusersh.c (okshells): Make const.
	(initshells): Properly declare static.

	* sysdeps/unix/bsd/__tcgetatr.c: Cast sg_[io]speed to (unsigned char)
	to avoid gcc warnings.

	* math/bsd/common/atan2.c, math/bsd/common/tan.c,
	math/bsd/common/sincos.c, math/bsd/common/trig.h,
	math/bsd/common_source/__expm1.c, math/bsd/common_source/fmod.c,
	math/bsd/common_source/acosh.c, math/bsd/common_source/log.c,
	math/bsd/common_source/asincos.c, math/bsd/common_source/asinh.c,
	math/bsd/common_source/log1p.c, math/bsd/common_source/atan.c,
	math/bsd/common_source/log__L.c, math/bsd/common_source/atanh.c,
	math/bsd/common_source/mathimpl.h, math/bsd/common_source/cosh.c,
	math/bsd/common_source/exp.c, math/bsd/common_source/sinh.c,
	math/bsd/common_source/exp__E.c, math/bsd/common_source/tanh.c,
	math/bsd/common_source/floor.c: Moved to sysdeps/generic.
	* math/bsd/ieee/{cabs,cbrt,support}.c: Moved to sysdeps/ieee754.
	* All above + sysdeps/generic/mathimpl.h, sysdeps/generic/pow.c: New
	code from 4.4/net2.

	* sysdeps/generic/ffs.c: #include <string.h>, not <bstring.h>.

	* posix/glob/Makefile.in (Makefile): Depend on config.status; invoke
	it directly instead of using $(SHELL).

	* posix/glob.c [! USG]: #include <sys/types.h> before <sys/dir.h>.

Tue Jul 28 17:54:23 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/unix/bsd/ultrix42: Renamed to ultrix4.

	* sysdeps/unix/sysv/isc2.2/__rename.S: New.
	* configure (isc*): base_os=unix/sysv.

	* Makefile, Makerules, Rules, math/Makefile, ctype/Makefile: Use
	"export foo := $(foo)" instead of ifdef have_export_directive.
	* Makeconfig (have_export_directive): Remove; move .NOEXPORT down.

Mon Jul 27 18:01:30 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* configure: Remove redundant test to set os_used.

Sun Jul 26 17:03:31 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* README.template: Don't mention Q+A.
	* Makefile (distribute): Remove Q+A.

	* Makefile, Makerules, Rules, math/Makefile, ctype/Makefile: Put
	"ifdef have_export_directive" around uses of `export' directive.
	They are only needed for dist and tags anyway.
	* Makeconfig (have_export_directive): Add commented-out defn, and
	comment to explain.
	(.NOEXPORT): Add special target for old versions of GNU make.

	* posix/glob.c [_AIX]: #pragma alloca first thing.
	[ANSI_STRING]: Remove #define's for index et al.

Thu Jul 23 21:49:53 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* misc/getpass.c: New.
	* posix/unistd.h (getpass): Declare.

	* posix/unistd.h (getusershell, setusershell, endusershell): Declare.
	* misc/Makefile (routines): Add getusersh.
	* misc/getusersh.c: New.

Tue Jul 14 20:03:57 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* stdlib/Makefile (tests): Add testdiv.
	* stdlib/testdiv.c: New.

	* sysdeps/unix/sysv/i386/linux/{rename,__mkdir,__rmdir,__dup2,
	getpgrp,__setpgrp,setsid}.S: New files.

	* sysdeps/unix/__getppid.S: If SYS_getppid is defined, use it rather
	than alternate value of getpid.
	* __gete[ug]id.S: Similar.

	* sysdeps/unix/sysv/i386/linux/__waitpid.S: New file.
	* sysdeps/unix/sysv/i386/linux/__wait.S: New file.
	* sysdeps/posix/__wait3.c: New file.

	* sysdeps/unix/sysv/i386/linux/socket.S: New file.
	* bind.S, connect.S, listen.S, accept.S, getsockname.S,
	getpeername.S, socketpair.S: Also new (and trivial).

Mon Jul 13 17:41:46 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/unix/sysv/i386/linux/sysdep.[hS]: New files.

	* configure (linux*): base_os=unix/sysv
	(gnu*, linux*): Always set --with-gnu-ld and --with-gnu-as.

	* stdio/obstream.c: #include <string.h>
	(obstack_vprintf): Use bzero rather than memset.

	* stdio/glue.c (unix_FILE.glue): Add two members, which will overlap
	get_limit and put_limit in GNU stdio.
	(_iob): Initialize them to same as `streamp'.

Thu Jul  9 21:27:39 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* stdio/stdio.h (open_obstack_stream, obstack_printf,
	obstack_vprintf): Declare.

	* posix/glob.c [STDC_STRINGS]: Don't test this.
	[! ANSI_STRING]: Put memcpy, strrchr, memset defns here instead.

	* posix/glob/Makefile.in (glob.o, fnmatch.o): / after $(srcdir).

Tue Jul  7 03:11:23 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* stdio/Makefile (routines): Add obstream.

	* Makerules (%.o: %.S, %.o: %.c): If using gcc, put the file name
	before the options on the command line.

	* malloc/Makefile (dist-routines): Define with routines for malloc.tar.
	(routines): Define with that plus the rest.
	(nodist): Remove.
	(routines): Add obstack.
	(headers): Add obstack.h.
	(obstack.%): New rule.

	* stdio/glue.c: Add comments.

	* stdio/printf.h (struct printf_info.spec): Make unsigned char.

	* stdio/stdio.h (__validfp): Fixed glued-stream snarfing.

Mon Jul  6 20:00:47 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/i386/jmp_buf.h: Deansideclized.

	* sysdeps/posix/Makefile (objdir-CPPFLAGS): Define; if in parent
	dir, add ..s to -Is.
	(mk-stdiolim): Use it in place of $(CPPFLAGS).

Sat Jul  4 20:44:42 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob/Makefile.in (glob.o, fnmatch.o): Put $(srcdir) on deps.

Wed Jul  1 00:13:40 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/generic/strstr.c: If NEEDLE is "", return end of HAYSTACK.

	* string/tester.c (main): Remove decls of sys_nerr and sys_errlist.

	* configure: Accept --prefix=*, --exec_prefix=* options.
	Set values in config.make and config.status.

	* io/umask.c: Fixed return type in fn alias.

	* posix/glob.c [! ANSI_STRING]: #define strcoll to strcmp.
	Remove extra decls of free, qsort, malloc, and realloc.

	* dirent/alphasort.c: #include <string.h>, and not <stdlib.h>.

	* sysdeps/unix/bsd/i386/__wait3.S: Load SYS_wait into %eax before
	trapping.  Use literal .byte instead of lcall to avoid gas bug.
	Use 0(REG), not (REG), for register-indirect addressing.

	* configure: Make config.status executable.

Tue Jun 30 21:14:53 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* configure: Add --os-release=* and --os-version=* options.  Record
	settings (which might be automagically guessed) in config.status.

	* misc/mknod.c: Use __mode_t for arg in fn alias.

	* posix/unistd.h (setregid): Declare to take __gid_t args.

	* sysdeps/unix/bsd/i386/__wait3.S: Don't use lcall insn gas barfs on.

	* posix/vfork.c: Move to sysdeps/generic/.

	* Rules (others, tests): Export them.

	* io/umask.c, io/mkdir.c, io/chmod.c: Use mode_t not int in arg decls.

	* sysdeps/i386/ffs.c: #include <string.h>, not <bstring.h>.

	* stdio/vfscanf.c: Use function_alias.

	* stdio/vsscanf.c: Use va_list, not PTR, in arg decl in fn alias.

	* sysdeps/unix/i386/sysdep.h (PSEUDO): Enough backslashes and
	semicolons.

	* stdio/stdio.h: For __gnuc_va_list, #test __GNUC_VA_LIST, not
	__va_list_defined.

	* stdio/fmemopen.c: Use memchr to find NUL for append mode.

	* stdio/memstream.c (enlarge_buffer): Double the buffer size, rather
	than adding 100.  Don't clobber *INFO->bufsize when called with the
	put limit reset.  If the target has been set, extend and zero-fill
	the buffer.
	(seek): New function.
	(open_memstream): Use it for seek io fn.  Call fmemopen with "w+" mode.

Sun Jun 28 19:01:01 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* stdio/fseek.c: Fail with EINVAL for a negative file pos.

Fri Jun 26 00:07:53 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* Makeconfig (stdarg.h): New variable.
	* Makefile (headers): Add $(stdarg.h).

	* stdio/stdio.h: Change __va_list to __gnuc_va_list in decls.

	* sysdeps/unix/morecore.c: Include malloc.h #ifndef _MALLOC_INTERNAL.
	Don't include <stdio.h>.
	(NULL): Define to 0 if not defined.

	* sysdeps/i386/bzero.c: Include string.h, not bstring.h.

Thu Jun 25 21:01:40 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* stdio/perror.c, string/strerror.c (_sys_errlist, _sys_nerr): Don't
	declare #ifndef HAVE_GNU_LD.

	* stdio/fwrite.c: Cast arg to write io func to const char * (from uns).

	* sysdeps/unix/Makefile: If syscall.h doesn't exist in
	$(sysincludedir), look for sys/syscall.h and create $(objpfx)syscall.h
	to #include it.

	* sysdeps/unix/morecore.c (__default_morecore): Deansideclized.
	* malloc/*.c: Only #include <malloc.h> #ifndef _MALLOC_INTERNAL.

Wed Jun 24 19:09:04 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/unix/snarf-ioctls: Avoid looking at a few particular
	headers which tend to mislead us.

	* Makefile (distribute): Add COPYING.

	* configure (Makefile): When invoking make in srcdir, set ARCH
	rather than objdir on the cmd line.

	* posix/glob.c [DIRENT] (direct): Don't define to dirent.
	[! DIRENT] (direct): Define to dirent.

	* Make-dist [!subdir] (+tsrcs): Don't include $(distribute).  It was
	already included above.

Mon Jun 22 16:58:34 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* Makerules (sysdep_routines): Export it.

Wed Jun 17 17:58:05 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob.c (my_realloc): Test only __GNU_LIBRARY__.  Can't trust
	STDC_HEADERS.

Tue Jun 16 20:20:01 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* resource/sys/resource.h (enum __rlimit_resource): Added MEMLOCK,
	NPROC, OFILE.

	* posix/Makefile (glob.tar): Include Makefile.in & configure, and not
	Makefile.
	(glob/configure): New rule.

	* posix/glob/Makefile: Moved to posix/glob/Makefile.in.
	(VPATH, srcdir, CPPFLAGS): Define to be replaced by autoconf.

	* posix/glob.c: Rearranged conditionals for use with autoconf.

Thu Jun 11 15:47:43 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/unix/bsd/sun/sparc/start.c: Added alias for start -> __start.

Tue Jun  9 20:15:12 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/posix/rename.c: Return failure and don't remove the old
	link if the link failed with other than EEXIST.

	* posix/glob/Makefile: Fixed copyright notice.
	(realclean): Don't remove ~ backup files.

Thu Jun  4 16:41:56 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* time/Makefile (install-data): Don't include zoneinfo/.
	Makerules already makes sure the necessary directories exist.

	* setjmp/setjmp.h (sigsetjmp) [__GNUC__]: Use typeof hackery to
	construct the type of the temporary var for the arg.
	(_setjmp) [__FAVOR_BSD]: Make same as setjmp.

	* malloc/malloc.h (mtrace): Declare.

	* malloc/malloc.h, malloc/calloc.c, malloc/free.c, malloc/malloc.c,
	malloc/mcheck.c, malloc/memalign.c, malloc/mstats.c,
	malloc/mtrace.c, malloc/realloc.c, malloc/valloc.c: Deansideclized;
	changed copyright notices to be independent of libc.
	* malloc/Makefile (glob/%.c, glob/%.h): Don't need to ansideclificate.

	* io/ftw.h, io/ftw.c: New.
	* io/Makefile (headers): Added ftw.h.
	(routines): Added ftw.

Tue Jun  2 21:49:22 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/unix/bsd/signum.h (SIG_ERR, SIG_DFL, SIG_IGN): Use
	__sighandler_t.

	* posix/glob.c (__ptr_t): Define.

Thu May 28 06:57:14 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/m68k/jmp_buf.h: Don't use PTR.

Wed May 27 18:09:40 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/{glob,fnmatch}.[ch]: Deansideclized; changed copyright
	notice to be independent of libc.
	* posix/Makefile (glob/%.c, glob/%.h): Don't need to ansideclificate.

	* posix/unistd.h (_SC_2_FORT_RUN, _SC_2_LOCALDEF): Define.

	* posix/unistd.h: Define _POSIX2_* without #ifdef __USE_POSIX2.

	* posix/unistd.h (_POSIX2_FORT_DEV): Removed.

	* posix/fnmatch.h (FNM_FILE_NAME): Alias for FNM_PATHNAME.

Tue May 26 00:39:39 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* time/Makefile (install-data): Include zoneinfo/, so the directory
	gets made.

	* Makeconfig (+gcc-nowarn): Define to -w if using gcc.
	* time/Makefile (tz-cc): Use it to suppress warnings for grody code.

	* posix/Makefile (libposix.a), math/Makefile (libm.a): Make archive
	containing /dev/null instead of nothing; ar won't create an empty
	archive.

	* Makerules (%/): Added generic mkdir rule.

	* posix/Makefile (install-lib): Define to libposix.a.
	(libposix.a): Create empty archive.

	* posix/Makefile (distribute): Added utsnamelen.h.

	* ctype/ctype.c (tolower, toupper): If the arg doesn't fit in a
	char, return it unchanged.
	* ctype/ctype.h (tolower, toupper): Don't define as macros.
	[__GNUC__]: Define as extern inline functions.

	* sysdeps/unix/bsd/sun/sunos4/utsnamelen.h,
	sysdeps/unix/bsd/sun/sunos4/uname.S: New.

	* configure: Only do hacking to snarf uname info if the config uses
	the generic uname implementation.

	* Makeconfig (+defines): Define to include $(gnu_ld), rather than
	-DHAVE_GNU_LD.
	* configure: Write config.make with gnu_ld/gnu_as defns.

	* sysdeps/unix/bsd/sun/sunos411: Renamed back to .../sunos4.
	* sysdeps/unix/bsd/bsd44: Renamed to .../bsd4.4.

	* Makeconfig: include $(objpfx)configparms instead of
	$(objdir)/Makeconfig.
	Define objpfx as soon as objdir is defined, so we can use it.

	* sysdeps/generic/uname.c: Use UNAME_* from config-name.h.

Mon May 25 19:33:07 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* configure: Accept all standard GNU configure options.
	Expect to be run in object directory, and find source directory
	elsewhere.
	Write config.status as a shell script that can be run to recreate
	the configuration.
	Grok os names containing dots by trying each successively
	less-precise substring.
	Write Sysnames and config-name.h in current directory.
	Write #define's for uname sysname, release, version, and machine
	elts in config-name.h.  Hackery to intuit release and version info.

	* stdio/vsnprintf.c, stdio/vsprintf.c, stdio/vasprintf.c,
	stdio/vdprintf.c, stdio/vfscanf.c, stdio/vscanf.c,
	stdio/__vsscanf.c: Take arg list as va_list, not PTR.

	* stdio/stdio.h: Replaced #include <stdarg.h> with magic.
	Properly use __va_list in prototypes.

	* Makeconfig (exec_prefix): Define.
	(libdir, includedir, bindir): Use it.

	* sysdeps/unix/sysv/Makefile [subdir==io] (sysdep-routines): Removed
	__utssys.
	* sysdeps/unix/sysv/Dist: Removed __utssys.S.
	* sysdeps/unix/sysv/__utssys.S, sysdeps/unix/sysv/uname.c: Removed.
	* sysdeps/unix/sysv/uname.S, sysdeps/unix/sysv/utsnamelen.h: New.

	* posix/sys/utsname.h (_UTSNAME_LENGTH): Don't define; instead,
	#include <utsnamelen.h> to define it.
	* sysdeps/generic/utsnamelen.h: New.

Sun May 24 00:07:45 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/generic/inet-cvt.h: Deansideclized.

	* string/string.h (memfrob): First arg is __ptr_t, not char *.

	* misc/sys/cdefs.h (__ptr_t): Made #define rather than a typedef.

Fri May 22 01:52:04 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* Makefile, Rules, Makerules: Remove all rules for ansideclificating
	headers.

	* posix/glob.h, posix/fnmatch.h: Use explicit cruft for C++.
	Define __P and const for C++/ANSI vs old C ourselves, to avoid
	dependence on <sys/cdefs.h>.

	* inet/Makefile: Remove cruft to snarf things from bsd/.
	* inet/bsd/*.c: Moved to inet/.

	* Makerules: Install headers from source directories into
	$(includedir), rather than ansidecl madness.
	* Makeconfig (ansi-incldir, trad-incldir): Removed.
	(includedir): Define instead.

	* assert/assert.h, ctype/ctype.h, dirent/dirent.h, grp/grp.h,
	  locale/locale.h, locale/localeinfo.h, math/math.h,
	  misc/sys/file.h, misc/sys/ioctl.h, misc/sys/ptrace.h,
	  misc/sys/uio.h, misc/sgtty.h, misc/nlist.h, posix/gnu/types.h,
	  posix/sys/wait.h, posix/sys/types.h, posix/sys/times.h,
	  posix/sys/utsname.h, posix/unistd.h, posix/tar.h, posix/utime.h,
	  posix/wordexp.h, posix/glob.h, posix/fnmatch.h, pwd/pwd.h,
	  resource/sys/resource.h, resource/sys/vlimit.h,
	  resource/sys/vtimes.h, setjmp/setjmp.h, signal/signal.h,
	  signal/gnu/signal.h, socket/sys/socket.h, stdio/stdio.h,
	  stdio/printf.h, stdlib/alloca.h, stdlib/stdlib.h, string/string.h,
	  termios/termios.h, time/sys/time.h, time/time.h, io/sys/stat.h,
	  io/fcntl.h, errno.h, stddef.h, malloc/malloc.h:
	Deansideclized.  Use <sys/cdefs.h> macros instead of ansidecl and
	C++ cruft.
	* features.h: #include <sys/cdefs.h>.

	* string/string.h (strfry, memfrob): Declare.
	* string/Makefile (routines): Added strfry and memfrob.
	* string/strfry.c, string/memfrob.c: New.

	* locale/C-ctype_ct.c: Made BS be isspace.

	* sysdeps/generic/strstr.c: Return HAYSTACK, not its end, if NEEDLE
	is the empty string.

	* sysdeps/generic/strncase.c: Fixed for case of empty string.

Wed May 20 02:36:09 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* io/sys/stat.h (fchmod): Declare, rather than two __fchmod decls.

	* configure (sysv, bsd): Don't make base_os=unix; unix/{sysv,bsd}
	instead.
	Set os_used if base_os is used.

Tue May 19 21:00:11 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* crypt/*: New files from glad.

	* stdio/stdio.h (sys_nerr, sys_errlist): Don't declare const.

Sun May 17 15:50:00 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* io/Makefile (headers): Remove gnu/stat.h; add sys/stat.h.

	* posix/glob.c (glob): Don't let us fall off the end without returning.

	* sysdeps/stub/setenv.c, sysdeps/posix/setenv.c: New.
	* stdlib/stdlib.h [__USE_BSD] (setenv): Declare.
	* stdlib/Makefile (routines): Add setenv.

	* malloc/mtrace.c (old_{free,malloc,realloc}_hook): Renamed to tr_&
	to not conflict with mcheck.c when combined into gmalloc.c.

Fri May 15 19:07:54 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* socket/sys/socket.h (PF_NBS, AF_NBS): Removed.
	(PF_ISO, PF_OSI, PF_APPLETALK, PF_ROUTE, PF_LINK): Define.
	(PF_MAX): Increase accordingly.

	* inet/bsd/*.c: Snarfed latest code from 4.4.

	* misc/sys/cdefs.h (__BEGIN_DECLS, __END_DECLS): Define cruft for C++.

Thu May 14 01:45:12 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/glob.h (GLOB_MAGCHAR): Check user feature-test macros,
	rather than __USE_BSD, so we don't depend on features.h.

	* sysdeps/stub/__wait4.c: Last arg is struct rusage *, not PTR.

	* math/bsd/common_source/mathimpl.h: Don't #define const.
	#include <sys/cdefs.h> instead.

	* Makefile (+other_dirs): Add crypt, but only if it exists at run time.
	* crypt/GNUmakefile: New file.
	* sysdeps/sparc/Makefile, sysdeps/m68k/Makefile (crypt):
	Define to use machine-dependent assembly code in crypt/crypt.*.S.
	* crypt: New directory.

	* find-sysdirs: Don't lose if there are no sysnames.

	* termios/Makefile (headers): Added sys/termios.h.
	* termios/sys/termios.h: New file; just #include <termios.h>.

	* stdlib/qsort.c: Define _quicksort rather than qsort.
	* stdlib/msort.c: New file; defines qsort function that does merge
	sort.  Falls back to _quicksort if it fails to allocate a temp array.
	* stdlib/Makefile (routines): Added msort.

	* string/string.h (memccpy, strdup): Also declare #ifdef __USE_BSD.
	[__USE_BSD] (index, rindex, bcmp, bzero, ffs): Declare.
	* string/strings.h: Just #include <string.h>.
	* string/Makefile (headers): Removed bstring.h.

	* misc/Makefile (routines): Removed swab.
	* string/Makefile (routines): Put it here instead.
	* misc/swab.c: Moved to string/swab.c.

	* stdio/stdio.h [__USE_BSD] (sys_nerr, sys_errlist): Declare.

	* grp/grp.h (setgrent, endgrent, getgrent): Also do #ifdef __USE_BSD.

	* posix/glob.h [__USE_BSD] (GLOB_MAGCHAR): Declare.
	(glob_t): Added member `gl_flags'.
	* posix/glob.c (glob, glob_in_dir): Set gl_flags member to FLAGS;
	or in GLOB_MAGCHAR if any metachars are seen.

	* sysdeps/unix/bsd/bsd44/readdir.c: New.

	* sysdeps/unix/bsd/sun/readdir.c: Don't need to declare
	__getdirentries here.  Use off_t and ssize_t.

	* misc/Makefile (routines): Removed getdents and __getdents.
	* dirent/Makefile (routines): Put them here instead.
	* misc/getdents.c: Moved to dirent/getdents.c.
	* dirent/dirent.h [__USE_BSD] (__getdirentries, getdirentries):
	Declare.

	* dirent/Makefile (routines): Added scandir and alphasort.
	* dirent/scandir.c, dirent/alphasort.c: New.
	* dirent/dirent.h [__USE_BSD] (scandir, alphasort): Declare.

	* sysdeps/unix/bsd/nice.c, sysdeps/unix/sysv/nice.S,
	sysdeps/stub/nice.c: New.
	* resource/Makefile (routines): Added nice.

	* misc/sys/cdefs.h [__USE_BSD] (const, signed, volatile): #define to
	__ versions, for the sake of 4.4 header files.

Wed May 13 00:35:12 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* stdlib/tst-strtol.c: Fixed typo in test table.

	* stdlib/strtol.c: Fixed checking for overflow of long int that fits
	in unsigned long int.

	* misc/Makefile (headers): Added ttyent.h.
	(routines): Added getttyent.
	* misc/ttyent.h, misc/getttyent.h: New; snarfed from 4.4.

	* posix/sys/wait.h [__USE_BSD]: Added forward decl for struct rusage.
	(__wait4, __wait3): Declare arg as struct rusage, not PTR.

	* inet/arpa/*.h, inet/protocols/*.h, inet/netdb.h, inet/resolv.h:
	New files from 4.4.
	* inet/Makefile (headers): Snarf *.h from arpa/ and protocols/.

	* sysdeps/m68k/fpu/__math.h, assert/assert.h: #include <sys/cdefs.h>
	and use its macros rather than rolling our own.

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

	* Makerules: Moved check for headers coming from env to Rules.

Tue May 12 01:04:10 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* sysdeps/generic/strsep.c: New.
	* string/string.h [__USE_BSD] (strsep): Declare.
	* string/Makefile (routines): Added strsep.

	* sysdeps/unix/sysv/__settod.c, sysdeps/unix/sysv/stime.S,
	sysdeps/unix/bsd/stime.c, sysdeps/stub/stime.c: New.
	* time/time.h [__USE_SVID] (stime): Declare it.

	* sysdeps/unix/bsd/bsd44/__getdents.S: New.

	* posix/wordexp.h, posix/utime.h, posix/unistd.h, time/time.h,
	termios/termios.h, posix/tar.h, string/strings.h, string/string.h,
	stdlib/stdlib.h, signal/signal.h, stdio/stdio.h, misc/sgtty.h,
	setjmp/setjmp.h, inet/resolv.h, pwd/pwd.h, stdio/printf.h,
	misc/nlist.h, inet/netdb.h, math/math.h, malloc/malloc.h,
	locale/locale.h, grp/grp.h, posix/glob.h, posix/getopt.h,
	posix/fnmatch.h, io/fcntl.h, errno.h, dirent/dirent.h,
	ctype/ctype.h, string/bstring.h, assert/assert.h, stdlib/alloca.h,
	misc/a.out.h [__cplusplus]: Added stupid cruft for losing C++.

Mon May 11 01:40:49 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* math/Makefile (headers): Added huge_val.h and nan.h.

	* io/Makefile (headers): Changed gnu/stat.h to statbuf.h.

	* time/Makefile (install-data): Include $(localtime-file) and
	$(posixrules-file) if they are relative.
	(install-others): Include them if absolute.
	($(posixrules-file), $(localtime-file)): Define rules to install if
	absolute file names.
	* Makerules (+install): Include $(install-others) verbatim.
	* Makeconfig (localtime-file): Made default /etc/localtime.

	* sysdeps/generic/Makefile (endian.h): Only generate if would
	otherwise use stub version.
	* sysdeps/stub/endian.h, sysdeps/i386/endian.h: New.

	* Rules, Makefile: Export distribute and dont_distribute.
	* Make-dist: Export sysdep_dirs.  Unexport things rather than
	clobbering their values.

	* misc/sys/ptrace.h: Fixed typo.

	* stdio/stdio.h (__io_read, __io_write, __io_seek, __io_close):
	Added comments.

	* stdio/internals.c (flushbuf): If in append mode, don't do aligned
	writing, seek to the target, or update the offset.

	* posix/unistd.h (lseek): Doc fix.

	* misc/swab.c: New.
	* misc/Makefile (routines): Added swab.

Wed May  6 12:32:18 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* math/Makefile, inet/Makefile (source_dirs): Export it.
	* MakeTAGS (all-dirs): Include $(source_dirs).

	* Makefile (TAGS): Removed dep on subdir_TAGS.
	(+subdir_targets): Removed subdir_TAGS.
	* MakeTAGS [! subdir] (TAGS): Depend on subdir_TAGS.
	[! subdir] (subdir_TAGS): Recurse on subdirectories.

	* Makerules (headers): Don't take value from the environment.

	* Makerules (sysdirs, sysdep_dir): Export them.

	* MakeTAGS: New makefile.
	* Makefile (distribute): Include it.
	* Makefile (TAGS), Rules (TAGS): Removed rules.
	* Makerules (TAGS): New rule that uses MakeTAGS.
	* Makefile (TAGS): Depend on subdir_TAGS.

	* Makerules (install, install-lib, install-data, routines, aux):
	Don't bother removing these if they come from the environment, since
	they won't with make >= 3.62.8.
	* Rules (distribute, headers): Ditto.
	(subdir): Export it.
	* Makerules (sources, headers): Export these.
	* Makefile (subdirs): Export it.

	* Rules (+tags_sources): Removed.
	* Makerules (tags-sources): Define here.
	* ctype/Makefile (tags-sources): Redefine to give headers precedence
	over sources.
	* Rules (TAGS), Makefile (TAGS): Rewrote rules.
	* Makeconfig (+ctags): Removed.
	(ETAGS): Define.

	* sysdeps/posix/getcwd.c: Don't closedir twice.

	* sysdeps/unix/bsd/hp/m68k/__wait3.S: Define __wait3, not ___wait3.

	* posix/sys/types.h [__USE_BSD] (fsid_t): Define.
	* posix/gnu/types.h (__fsid_t): Define.

	* io/fcntl.h (F_GETLK): Define.

Tue May  5 18:36:46 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* misc/Makefile (routines): Added seteuid and setegid.
	* sysdeps/stub/sete[ug]id.c, sysdeps/unix/bsd/bsd44/sete[ug]id.S: New.
	* posix/unistd.h [__USE_BSD] (seteuid, setegid): Declare.

	* sysdeps/unix/bsd/tcsendbrk.c: #include <sys/types.h>

	* Makerules: Strip whitespace from $(headers) so ifdef wins.

	* sysdeps/unix/bsd/bsdtty.h: #undef a bunch more things.

	* sysdeps/unix/bsd/bsd44/errnos.h: New, hacked from 4.4 <sys/errno.h>.

	* sysdeps/unix/Makefile (ioctls.h, errnos.h): Only generate if
	the files that would be used otherwise are the stub versions.

	* sysdeps/unix/bsd/tcflow.c: Don't write VSTOP or VSTART if it is
	_POSIX_VDISABLE.

	* sysdeps/unix/bsd/tcflush.c: Use FREAD|FWRITE for TCIOFLUSH.

	* sysdeps/unix/bsd/usleep.c: Use select rather than itimers to wait.

	* sysdeps/unix/bsd/tcsendbrk.c: Use select rather than itimers to wait.

	* termios/cfmakeraw.c: New.
	* termios/Makefile (routines): Added cfmakeraw.

	* sysdeps/unix/bsd/bsd44/ioctls.h: New file, hacked from 4.4
	<sys/ioctl.h>.
	* sysdeps/unix/bsd/bsd44/__tcgetatr.c: New.
	* sysdeps/unix/bsd/bsd44/tcsetattr.c: New.
	* sysdeps/unix/bsd/bsd44/tcdrain.c: New.

	* termios/sys/ttydefaults.h: New, snarfed from 4.4.
	* termios/Makefile (headers): Define.
	* termios/termios.h [__USE_BSD]: #include <sys/ttydefaults.h>

	* sysdeps/posix/getcwd.c: Removed unused variable.

	* time/__tzset.c: Cast string literal to (char *).

	* setjmp/sigjmp_save.c: Declare properly to return void.

	* sysdeps/ieee754/nan.h: Created; somehow it disappeared.

Mon May  4 18:30:52 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/unix/bsd/bsd44/__wait4.S: New.

	* sysdeps/unix/bsd/4.4: Renamed to sysdeps/unix/bsd/bsd44.

	* signal/gnu/signal.h (__SA_DISABLE, __SA_NOCLDSTOP): Use same bits
	4.4 uses.

Sun May  3 13:57:25 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* stdio/fwrite.c: Use unsigned char to avoid sign extension.

	* stdlib/__random.c (randtbl): Replaced default constants so they
	match the state produced by "srandom (1)".

	* stdlib/mbtowc.c: Test for S == "" before testing for no mbchars.

	* stdlib/Makefile (tests): Added testrand.
	* stdlib/testrand.c: New test for rand.

	* stdlib/testmb.c: Added 2 mblen tests.

	* stdlib/wcstombs.c: Don't do anything strange for EOF.
	Copy non-MB characters as they are.
	Properly increment S after writing.

	* stdlib/testmb.c: Added test case for wcstombs.

	* signal/signal.h (SA_DISABLE): Define.
	* signal/gnu/signal.h (__SA_DISABLE): Define.

	* signal/signal.h (struct sigaltstack): Define new type.
	(sigaltstack): Declare new fn.
	* sysdeps/stub/sigaltstack.c: New.
	* sysdeps/unix/bsd/4.4/sigaltstack.S: New.

	* misc/Makefile (routines): Added reboot.
	* posix/unistd.h (reboot): Declare.
	* sysdeps/stub/reboot.c: New.

	* sysdeps/unix/bsd/ulimit.c [! HAVE_GNU_LD]: #define _etext -> etext.

	* sysdeps/unix/bsd/sun/sparc/sethostid.S: #define _ERRNO_H before
	#include <errnos.h>.

	* configure (newos*): base_os=unix/bsd.

Fri May  1 12:21:47 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* io/gnu/stat.h: Moved to sysdeps/unix/bsd/statbuf.h.
	* sysdeps/unix/bsd/statbuf.h: Define struct stat, not struct __stat.
	* io/stat.c: Use struct stat, not struct __stat.
	* sysdeps/stub/statbuf.h: New.
	* io/sys/stat.h: #include <statbuf.h> instead of gnu/stat.h.
	(stat, fstat, lstat, chmod, fchmod, umask, mkdir, mknod): Don't
	#define; declare as fns instead.
	* sysdeps/unix/sysv/stat.h: New.
	* sysdeps/unix/sysv/sysv_stat.h, sysdeps/unix/sysv/sys_stat.S,
	sysdeps/unix/sysv/sys_fstat.S: Removed.
	* sysdeps/unix/sysv/Makefile (sysdep_routines): Removed sys_stat,
	sys_fstat.
	* sysdeps/unix/sysv/Dist: Removed sys_stat.S, sys_fstat.S.
	* sysdeps/unix/bsd/__stat.S, sysdeps/unix/bsd/__fstat.S: Moved to
	sysdeps/unix.

	* sysdeps/m68k/fpu/switch/Makefile: Refer to dirs fpu and
	fpu/switch, not 68881 and 68881-switch.

	* sysdeps/m68k/fpu/switch/switch.c: #include <68881-sw.h>, not
	  68881-switch.h.

	* sysdeps/m68k/fpu/__expm1.c, sysdeps/m68k/fpu/__rint.c,
	sysdeps/m68k/fpu/asin.c, sysdeps/m68k/fpu/atan.c,
	sysdeps/m68k/fpu/atanh.c, sysdeps/m68k/fpu/ceil.c,
	sysdeps/m68k/fpu/cos.c, sysdeps/m68k/fpu/cosh.c,
	sysdeps/m68k/fpu/exp.c, sysdeps/m68k/fpu/fabs.c,
	sysdeps/m68k/fpu/floor.c, sysdeps/m68k/fpu/log.c,
	sysdeps/m68k/fpu/log10.c, sysdeps/m68k/fpu/log1p.c,
	sysdeps/m68k/fpu/sin.c, sysdeps/m68k/fpu/sinh.c,
	sysdeps/m68k/fpu/sqrt.c, sysdeps/m68k/fpu/tan.c,
	sysdeps/m68k/fpu/tanh.c: #include <acos.c> without explicit path
	(which has changed).

	* sysdeps/unix/bsd/sun/sparc/start.c: #include <syscall.h>.
	(syscall): Removed C function; define all inside asm instead.
	(init_shlib): Cast return value of syscall to right types.

Thu Apr 30 01:15:33 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* sysdeps/unix/bsd/sun/sparc/start.c: Added code to use dynamic
	linker from trq@dionysos.thphys.ox.ac.uk.

	* sysdeps/unix/bsd/sun/sunos4: Renamed to sunos411.

	* setjmp/setjmp.h (sigsetjmp): Don't declare as a function.
	Define as a macro instead.
	(__sigjmp_save): Declare; internal fn used by sigsetjmp macro.
	(_setjmp), [__FAVOR_BSD] (setjmp): Always define as a macro.
	* setjmp/sigjmp_save.c: New file.
	* setjmp/_setjmp.c, setjmp/sigsetjmp.c: Removed.
	* Makefile (routines): Removed _setjmp, sigsetjmp; added sigjmp_save.
	* misc/bsd-compat.c (setjmp): Don't define.

	* configure (sysv, bsd): base_os=unix

	* configure: Fatal error if the machine or os did not generate any
	sysdep dirs.

	* configure: No error message after config.sub fails.

	* sysdeps/mips, sysdeps/unix/bsd/ultrix42: New port from
	brendan@cs.widener.edu.

	* Reorganized sysdeps:
	  unix/bsd/
	      hp9k3bsd -> hp/m68k
	      news -> sony/m68k
	      sun/
	          sun3/os3 -> sunos3/m68k
	          sun3 -> m68k
	          sun4 -> sparc
	  unix/sysv/
	      r4 -> sysv4
	  m68k/
	      68881 -> fpu
	      68881/68881-switch -> fpu/switch
	* sysdeps/unix/bsd/sony/m68k/start.c: Changed #include.
	* configure: Use config.sub to canonicalize name.
	Then use combinations of machine, vendor, and os (with special
	hacks for os flavors) for sysdep dirs to try.
	* Makefile (distribute): Added config.sub.

Wed Apr 29 23:06:06 1992  Brendan Kehoe  (brendan@churchy.gnu.ai.mit.edu)

	* sysdeps/unix/bsd/hp9k3bsd/sysdep.h,
	sysdeps/unix/bsd/sun/sun3/sysdep.h, sysdeps/unix/bsd/sun/sun4/sysdep.h,
	sysdeps/unix/bsd/vax/sysdep.h,sysdeps/unix/i386/sysdep.h,
	sysdeps/mach/i386/sysdep.h: Change all definitions of movl/mov to
	MOVE(s, d), for insn sets with d,s instead of s,d move insns.
	* sysdeps/unix/__getegid.S, sysdeps/unix/__geteuid.S,
	sysdeps/unix/__getppid.S: Use that in each of these.

Wed Apr 29 17:58:21 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* io/getwd.c: Default PATH_MAX if not defined.

	* sysdeps/unix/getlogin.c, sysdeps/posix/ttyname.c: Make buffers
	only as big as needed, avoiding PATH_MAX.

	* sysdeps/posix/getcwd.c: Dynamically extend the buffer as we go,
	not afterwards; default PATH_MAX if not defined.

	* posix/execvp.c: Dynamically allocate an array on the stack for the
	path name, rather than using a fixed-size array.

	* pwd/putpwent.c: Print pw_dir field.

	* sysdeps/posix/mktemp.c: If the pid has changed, update OLDPID.

Tue Apr 28 19:25:21 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* malloc/valloc.c [emacs]: #include "config.h"

Thu Apr 23 13:55:34 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* sysdeps/m68k/68881/__drem.c: Define __drem, not drem.
	Call ____drem, not __drem.

	* malloc/realloc.c, malloc/malloc.c: Don't #define memcpy or memset
	if already #define'd.

Tue Apr 21 04:16:56 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* malloc/Makefile: Moved include ../Rules after malloc.tar rules.
	They need $(routines), which Rules clears.

	* malloc/realloc.c (MIN): Renamed to min.  Conflicted with HPUX
	system header files.

	* Makefile (sysdep-subdirs): Is not called +sysdep-subdirs.

	* configure: Don't try to create config.status if . is not writable.

	* sysdeps/generic/printf_fp.c: Fixed padding loop condition for zero
	case.

	* math/math.h: Don't #include <float.h> for HUGE_VAL.
	Instead, #include <huge_val.h>.
	* stdlib/stdlib.h: Ditto.
	* math/math.h [__USE_GNU]: #include <nan.h> to get NAN value.
	* float.h: Removed.
	* Makefile (headers): Removed float.h and fl.h.
	* sysdeps/ieee754/huge_val.h, sysdeps/ieee754/nan.h,
	sysdeps/stub/huge_val.h, sysdeps/stub/nan.h, sysdeps/vax/huge_val.h:
	Created (from old fl.h files).

	* math/bsd/common_source/pow.c (pow_p): When checking if Y is an
	integer, don't let it overflow a `long int'.
	(pow): Check for NaN with __isnan, not (X != X).

Tue Apr 21 02:26:19 1992  Brendan Kehoe  (brendan@cs.widener.edu)

	* sysdeps/unix/bsd/sun/sun4/__pipe.S,
	sysdeps/unix/bsd/vax/__wait3.S, sysdeps/unix/bsd/hp9k3bsd/__wait3.S:
	Use the ENTRY macro for each beginning

	* sysdeps/unix/sysdep.h, sysdeps/unix/bsd/hp9k3bsd/sysdep.h,
	sysdeps/unix/bsd/sun/sun3/sysdep.h,
	sysdeps/unix/bsd/sun/sun4/sysdep.h, sysdeps/unix/bsd/vax/sysdep.h,
	sysdeps/unix/i386/sysdep.h, sysdeps/unix/sysdep.h,
	sysdeps/unix/sysv/sysdep.h [SYSCALL, SYSCALL__, PSEUDO]: Modify to
	also receive the number of args the syscall takes; added for future
	ports that will require this information.

	* sysdeps/unix/i386/__pipe.S, sysdeps/unix/bsd/vax/__pipe.S,
	sysdeps/unix/bsd/sun/sun4/__pipe.S,
	sysdeps/unix/bsd/hp9k3bsd/__pipe.S, sysdeps/unix/i386/__brk.S,
	sysdeps/unix/bsd/sun/__getdents.S, sysdeps/unix/i386/__fork.S,
	sysdeps/unix/bsd/vax/__fork.S, sysdeps/unix/bsd/sun/sun4/__fork.S,
	sysdeps/unix/__setgid.S, sysdeps/unix/__setuid.S,
	sysdeps/unix/bsd/sun/sun3/__vfork.S,
	sysdeps/unix/bsd/sun/sun4/__vfork.S,
	sysdeps/unix/bsd/vax/__wait.S, sysdeps/unix/bsd/hp9k3bsd/__wait.S,
	sysdeps/unix/i386/__wait.S,
	sysdeps/unix/bsd/sun/sunos4/sys_wait4.S,
	sysdeps/unix/bsd/sun/sun3/sethostid.S,
	sysdeps/unix/bsd/sun/sun4/sethostid.S,
	sysdeps/unix/bsd/__sigvec.S, sysdeps/unix/bsd/sun/sun4/__sigvec.S,
	sysdeps/unix/sysv/i386/__sigret.S, sysdeps/unix/__getppid.S,
	sysdeps/unix/bsd/__access.S, sysdeps/unix/sysv/signal.S,
	sysdeps/unix/__getegid.S, sysdeps/unix/__geteuid.S,
	sysdeps/unix/bsd/bsd_getgrp.S, sysdeps/unix/bsd/__dup2.S,
	sysdeps/unix/bsd/__fchmod.S, sysdeps/unix/bsd/__fchown.S,
	sysdeps/unix/bsd/__flock.S, sysdeps/unix/bsd/__fstat.S,
	sysdeps/unix/bsd/__lstat.S, sysdeps/unix/bsd/__mkdir.S,
	sysdeps/unix/bsd/__readlink.S, sysdeps/unix/bsd/__rmdir.S,
	sysdeps/unix/bsd/__stat.S, sysdeps/unix/bsd/__symlink.S,
	sysdeps/unix/bsd/4.4/chflags.S, sysdeps/unix/bsd/4.4/fchflags.S,
	sysdeps/unix/bsd/4.4/sstk.S, sysdeps/unix/bsd/4.4/setlogin.S,
	sysdeps/unix/bsd/__getdtsz.S, sysdeps/unix/bsd/__getpgsz.S,
	sysdeps/unix/bsd/__setregid.S, sysdeps/unix/bsd/__setreuid.S,
	sysdeps/unix/bsd/__utimes.S, sysdeps/unix/bsd/ftruncate.S,
	sysdeps/unix/bsd/readv.S, sysdeps/unix/bsd/truncate.S,
	sysdeps/unix/bsd/vhangup.S, sysdeps/unix/bsd/writev.S,
	sysdeps/unix/bsd/__getpgrp.S, sysdeps/unix/bsd/__setpgrp.S,
	sysdeps/unix/bsd/__getrusag.S, sysdeps/unix/bsd/getprio.S,
	sysdeps/unix/bsd/getrlimit.S, sysdeps/unix/bsd/setprio.S,
	sysdeps/unix/bsd/__sigblock.S,
	sysdeps/unix/bsd/__sigpause.S, sysdeps/unix/bsd/__sigstmsk.S,
	sysdeps/unix/bsd/killpg.S, sysdeps/unix/bsd/sigstack.S,
	sysdeps/unix/bsd/rename.S, sysdeps/unix/bsd/__adjtime.S,
	sysdeps/unix/bsd/__setitmr.S, sysdeps/unix/bsd/__settod.S,
	sysdeps/unix/sysv/sys_stat.S, sysdeps/unix/sysv/sys_fstat.S,
	sysdeps/unix/sysv/__utssys.S, sysdeps/unix/sysv/utime.S,
	sysdeps/unix/sysv/__times.S, sysdeps/unix/sysv/i386/time.S,
	sysdeps/unix/sysv/alarm.S, sysdeps/unix/sysv/pause.S,
	sysdeps/unix/sysv/ulimit.S, sysdeps/unix/__chdir.S,
	sysdeps/unix/__chmod.S, sysdeps/unix/__chown.S,
	sysdeps/unix/__close.S, sysdeps/unix/__dup.S,
	sysdeps/unix/__fcntl.S, sysdeps/unix/__link.S,
	sysdeps/unix/__lseek.S, sysdeps/unix/__open.S,
	sysdeps/unix/__read.S, sysdeps/unix/__umask.S,
	sysdeps/unix/__unlink.S, sysdeps/unix/__write.S,
	sysdeps/unix/__ioctl.S, sysdeps/unix/__mknod.S,
	sysdeps/unix/acct.S, sysdeps/unix/chroot.S, sysdeps/unix/fsync.S,
	sysdeps/unix/ptrace.S, sysdeps/unix/swapon.S, sysdeps/unix/sync.S,
	sysdeps/unix/__execve.S, sysdeps/unix/__getgid.S,
	sysdeps/unix/__getpid.S, sysdeps/unix/__getuid.S,
	sysdeps/unix/_exit.S, sysdeps/unix/__kill.S,
	sysdeps/unix/inet/__gethstnm.S, sysdeps/unix/inet/__select.S,
	sysdeps/unix/inet/gethostid.S, sysdeps/unix/inet/sethostid.S,
	sysdeps/unix/inet/sethostnam.S, sysdeps/unix/inet/accept.S,
	sysdeps/unix/inet/bind.S, sysdeps/unix/inet/connect.S,
	sysdeps/unix/inet/getpeernam.S, sysdeps/unix/inet/getsocknam.S,
	sysdeps/unix/inet/getsockopt.S, sysdeps/unix/inet/listen.S,
	sysdeps/unix/inet/recv.S, sysdeps/unix/inet/recvfrom.S,
	sysdeps/unix/inet/recvmsg.S, sysdeps/unix/inet/send.S,
	sysdeps/unix/inet/sendmsg.S, sysdeps/unix/inet/sendto.S,
	sysdeps/unix/bsd/vax/__wait3.S, sysdeps/unix/bsd/hp9k3bsd/__wait3.S,
	sysdeps/unix/inet/setsockopt.S, sysdeps/unix/inet/shutdown.S,
	sysdeps/unix/inet/socket.S, sysdeps/unix/inet/socketpair.S: Added the
	argument count to every use of SYSCALL, SYSCALL__ or PSEUDO.

Tue Apr 21 00:06:52 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* limits.h [__GNUC__ >= 2]: Use #include_next to get GCC's <limits.h>.

	* sysdeps/posix/sysd-stdio.c (__stdio_read, __stdio_write,
	__stdio_errmsg) [EINTR && EINTR_REPEAT]: Do EINTR looping.
	* sysdeps/unix/sysv/sysd-stdio.c: New.
	#define EINTR_REPEAT and #include posix/sysd-stdio.c.

	* stdlib/mbstowcs.c: Copy non-MB chars verbatim, instead of error.

	* sysdeps/generic/printf_fp.c: Note sign of exponent and take its
	absolute value for arithmetic.

	* stdlib/testmb.c: New.
	* stdlib/Makefile (tests): Added testmb.

	* sysdeps/generic/frexp.c [NAN]: If VALUE is infinite, return NAN.
	If VALUE is NAN, set errno to EDOM and return VALUE.
	If VALUE is zero, return it.  In all special cases, clear *EXP.

	* stdio/test-fseek.c: New.
	* stdio/Makefile (tests): Added test-fseek.

	* stdio/fseek.c: Position returned from io_funcs.seek is absolute,
	not EOF-relative when using SEEK_END.

	* sysdeps/posix/sysd-stdio.c (__stdio_gen_tempname): Set errno to
	EEXIST when we run out.

	* sysdeps/posix/sysd-stdio.c (exists): Use stat rather than open, so
	we don't need read access.

	* sysdeps/posix/mk-stdiolim.c (TMP_NAM): is 62 ** 3.

Mon Apr 20 23:08:02 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/posix/sysd-stdio.c (__stdio_gen_tempname): Don't return
	the same name twice when the file doesn't exist.

	* stdio/vfprintf.c (%c format): Tests of LEFT for padding were
	reversed.

	* sysdeps/generic/printf_fp.c: If we have written some fractional
	digits, write zeros up to the precision.

	* sysdeps/unix/bsd/sun/sun4/start.c: Don't clear the FP until just
	before calling main.

Wed Apr 15 01:43:38 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* Makerules (libc.a): Don't depend on libc.a(...); only on lib.
	(lib-noranlib): Depend on libobjs.
	(+libobjs): New var.
	(libobjs): Depend on $(+libobjs).
	* Rules (others, tests): Don't depend on lib; on libc.a instead.

	* locale/C-numeric.c: grouping is "".

	* locale/localeconv.c: Set int_frac_digits.

	* locale/setlocale.c: Accept "" to mean "C".

	* sysdeps/unix/sysv/r4/bsddir.h: Protect against multiple inclusion.

	* sysdeps/unix/sysv/r4/Dist: Created; includes bsddir.h and
	sys_getdents.S.

	* sysdeps/unix/i386/sysdep.h [! HAVE_SYSCALLS]: Don't #inlcude
	unix/sysdep.h.
	* sysdeps/unix/sysv/sysdep.h, sysdeps/unix/sysdep.h
	(HAVE_SYSCALLS): #define.
	* sysdeps/unix/sysv/i386/sysdep.h: #include unix/sysv/sysdep.h, then
	unix/i386/sysdep.h.

	* sysdeps/unix/sysv/Makefile: Fixed typos.

	* sysdeps/unix/sysv/Dist: Add utmp.h.

	* sysdeps/posix/Makefile (mk-stdiolim): Explicit commands, to
	compile it without normal gcc flags.

	* configure (i386-sysv): unix/i386/sysv -> unix/sysv/i386.
	(i386-sysvr4): New configuration.

Tue Apr 14 16:47:47 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* setjmp/setjmp.h: Put sigjmp_buf before typedef for jmp_buf, which
	needs sigjmp_buf #ifdef __FAVOR_BSD.

	* posix/unistd.h (getgroups): Don't #define.

	* sysdeps/stub/ptrace.c: #include <stdarg.h>; declare AP in fn.
	Avoid "PTR a, b".

	* sysdeps/posix/sigintr.c: New; sets global sigset_t `_sigintr'.
	* sysdeps/posix/signal.c: Use SA_RESTART unless SIG is in _sigintr.
	* signal/sigintr.c: Removed.
	* sysdeps/stub/sigintr.c: New.

	* sysdeps/posix/sysd-stdio.c (__stdio_read, __stdio_write,
	__stdio_errmsg): Don't treat EINTR specially.

	* sysdeps/unix/Makefile (sys/param.h): Touch the target after mv'ing
	from the tmp file, so the file is newer than the directory.

	* sysdeps/generic/strcasecmp.c: Simplified loop; fixed returning
	wrong value on equal comparison.

	* stdlib/bsearch.c: Don't lose if NMEMB is zero.

	* sysdeps/unix/bsd/__times.c (timeval_to_clock_t): Microseconds are
	not milliseconds.

Mon Apr 13 18:25:17 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/generic/strncase.c: New.
	* string/Makefile (routines): Add strncase.
	* string/string.h [__USE_GNU]: Declare strncasecmp.

	* time/__tzset.c: Correctly default DST offset to one hour later
	than standard offset.

	* time/__tzset.c (tz_rule): Made `name' not be const.

	* string/tester.c [! HAVE_GNU_LD]: #define _sys_nerr and
	_sys_errlist to sys_nerr and sys_errlist.

	* stdio/test_rdwr.c: Fixed printf call missing arg.

	* posix/getgrps.c: #undef getgroups first.

	* misc/brk.c: Declare __brk.
	* misc/sbrk.c: Declare __sbrk.
	* misc/setreuid.c, misc/setregid.c: #include <unistd.h>.
	Fixed types in DEFUN in fn alias.
	* misc/getpgsz.c, misc/getdtsz.c, misc/gethstnm.c: #include <unistd.h>.
	* misc/getdents.c: Declare __getdirentries.
	* misc/mknod.c: #include <sys/stat.h>.
	* posix/unistd.h: Declare many __ versions of things.
	[__OPTIMIZE__]: Many #define foo(...) -> __foo(...).

	* io/fcntl.c: #include <sys/file.h>.

	* sysdeps/unix/Makefile: New hair to install other headers the
	system sys/param.h #includes.

	* time/__tzset.c (__tzfile_default): Declare.

	* time/sys/time.h (timezone): #define to __timezone.

	* sysdeps/ieee754/printf_fp.c: #undef outchar before #including
	generic/printf_fp.c.

	* stdio/__vfscanf.c: For %c, don't lose the first char.
	For %s, properly consume the last char when we hit max width.

	* posix/gnu/types.h (__dev_t, __mode_t): Made int rather than short.
	* io/gnu/stat.h (struct stat): Made st_dev, st_rdev, and st_mode use
	{,unsigned} short int instead of __dev_t/__mode_t.

Fri Apr 10 13:55:07 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* setjmp/setjmp.h: Rearranged so that jmp_buf is defined before any
	prototypes are used.
	(longjmp): Declare with jmp_buf, not __jmp_buf, to win in BSD mode.
	(_longjmp): #define as __longjmp, not longjmp.
	(_longjmp, _setjmp): Take jmp_buf args, not __jmp_buf.
	Call sig{set,long}jmp with SAVEMASK==0, rather than __{set,long}jmp.
	* _longjmp.c, _setjmp.c: #define _BSD_SOURCE before all else.
	(_setjmp): Call sigsetjmp, not __setjmp.

	* io/sys/stat.h (__fchmod, __mknod): Fixed arg types.

	* io/fchmod.c: Fixed typo.

	* time/Makefile (\n): Renamed to nl.

	* Makerules (native-compile): New variable.
	* sysdeps/generic/Makefile, sysdeps/unix/Makefile,
	sysdeps/unix/bsd/Makefile: Use it in cmds for generator progs.

	* sysdeps/unix/sysv/sysv_termio.h (_SYSV_TAB3): New; same as XTABS.

	* sysdeps/unix/sysv/setrlimit.c: Removed extern decl of etext (unused).

	* sysdeps/unix/sysv/__tcgetatr.c, sysdeps/unix/sysv/tcdrain.c,
	sysdeps/unix/sysv/tcflow.c, sysdeps/unix/sysv/tcflush.c,
	sysdeps/unix/sysv/tcgetpgrp.c, sysdeps/unix/sysv/tcsendbrk.c,
	sysdeps/unix/sysv/tcsetattr.c, sysdeps/unix/sysv/tcsetpgrp.c:
	#include <sys/ioctl.h>

	* sysdeps/unix/sysv/__rmdir.c, sysdeps/unix/sysv/__mkdir.c,
	sysdeps/posix/writev.c: #include <string.h>.

	* sysdeps/posix/clock.c: Removed unused variable.

Thu Apr  9 01:49:39 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* Version 1.03.

	* grp/testgrp.c: Print members correctly.

	* stdio/test-popen.c: Pipe to cat rather than more, and then check
	output file.  Better error checking.

	* setjmp/tst-setjmp.c: Notice if we didn't jump the right number of
	times.

	* signal/tst-signal.c, string/testcopy.c, stdio/bug[12345].c: Print
	msgs that more clearly say whether we won or lost.  Better error
	checking.

	* sysdeps/generic/printf_fp.c: Completely rewritten from scratch.
	Now uses Steele & White's "Dragon4" algorithm to do things right.

Wed Apr  8 01:08:41 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/i386/__longjmp.c: Test for VAL==0 before clobbering regs.
	Wire V to AX, rather than DX.  Use "a" constraint on unused operand
	in jmp asm, rather than global reg var, to force value into AX.

Tue Apr  7 17:51:25 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/Makefile (headers): Added tar.h.
	* posix/tar.h: New file, from djm.

Mon Apr  6 01:39:07 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* time/tzfile.c (struct ttinfo): Made `isstd' member be unsigned
	char instead of 1-bit bitfield.

	* time/tzfile.c (__tzfile_default): New function.
	* time/__tzset.c: Call it when no rule is given.
	* time/Makefile: Install posixrules just like localtime.
	* time/Makeconfig (posixrules, posixrules-file): New config vars.

	* time/time.h (struct tm): Add `tz_gmtoff', `tz_zone'.
	* time/localtime.c: Set those members.

	* sysdeps/ieee754/__drem.c: XOR the signs of X and the result,
	rather than setting the sign of the result to that of X.

	* sysdeps/unix/bsd/make-local_lim.c: Don't do MAXUPRC or MAXLINK if
	<sys/param.h> didn't define them.

	* sysdeps/posix/__sigvec.c: Fixed braino: SA_ONSTACK should be
	SA_RESTART.

	* pwd/getpw.c, pwd/putpwent.c: Use %u fmt for uid and gid (which are
	unsigned).

	* time/time.h (tzname, daylight, timezone): Don't #define to __.
	* time/tzfile.c, time/__tzset.c, time/localtime.c, time/strftime.c
	[! HAVE_GNU_LD]: #define __ to plain for above three vars.

Thu Apr  2 03:39:04 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* locale/Makefile (routines): Add localeconv.

	* sysdeps/i386/jmp_buf.h: Removed `__dx' elt; replaced with `__pc'.
	__bp and __sp are PTRs.
	* sysdeps/i386/setjmp.c: Rewritten.  Use global reg vars to save regs.
	Use arithmetic on address of arg to get caller's PC, BP, and SP.
	* sysdeps/i386/__longjmp.c: Rewritten.  Use global reg vars to
	restore regs.

Wed Apr  1 23:13:57 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* Moved sysdeps/unix/i386/{bsd,sysv} to
	sysdeps/unix/{bsd,sysv}/i386, and updated Implies files.
	Implied dirs come before parents, and we want unix/i386 before
	unix/{sysv,bsd}.

	* io/chown.c: Fixed types in fn alias.

Wed Apr  1 14:18:58 1992  Torbjorn Granlund  (tege@mole.gnu.ai.mit.edu)

	* sysdeps/generic/memcmp.c
	(memcmp_common_alignment, memcmp_not_common_alignment):
	Move back do0 label to its original position, after the loop.
	Add comment before do0 labels.
	* sysdeps/generic/wordcopy.c (_wordcopy_fwd_aligned): Indentation.
	Add comment before do0 labels.

Wed Apr  1 02:16:19 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/unix/sysv/Makefile [subdir==misc]: Generate sysdep header
	termio.h from sysv_termio.h.

	* sysdeps/generic/make_siglist.c: New file.
	* sysdeps/generic/signame.[ch]: Symlink'd from /gd/gnu/lib.
	* sysdeps/generic/Makefile: Generate siglist.c with above.
	* sysdeps/generic/Dist: Add make_siglist.c, signame.[ch].

	* sysdeps/unix/bsd/Makefile (before-compile): Define properly as a
	variable.

	* sysdeps/unix/bsd/make_siglist.c: Generate #define _sys_siglist
	sys_siglist #ifndef HAVE_GNU_LD.
	* stdio/psignal.h, string/strsignal.h [! HAVE_GNU_LD]:
	#define _sys_siglist sys_siglist.

	* sysdeps/unix/sysv/signum.h (SIGCHLD): Changed #.
	(SIGUSR1, SIGUSR2, SIGPWR): Added.
	(_NSIG): Updated.

	* sysdeps/unix/sysv/utmp.h: New.

	* sysdeps/unix/bsd/getlogin.c: Moved to sysdeps/unix/getlogin.c.

	* sysdeps/unix/sysv/r4/bsddir.h, sysdeps/unix/sysv/r4/readdir.c,
	sysdeps/unix/sysv/r4/closedir.c, sysdeps/unix/sysv/r4/rewinddir.c,
	sysdeps/unix/sysv/r4/opendir.c, sysdeps/unix/sysv/r4/sys_getdents.S,
	sysdeps/unix/sysv/r4/Makefile: New.

	* sysdeps/unix/sysv/tcflow.c: New.

	* sysdeps/unix/sysv/sysv_termio.h: Add lots of bits; VMIN and VTIME
	elts of c_cc.
	* sysdeps/unix/sysv/__tcgetatr.c, sysdeps/unix/sysv/tcsetattr.c: Use
	VMIN and VTIME elts from sysv termio struct.

	* sysdeps/unix/sysv/__gethstnm.c: New.

	* sysdeps/unix/sysv/local_lim.h (NGROUPS_MAX): Define as 0.

	* sysdeps/unix/sysv/fcntlbits.h (struct __flock): Changed l_pid to
	short; added l_sysid.

	* sysdeps/unix/sysv/__sigact.c: New.

	* sysdeps/unix/sysv/r4/__access.S: New; just #include bsd/__access.S.

	* sysdeps/unix/sysv/Makefile: Fixed typo: sysdep-routines =>
	sysdep_routines.

	* sysdeps/unix/i386/sysv/__sigret.S,
	sysdeps/unix/i386/sysv/signal.S: New.

	* signal/Makefile (routines): Added sigret, __sigret.
	* signal/sigret.c: New; fn alias to __sigreturn.
	* sysdeps/stub/__sigret.c: New.

	* sysdeps/unix/i386/sysdep.h (PSEUDO): Use hard-coded numbers for
	lcalls insn--GAS bug.

	* sysdeps/unix/bsd/readdir.c (D_NAMLEN): New macro; define if not
	already defined, to return length of a direct elt.

	* sysdeps/stub/__getgrps.c: #include <limits.h>; if NGROUPS_MAX is
	defined as 0, always return 0, and no stub warning.

	* sysdeps/posix/system.c: Don't fail if sigprocmask fails with ENOSYS.

	* sysdeps/posix/sysd-stdio.c, sysdeps/stub/sysd-stdio.c: Doc fix.

	* sysdeps/posix/__gettod.c: Use CONST where appropriate and not
	where not.

	* sysdeps/i386/memchr.c, sysdeps/i386/strlen.c: Changed `repnz' to
	`repne'.

	* stdio/fgets.c: Notice returned char from __fillbf in length calc.

	* misc/sys/ioctl.h: Always define `struct sgttyb'.

	* stdlib/alloca.h: #undef __alloca, too.
	Always #define alloca == __alloca.

	* signal/signal.h (__kill): Fixed type in decl.
	* posix/unistd.h (setgid): Fixed type in decl.
	* posix/setpgid.c, posix/setgid.c, signal/kill.c, posix/fork.c,
	  posix/vfork.c, posix/getpid.c, posix/getppid.c, posix/setsid.c:
	Fixed DEFUNs in fn aliases.
	* pwd/getpw.c: Fixed type in defn.

Mon Mar 30 17:06:54 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/generic/printf_fp.c: In %f, decrement PREC for each
	leading zero in the fractional part.

	* sysdeps/ieee754/ieee754.h: Made all elts unsigned.
	* sysdeps/ieee754/__drem.c: Return NAN if Y is zero.
	* sysdeps/ieee754/ldexp.c: Rewritten.
	* sysdeps/ieee754/__logb.c: Handle denormalized numbers.

	* posix/sys/wait.h: #include <endian.h>

	* sysdeps/ieee754/fl.h: Fixed NAN and HUGE_VAL bit patterns; added
	code for little endian.

	* sysdeps/generic/frexp.c: Add one to exponent to give the result a
	digit before the point.  Use negative exponent rather than division.

	* math/__finite.c: Return zero for NaN.
	* math/math.h: Doc fix for same.

	* stdio/__getdelim.c: Correctly notice when the buffer is full.

	* sysdeps/unix/bsd/opendir.c: Pass arg to fcntl F_SETFD by value,
	not by reference.

	* time/__tzset.c: Correct default rule: M4.1.0,M10.5.0.

	* time/__tzset.c: Move ptr past Mfoobar syntax after parsing it.

	* time/__tzset.c: Properly parse the DST offset (or its absence).

	* sysdeps/unix/make_errlist.c: Write an #ifdef HAVE_GNU_LD, rather
	than testing it when compiling make_errlist.

	* time/tzfile.c (__tzfile_read): Convert transitions to host byte
	order.

	* Makeconfig (localtime-file): New config var.
	* time/Makefile (tzfile.o, zic.o): Use it for TZDEFAULT.

	* stdio/Makefile (tests): Added tstgetline.
	* stdio/tstgetline.c: New; test for getline.

	* Makeconfig (sysincludedir): Define and document.
	* sysdeps/unix/snarf-ioctls, sysdeps/unix/Makefile: Use
	${sysincludedirs} in place of hard-coded /usr/include.

Fri Mar 27 13:33:37 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* string/Makefile (headers): Added endian.h.

	* sysdeps/ieee754/__drem.c: Fixed typo which made X and Y be the
	same location.

	* sysdeps/generic/__lstat.c: #include <gnu-stabs.h>

	* stdio/internals.c (flushbuf): Increment target as well as offset
	when we write out the single char.

	* grp/Makefile (tests): Add testgrp (formerly bug1).

Thu Mar 26 14:59:45 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* stdio/fread.c: Don't read directly when we need to seek first.

Wed Mar 25 02:34:49 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* sysdeps/unix/bsd/alarm.c: There are 1000000 usecs in a sec.

	* sysdeps/unix/bsd/sun/ptrace.c: Removed.

	* stdio/fgets.c: For unbuffered stream, don't return EOF after
	reading some data.
	Added missing parens.

Tue Mar 24 18:31:07 1992  Torbjorn Granlund  (tege@hal)

	* sysdeps/i386/memset.c: Move code that puts C in all four nibbles of
	X inside `if' statement.  Include sysdeps/i386/memset.c (not bzero).
	* sysdeps/i386/memchr.c: Rewrite to be faster.  Include
	sysdeps/generic/memchr.c (not bzero).

Tue Mar 24 01:21:32 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* io/Makefile (routines): Add getdirname.
	* posix/unistd.h [__USE_GNU]: Declare getdirname.
	* io/getdirname.c: New.

	* Makeconfig (stddef.h): Define and document.
	* Makefile (headers): Use $(stddef.h) for stddef.h.

Mon Mar 23 18:04:56 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* sysdeps/posix/mktemp.c: Do PID % 100000 for 5 digits.

	* time/Makefile (tzfiles): Remove pacificnew; it won't compile.
	(distribute): Put it here instead.

	* stdio/printf-prs.c [HAVE_LONGLONG]: Fixed missed var name change
	from code snarf.

	* stdio/fgets.c: Return NULL when we get EOF.

	* posix/execvp.c, sysdeps/posix/putenv.c [! HAVE_GNU_LD]: Define
	__environ as environ.

	* sysdeps/unix/bsd/Makefile, sysdeps/unix/Makefile: In rules to
	compile generator programs, cd into $(objdir) first to avoid
	braindead cc clobbering foo.o in cwdir.

	* sysdeps/m68k/setjmp.c: Deref fpregs array in asm.

	* time/Makefile (zones-%): Fixed generated rules.

	* math/Makefile (libm.a): Use r cmd to ar.

	* time/Makefile (zones-%): In echo commands, put \\\\n outside of
	quotes instead of \\n inside single quotes.  SysV echo is braindead.

	* io/fchown.c, io/fchmod.c, misc/bsd-compat.c: Fixed DEFUNs in fn
	aliases.

	* time/Makefile (echo-zonenames): New target; tell user what all
	timezones defined in all zone files are.
	* Makeconfig (localtime): Comment about using above.

Sun Mar 22 18:34:02 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* time/australasia (NZ): Updated rules.

Sat Mar 21 01:00:49 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* stdio/printf-prs.c [__GNUC__]: Define HAVE_LONGLONG.

Fri Mar 20 00:35:36 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* Version 1.02.

	* stdio/Makefile (routines): Add __getdelim, __getline.

	* sysdeps/unix/i386/start.c: No ../ in #include file name.

	* sysdeps/posix/sysd-stdio.c, sysdeps/stub/sysd-stdio.c
	(__stdio_seek): Doc fix.

	* sysdeps/posix/mk-stdiolim.c: Add one to L_tmpnam, for the null
	terminator.

	* sysdeps/posix/__dup2.c: Use an extra fcntl call to check that the
	first fd is valid.  Close the second fd before doing the dup.

	* pwd/pwdread.c, grp/grpread.c: Use __getline.  Ignore lines
	beginning with #.

	* Makeconfig (objdir): If $(ARCH) starts with a slash, don't prepend
	$(..).

Thu Mar 19 21:36:57 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* Makefile (install-lib): Add Mcrt1.o.
	(Mcrt1.o): Create empty file.

Wed Mar 18 16:00:18 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* Makeconfig (+link): Use $(libdir) for gnulib.

Tue Mar 17 20:12:35 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* math/bsd/common_source/mathimpl.h: Include <endian.h>.
	[__LITTLE_ENDIAN]: #define national.

	* stdio/__vfscanf.c: EOF at end of string is not
	an error.

	* stdio/tstscanf.c: Added new sscanf test.

	* stdio/vfprintf.c: For %#x, print 0x after padding 0s, not before.

	* stdio/fputs.c: Reverse size args to fwrite and test for returning
	LEN, rather than 1, so 0-length wins.

	* io/gnu/fcntl.h: Moved to sysdeps/unix/bsd/fcntlbits.h.
	* io/Makefile (headers), io/fcntl.h: gnu/fcntl.h -> fcntlbits.h.
	* sysdeps/stub/fcntlbits.h, sysdeps/unix/sysv/fcntlbits.h: New.

	* stdio/fopen.c (__getmode): Don't fall through in switch after 'a'
	case.

	* locale/C-ctype_ct.c (__ctype_b_C): Use symbolic constants.
	9..12 are not _NOgraph.

Tue Mar 17 19:04:01 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)

	* string/testcopy.c: Fix typo in comment.

Tue Mar 17 19:57:49 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/generic/strstr.c, string/string.h, string/tester.c
	(strstr): Arguments were reversed.

Tue Mar 17 18:52:39 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)

	* sysdeps/i386/memcopy.h (WORD_COPY_BWD): Divide nbytes by 4.
	* sysdeps/i386/memchr.c: Rewrite.  Handle zero length correctly.
	Don't ask gcc to allocate eax to two regs.

Tue Mar 17 17:31:06 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/unistd.h (getpagesize): Declare as size_t.

	* Makeconfig (CC): Define unless origin is default.

	* stdio/__getdelim.c: Be sure to leave room for the terminating null.

	* string/testcopy.c: New version from tege.

	* malloc/dist-README: Changed mailing list addr to bug-glibc.

	* sysdeps/unix/bsd/__sigproc.c: Use right mask for SIG_UNBLOCK.

	* Makefile, Rules (clean, mostlyclean): Put - before rm commands.

Tue Mar 17 11:14:40 1992  Torbjorn Granlund  (tege@hal.gnu.ai.mit.edu)

	* sysdeps/rs6000/memcopy.h (BYTE_COPY_BWD): Assign __nbytes.
	* sysdeps/m68k/memcopy.h (WORD_COPY_BWD): Copy memory, not just
	pointers.  Clean up switch expression.

Mon Mar 16 05:09:23 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* posix/wordexp.c: New.

	* time/tzfile.c (__tzfile_read): Don't die if some of the sections
	of the datafile are empty.

	* stdio/getline.c, stdio/getdelim.c: Moved to
	__getline.c/__getdelim.c.
	New files with fn aliases.
	* stdio/stdio.h (__getline, __getdelim): Declare.

	* time/Makefile (zonenames): Hair to find the names of zones
	described by $(tzfiles).
	(install-data): Install zoneinfo/$(zonenames).
	Rules to make zones from tzfiles.
	[localtime] (zoneinfo/localtime): Make from zoneinfo/$(localtime).
	* Makeconfig (localtime): New user-frobbable variable.

Sun Mar 15 00:01:05 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* Makerules (sysdep-Makefile): Do if ... else true to avoid bogus
	nonzero status.

	* Makefile: Denewlinify +sysdep-subdirs after including sysd-dirs.

	* sysdeps/vax/__infnan.c [!__GNUC__]: Error.

	* zic.c, scheck.c, emkdir.c, ialloc.c, private.h, tzfile.h: Snarfed
	from localtime3 dist.
	* time/Makefile (others): Added zic.
	(distribute): Added private.h, emkdir.c, ialloc.c, scheck.c.
	(install): Defined: zic, zdump.

	* Makeconfig (bindir): Define.
	* Makerules: Add rule to install $(install) in $(bindir).
	(+install): Include $(install) in $(bindir).

	* sysdeps/unix/Makefile: Moved siglist.c rules to unix/bsd/Makefile.
	* sysdeps/unix/make_siglist.c: Moved to bsd/.
	* sysdeps/unix/Dist: Remove it.
	* sysdeps/unix/bsd/Dist: Add it.

	* malloc/Makefile (malloc/gmalloc.c): Depend on headers and sources.

	* sysdeps/unix/bsd/sun/sun4/__sigvec.S: Doc fix.

	* sysdeps/stub/stty.c, sysdeps/stub/gtty.c: Include <stddef.h>.

	* sysdeps/unix/sysv/__fstat.c: Include sysv_stat.h.

	* misc/bsd-compat.c: Define _BSD_SOURCE rather than __FAVOR_BSD.
	(longjmp): Use function_alias_void.

	* time/Makefile (tzfile.o): Compile with
	-DTZDIR='"$(datadir)/zoneinfo"'.d

Sat Mar 14 23:26:46 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* Makeconfig (INSTALL_DATA, INSTALL_PROGRAM, INSTALL): Don't define
	if already defined.

	* setjmp/longjmp.c: Use function_alias_void.

	* gnu-stabs.h (function_alias_void): New macro.

	* gnu-stabs.h [!HAVE_GNU_LD] (function_alias): Fixed not to loop.

Fri Mar 13 17:20:19 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* sysdeps/posix/sysd-stdio.c (__stdio_gen_tempname): Include null
	terminator in length calculation.

	* stdio/fgets.c: Be sure to return NULL on error/eof for unbuffered
	stream.  If N==1, don't write the first char if !seen.
	When the buffer is empty, notice the effect of __fillbf after
	calling it, avoiding a (costly) no-op iteration.
	Don't return NULL for reading no chars; only for EOF or error.
	Don't write terminator at beginning of S if eof on first char.

	* malloc/Makefile (libmcheck.a), Makefile (crt0.o): Remove target
	first; don't use -f to ln.

	* posix/execl.c, posix/execv.c, sysdeps/posix/getenv.c,
	sysdeps/posix/system.c [HAVE_GNU_LD]: #define __environ environ

	* posix/unistd.h [__OPTIMIZE__] (execv): Removed defn.  Can't know
	whether to use __environ or environ.

	* io/fchown.c, io/chown.c, io/open.c, misc/select.c,
	signal/sigvec.c, time/adjtime.c: Fixed DEFUNs in fn aliases.

	* time/__tzset.c: Don't dereference NULL if getenv returns it.

Thu Mar 12 16:01:33 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/ieee754/sqrt.c: Replaced undefined var ref `k' with constant.

	* sysdeps/i386/__longjmp.c: #include <stdlib.h>.

	* time/tzfile.c (__tzfile_compute): Use types[0] if TIMER falls
	between transitions[0] and transitions[1].
	Always set __tzname[INFO->isdst] to the name for INFO.

	* sysdeps/i386/__longjmp.c: Changed register names for gcc; eax/%eax
	-> ax.

	* sysdeps/unix/snarf-ioctls: Avoid infinite recursion.

Wed Mar 11 00:16:18 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* Version 1.01.

	* Makefile (munch-init.c): Made $(objpfx)munch-init.c.

	* signal/sigvec.c, signal/sigaction.c, stdio/vsscanf.c: Fixed DEFUNs
	in fn aliases.

	* sysdeps/m68k/68881/68881-switch/switch.c: Merged vars have_fpu and
	test_fpu into one.

	* sysdeps/mach/i386/start.c, sysdeps/vax/setjmp.c,
	sysdeps/vax/__longjmp.c, sysdeps/vax/__infnan.c,
	sysdeps/unix/start.c, sysdeps/unix/bsd/sun/sun4/sigtramp.c,
	sysdeps/unix/bsd/sun/sun4/start.c,
	sysdeps/unix/bsd/hp9k3bsd/start.c, sysdeps/sparc/sqrt.c,
	sysdeps/rs6000/ffs.c, sysdeps/m88k/ffs.c, sysdeps/m68k/setjmp.c,
	sysdeps/m68k/__longjmp.c, sysdeps/m68k/68881/printf_fp.c,
	sysdeps/m68k/68881/atan2.c, sysdeps/m68k/68881/__logb.c,
	sysdeps/m68k/68881/68881-switch/switch.c, sysdeps/m68k/ffs.c,
	sysdeps/i386/memset.c, sysdeps/i386/memchr.c, sysdeps/i386/ffs.c,
	sysdeps/i386/bzero.c, sysdeps/i386/__longjmp.c, sysdeps/am29k/ffs.c
	[! __GNUC__]: Either include the generic (or in some cases, ieee754)
	version, or do a #error.

	* Rules: Null out `objects' at end to shrink environment some.
	(+objs): Define with := from $(objects).
	(clean): Use that instead of $(objects).

	* sysdeps/i386/setjmp.c: Doubled % where it wanted to be literal.

	* posix/getgrps.c, io/flock.c, io/mkdir.c, io/read.c, io/write.c,
	io/stat.c, misc/getdents.c, misc/mknod.c, misc/utimes.c: Fixed
	DEFUNs in fn aliases.

	* sysdeps/unix/bsd/hp9k3bsd/sysdep.S: Use # instead of kludge cookie.

	* posix/getegid.c: Fixed type in DEFUN.

	* time/tzfile.c (__tzfile_compute): If TIMER is before any
	transition in the file, use the first non-DST type, rather than the
	type of the first transition in the file.

Tue Mar 10 20:01:55 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* configure: Take optional -nfp arg.
	(news, sun3, hp300): Prepend m68k/68881 unless -nfp is given.
	* sysdeps/unix/bsd/hp9k3bsd/Implies: Don't specify 68881.

	* stdio/getdelim.c: When the buffer is empty, notice the effect of
	__fillbf after calling it, avoiding a (costly) no-op iteration.

	* sysdeps/vax/__memccpy.c: Fixed comments.

	* stdio/fmemopen.c: Set all fns and seen bit before we might call
	something that would care (fclose).

	* configure (sun3, sun-3): Mean sun3os4, not sun3os3.
	(sun3os3): Use just unix/bsd/sun/sun3/os3.
	* sysdeps/unix/bsd/sun/sun3/os3: New directory.
	(sysdeps/unix/bsd/sun/sunos3/__wait.S): Moved to there.
	* sysdeps/unix/bsd/sun/sun3/sysdep.h: Fixed; took hp9k3bsd/sysdep.h
	and changed movel foo, d0 to pea foo for syscall no.
	* sysdeps/unix/bsd/sun/sun3/__brk.S: Fixed pea addr mode.
	* sysdeps/unix/bsd/sun/sun3/sethostid.S: errnos.h, not gnu/errno.h.
	Use .stabs directly, not gnu-stabs.h (which uses `asm').
	* sysdeps/m68k/setjmp.c: Changed asm for first moveml, so it works
	on sun3.
	* sysdeps/unix/bsd/sun/sun3/start.c: Removed ../ from #include path.

Sun Mar  8 16:33:33 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* misc/makefile (headers): Added stab.h, stab.def.
	* Many files: Changed __GNU_STAB__ to HAVE_GNU_LD.

Sat Mar  7 21:21:10 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* time/mktime.c: Normalize the struct values before checking for out
	of range values.

Fri Mar  6 11:43:35 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/ieee754/ldexp.c: New.

	* stdio/internals.c (flushbuf): When priming the stream for writing,
	advance the target pos to account for chars gotten from the buffer.

	* sysdeps/generic/Makefile: For math routines, don't filter out
	__finite.

	* sysdeps/posix/sysd-stdio.c (__stdio_gen_tempname): Fixed bugs.

	* misc/Makefile (routines): Remove flock.

	* stdlib/strtod.c: Fixed typo in checking for exponent overflow.
	Do set *ENDPTR on overflow or underflow.

	* sysdeps/sparc/fl.h: Removed.  Should use ieee754 version.

	* sysdeps/generic/Makefile: For math routines, don't filter out
	__copysign, __scalb, __drem and __logb; and don't add support.

	* sysdeps/ieee754/__drem.c: New.
	* sysdeps/ieee754/sqrt.c: New.
	* sysdeps/stub/__drem.c: New.
	* sysdeps/stub/sqrt.c: New.
	* sysdeps/stub/__logb.c: New.
	* sysdeps/ieee754/__logb.c: New.

	* sysdeps/ieee754/__infnan.c: Include <float.h> and use NAN macro
	rather than cooking one up by hand.

	* sysdeps/unix/bsd/getlogin.c: Open /dev/tty, rather than using stdin.
	Make sure the name is always null-terminated.

Thu Mar  5 17:11:46 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)

	* sysdeps/m68k/68881/__scalb.c: Removed.
	* sysdeps/m68k/68881/__math.h: Removed defn of __scalb.
	* math/math.h [__OPTIMIZE__]: Define __scalb to be ldexp.
	* math/__scalb.c: New; fn alias for ldexp.

	* stdio/Makefile (tests): Added bug4 and bug5.
	* stdio/bug4.c, stdio/bug5.c: Test cases from reported bugs just fixed.

	* stdio/internals.c (flushbuf): If nothing was written by the user,
	but there is previously gotten data, don't write anything out.

	* stdio/internals.c (seek_to_target): Call __stdio_check_offset first.

	* sysdeps/unix/sysv/sysv_termio.h: New file.
	* sysdeps/unix/sysv/Dist: Include it.
	* sysdeps/unix/sysv/tcsetattr.c, sysdeps/unix/sysv/tcsetpgrp.c,
	sysdeps/unix/sysv/tcsendbrk.c, sysdeps/unix/sysv/tcgetpgrp.c,
	sysdeps/unix/sysv/tcflush.c, sysdeps/unix/sysv/tcdrain.c,
	sysdeps/unix/sysv/__tcgetatr.c: New files.

	* stdio/internals.c (fillbuf): Don't set the put_limit on writable
	streams.  Wait for first write attempt to prime them, so we don't
	flush the unchanged data unnecessarily.

	* stdlib/exit.c: Look for NULL terminator on ld set, rather than
	using length word.

	* Makefile (headers): Remove stdarg.h and varargs.h.
	Users will get them from GCC.
	* stdio/printf.h: Include <stdarg.h> to use va_list.
	* stdio/stdio.h: Don't include <stdarg.h> with magic.
	Use PTR in place of __va_list in prototypes.
	* stdio/__vsscanf.c, stdio/vscanf.c, stdio/vfscanf.c,
	stdio/__vfscanf.c, stdio/vdprintf.c, stdio/vasprintf.c,
	stdio/vsprintf.c, stdio/vsnprintf.c, stdio/vprintf.c,
	stdio/vfprintf.c: Fixed DEFUNs.

	* sysdeps/ieee754/ieee754.h: New file; declares union ieee754_double.
	* sysdeps/ieee754/Dist: Add it.
	* sysdeps/ieee754/__copysign.c, sysdeps/ieee754/__infnan.c,
	sysdeps/ieee754/__isinf.c, sysdeps/ieee754/__isnan.c,
	sysdeps/ieee754/__printf_fp.c: Use it.

	* sysdeps/unix/sysv/uname.c: New.
	* sysdeps/unix/sysv/__utssys.S: New.
	* sysdeps/unix/sysv/Makefile (routines): Add __utssys.
	* sysdeps/unix/sysv/Dist: Add __utssys.S.

	* sysdeps/unix/sysv/__rmdir.c: New; runs `rmdir' shell command.

	* sysdeps/unix/sysv/__mkdir.c: New; runs `mkdir' shell command.

	* sysdeps/generic/__lstat.c: New; fn alias for __stat.

	* sysdeps/unix/sysv/__gethostname.c: New; uses uname.

	* sysdeps/unix/Makefile (sys/params.h): Protect with
	_GNU_SYS_PARAM_H, in case the system's file uses _SYS_PARAM_H itself.

	* stdio/internals.c (__stdio_check_offset): Call init_stream to make
	sure we have fns.

	* stdio/fread.c: Don't call __fillbf if the put_limit is past the
	beginning of the buffer; only if !seen, no buffer, or pushed back.

	* stdio/fopen.c (__getmode): Set create bit for "a" mode.

	* io/mkdir.c: #undef mkdir before fn alias.

	* time/tzfile.c (__tzfile_compute): Don't decrement I if it's zero.

	* Makefile (crt0.o): Use ln -f.

	* math/Makefile (install): Install libm.a.
	(libm.a): Make an empty archive.

Wed Mar  4 19:54:50 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* README.template: Added note about long filenames in dist.

	* io/Makefile (routines): flock -> __flock
	* flock.c: New file, fn alias.
	* sysdeps/unix/bsd/flock.S: Renamed to sysdeps/unix/bsd/__flock.S;
	made __flock.
	* sysdeps/mach/hurd/flock.c: Renamed to sysdeps/mach/hurd/__flock.c;
	made __flock.
	* sysdeps/stub/flock.c: Renamed to sysdeps/stub/__flock.c; made
	__flock.

	* time/time.h (__isleap): Fixed; every 400th year is not a leap
	year, not every 1000th.

	* stdio/internals.c (flushbuf): Increment the target position the
	amount the user wrote into the buffer, not the amount we wrote out
	to the file (which is greater if we read a block and modified it
	in the middle).

	* stdio/internals.c (flushbuf): Set get_limit to the beginning of
	the buffer for all streams, except when we have just read in a block.

Sat Feb 29 15:56:22 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* posix/Makefile (others): Removed logname, id.
	* time/Makefile (others): Removed date.

	* sysdeps/unix/bsd/sun/sun4/start.c: Make an alias called `start'
	(no leading underscore, so it can't conflict with C symbols) for
	`_start'.

Thu Feb 27 14:32:20 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* set-init.c: Look for NULL terminator on set.  ld is broken and
	doesn't set the length word correctly.

	* setjmp/_longjmp.c, signal/sigaction.c, signal/sigvec.c,
	signal/ssignal.c, string/bcmp.c, time/setitmr.c, posix/execve.c,
	posix/getegid.c, posix/geteuid.c, posix/getgid.c, posix/getuid.c,
	posix/getgrps.c, posix/setuid.c, posix/wait3.c, posix/wait4.c,
	posix/waitpid.c, io/lseek.c, io/open.c, io/read.c, io/write.c,
	resource/getrusage.c, misc/getpgsz.c, misc/gethstnm.c,
	misc/select.c: Fixed DEFUNs in fn aliases.

Wed Feb 26 00:20:25 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* sysdeps/generic/Makefile (routines): Add asincos.

	* time/tzfile.c (__tzfile_compute): Set __tzname properly, so isdst
	is the right index into it.

Tue Feb 25 01:42:16 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* sysdeps/unix/bsd/sun/sun4/sysdep.h (ENTRY): .align 2, not .align 4.
	This one is powers of two.

	* time/__tzset.c: If TZ is :FILE, try FILE and if __tzfile_read
	fails, then use defaults.

	* sysdeps/generic/Makefile (routines): Add sincos.

	* sysdeps/posix/cuserid.c: Set the result to the empty string on
	failure.

	* string/string.h, string/strings.h, sysdeps/i386/memchr.c: Fixed
	spelling in comment.

	* string/makefile (tests): Include (uncomment) testcopy.  We do have
	papers for it from tege.

	* malloc/dist-README: Fixed mailing list addr.

	* resource/sys/vtimes.h (struct vtimes): Renamed vm_outblk to
	vm_oublk; fixed comment.
	* sysdeps/generic/vtimes.c: Renamed here too.

	* Make-dist (README): Depend on version.c.

Tue Feb 18 18:14:50 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* Version 1.00.

	* time/tzfile.c (__tzfile_compute): Fixed transition comparison.

	* sysdeps/unix/bsd/sun/sun3/Makefile: Fixed typo.

Mon Feb 17 05:04:00 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* Version 0.6.

	* Makefile (distribute): Add Q+A.
	* Q+A: New doc file from rich@cygnus.com.

	* malloc/Makefile (distribute): Add mcheck-init.c.

Mon Feb 17 00:39:38 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* sysdeps/unix/sysv/utime.c: Removed.
	* sysdeps/unix/sysv/utime.S: New file.

	* sysdeps/unix/sysv/signum.h: New file.

	* sysdeps/unix/sysv/local_lim.h: New file.

	* sysdeps/unix/sysv/sysv_stat.h: New file.
	* sysdeps/unix/sysv/__stat.c, sysdeps/unix/sysv/__fstat.c: New files.
	* sysdeps/unix/sysv/Makefile: New file.
	(+sysdep-routines): Define to sys_stat and sys_fstat.
	* sysdeps/unix/sysv/sys_stat.S, sysdeps/unix/sysv/sys_fstat.S: New
	files.
	* sysdeps/unix/sysv/Dist: Created to include sysv_stat.h,
	sys_stat.S, and sys_fstat.S.

	* sysdeps/stub/__setreuid.c: Include <sys/types.h>.

	* sysdeps/posix/__sigblock.c: Fixed typo.

	* stdio/internals.c (__flshfp): Don't return EOF if at EOF; only
	for errors.

	* signal/gnu/signal.h: Move #include <signum.h> outside repeat #ifdef.

	* sysdeps/unix/sysv/filebits.h: Created.

	* misc/Makefile (distribute): Define to bsd-compat.c.

	* misc/Makefile (headers): Remove filebits.h.
	* io/Makefile (headers): Put it here.

	* Makefile (+posix_dirs): Add io.
	* io/Makefile: New file for new subdir.
	Contains many headers and routines moved from posix.
	* posix/Makefile: Remove many headers and routines now in io.
	* Moved many files from posix to io.

	* stdlib/alloca.h: Get size_t from stddef.h.

	* misc/bsd-compat.c (getgroups): Removed.  Not needed, because gid_t
	is now the same size as int.

	* Makefile (distribute): Include NOTES.
	* NOTES: New file, infoized node from intro.texinfo about the
	feature-test macros.
	* README.template: Mention NOTES.

	* sysdeps/unix/bsd/sun/sun3/Makefile: include hp9k3bsd version.

	* Makeconfig: Use $(..) for config.status.

	* configure (i386-sysv): unix/i386/sysv, not unix/sysv/i386.
	* unix/i386/sysv/Implies: unix/sysv, not unix/i386.

Sun Feb 16 00:42:53 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* Version 0.5.

	* posix/Makefile (headers): Remove confstr.h.
	(distribute): Define this instead to contain it.

	* ansidecl: Added copyright notice.

	* stdio/getdelim.c: New file.
	* stdio/getline.c (getsome): Renamed to getdelim and moved there.
	* stdio/Makefile (routines): Add getdelim.
	* stdio/stdio.h: Declare getdelim.

	* misc/gnu/file.h: Moved to sysdeps/unix/bsd/filebits.h.
	* sysdeps/stub/filebits.h: New file.
	* misc/Makefile: gnu/file.h is now filebits.h.
	* posix/fcntl.h: Changed #include.

	* stdio/getline.c (getsome): If MAX_CANON isn't defined, use a default.
	Don't leak old *LINEPTR storage if *N < 2.
	Don't bang *LINEPTR to NULL if realloc fails.

	* Makerules: Don't use override when nulling out sources, routines,
	and aux if they came from the environment.  Better not make with -e.

	* Makefile (sysdirs, Sysnames): Put outside of ifndef sysdirs.

	* string/Makefile (tests): No testcopy, pending papers.

	* Makefile (headers): No sysdep.h.
	(distribute): Here instead.
	(no-install): No longer needed.

Sat Feb 15 17:10:38 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* Makefile (distribute): Add INSTALL.
	* Make-dist (INSTALL): Make from manual/maint.texinfo.
	(README): Make from README.template.

	* Makefile (+other-dirs): Removed inet.
	* sysdeps/unix/inet/Subdirs: Created, adding inet.

	* sysdeps/unix/sysv/setrlimit.c: Include stddef and errno.h.

	* math/drem.c, setjmp/longjmp.c, malloc/cfree.c, string/bcmp.c,
	time/getitmr.c, misc/ioctl.c: Fixed defuns in function_alias.

	* Makefile (headers): Put sysdep.h back.
	(no-install): And define this to it.
	* Makerules (+install): Filter out $(no-install) from the list.

	* string/testcopy.c: New test program for bcopy from tege.
	* string/Makefile (tests): Add it.

	* Makefile (sysdep-subdirs): Renamed to sysd-dirs.

	* Make-dist (tardir): Omit the release name; it made names too long.

Sat Feb 15 12:53:02 1992  Torbjorn Granlund  (tege at mole.gnu.ai.mit.edu)

	* sysdeps/rs6000/memcopy.h (WORD_COPY_FWD, WORD_COPY_BWD):
	Use CTR register for looping (speed enhancement).  Don't emit
	labels, jump relative from `$' instead (makes multiple expansions
	possible).  Clean up indentation of asm code (were different in each
	macro).
	* sysdeps/rs6000/memcopy.h (WORD_COPY_BWD):
	Add asm output specs (were missing completely).

	* sysdeps/generic/{memcpy.c,memmove.c}: Make DSTP and SRCP unsigned
	(safer with non-ANSI compilers).

Fri Feb 14 01:52:12 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* Version 0.4.1.

	* Makefile, Rules: Changed clean and clobber targets into
	mostlyclean, clean, and realclean.

	* Makeconfig: Added comments describing objdir/Makeconfig and
	editting Makeconfig.
	(prefix, libdir, INSTALL, INSTALL_DATA): New variables for installing.
	* Makerules (install): New target.
	* Makefile (+subdir_targets): Add subdir_install.
	(install): Depend on subdir_install.
	(install-lib): Define variable to install libc.a and crt0.o.
	* misc/Makefile (install-lib): Install bsd-compat.
	* malloc/Makefile (install-lib): Install mcheck-init.

	* Version 0.4.

Thu Feb 13 21:39:31 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* sysdeps/unix/glue-ctype.c: Moved to unix/bsd.
	* sysdeps/unix/Makefile: Moved glue-ctype stuff to unix/bsd/Makefile.
	* sysdeps/unix/Dist: No glue-ctype.
	* sysdeps/unix/bsd/Dist: Here instead.

	* sysdeps/sparc/divrem.m4: Don't use insn aliases Sun as doesn't grok.

Wed Feb 12 12:12:12 1992  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* sysdeps/m68k/setjmp.c: Use m, rather than g, constraint when
	saving fp regs.

	* Renamed oodles of files, changed all the relevant Makefiles (I
	think).  File names now fit in 14 chars for losing System V.  Gag me
	with a death star.
	See =longnames for translations, and =shorten.el for method.

	* grp/initgroups.c: Removed redundant test.

	* malloc/mtrace.c: Use %p fmt for pointers.

Tue Feb 11 02:04:39 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* stdlib/alloca.h: New file.
	* stdlib/stdlib.h: Moved alloca decls there; #include <alloca.h>
	instead.
	* stdlib/Makefile (headers): Added alloca.h.

	* stdio/getline.c (getsome): Fixed bugs.

	* math/bsd/common_source/mathimpl.h: #define expm1 __expm1.
	* math/bsd/common_source/expm1.c: Renamed to __expm1.c
	* math/bsd/mc68881/expm1.s: Renamed to __expm1.s; renamed fn too.
	* math/expm1.c: New file, fn alias expm1 -> __expm1.

	* math/Makefile (routines): Add __rint.
	* math/rint.c: New file, fn alias rint -> __rint.
	* math/bsd/common_source/floor.c (rint): Renamed to __rint.
	* sysdeps/generic/Makefile: Remove __rint, not rint.

	* math/Makefile (BSDmath-files): Always include it, and don't depend
	on undependable things.

	* Makerules (sysdep-Makefile): Always include it, and make it
	without depending on make vars that might not be right yet.

Mon Feb 10 00:55:58 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* stdlib/stdlib.h: #undef alloca before declaring it.

	* sysdeps/sparc/__longjmp.S: Use be instead of bz.

	* sysdeps/unix/bsd/Dist: Add bsdtty.h.

	* tzfile.c (__tzfile_read): Don't allocate space for 0 leaps.
	Don't loop infinitely.

	* sysdeps/unix/Makefile (make-errnos.c): Use tr to eat newlines in
	errnos file.

	* sysdeps/unix/bsd/sun/sun4/__brk.S: Fix andn arg order.

	* posix/Makefile: Don't get getopt by vpath.  Turns out to be too
	much hassle for dist.  Just made symlinks in posix/ instead.

	* manual/Makefile: Renamed summary.out to summary.texinfo.

	* manual/summary.awk: New file, to make summary.out.
	Replaces `process-definitions.el'.
	* manual/Makefile (summary.out): Create using summary.awk.

	* manual/Makefile: Created.
	* Makefile, Make-dist: Use it to format and distribute the manual.

Mon Feb 10 00:32:17 1992  Jim Meyering  (meyering@churchy.gnu.ai.mit.edu)

	* All Makefiles:
	Whenever using shell redirection to create a target,
	do not create the target directly like this

	    foo: bar
		    process $< > $@

	That loses when `process' fails (interrupt, disk full, ...)
	and bar exists and looks up-to-date, but isn't.
	This sort of failure is particularly insidious when
	the initial error message is obscured by lots of subsequent
	output (echoed commands etc).

	Instead use rules like this

	    foo: bar
		    process $< > $@-tmp
		    mv $@-tmp $@

	Using this paradigm, as long as process returns non-zero
	whenever it fails, the target won't be touched.

Sun Feb  9 22:58:51 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/unistd.h (getopt): Fixed prototype.
	* sysdeps/generic/memset.c, stdio/vdprintf.c: Fixed DEFUNs.

	* Makerules (lib): Use $(RANLIB) for ranlib.
	* Makeconfig: Define it.

	* configure: Create config.status to set ARCH, if successful.
	* Makeconfig: include config.status ifndef ARCH.

Thu Feb  6 20:57:10 1992  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* ansidecl.h (INCLUDE, STARTCOMMENT, ENDCOMMENT): New magic words.
	* sysdeps/m68k/68881/fl.h: Use new magic to snarf ieee754/fl.h during
	ansideclification.

	* sysdeps/ieee754/fl.h: New file, taken mostly from the old
	68881 file.  HUGE_VAL redone to be machine independent.
	(NAN): New macro for an IEEE NaN, done like HUGE_VAL.
	* sysdeps/m68k/68881/fl.h: Now #includes ieee754/fl.h, and overrides
	FLT_ROUNDS for 68881 magic.  NB: the #include is a prob. for install.

Wed Jan 29 17:11:25 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* sysdeps/posix/getcwd.c: Don't use chdir; use a long ../../../...
	path name instead.

Fri Jan 17 02:51:10 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* posix/Makefile (headers): Added getopt.h.
	(routines): Added getopt1.
	Get getopt* from /home/gd/gnu/lib by vpath.

	* Makerules (+ansideclificate): Don't assume . is in PATH.

Thu Jan 16 18:43:05 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* posix/glob.c [sgi]: No alloca.h, after all.

Wed Jan 15 14:17:37 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* termios/termios.h: Reworked to be compatible with 4.4BSD.
	* termios/speed.c, sysdeps/unix/bsd/{__tcgetattr,tcsetattr}.c: Store
	speeds as their own values (B9600==9600, etc.) and translate to BSD
	values only for ioctl.
	* termios/cfsetpseed.c: New fn to set both speeds at once (from 4.4).

Tue Jan 14 21:18:10 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* sysdeps/unix/i386/__brk.S: __end, not ___end.
	Get the arg off the stack correctly.

	* sysdeps/unix/Makefile: Allow errnos like EL3HLT.

	* sysdeps/posix/{readv,writev}.c: Typos.

	* sysdeps/posix/__sigpause.c: Rewritten to know that sigset_t is a
	mask, and to pass a (sigset_t *) instead of sigset_t to sigsuspend.

	* sysdeps/i386/memset.c: Include <memcopy.h>.

	* sysdeps/generic/uname.c (uname): Save and restore errno if
	gethostname gets ENOSYS.

	* stdio/perror.c (perror): Check correctly for S == "".
	Check correctly for ERRNUM being in range.

	* find-sysdirs: Don't use fgrep -s, since USG apparently doesn't
	have that flag.  Just >/dev/null instead.

Mon Jan 13 17:00:15 1992  Torbjorn Granlund  (tege at mole.gnu.ai.mit.edu)

	* sysdeps/generic/wordcopy.c (all four functions): Move do0 label to
	the ultimate store statement at the end of each function.  (Used to
	be in the loop.)

Tue Jan  7 18:40:18 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* resource/sys/resource.h (struct rusage): Change `ru_outblock' to
	`ru_oublock'.

	* sysdeps/generic/stpcpy.c: Fixed off-by-one bug.

Thu Jan  2 15:19:01 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* sysdeps/sparc/Dist: Add umul.S and mul.S.

Tue Dec 31 15:33:39 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* signal/signal.h [__USE_GNU]: Add user-visible `sighandler_t' ==
	__sighandler_t.

	* termios/speed.c (speedtab): Made const.

	* posix/Makefile (routines): Add flock.

Tue Dec 31 03:38:30 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)

	* termios/speed.c: Accept and return speeds as actual baud rates.
	* termios/termios.h (B110, etc.): Define B110 as 110, etc.
	Likewise for _B110, etc.

Thu Oct 24 16:19:49 1991  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)

	* ansidecl: Put `M4OPTS=+quiet' in the environment make GNU m4 quiet.

Sun Oct 20 19:31:28 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* Make-dist (tardir): Define as `libc-RELEASE-VERSION', strings
	snarfed from version.c.
	($(..)$(tardir)): Add rule to make as symlink to . (parent dir).
	[subdir] (dist), [parent] (dist.tar): Depend on that.
	[subdir] (tarsources), [parent] (+tsrcs): Add $(tardir)/ to files.

	* sysdeps/sparc/Makefile (distribute): Move data into Dist file.

Fri Oct 18 15:27:58 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* Makefile (subdirs): Add $(sysdep-subdirs), so sysdep makefiles can
	add subdirs.

	* posix/glob.c [sgi]: Use <sys/dir.h>.

	* stdio/fopen.c: If not appending, initialize the offset to 0.

	* sysdeps/generic/strcasecmp.c: Fixed losing braindead code.

Tue Oct  8 15:27:54 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)

	* Version 0.1.
	* This ChangeLog is lacking much information.
	* After this release, I hope to maintain the log well.

Fri Jul 26 18:02:57 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* stdio/Makefile (routines): Remove _cleanup.

Thu Jul 25 23:12:45 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* stdio/memstream.c (close_memstream): Removed.
	(trim_buffer): New fn to be io_funcs->__close for memstreams.
	(open_memstream): Take arg char **BUFLOC.  Stuff it in
	stream->__fd, and store the location of the initial buffer in
	*BUFLOC.
	(enlarge_buffer): Keep *(char **) stream->__fd updated to be the
	location of the buffer.

Tue Jul 23 14:11:29 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* posix/glob.c: Don't #include <stddef.h> #ifdef sun.
	Is there anyone on the face of the planet other than me capable of
	implementing the ANSI C standard to spec????

	* posix/glob.c [DIRENT]: #include <sys/types.h> before <dirent.h>
	#ifdef USG.

Mon Jul 22 17:06:24 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* sysdeps/posix/make-stdio_limits.c: #include <posix1_limits.h>,
	not <posix_limits.h>.

	* README: Refer to COPYING.LIB, not COPYING.

	* config.libc: Renamed to `configure'.

Local Variables:
mode: change-log
End:
