2004-04-18  Release Manager

	* GCC 3.1 released.

2002-07-25  Release Manager

	* GCC 3.1.1 Released.

2002-06-25  DJ Delorie  <dj@redhat.com>

	* aclocal.m4 (GLIBCPP_CONFIGURE): Split out
	GLIBCPP_TOPREL_CONFIGURE.
	* configure.in: Call it before AC_CANONICAL_SYSTEM.
	* configure: Regenerate.

2002-05-14  Release Manager

	* GCC 3.1 Released.

2002-05-14  Release Manager

	* GCC 3.1 Released.

2002-05-08  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
	script entry, and set LD to it when configuring multilibs.
	* configure: Rebuilt.

2002-05-02  Alexandre Oliva  <aoliva@redhat.com>

        * Makefile.in: Fix for multilibbed natives.

2002-04-15  Loren J. Rittle  <ljrittle@acm.org>

	* aclocal.m4 (gcc_version_trigger): Use robust path construction.
	* configure: Rebuilt.

2002-04-01  Phil Edwards  <pme@gcc.gnu.org>

	* libF77/Version.c:  Fix misplaced leading blanks on first line.
	* libI77/Version.c:  Likewise.
	* libU77/Version.c:  Likewise.

2002-01-28  Geoffrey Keating  <geoffk@redhat.com>

	* aclocal.m4: Replace with version copied from libstdc++-v3.
	* configure.in: Update for changes to aclocal and Makefile.
	* configure: Regenerate.
	* Makefile.in: Correct install and uninstall for cross targets.
	* libU77/configure: Regenerate.

2002-01-20  Toon Moene  <toon@moene.indiv.nluug.nl>

	* Makefile.in: $(MULTISUBDIR) has an implied leading `/';
	remove duplicates.
	Use libtool for removing libg2c{a|la|so} for the `uninstall' target.

2002-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>

	* Makefile.in: Add missing `/' separator in last change.

2002-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>

	* Makefile.in: Install libg2c.{a|la|so} in $(libdir)$(MULTISUBDIR)
	instead of $(libsubdir)$(MULTISUBDIR).

2002-01-15  Loren J. Rittle  <ljrittle@acm.org>

	* libI77/configure.in: Remove fcntl.h check; never define
	_POSIX_SOURCE, NO_FCNTL or OPEN_DECL.  Add check for tmpnam().
	* libI77/configure: Rebuilt.
	* libI77/config.h.in: Rebuilt.
	* libI77/Makefile.in: Remove all traces of rawio.h from
	dependencies lists.
	* libI77/fio.h (FSEEK): Unroll -j1.7 -j1.6 made 2002-01-04.
	* libI77/open.c (f_open): Use HAVE_TMPNAM.
	* libI77/rawio.h: Remove file.

2002-01-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* libI77/configure.in (_LARGEFILE_SOURCE): AC_DEFINE.
	* libI77/configure: Rebuilt.
	* libI77/config.h.in: Rebuilt.

2002-01-04  Loren J. Rittle  <ljrittle@acm.org>

	* libI77/fio.h (FSEEK): Enforce type of second parameter to be
	off_t when prototype is missing from system headers for the
	non-standard function.

2002-01-03  Loren J. Rittle  <ljrittle@acm.org>

	* Makefile.in ($(LIBG2C):): Let libtool decide when to add -lc.

2001-12-04  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in ($(LIBG2C)): Fix -rpath argument to libtool.

	* Makefile.in (AR, RANLIB): Add, for substitutions.
	(all-unilib, $(LIBG2C)): Depend on object lists, not
	convenience libraries.
	(s-libe77): Renamed from libE77.la; build object list.
	(install): Do not move libraries to libdir.
	(mostlyclean, clean): Adjust.
	* libF77/Makefile.in (RANLIB): Add.
	(LINK): Remove.
	(../s-libf77): Renamed from ../libF77.la; build object list.
	(../libfrtbegin.a): Remove target first.  Don't use $<.
	(all, clean, distclean): Adjust.
	* libF77/configure.in: Substitute RANLIB.
	* libF77/configure: Rebuilt.
	* libI77/Makefile.in (LINK): Delete.
	(../s-libi77): Renamed from ../libI77.la; build object list.
	(all, clean, distclean): Adjust.
	* libU77/Makefile.in: Likewise.

2001-12-02  Toon Moene  <toon@moene.indiv.nluug.nl>

	PR fortran/4885
	* endfile.c (t_runc): After ftruncate, seek to end-of-file.

2001-11-25  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libF77/Makefile.in: Fix non-portable use of `$<' in z_log.c's rule.

2001-11-23  Toon Moene  <toon@moene.indiv.nluug.nl>

	PR libf2c/4930
	* libF77/Makefile.in: Compile z_log.c with -ffloat-store.

2001-11-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* Makefile.in: Add MAKEOVERRIDES= to suppress exporting
	environment to (sub)shells.

2001-11-13  Toon Moene  <toon@moene.indiv.nluug.nl>

	* Makefile.in: Change dependencies on stamp files
	into dependencies on the generated .la files.
	Get rid of objlist.  Update comment.
	* libF77/Makefile.in: Ditto.
	* libI77/Makefile.in: Ditto.
	* libU77/Makefile.in: Ditto.

2001-10-20  Hans-Peter Nilsson  <hp@bitrange.com>

	* configure.in: Fake AC_EXEEXT invocation.
	* configure: Regenerate.

2001-10-20  David Edelsohn  <dje@watson.ibm.com>

	* Makefile.in: Do not include SUBDIRS in objlist.  Create
	libg2c.so from F2CEXT and SUBDIRS archives.
	* libF77/Makefile.in: Create archive.
	* libI77/Makefile.in: Same.
	* libU77/Makefile.in: Same.

2001-10-05  Toon Moene  <toon@moene.indiv.nluug.nl>

	* Makefile.in: Move libg2c.so and libg2c.{l}a to
	the same directory at install.

2001-10-03  Toon Moene  <toon@moene.indiv.nluug.nl>

	* Makefile.in: Add "AR" reference, change
	from frtbegin.o to libfrtbegin.a.
	* libF77/Makefile.in: Ditto.

2001-10-02  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libF77/Makefile.in: Make .lo the target of compilation.
	* libI77/Makefile.in: Ditto.
	* libU77/Makefile.in: Ditto.

2001-10-01  Toon Moene  <toon@moene.indiv.nluug.nl>

	* Makefile.in: Set major:minor:sub version number
	of shared libf2c to 0:0:0.

2001-09-29  Juergen Pfeifer  <juergen.pfeifer@gmx.net>
            Toon Moene  <toon@moene.indiv.nluug.nl>

	Make libf2c a shared library.

	* aclocal.m4: Get definition of libtool.
	* Makefile.in: Use libtool.
	* configure.in: Use libtool.
	* configure: Regenerated.
	* libF77/Makefile.in: Use libtool; treat main program contained in
	libF77/main.c specially.
	* libF77/configure.in: Use libtool.
	* libF77/configure: Regenerated.
	* libI77/Makefile.in: Use libtool.
	* libI77/configure.in: Use libtool.
	* libI77/configure: Regenerated.
	* libU77/Makefile.in: Use libtool.
	* libU77/configure.in: Use libtool.
	* libU77/configure: Regenerated.
	* libU77/date_.c: Adapt for -fPIC compiling.
	* libU77/vxtidate_.c: Ditto.

2001-09-22  Richard Earnshaw  <rearnsha@arm.com>

	* libI77/configure.in (__EXTENSIONS__): Define.
	* libI77/config.h.in, libI77/conifgure: regenerate.
	* libU77/configure.in (__EXTENSIONS__): Likewise.

2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libI77/configure.in (_XOPEN_SOURCE, _FILE_OFFSET_BITS): Move
	these defines before tests which might be affected by them.
	(_XOPEN_SOURCE_EXTENDED): Define.
	* libI77/configure, libI77/config.h.in: Regenerate.

Wed Jul 18 11:14:33 2001  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libU77/configure.in (_XOPEN_SOURCE, _FILE_OFFSET_BITS): Move
	these defines before tests which might be affected by them.
	(_XOPEN_SOURCE_EXTENDED): Define.

	* libU77/configure, libU77/config.hin: Regenerate.

2001-07-10  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libI77/fio.h: Revert type of url from off_t to int.
	* libI77/dfe.c (c_dfe): Cast offset expression in FSEEK to off_t.
	* libI77/due.c (c_due): Ditto.  (e_rdue): Ditto.
	* libI77/ftell_.c (G77_ftell_0): Cast result of FTELL to integer.
	(G77_fseek_0): Cast offset argument of FSEEK to off_t.

2001-07-07  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libI77/Makefile.in: Update config.h dependencies.
	* libI77/configure.in: Define _XOPEN_SOURCE and
	_FILE_OFFSET_BITS unconditionally.
	* libI77/configure: Rebuilt.
	* libI77/config.h.in: Rebuilt.
	* libI77/endfile.c (t_runc): Replace rewind by FSEEK.
	* libI77/err.c (f__nowwriting): The type of `loc' is off_t.
	* libI77/open.c (f_open): Replace rewind by FSEEK.
	* libI77/rewind.c: Include config.h.  (f_rew): Replace
	rewind by FSEEK.
	* libI77/sfe.c: Include config.h.
	* libI77/wsfe.c: Ditto.
	* libU77/configure.in: Define _XOPEN_SOURCE and
	_FILE_OFFSET_BITS unconditionally.
	* libU77/configure: Rebuilt.
	* libU77/config.hin: Rebuilt.

2001-07-07  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libI77/Makefile.in: Add necessary dependencies on config.h.

2001-07-06  Toon Moene  <toon@moene.indiv.nluug.nl>
            Pedro Vazquez  <vazquez@penelope.iqm.unicamp.br>

	* libI77/configure.in: Check for fseeko, ftello.
	* libI77/configure: Rebuilt.
	* libI77/config.h.in: Rebuilt.
	* libI77/fio.h: Define FSEEK to be fseek or fseeko, depending
	on configure's findings.  Ditto for FTELL and ftell / ftello.
	* libI77/backspace.c (f_back): Use FSEEK for fseek, FTELL for ftell.
	* libI77/dfe.c (c_dfe): Ditto.
	* libI77/due.c (c_due, e_rdue): Ditto.
	* libI77/endfile.c (t_runc): Ditto.
	* libI77/err.c (f__nowreading, f__nowwriting): Ditto.
	* libI77/ftell_.c (G77_ftell_0, G77_fseek_0): Ditto.
	* libI77/inquire.c (f_inqu): Ditto.
	* libI77/open.c (f_open): Ditto.
	* libI77/rdfmt.c (rd_ed): Ditto.
	* libI77/sue.c (s_wsue, e_wsue, e_rsue): Ditto.

2001-07-04  Zack Weinberg  <zackw@stanford.edu>

	* Makefile.in: Take PICFLAG and RUNTESTFLAGS out of FLAGS_TO_PASS.

2001-07-01  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libI77/fio.h: Include <sys/types.h> for off_t.

2001-07-01  Toon Moene  <toon@moene.indiv.nluug.nl>
            Pedro Vazquez  <vazquez@penelope.iqm.unicamp.br>

	* libI77/fio.h: Use off_t when appropriate.
	* libI77/backspace.c (f_back): Ditto.
	* libI77/endfile.c (t_runc): Ditto.
	* libI77/err.c (f__nowreading): Ditto.
	* libI77/ftell_.c (unit_chk): Ditto.
	* libI77/sue.c (global f__recloc, s_wsue): Ditto.

2001-06-13  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libI77/inquire.c: Include "config.h".

2001-05-21  Loren J. Rittle  <ljrittle@acm.org>

	* libI77/Makefile.in (stamp-h): Create in $(objdir) instead
	of $(srcdir).

2001-05-18  Andreas Jaeger  <aj@suse.de>

	* libI77/Makefile.in (stamp-h): Only create config.h, touch stamp-h.
	(${srcdir}/config.h.in): Add true rule.

	* libI77/stamp-h.in: Added.

2001-05-17  Andreas Jaeger  <aj@suse.de>

	* libI77/Makefile.in: Add rules to rebuild config.h.in when
	needed.

2001-05-16  Andreas Jaeger  <aj@suse.de>

	* libI77/backspace.c: Include "config.h".
	* libI77/close.c: Likewise.
	* libI77/dfe.c: Likewise.
	* libI77/dolio.c: Likewise.
	* libI77/due.c: Likewise.
	* libI77/err.c: Likewise.
	* libI77/fmt.c: Likewise.
	* libI77/fmtlib.c: Likewise.
	* libI77/ftell_.c: Likewise.
	* libI77/ilnw.c: Likewise.
	* libI77/lread.c: Likewise.
	* libI77/open.c: Likewise.
	* libI77/rdfmt.c: Likewise.
	* libI77/rsfe.c: Likewise.
	* libI77/rsne.c: Likewise.
	* libI77/util.c: Likewise.
	* libI77/wrtfmt.c: Likewise.
	* libI77/wsne.c: Likewise.
	* libI77/xwsne.c: Likewise.

	* libI77/config.h.in: Generate with autoheader.

	* libI77/configure.in: Add comments for all AC_DEFINES so that
	autoheader can grok it.
	* libI77/configure: Regenerated.

2001-05-16  Andreas Jaeger  <aj@suse.de>

	* libI77/Makefile.in (endfile.o): Add dependency on config.h.

	* libI77/endfile.c: Include config.h and sys/types for off_t.

	* libI77/config.h.in: New file.

	* libI77/configure.in: Add test for off_t, create config.h file.
	* libI77/configure: Regenerated.

2001-05-15  Loren J. Rittle  <ljrittle@acm.org>

	* libI77/endfile.c (t_runc): Add cast to help case where
	ftruncate() prototype is somehow missing even though autoconf
	test found it properly.

2001-02-26  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libI77/configure.in: Test for ftruncate.
	* libI77/configure: Rebuilt.
	* libI77/endfile.c: Use fflush/ftruncate when available.

2001-02-19  Joseph S. Myers  <jsm28@cam.ac.uk>

	* libF77/Version.c, libI77/Version.c, libU77/Version.c: Update G77
	version number to 0.5.27.

2001-02-08  Geoffrey Keating  <geoffk@redhat.com>

	* configure.in: Don't run AC_PROG_CC_WORKS, because
	we're not interested in the result and it might fail.
	* libF77/configure.in: Likewise.
	* libI77/configure.in: Likewise.
	* libU77/configure.in: Likewise.
	* configure: Regenerated.
	* libF77/configure: Likewise.
	* libI77/configure: Likewise.
	* libU77/configure: Likewise.

2001-01-29  Phil Edwards  <pme@sources.redhat.com>

	* libU77/COPYING.LIB:  Update to LGPL 2.1 from the FSF.

2001-01-24  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* libU77/alarm_.c: Separate the #ifdef KR_headers logic from the
	G77_alarm_0 function definition.  Check for SIG_ERR and provide our own
	if missing.

2001-01-24  David Billinghurst <David.Billinghurst@riotinto.com>

	* libU77/Makefile.in:  Explicitly generate a.out for check.

2001-01-23  Michael Sokolov  <msokolov@ivan.Harhan.ORG>

	* libU77/ctime_.c: #include <sys/types.h> for time_t.
	* libU77/datetime_.c: Likewise.
	* libU77/fdate_.c: Likewise.
	* libU77/gmtime_.c: Likewise.
	* libU77/idate_.c: Likewise.
	* libU77/itime_.c: Likewise.
	* libU77/ltime_.c: Likewise.
	* libU77/sys_clock_.c: Likewise.
	* libU77/vxtidate_.c: Likewise.
	* libU77/vxttime_.c: Likewise.

	* libU77/sys_clock_.c: #include <sys/param.h> for the clock tick rate.

2000-12-09  Toon Moene  <toon@moene.indiv.nluug.nl>

	Update to Netlib version 20001205.
	Thanks go to David M. Gay for these updates.

	* libF77/Version.c: Update version information.
	* libF77/z_log.c: Improve accuracy of real(log(z)) for
	z near (+-1,eps) with |eps| small.
	* libF77/s_cat.c: Adjust call when ftnint and ftnlen are
	of different size.
	* libF77/dtime_.c, libF77/etime_.c: Use floating point divide.

	* libI77/Version.c: Update version information.
	* libI77/rsne.c, libI77/xwsne.c: Adjust code for when ftnint
	and ftnlen differ in size.
	* libI77/lread.c: Fix reading of namelist logical values followed
	by <name>= where <name> starts with T or F.

2000-11-26  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libI77/Version.c, libF77/Version.c, libU77/Version.c:
	Designate version as (experimental) instead of (prerelease)

2000-11-15  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libI77/configure.in: See if `mkstemp' is available.
	* libI77/configure: Regenerate.
	* libI77/open.c: Use `mkstemp' to create scratch
	file atomically.

2000-07-03  Donn Terry  (donnte@microsoft.com)
        * libU77/aclocal.m4: check for 2 argument gettimeofday without
	struct timezone

2000-07-02  Toon Moene  <toon@moene.indiv.nluug.nl>
	* libF77/Version.c: Bumped version number to 0.5.26.
	* libI77/Version.c: Ditto.
	* libU77/Version.c: Ditto.

2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>

	* libU77/dtime_.c, libU77/etime_.c: Include stdlib.h if
	HAVE_STDLIB_H is defined.

2000-06-11  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>

	* rdfmt.c (rd_L): Use if-then-else instead of case statement to
	solve problems when sizeof(char) == sizeof(short).

2000-05-18  Chris Demetriou  <cgd@sibyte.com>

	* configure.in: Test for __g77_integer, __g77_uinteger,
	__g77_longint, and __g77_ulongint builtin types, rather
	than mucking around with compiler headers.
	* configure: Regenerate.
	* g2c.hin (integer, logical, flag, ftnlen, ftnint): Use
	__g77_integer rather than autoconfigured value.
	(uinteger): Use __g77_uinteger rather than autoconfigured value.
	(longint): Use __g77_longint rather than autoconfigured value.
	(ulongint): Use __g77_ulongint rather than autoconfigured value.

Sun Mar 12 20:12;30 2000  Toon Moene  <toon@moene.indiv.nluug.nl>
	Based on work done by David M. Gay (Bell Labs)

	* libF77/configure.in: Define IEEE_COMPLEX_DIVIDE.
	* libF77/[cz]_div.c: Arrange for compilation under
	-DIEEE_COMPLEX_DIVIDE to make these routines
	avoid calling sig_die when the denominator vanishes.
	* libF77/s_rnge.c: Add casts for the case of
	sizeof(ftnint) == sizeof(int) < sizeof(long).
	* libI77/endfile.c: Set state to writing (b->uwrt = 1) when an
	endfile statement requires copying the file
	Also, supply a missing (long) cast in the sprintf call.
	* libI77/sfe.c: Add #ifdef ALWAYS_FLUSH logic, for formatted I/O.

Wed Feb 16 11:10:05 2000  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in (gcc_version): When setting, narrow search to
	lines containing `version_string'.

Tue Nov 16 20:39:42 1999  Geoffrey Keating  <geoffk@cygnus.com>

	* libU77/u77-test.f (wd): Allow for longer working directory
	pathnames.

1999-10-14 Theo Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>

	* libU77/acconfig.h: Define GETTIMEOFDAY_ONE_ARGUMENT and
	HAVE_TIMEZONE in acconfig.h.
	* libU77/config.hin: Rebuilt.

1999-10-12  Dave Love  <fx@gnu.org>

	* libU77/aclocal.m4: Re-write, defining LIBU77_GETTIMEOFDAY, not
	LIBU77_HAVE_STRUCT_TIMEZONE.

	* libU77/configure.in: Use LIBU77_GETTIMEOFDAY, not
	LIBU77_HAVE_STRUCT_TIMEZONE.  Don't check for gettimeofday
	separately.

	* libU77/datetime_.c (G77_date_and_time_0): Use
	GETTIMEOFDAY_ONE_ARGUMENT.

Tue Sep 14 01:44:01 1999  Marc Espie <espie@cvs.openbsd.org>

	* Makefile.in:  Prepend $(SHELL) to move-if-change calls.

Fri Aug  6 23:32:29 1999  Daniel Jacobowitz <drow@drow.them.org>

	* Makefile.in (FLAGS_TO_PASS): Include prefix, exec_prefix,
	libdir, libsubdir and tooldir.

Wed Jul  7 15:58:16 1999  Craig Burley  <craig@jcb-sc.com>

	* libU77/date_.c (G77_date_y2kbug_0): G77_time_0 returns
	longint, not integer, and G77_ctime_0 takes longint, not
	integer, argument.

	* libU77/Version.c: Bump version.

Mon Jun 28 21:27:08 1999  Craig Burley  <craig@jcb-sc.com>

	Update to Netlib version of 1999-06-28:
	* changes.netlib, libI77/Version.c, libI77/rsne.c
	readme.netlib: See changes.netlib for info.

Fri Jun 18 11:38:07 1999  Craig Burley  <craig@jcb-sc.com>

	* libU77/ttynam_.c: if !defined (HAVE_TTYNAM),
	write all spaces into return value instead of trying
	to return -1 from a void function.

Fri Jun 18 11:22:21 1999  Craig Burley  <craig@jcb-sc.com>

	Update to Netlib version of 1999-05-10:
	* changes.netlib, libI77/Version.c, libI77/backspace.c
	readme.netlib: See changes.netlib for info.

Fri Jun 18 11:15:24 1999  Craig Burley  <craig@jcb-sc.com>

	* libI77/backspace.c: Undo Wednesday's change, in
	preparation for slightly different Netlib change.

Wed Jun 16 11:38:58 1999  Craig Burley  <craig@jcb-sc.com>

	From Ian Watson <WATSON_IAN_A@Lilly.com> 1999-06-12:
	* libI77/backspace.c: Reload file descriptor after
	calling t_runc.
	* libI77/Version.c: Bump libg2c version.

Wed May 26 14:26:35 1999  Craig Burley  <craig@jcb-sc.com>

	* libF77/Version.c, libI77/Version.c, libU77/Version.c:
	Use 0.5.24 to designate the version of g77 within GCC 2.95.

Thu May 20 03:20:59 1999  Jeffrey A Law  (law@cygnus.com)

	* configure.in (AC_EXEEXT): Remove call.
	(compiler_name): Explicitly check with no extension and .exe
	extension.
	* configure: Regenerate.

Mon May 10 17:33:45 1999  Craig Burley  <craig@jcb-sc.com>

	Update to Netlib version of 1999-05-10:
	* changes.netlib, libF77/Version.c, libF77/abort_.c,
	libF77/c_log.c, libF77/ef1asc_.c, libF77/s_rnge.c,
	libF77/s_stop.c, libI77/Version.c, libI77/open.c,
	readme.netlib: See changes.netlib for info.

Fri May 7 9:33:55 1999 Donn Terry (donn@interix.com)

	* libU77/dtime_.c (G77_dtime_0): Standard-conforming error check.
	* libU77/etime_.c (G77_etime_0): Likewise.

Mon May  3 19:15:07 1999  Craig Burley  <craig@jcb-sc.com>

	* libU77/u77-test.f (main): Declare ABORT as intrinsic.

1999-05-03  Craig Burley  <craig@jcb-sc.com>

	* libU77/u77-test.f: Reverse order of two arguments to
	CTIME_subr, DTIME_subr, ETIME_subr, and TTYNAM_subr.

Mon May  3 11:21:35 1999  Craig Burley  <craig@jcb-sc.com>

	* libF77/c_log.c: Cope with partial overlap a la z_log.c.
	(Change likely to be made to netlib version shortly.)

Mon May  3 11:12:38 1999  Craig Burley  <craig@jcb-sc.com>

	Update to Netlib version of 1999-05-03:
	* changes.netlib, libF77/Version.c, libF77/c_cos.c,
	libF77/c_exp.c, libF77/c_sin.c, libF77/d_cnjg.c,
	libF77/dtime_.c, libF77/etime_.c, libF77/getenv_.c,
	libF77/r_cnjg.c, libF77/z_cos.c, libF77/z_exp.c,
	libF77/z_log.c, libF77/z_sin.c, libI77/Version.c,
	libI77/err.c, libI77/open.c, libI77/rdfmt.c, readme.netlib:
	See changes.netlib for info.

Mon May  3 10:52:53 1999  Craig Burley  <craig@jcb-sc.com>

	* libF77/c_cos.c, libF77/c_div.c, libF77/c_exp.c, libF77/c_log.c,
	libF77/c_sin.c, libF77/c_sqrt.c, libF77/d_cnjg.c, libF77/pow_zi.c,
	libF77/r_cnjg.c, libF77/z_cos.c, libF77/z_div.c, libF77/z_exp.c,
	libF77/z_log.c, libF77/z_sin.c, libF77/z_sqrt.c: Revert back to
	netlib versions as of f2c-19990501.

Sun May  2 01:38:50 1999  Craig Burley  <craig@jcb-sc.com>

	* libU77/u77-test.f (main): Declare FTELL as intrinsic.

Sun May  2 01:13:37 1999  Craig Burley  <craig@jcb-sc.com>

	* libU77/u77-test.f (main): List libU77 intrinsics
	not currently tested.
	Add tests for TIME8, CTIME_subr, IARGC, TTYNAM_subr,
	GETENV, FDATE_subr, DTIME_subr, ETIME_subr, DATE, ITIME,
	FTELL_subr, MCLOCK, MCLOCK8, and CPU_TIME.
	Trim blanks off the ends of some printed strings.

Sun May  2 00:06:45 1999  Craig Burley  <craig@jcb-sc.com>

	* libU77/u77-test.f (main): Just warn about FSTAT gid
	disagreement, as it's expected on some systems.

Sat May  1 23:57:18 1999  Craig Burley  <craig@jcb-sc.com>

	* libU77/u77-test.f: Generalize sum-checking to
	use a new function, which allows for some slop.
	Clean up some commentary.
	(issum): The new function.
	(sgladd): Deleted subroutine.

Sat May  1 23:35:18 1999  Craig Burley  <craig@jcb-sc.com>

	* libU77/u77-test.f: Modify to be more like testsuite
	version, bringing patches to that version here.
	Add suitable commentary.

Sat Apr 24 11:02:48 1999  Craig Burley  <craig@jcb-sc.com>

	* Makefile.in (s-libi77, s-libf77, s-libu77): Revert
	the patch from <hjl@gnu.org>, as per the commentary.

Sat Apr 17 17:33:30 1999  Craig Burley  <craig@jcb-sc.com>

	From H.J. Lu <hjl@gnu.org>:
	* Makefile.in (s-libi77): Depend on i77.
	(s-libf77): Depend on i77.
	(s-libu77): Depend on u77.

Mon Apr 12 21:38:14 1999  Mumit Khan  <khan@xraylith.wisc.edu>

	* libF77/getenv_.c: Include stdlib.h.

Sun Apr 11 23:30:42 1999  Mumit Khan  <khan@xraylith.wisc.edu>

	* libU77/dtime_.c: Handle all variants of WIN32.
	* libU77/etime_.c: Likewise.

	* libU77/aclocal.m4: New file.
	* libU77/configure.in (LIBU77_HAVE_STRUCT_TIMEZONE): Add test.
	* libU77/acconfig.h (HAVE_STRUCT_TIMEZONE): Add macro.
	* libU77/datetime_c.c (G77_date_and_time_0): Use.
	* libU77/config.hin: Regenerate.
	* libU77/configure: Likewise.

Wed Mar 31 13:50:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in (extra_includes): Don't attempt to calculate the
	location of the gcc src or obj directories.  Instead rely on
	precomputed variables, $topsrcdir and $r, to obtain these values.
	Set -I flags appropriately.

1999-03-28  Dave Love  <fx@gnu.org>

	* configure: Rebuilt.

	* configure.in: Fix integer size tests: sanity check first; search
	toplevel include dir (from Rainer Orth); only mess with ac_cpp
	once; use -DIN_GCC -DHAVE_CONFIG_H.

	* configure.in: Use `g77_cv_...', not `f77_cv_...'.

Wed Mar 24 22:41:28 1999  Mumit Khan  <khan@xraylith.wisc.edu>

	* configure.in (AC_PREREQ): Update to 2.13.
	(AC_EXEEXT): Call to find possible file extension.
	(compiler_name): Use.
	* configure: Regenerate.

1999-03-17  Craig Burley  <craig@jcb-sc.com>

	Update to Netlib version of 1999-03-17:
	* libF77/F77_aloc.c, libF77/README.netlib, libF77/dtime_.c,
	libF77/etime_.c, libF77/signal1.h0, libI77/Version.c,
	libI77/dfe.c, libI77/endfile.c, libI77/lread.c,
	libI77/sfe.c, readme.netlib, changes.netlib:
	See changes.netlib for info.

1999-03-06  Craig Burley  <craig@jcb-sc.com>

	Mon Dec 21 23:03:54 1998 Hans-Peter Nilsson <hp@axis.se>:
	* libI77/Makefile.in (all *.o except VersionI.o): Added dependence
	on respective .c file.
	* libF77/Makefile.in (all .o except VersionF.o): Similarly.
	* libU77/Makefile.in (date_.o): Added dependence on date_.c

1999-03-06  Craig Burley  <craig@jcb-sc.com>

	Rename non-Y2K-compliant intrinsics:
	* Makefile.in (F2CEXT): Now two versions each of
	`date' and `vxtidt'.
	* f2cext.c (date_, vxtidate_): Split into two versions,
	the existing one calling a new "y2kbuggy" routine that
	does not exist, and a new one named with "y2kbug" that
	calls the newly renamed underlying routine.
	* libU77/date_.c (G77_date_y2kbug_0): Rename from G77_date_0.
	* libU77/vxtidate_.c (G77_vxtidate_y2kbug_0): Rename from
	G77_vxtidate_0.
	* libU77/Version.c: Bump version.

1999-03-03  Craig Burley  <craig@jcb-sc.com>

	* libU77/vxtidate_.c (G77_vxtidate_0): Truncate
	year to last two digits (i.e. modulo 100), as per
	documentation and (documented) Y2K non-compliance.

1999-02-20  Craig Burley  <craig@jcb-sc.com>

	From Krister Walfridsson <cato@df.lth.se>:
	* libU77/lstat_.c (G77_lstat_0): Kill spurious setting
	of element 6 to zero, as it undid the previous setting.

1999-02-15  Craig Burley  <craig@jcb-sc.com>

	* f2c.h: Delete my (old) email address.

1999-02-14  Craig Burley  <craig@jcb-sc.com>

	* libU77/Version.c: Bump ("update" below) to date of last change.
	* libI77/Version.c: Bump to date of last change.

Tue Feb  9 18:13:30 GMT 1999  Nathan Sidwell  <nathan@acm.org>

	* Makefile.in (distclean): Move Makefile deletion to end of
	commands.

1999-01-15  Dave Love  <fx@gnu.org>

	* libU77/datetime_.c (G77_date_and_time_0): Return milliseconds as
	such, not as microseconds.
	(s_copy): Declare.

1998-11-26  Manfred Hollstein  <manfred@s-direktnet.de>

	* configure.in (compiler_name): Add check to detect if this
	language's compiler has been built.
	* configure: Regenerate.

Mon Nov 23 16:52:22 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in: Use AC_PREREQ(2.12.1).
	* libF77/configure.in: Likewise.
	* libI77/configure.in: Likewise.
	* libU77/configure.in: Likewise.

1998-10-24  Dave Love  <d.love@dl.ac.uk>

	* configure.in: Touch g2c.h in AC_OUTPUT after multilib
	disturbance.

1998-10-23  Dave Love  <d.love@dl.ac.uk>

	* f2cext.c: Include math.h.

1998-10-19  Dave Love  <d.love@dl.ac.uk>

	* configure: Regenerate.

	* configure.in: Use AC_CONFIG_AUX_DIR.

1998-10-12  Dave Love  <fx@gnu.org>

	* libI77/open.c (_XOPEN_SOURCE): Define.

1998-10-12  Dave Love  <fx@gnu.org>

	* Makefile.in (.SUFFIXES): Don't use any.
	(all-unilib): New target, like old all.
	(all): Use it.
	(.PHONY): Add all-unilib.

1998-10-12  Dave Love  <d.love@dl.ac.uk>

	* configure.in: Reorder Makefile, g2c.h in AC_OUTPUT.

Tue Oct  6 21:16:58 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in: Revert last patch.

Mon Oct  5 01:16:10 1998  H.J. Lu  (hjl@gnu.org)

	* Makefile.in (s-libi77): Depend on i77.
	(s-libf77): Depend on i77.
	(s-libu77): Depend on u77.

1998-09-30  Dave Love  <d.love@dl.ac.uk>

	* Makefile.in (f2cext.c): Depend on g2c.h.

1998-09-30  Robert Lipe  <robertl@dgii.com>

	* Makefile.in (all): Correct dependencies so --disable-multilibs
	works again.
	(distclean): Correct typo.

1998-09-28  Dave Love  <d.love@dl.ac.uk>

	* libI77/open.c: Back out part of last Netlib update affecting
	scratch files which clashed with the g77 variations and broke
	implicit endfile on rewind.

1998-09-21  Dave Love  <d.love@dl.ac.uk>

	* libI77/Version.c: Update.

Mon Sep 21 12:27:27 1998  Robert Lipe  <robertl@dgii.com>

	* Makefile.in (distclean, clean, uninstall, install, all): Add
	multilib support.
	* configure.in: Likewise.
	* configure: Regenerate.
	* libF77/Makefile.in, libU77/Makefile.in, libI77/Makefile.in (clean):
	Explictly remove stamp in parent's directory.

1998-09-20  Dave Love  <d.love@dl.ac.uk>

	* libI77/sfe.c (e_wdfe): Set f__init to avoid spurious recursive
	i/o error from formatted direct i/o.

Thu Sep 10 14:57:25 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>

	* Makefile.in (install): Add missing "else true;".

1998-09-09  Craig Burley  <burley@gnu.org>

	* configure.in: Test $srcdir, not $subdir (probable typo).
	Clarify commentary, fix a bit of spacing.

1998-09-07  Dave Love  <d.love@dl.ac.uk>

	* ChangeLog.egcs: Deleted.  Entries merged here.

1998-09-07  Dave Love  <d.love@dl.ac.uk>

	* libI77/sfe.c, libI77/dfe.c: Revert last change.

1998-09-06  Dave Love  <d.love@dl.ac.uk>

	From Toon to fix spurious recursive i/o errors:
	* libI77/sfe.c (e_wdfe): Set f__init.

	* libI77/dfe.c (c_dfe): Check and set f__init.
	(s_rdfe, s_wdfe): Don't check and set f__init.

Fri Sep  4 18:40:32 1998  Craig Burley  <burley@gnu.org>

	* libU77/sys_clock_.c (G77_system_clock_0): Fix indentation.

Tue Sep  1 10:06:06 1998  Craig Burley  <burley@gnu.org>

	* libF77/Version.c: Update.
	* libU77/Version.c: Update.
	* libI77/Version.c: Update.

Wed Aug 26 23:19:40 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (FLAGS_TO_PASS): Fix typo.

1998-08-11  Dave Love  <d.love@dl.ac.uk>

	* README: Update from Craig.

1998-07-24  Dave Love  <d.love@dl.ac.uk>

	* Makefile.in (s-libe77, ${srcdir}/configure, g2c.h, Makefile)
	(config.status, rebuilt): Rely on VPATH, dropping explicit use of
	$(srcdir) in various places.

1998-07-19  Dave Love  <d.love@dl.ac.uk>

	* Makefile.in (all): Depend on s-libe77, not e77.
	(.PHONY): Remove e77.

Thu Jul 16 00:58:52 1998  Jeffrey A Law  (law@cygnus.com)

	* libU77/Makefile.in: Missed one config.h.in -> config.hin change.

	* g2c.hin: Renamed from g2c.h.in.
	* Makefile.in, configure.in: Changed as needed.
	* configure: Rebuilt.

	* libU77/config.hin: Renamed from libU77/config.h.in.
	* Makefile.in, configure.in: Changed as needed.
	* configure: Rebuilt.

Tue Jul 14 21:35:30 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* Makefile.in (all): Invoke $(MAKE) instead of just make.

Tue Jul 14 02:16:34 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in: stamp-lib* -> s-lib*.
	* libU77/Makefile.in: Likewise.
	* libF77/Makefile.in: Likewise.
	* libI77/Makefile.in: Likewise.

	* libU77/Makefile.in (ALL_CFLAGS): Add -I$(F2C_H_DIR).

Mon Jul 13 13:31:03 1998  Craig Burley  <burley@gnu.org>

	* libU77/u77-test.f: Double-check ETIME results, just
	like 0.5.24 does.

1998-07-10  Dave Love  <d.love@dl.ac.uk>

	* Makefile.in: Re-write build procedure mainly to honour
	dependencies correctly but also allow making in the build
	directory by configuring the relevant variables.  The lib[FIU]77
	subdirs do dependency checking of their objects.  Stamp files
	dictate when to run (new) archive targets in subdirs.  Some
	tidying of variables.  Supply full set of standard targets.

	* configure.in: Move much of testing to new configures in
	subdirs.  Tidy up handling of RANLIB etc.

	* stamp-h.in, libF77/configure.in, libI77/configure.in:
	* libF77/configure, libI77/configure: New files.

	* libF77/Makefile.in, libI77/Makefile.in, libU77/Makefile.in:
	Change in step with libf2c/Makefile.in.

1998-07-09  Dave Love  <d.love@dl.ac.uk>

	* libU77/Makefile.in (check): Wrap -lg2c ... -lm around $(LIBS) in
	case of static link.

	* libU77/Version.c, libI77/Version.c: Update version info.

	* libU77/sys_clock_.c: Replace TIMES conditional stuff removed in
	error by last change.

1998-07-06  Mike Stump  <mrs@wrs.com>

	* Makefile.in (clean): Don't remove Makefiles, that is done in
	distclean.

1998-07-06  Dave Love  <d.love@dl.ac.uk>

	* libU77/Makefile.in (lib): Change variable lib to LIBS.

1998-07-06  Robert Lipe <robertl@dgii.com>

	* libU77/configure.in: Look for -lsocket, add to LIBS if found.

	* libU77/Makefile.in (lib):  Use LIBS from above.

1998-07-05  Dave Love  <d.love@dl.ac.uk>

	* f2cext.c (system_clock_): Remove (just f90 intrinsic).

	* Makefile.in (F2CEXT): Remove sclock.
	(UOBJ): Add libU77/datetime_.o.

	* libU77/config.h.in: Add HAVE_GETTIMEOFDAY.

	* libU77/configure.in: Check for gettimeofday.

	* libU77/datetime_.c: New file.

	* libU77/sys_clock_.c: Allow optional args.

	* libU77/Makefile.in (G77DIR): Fix for current directory
	structure.
	(SRCS, OBJS): Add datetime.

	* libU77/u77-test.f: Call date_and_time.  Call system_clock
	omitting args.

1998-06-29  Dave Love  <d.love@dl.ac.uk>

	* libI77/wsfe.c (s_wsfe): Fix setting of f__curunit lost in
	previous change.
	* libI77/rsfe.c (s_rsfe): Likewise.

Sat Jun 27 23:04:49 1998  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (FLAGS_TO_PASS, case G2C_H_DIR): Use $(TARGET_SUBDIR)
	instead of hardcoding "libraries".

1998-06-26  Manfred Hollstein  <manfred@s-direktnet.de>

	* Makefile.in (gcc_version_trigger): Add new macro.
	(config.status): Add dependency upon $(gcc_version_trigger).

	* configure.in (gcc_version_trigger): New variable; initialize
	using value from toplevel configure; add AC_SUBST for it.
	(gcc_version): Change initialization to use this new variable.
	* configure: Regenerate.

1998-06-24  Manfred Hollstein  <manfred@s-direktnet.de>

	* Makefile.in (version): Rename to gcc_version.
	* configure.in (version): Likewise.
	(gcc_version): Add code to use an option passed from parent configure.
	* configure: Regenerate.

1998-06-23  Dave Love  <d.love@dl.ac.uk>

	* libI77/backspace.c, libI77/dfe.c, libI77/due.c, libI77/iio.c:
	* libI77/lread.c, libI77/sfe.c, libI77/sue.c, libI77/wsfe.c: Update
	to Netlib version of 1998-06-18.

1998-06-21  Dave Love  <d.love@dl.ac.uk>

	* configure.in (version, target_alias): Define.

	* Makefile.in (version, target_alias, libsubdir): Define.
	(install): Remove check for libsubdir.

Sat Jun 13 03:46:40 1998  Craig Burley  <burley@gnu.org>

	* Makefile.in (install): Don't install if $(libsubdir)
	is empty; issue a diagnostic saying top-level Makefile
	must pass it in instead, and exit.

	* Makefile.in (g2c.h): Rename from f2c.h.

	* Makefile.in, libF77/Makefile.in, libI77/Makefile.in:
	* libU77/Makefile.in: Rewrite config and var assignment
	sections to be even more minimal than before, and to
	more clearly documented what macros are expected to be
	set and to what sorts of values.  Eliminate CROSS and
	related stuff, since there's no such things as CROSS
	in egcs.  Rename GCC_FOR_TARGET to CC throughout.
	* Makefile.in (stamp-libi77, stamp-libf77, stamp-libu77):
	Eliminate CROSS.
	* configure.in: Eliminate CROSS.

	Rename libf2c.a and f2c.h to libg2c.a and g2c.h,
	normalize and simplify g77/libg2c build process:
	* Makefile.in: Remove all stuff pertaining to
	installation, cleaning, and so on.  Parent Makefile
	does all that now.  Pass F2C_H_DIR,
	G2C_H_DIR, and GCC_H_DIR, the pathnames for the
	directories containing f2c.h, g2c.h, and other
	#include files, to subdirectory Makefiles.
	(stamp-libf77, stamp-libi77, stamp-libu77):
	Don't specify `-f Makefile' anymore, it's not needed
	now that subdirectory makefile's from netlib are
	renamed to makefile.netlib in g77 source (and to
	makefile.ori by configuration process, in case they're
	still around somehow).
	(stamp-libe77): Don't make libE77 dir unless it doesn't
	exist, if it does just delete all objects in it.
	Compile using $(GCC_FOR_TARGET), not $(CC).
	(rebuilt): Remove this and all subordinate targets,
	as parent Makefile now handles all that.
	(*clean): Remove.
	* configure.in (Pad_UDread, ALWAYS_FLUSH, WANT_LEAD_0):
	Remove these and commentary to new f2c.h file.
	AC_OUTPUT g2c.h instead of f2c.h.  Remove old commentary
	regarding concatenation.
	* g2c.h.in: Rename from f2c.h.in, add appropriate
	commentary.
	* f2c.h: New file, a wrapper for g2c.h that does
	libg2c-specific stuff.
	* libF77/Makefile.in, libI77/Makefile.in, libU77/Makefile.in:
	Change $(ALL_CFLAGS) to use F2C_H_DIR, G2C_H_DIR, and GCC_H_DIR
	macros.  Remove F2C_H macro, replace use with explicit
	dependencies on f2c.h and g2c.h.
	(*clean): Remove.

Mon Apr 27 22:52:31 1998  Richard Henderson  <rth@cygnus.com>

	* libU77/ltime_.c: Bounce the ftnint argument through a local time_t.
	* libU77/gmtime_.c: Likewise.

Sun Apr 26 18:07:56 1998  Richard Henderson  <rth@cygnus.com>

	* configure.in: Adjust include paths in F2C_INTEGER and F2C_LONGINT
	tests to work out of the build directory.

1998-05-20  Dave Love  <d.love@dl.ac.uk>

	* Makefile.in ($(lib)): Use shell loop instead of unportable
	make variable substitution.

Tue May 19 12:50:27 1998  Craig Burley  <burley@gnu.org>

	Break up main() into separate .o's so making and
	linking against shared libraries with non-Fortran
	main() routines is easier:
	* Makefile.in (MISC): Add setarg.o and setsig.o.
	* libF77/Makefile.in (MISC): Ditto.
	* libF77/setarg.c: New file, contains f_setarg().
	* libF77/setsig.c: New file, contains f_setsig().
	* libF77/getarg_.c: Rename xarg* to f__xarg*.
	* libF77/iargc_.c: Ditto

Sat May  2 16:44:46 1998  Craig Burley  <burley@gnu.org>

	* libF77/signal_.c, libI77/dfe.c, libI77/due.c,
	libI77/wsfe.c: Tweaks to eliminate unnecessary
	differences vs. netlib libf2c.

Fri May  1 11:57:45 1998  Craig Burley  <burley@gnu.org>

	Update to Netlib version of 1998-04-20:
	* libF77/dtime_.c, libF77/etime_.c, libF77/h_dnnt.c,
	libF77/h_nint.c, libF77/i_dnnt.c, libF77/i_nint.c,
	libF77/main.c, libF77/s_paus.c, libF77/signal1.h0,
	libI77/backspace.c, libI77/close.c, libI77/dfe.c,
	libI77/endfile.c, libI77/err.c, libI77/fio.h,
	libI77/iio.c, libI77/ilnw.c, libI77/lread.c,
	libI77/lwrite.c, libI77/open.c, libI77/rawio.h,
	libI77/sfe.c, libI77/util.c, libI77/wrtfmt.c,
	libI77/wsfe.c, libI77/wsle.c, libI77/wsne.c:
	See changes.netlib for info.

Sun Apr 26 09:13:41 1998  Craig Burley  <burley@gnu.org>

	* libU77/hostnm_.c (G77_hostnm_0): Fix off-by-one error
	that was trashing the byte just beyond the CHARACTER*(*)
	argument.

Wed Mar  4 16:32:46 1998  Craig Burley  <burley@gnu.org>

	* libU77/u77-test.f: Don't bother declaring etime.
	Use `implicit none' and declare mask and lenstr.
	Do ETIME/DTIME consistency check before loop, then
	use loop to verify that dtime "ticks" at some point.
	Check ETIME array-sum using single-precision add, to
	avoid spurious complaint on systems (like x86) that
	use more precision for intermediate results.
	Fix `Results of ETIME and DTIME...' message to print
	pertinent values (r1 and r2 instead of i and j).
	Change loop from 10M to 1K repeated up to 1000 times
	or until dtime "ticks".
	Print the number of 1K loops needed to see this tick.
	Answer a commented question.
	Split up a long line of output and do other prettying.
	Preset lognam in case GETLOG fails to overwrite it.

Sat Feb 28 15:32:15 1998  Craig Burley  <burley@gnu.org>

	* libI77/open.c (f_open): Use sizeof(buf) instead of
	256, for the usual reasons.

1998-02-17  Dave Love  <d.love@dl.ac.uk>

	* libU77/u77-test.f: Tweak some o/p.

	* libU77/Makefile.in (check): Use -L for new directory structure.

	* Makefile.in (check): Run the u77 check.
	(config.status,	Makefile): New targets.

Wed Feb 11 01:46:20 1998  Manfred Hollstein <manfred@s-direktnet.de>

	* Makefile.in ($(lib)): Call $(AR) repeatedly to avoid overflowing
	argument size limit on ancious System V.

Sun Feb  8 00:32:17 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* Makefile.in: Add `info install-info clean-info check dvi' targets.

Mon Feb  2 11:08:49 1998  Richard Henderson  <rth@cygnus.com>

	* configure.in: Update F2C_INTEGER and F2C_LONGINT tests
	for the new placement in the hierarchy.

Sun Feb  1 02:36:33 1998  Richard Henderson  <rth@cygnus.com>

	* Previous contents of gcc/f/runtime moved into toplevel
	"libf2c" directory.

Sun Feb  1 01:42:47 1998  Mumit Khan <khan@xraylith.wisc.edu>

	* libU77/configure.in (getlogin,getgid,getuid, kill,link,ttyname):
	Check.
	* libU77/config.h.in (HAVE_GETLOGIN, HAVE_GETGID, HAVE_GETUID,
	HAVE_KILL, HAVE_LINK, HAVE_TTYNAME): New defs.
	* libU77/getlog_.c: Conditionalize for target platform. Set errno
	to ENOSYS if target libc doesn't have the function.
	* libU77/getgid_.c: Likewise.
	* libU77/getuid_.c: Likewise.
	* libU77/kill_.c: Likewise.
	* libU77/link_.c: Likewise.
	* libU77/ttynam_.c: Likewise.

Sun Jan 18 20:01:37 1998  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libI77/backspace.c: (f_back): Use type `uiolen' to determine size
	of record length specifier.

Sat Jan 17 22:40:31 1998  Mumit Khan <khan@xraylith.wisc.edu>

	* libU77/configure.in (sys/param.h,sys/times.h): Check.
	(times,alarm): Likewise.
	* libU77/config.h.in (HAVE_SYS_PARAM_H, HAVE_SYS_TIMES_H)
	(HAVE_ALARM, HAVE_TIMES): New defs.
	* libU77/alarm_.c: Conditionalize for target platform. Set errno
	to ENOSYS if target libc doesn't have the function.
	* libU77/dtime_.c: Likewise.
	* libU77/etime_.c: Likewise.
	* libU77/sys_clock_.c: Likewise.

	* configure.in (NON_UNIX_STDIO): Define if MINGW32.
	(NON_ANSI_RW_MODE): Do not define for CYGWIN32 or MINGW32.

	* libI77/rawio.h: Don't providing conflicting declarations for
	read() and write(). MINGW32 header files use "const" quals.

	* libF77/s_paus.c: _WIN32 does not have pause().

Mon Apr 27 22:52:31 1998  Richard Henderson  <rth@cygnus.com>

	* libU77/ltime_.c: Bounce the ftnint argument through a local time_t.
	* libU77/gmtime_.c: Likewise.

Sun Apr 26 18:07:56 1998  Richard Henderson  <rth@cygnus.com>

	* configure.in: Adjust include paths in F2C_INTEGER and F2C_LONGINT
	tests to work out of the build directory.

Tue Dec 23 22:56:01 1997  Craig Burley  <burley@gnu.org>

	* libF77/signal_.c (G77_signal_0): Return type is
	now `void *', to cope with returning previous signal
	handler on 64-bit systems like Alphas.
	* f2cext.c (signal_): Changed accordingly.

Tue Nov 18 09:49:04 1997  Mumit Khan   (khan@xraylith.wisc.edu)

	* libI77/close.c (f_exit): Reset f__init so that f_clos does not
	(incorrectly) think there is an I/O recursion when program is
	interrupted.

Sat Nov  1 18:03:42 1997  Jeffrey A Law  (law@cygnus.com)

	* libF77/signal_.c: Undo last change until we can fix it right.

Wed Oct 29 01:01:04 1997  Mumit Khan  <khan@brahma.xraylith.wisc.edu>

	* configure.in: Set CC to CC_FOR_TARGET when cross-compiling.

Fri Oct 24 11:15:22 1997  Mumit Khan <khan@brahma.xraylith.wisc.edu>

	* libI77/close.c (f_exit): Reset f__init so that f_clos does not
	(incorrectly) think there is an I/O recursion when program is
	interrupted.

Wed Oct 15 10:06:29 1997  Richard Henderson  <rth@cygnus.com>

	* libF77/signal_.c (G77_signal_0): Make return type sig_pf as well.
	* libI77/fio.h: Include <string.h> if STDC_HEADERS.
	* libU77/chmod_.c: Likewise.

Tue Oct  7 18:22:10 1997  Richard Henderson  <rth@cygnus.com>

	* Makefile.in (CGFLAGS): Don't force -g0.
	* libF77/Makefile.in, libI77/Makefile.in, libU77/Makefile.in: Likewise.

Mon Oct  6 14:16:46 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (distclean): Do a better job at cleaning up.

1997-10-03  Dave Love  <d.love@dl.ac.uk>

	* configure.in: Check for tempnam (best because it obeys TMPDIR).
	* libI77/open.c: Use it.
	* libI77/err.c: New message # 132.

Wed Oct  1 01:46:16 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>

	* libU77/sys_clock_.c: File renamed from system_clock_.c.
	* libU77/Makefile.in, Makefile.in : Reference sys_clock_.*, not
	system_clock_.*.
	* libU77/dtime_.c (clk_tck): Try also HZ macro.
	* libU77/access.c (G77_access_0): Check malloc return value against 0,
	not NULL.
	* libU77/getlog_.c, libU77/ttynam_.c, libU77/chdir_.c: Ditto.
	* libU77/chmod_.c, libU77/rename_.c: Ditto.

Tue Sep 30 00:41:39 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	Do a better job of printing the offending FORMAT string
	when producing a diagnostic:
	* libI77/err.c (f__fmtlen): New variable to hold operating
	length of format string.
	(f__fatal): Use new variable to limit length of printed string.
	* libI77/fmt.c (f_s): Don't skip spaces after closing paren,
	so nicer message results (and nested case already skips them).
	(pars_f): Record operating length of format string as indicated
	by a successful call to f_s, or ad-hoc-calculate it if failure,
	limiting the length to 80 characters (and stopping at NUL).
	(do_fio): Use new variable to limit length of printed string.
	* libI77/fmt.h (f__fmtlen): Declare new variable.
	* libI77/lread.c (c_le): Set new variable to known length.

Mon Sep 29 16:30:31 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	Update to Netlib version of 1997-09-23:
	* libF77/dtime_.c (dtime_), libF77/etime_.c (dtime_):
	Return `double' instead of `float' (these are not used
	in g77's version of libf2c).
	* libI77/fmt.c, libI77/fmt.h, libI77/rdfmt.c, libI77/wrtfmt.c:
	Support machines with 64-bit pointers and 32-bit ints (e.g.
	Linux on DEC Alpha).

1997-09-19  Dave Love  <d.love@dl.ac.uk>

	* libU77/dtime_.c (G77_dtime_0): Fix types in HAVE_GETRUSAGE case
	so as not to truncate results to integer values.
	* libU77/Version.c: Bump.

Thu Sep 18 16:58:46 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (stamp-lib): Don't use '$?', explicitly
	list the variables containing the object files to include
	in libf2c.a

Tue Sep  9 00:33:24 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* Version 0.5.21 released.

Mon Sep  8 19:39:01 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libI77/close.c (f_exit): Fix thinko, inverted test
	of whether initialization done, so exiting now closes
	open units again.

Fri Sep  5 00:18:17 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (clean): Don't remove config.cache.
	(distclean): Do it here instead.

Tue Aug 26 20:14:08 1997  Robert Lipe  (robertl@dgii.com)

	* hostnm_.c: Include errno.h

Tue Aug 26 01:42:21 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	From Jim Wilson:
	* configure.in: Make sure RANLIB_TEST is set also.

	From Robert Lipe <robertl@dgii.com>:
	* libU77/getcwd_.c, libU77/hostnm_.c, libU77/lstat_.c:
	Also #include <errno.h>, to define ENOSYS.

Tue Aug 26 01:25:58 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* Makefile.in (stamp-lib): Put all f2cext.c objects in
	a temp directory named libE77, then `ar' them all at
	once into libf2c.a, to get the job done a bit faster.
	Still remove the objects (and libE77 directory) afterward.

Mon Aug 25 23:26:05 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* Makefile.in (mostlyclean, clean): Check if Makefile exists
	before using it. Remove stamp-*.
	(stamp-libi77, stamp-libf77, stamp-libu77): New.
	(stamp-lib): Only depend on stamp-libi77 stamp-libf77
	stamp-libu77

Sun Aug 24 05:04:35 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libU77/rand_.c (G77_rand_0), libU77/dtime_.c (G77_dtime_0),
	libU77/etime_.c (G77_etime_0), libU77/secnds_.c (G77_secnds_0),
	libU77/second_.c (G77_second_0): Really return `double', not
	`doublereal', since the result is cast to `float'.
	* f2cext.c: (rand_, dtime_, etime_, secnds_, second_): Ditto.
	(erf_, erfc_, besj0_, besj1_, besjn_, besy0_, besy1_,
	besyn_, dbesj0_, dbesj1_, dbesjn_, dbesy0_, dbesy1_,
	dbesyn_): All of these return `double', not `doublereal',
	as they either have `float' or `double' results.
	* libU77/bes.c (besj0_, besj1_, besjn_, besy0_, besy1_,
	besyn_): Ditto.
	* libU77/dbes.c (dbesj0_, dbesj1_, dbesjn_, dbesy0_, dbesy1_,
	dbesyn_): Ditto.

	Update to Netlib version of 1997-08-16:
	* libI77/iio.c: Fix bug in internal writes to an array
	of character strings.

	* Makefile.in (UOBJ): Restore fixes made by Dan Pettet I
	lost, which included the addition of mclock_.o already noted
	below, plus adding symlnk_.o.

Thu Aug 21 03:58:34 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* Makefile.in (UOBJ): Add mclock_.o, thanks to Mumit Khan!

1997-08-21  Dave Love  <d.love@dl.ac.uk>

	* libU77/alarm_.c: Fix return type: `integer'.

Mon Aug 11 20:12:42 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* Makefile.in ($(lib), stamp-lib): Ensure that library
	gets fully updated even if updating was aborted earlier.

	* libU77/hostnm_.c (G77_hostnm_0): Return ENOSYS and stuff
	in errno if system has no gethostname() function.

	* libU77/lstat_.c (G77_lstat_0): Return ENOSYS and stuff
	in errno if system has no lstat() function.

	* libU77/getcwd_.c (G77_getcwd_0): Return ENOSYS and stuff
	in errno if system has no getcwd() or getwd() function.
	Test HAVE_GETCWD properly.

	* libU77/symlnk_.c (G77_symlink_0): Return ENOSYS and stuff
	in errno if system has no symlink() function.

	* libU77/mclock_.c (G77_mclock_0): Return -1 if system
	has no clock() function.

Mon Aug 11 01:55:36 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* Makefile.in (F2CEXT): Add `alarm' to this list.

	* f2cext.c (alarm_): Fix some typos in this function.
	Delete third `status' argument.

	* libU77/alarm_.c: Delete third `status' argument,
	as caller gets this from function result; return
	status value as function result for caller.

	* configure.in: Rename `ac_cv_struct_FILE' to
	`g77_cv_struct_FILE' according to 1997-06-26 change.

1997-08-06  Dave Love  <d.love@dl.ac.uk>

	* libU77/vxtidate_.c: Correct day/month argument order.
	* f2cext.c: Likewise.

1997-07-07  Dave Love  <d.love@dl.ac.uk>

	* f2cext.c: Add alarm_.

	* Makefile.in, libU77/Makefile.in: Add alarm_.

	* libU77/alarm_.c: New file.

1997-06-26  Dave Love  <d.love@dl.ac.uk>

	* configure.in: Generally use prefix `g77_' for cached values
	we've invented, not `ac_'.

Tue Jun 24 18:50:06 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libI77/ilnw.c (s_wsni): Call f_init() here.
	(s_wsli): Ditto.
	(e_wsli): Turn off "doing I/O" flag here.

1997-06-20  Dave Love  <d.love@dl.ac.uk>

	* runtime/configure.in: Check for cygwin32 after Mumit Khan (but
	differently); if cygwin32 define NON_UNIX_STDIO and don't define
	NON_ANSI_RW_MODES.

Tue Jun 01 06:26:29 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libI77/rsne.c (nl_init): Don't call f_init() here,
	since s_rsne() already does.
	(c_lir): Call f_init() here instead.
	* libI77/rsli.c (e_rsli): Turn off "doing I/O" flag here.
	* libI77/sue.c (e_rsue): Ditto.

Sun Jun 22 23:27:22 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libI77/fio.h (err): Mark I/O as no longer in progress
	before returning a non-zero error indicator (since
	that tells the caller to jump over the remaining I/O
	calls, including the corresponding `e_whatever' call).
	* libI77/err.c (endif): Ditto.
	* libI77/sfe.c (e_wsfe): Ditto.
	* libI77/lread.c (ERR): Ditto.
	* libI77/lread.c (l_read): Ditto by having quad case
	use ERR, not return, to return non-zero error code.

Sat Jun 21 12:31:28 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libI77/open.c (fk_open): Temporarily turn off
	"doing I/O" flag during f_open() call to avoid recursive
	I/O error.

Tue Jun 17 22:40:47 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* err.c, close.c, rewind.c, inquire.c, backspace.c, endfile.c,
	iio.c, open.c, Version.c, sfe.c, wsle.c, rsne.c, sue.c, rsfe.c,
	lread.c, wsfe.c, fio.h, due.c, dfe.c: Change f__init from
	`flag' to `int' and to signal not just whether initialization
	has happened (bit 0), but also whether I/O is in progress
	already (bit 1).  Consistently produce a clear diagnostic
	in cases of recursive I/O.  Avoid infinite recursion in
	f__fatal, in case sig_die triggers another error.  Don't
	output info on internals if not initialized in f__fatal.  Don't
	bother closing units in f_exit if initialization hasn't
	happened.

Tue Jun 10 12:57:44 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	Update to Netlib version of 1997-06-09:
	* libI77/err.c, libI77/lread.c, libI77/rdfmt.c,
	libI77/wref.c: Move some #include's around.

Mon Jun  9 18:11:56 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libU77/kill_.c (kill_): KR_headers version needed
	`*' in front of args in decls.

Sun May 25 03:16:53 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	Update to Netlib version of 1997-05-24:
	* libF77/README, libF77/Version.c, libF77/main.c,
	libF77/makefile, libF77/s_paus.c, libF77/signal1.h,
	libF77/signal_.c, libF77/z_div.c, libI77/Notice,
	libI77/README, libI77/Version.c, libI77/dfe.c,
	libI77/err.c, libI77/fmt.c, libI77/makefile,
	libI77/rawio.h: Apply many, but not all, of the changes
	made to libf2c since last update.
	* libF77/Makefile.in (MISC), Makefile.in (MISC): Rename
	exit.o to exit_.o to go along with Netlib.
	* libF77/signal.c: Make the prologue much simpler than
	Netlib has it.

Sun May 18 20:56:02 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libU77/unlink_.c, libU77/stat_.c, libU77/symlnk_.c,
	libU77/chmod_.c: g_char first arg is const.

	* libU77/chmod_.c: s_cat expects ftnlen[], not int[] or
	integer[], change types of array and variables
	accordingly.

May 7 1997  Daniel Pettet  <dan.pettet@bchydro.bc.ca>

	* libU77/dbes_.c: Commented out the code in the
	same way the bes* routines are commented out.  This
	was done because corresponding C routines are referenced
	directly in com-rt.def.

Mon May  5 13:56:02 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libU77/stat_.c: Reverse KR/ANSI decls of g_char().

Apr 18 1997  Daniel Pettet  <dan.pettet@bchydro.bc.ca>

	* libF77/F77_aloc.c, libF77/abort_.c, libF77/derf_.c,
	libF77/derfc_.c, libF77/ef1asc_.c, libF77/ef1cmc_.c,
	libF77/erf_.c, libF77/erfc_.c, libF77/exit.c,
	libF77/getarg_.c, libF77/getenv_.c, libF77/iargc_.c,
	libF77/s_cat.c, libF77/signal_.c, libF77/system_.c,
	libI77/close.c, libI77/ftell_.c, libU77/access_.c,
	libU77/bes.c, libU77/chdir_.c, libU77/chmod_.c, libU77/ctime_.c,
	libU77/date_.c, libU77/dbes.c, libU77/dtime_.c, libU77/etime_.c,
	libU77/fdate_.c, libU77/fgetc_.c, libU77/flush1_.c,
	libU77/fnum_.c, libU77/fputc_.c, libU77/fstat_.c,
	libU77/gerror_.c, libU77/getcwd_.c, libU77/getgid_.c,
	libU77/getlog_.c, libU77/getpid_.c, libU77/getuid_.c,
	libU77/gmtime_.c, libU77/hostnm_.c, libU77/idate_.c,
	libU77/ierrno_.c, libU77/irand_.c, libU77/isatty_.c,
	libU77/itime_.c, libU77/kill_.c, libU77/link_.c,
	libU77/lnblnk_.c, libU77/ltime_.c, libU77/mclock_.c,
	libU77/perror_.c, libU77/rand_.c, libU77/rename_.c,
	libU77/secnds_.c, libU77/second_.c, libU77/sleep_.c,
	libU77/srand_.c, libU77/stat_.c, libU77/symlnk_.c,
	libU77/system_clock_.c, libU77/time_.c, libU77/ttynam_.c,
	libU77/umask_.c, libU77/unlink_.c, libU77/vxtidate_.c,
	libU77/vxttime_.c: Completed renaming routines that are directly
	callable from g77 to internal names of the form
	G77_xxxx_0 that are known as intrinsics by g77.

Apr 8 1997  Daniel Pettet  <dan.pettet@bchydro.bc.ca>

	* Makefile.in: Add libU77/mclock_.o and libU77/symlnk_.o to UOBJ.
	* libU77/Makefile.in: Add mclock_.c to SRCS.
	Add mclock_.o and symlnk_.o to OBJS.
	Add mclock_.o dependency.

Apr 8 1997  Daniel Pettet  <dan.pettet@bchydro.bc.ca>

	* libU77/symlnk_.c: Added a couple of (char*) casts to malloc
	to silence the compiler.

1997-03-17  Dave Love  <d.love@dl.ac.uk>

	* libU77/access_.c, libU77/chdir_.c, libU77/chmod_.c,
	libU77/link_.c, libU77/lstat_.c, libU77/rename_.c, libU77/stat_.c,
	libU77/symlnk_.c, libU77/u77-test.f, libU77/unlink_.c: Strip
	trailing blanks from file names for consistency with other
	implementations (notably Sun's).

	* libU77/chmod_.c: Quote the file name given to the shell.

Mon Mar 10 00:19:17 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libI77/uio.c (do_ud) [PAD_UDread]: Add semicolon to err()
	invocation when macro not defined (from Mumit Khan
	<khan@xraylith.wisc.edu>).

Fri Feb 28 13:16:50 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* Version 0.5.20 released.

Wed Feb 26 20:28:53 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* Makefile.in: $(MAKE) invocations now explicitly
	specify `-f Makefile', just in case the `makefile's
	from the netlib distribution would get used instead.

Mon Feb 24 16:43:39 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libU77/Makefile.in (check): Specify driver, and
	don't bother enabling already-enabled intrinsic groups.
	Also, get the $(srcdir) version of u77-test.f.

Sat Feb 22 14:08:42 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libU77/u77-test.f: Explicitly declare intrinsics, get
	rid of useless CHARACTER declarations on intrinsics (maybe
	someday appropriate to implement meaning of that in g77
	and restore them?).
	Add spin loop just to fatten up the timings a bit.
	Clarify ETIME output as having three fields.
	Call TIME with CHARACTER*8, not CHARACTER*6, argument.
	Call new SECOND intrinsic subroutine, after calling
	new DUMDUM subroutine just to ensure the correct value
	doesn't get left around in a register or something.

Thu Feb 20 15:22:42 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libU77/bes.c: Comment out all the code, as g77 avoids actually
	calling it, going directly to the system's library instead.

Mon Feb 17 02:27:41 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libU77/fgetc_.c (fgetc_): Allow return value to be
	CHARACTER*(*), properly handle CHARACTER*0 and blank-pad
	CHARACTER*n where n>1.

Tue Feb 11 14:12:19 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* Makefile.in: Clarify role of $(srcdir) here.  Fix
	various targets accordingly.  Don't rely at all on
	gcc/f/include/ being a link to gcc/include/ -- just
	use it directly.
	(${srcdir}/configure, ${srcdir}/libU77/configure):
	Remove the config.cache files in build directory before
	cd'ing to source directory as well.

	* libF77/Makefile.in, libI77/Makefile.in (ALL_CFLAGS):
	Include `-I.' to pick up build directory.
	Use gcc/include/ directly.
	* libU77/Makefile.in (ALL_CFLAGS): Include `-I$(srcdir)'
	to pick up source directory.
	(OBJS): Fix typo in `chmod_.o' (was `chmod.o').

Mon Feb 10 12:54:47 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* Makefile.in (UOBJ), libU77/Makefile.in (OBJS): Add
	libU77/chmod_.o to list of objects.
	* libU77/chmod_.c: Fix up headers.
	Fix implementation to not prematurely truncate command
	string and make room for trailing null.

	* libU77/ctime_.c: Incoming xstime argument is now longint.
	* libU77/mclock_.c: Now returns longint.
	* libU77/time_.c: Now returns longint.

1997-02-10  Dave Love  <d.love@dl.ac.uk>

	* etime_.c, dtime_.c: Typo rounded times to seconds.

	* date_.c: Add missing return.

	* hostnm_.c: #include unistd.h.

Sat Feb  8 03:30:19 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	INTEGER*8 support built in to f2c.h and libf2c (since
	gcc will be used to compile relevant code anyway):
	* Makefile.in, libF77/Makefile.in: Add pow_qq.o,
	qbitbits.o, and qbitshft.o to $POW and $F90BIT macros,
	as appropriate.
	* f2c.h.in: Define appropriate types and macros.
	Place #error directive correctly.
	* configure.in: Determine appropriate types for long
	integer (F2C_LONGINT).
	Meanwhile, quote strings in #error, for consistency.
	Fix restoring of ac_cpp macro.
	* configure: Regenerated using autoconf-2.12.

	* libF77/Version.c, libI77/Version.c, libU77/Version.c:
	Update version numbers.
	Change names and code for g77-specific version-printing
	routines (shorter names should be safer to link on
	weird, 8-char systems).

	* libF77/c_cos.c, libF77/c_div.c, libF77/c_exp.c,
	libF77/c_log.c, libF77/c_sin.c, libF77/c_sqrt.c,
	libF77/d_cnjg.c, libF77/pow_zi.c, libF77/r_cnjg.c,
	libF77/z_cos.c, libF77/z_div.c, libF77/z_exp.c,
	libF77/z_log.c, libF77/z_sin.c, libF77/z_sqrt.c:
	Changed to work properly even when result is aliased
	with any inputs.

	* libF77/makefile, libI77/makefile: Leave these in
	the g77 distribution, so it is easier to track changes
	to official libf2c.

	* libF77/signal_.c: Eliminate redundant `return 0;'.

	* libI77/fio.h (err, errfl): Fix these so they work
	(and must be expressed) as statements.
	Fix up many users of err() to include trailing semicolon.

	* Incorporate changes by Bell Labs to libf2c through 1997-02-07.

1997-02-06  Dave Love  <d.love@dl.ac.uk>

	* libU77/etime_.c, libU77/dtime_.c: Fix getrusage stuff.

	* libU77/config.h.in: Regenerate for HAVE_GETRUSAGE.

	* libU77/Makefile.in, libI77/Makefile.in, libF77/Makefile.in:
	Redo *clean targets; distclean and maintainer-clean remove the stage?
	and include links.  This probably want looking at further.

Wed Feb  5 00:21:23 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	Add libU77 library from Dave Love <d.love@dl.ac.uk>:
	* Makefile.in: Add libU77 directory, rules, etc.
	* configure.in: New libU77 directory, Makefile, etc.

	* Makefile.in, libF77/Makefile.in, libI77/Makefile.in,
	libU77/Makefile.in: Reorganize these so $(AR) commands
	handled by the top-level Makefile instead of the
	subordinates.  This permits it to do $(AR) only when
	one or more object files actually change, instead of
	having to force-update it as was necessary before.
	And that had the disadvantage of requiring, e.g., user
	root to have access to $(AR) to the library simply to
	install g77, which might be problematic on an NFS setup.
	(mostlyclean, clean, distclean, maintainer-clean):
	Properly handle these rules.

	* Makefile.in: Don't invoke config.status here -- let
	compiler-level stuff handle all that.

	* libI77/err.c [MISSING_FILE_ELEMS]: Declare malloc in this case
	too, so it doesn't end up as an integer.

Sat Feb  1 02:43:48 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* libF77/Makefile.in: More fixup for $(F90BIT) -- wasn't
	in list for ar command, and it wasn't correctly listed
	in the list of things depending on f2c.h.

	* f2c.h.in: Fix up #error directive.

1997-01-31  Dave Love  <d.love@dl.ac.uk>

	* libF77/Makefile.in ($(lib)): Add $(F90BIT); shouldn't exclude
	stuff f2c needs so we can share the library.

Sat Jan 18 19:39:03 1997  Craig Burley  <burley@gnu.ai.mit.edu>

	* configure.in: No longer define ALWAYS_FLUSH, the
	resulting performance is too low.

Wed Dec 18 12:06:02 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	Patch from Mumit Khan <khan@xraylith.wisc.edu>:
	* libF77/s_paus.c: Add __CYGWIN32__ to list of macros
	controlling how to pause.

Sun Dec  1 21:25:27 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* configure: Regenerated using autoconf-2.12.

Mon Nov 25 21:16:15 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* configure: Regenerated using autoconf-2.11.

1996-11-19  Dave Love  <d.love@dl.ac.uk>

	* libI77/backspace.c: Include sys/types.h for size_t.

Wed Nov  6 14:17:27 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* f2c.h.in: Properly comment out the unsupported stuff so
	we don't get build-time errors.

	* libF77/Version.c, libI77/Version.c: Restore macro definition
	of version information.

	* libI77/Makefile.in (OBJ) [foo]: Add ftell_.o to list of objects.

	* libI77/uio.c (do_ud): Fix up casts in PAD_UDread case just
	like they were fixed in the other case.

Thu Oct 31 22:27:45 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* libI77/ftell_.c (fseek_): Map incoming whence argument to
	system's actual SEEK_CUR, SEEK_SET, or SEEK_END macro for
	fseek(), and crash (gracefully) if the argument is invalid.

1996-10-19  Dave Love  <d.love@dl.ac.uk>

	* configure.in: Add check that we have the tools to cross-compile
	if appropriate.
	(NO_EOF_CHAR_CHECK,Skip_f2c_Undefs): Define.

	* libF77/Makefile.in (F90BIT): New routines from Netlib.

	* f2c.h.in:
	Use more sanitary #error (indented for K&R compliance if necessary) if
	f2c_i2 defined.
	Sync with Netlib: Add `uninteger'.  (Commented out) integer*8 stuff.
	bit_{test,clear,set} macros.

1996-10-19  Dave Love  <d.love@dl.ac.uk>

	Update to Netlib version of 1996-09-26.

	* libI77/Version.c: Use <stdio.h>, not "stdio.h".
	* libF77/Version.c: Likewise.

Wed Aug 28 13:25:29 1996  Dave Love  <d.love@dl.ac.uk>

	* libI77/rsne.c (x_rsne): Use size_t instead of int.

	* libI77/endfile.c (copy): Use size_t in place of int.

Wed Aug 28 13:22:20 1996  Dave Love  <d.love@dl.ac.uk>

	* libI77/backspace.c (f_back): Cast fread arg to size_t.

Tue Aug 27 19:11:30 1996  Dave Love  <d.love@dl.ac.uk>

	* libI77/Version.c: Supply */ to avoid apparent nested comment.

Tue Aug 20 09:21:43 1996  Dave Love  <d.love@dl.ac.uk>

	* libF77/Makefile.in (ALL_CFLAGS): Fix missing ../ for include.
	* libI77/Makefile.in (ALL_CFLAGS): Likewise.

Sat Aug 17 13:00:47 1996  Dave Love  <d.love@dl.ac.uk>

	* libF77/qbitshft.c, libF77/qbitbits.c, libF77/lbitshft.c,
	libF77/lbitbits.c: New file from Netlib.  qbit... not currently
	compiled.

Sun Jul  7 18:06:33 1996  Dave Love  <d.love@dl.ac.uk>

	* libF77/z_sqrt.c, libF77/z_sin.c, libF77/z_exp.c, libF77/z_log.c,
	libF77/system_.c, libF77/z_cos.c, libF77/signal_.c,
	libF77/s_stop.c, libF77/sig_die.c, libF77/s_paus.c,
	libF77/s_rnge.c, libF77/s_cat.c, libF77/r_tan.c, libF77/r_tanh.c,
	libF77/r_sinh.c, libF77/r_sqrt.c, libF77/r_sin.c, libF77/r_mod.c,
	libF77/r_nint.c, libF77/r_lg10.c, libF77/r_log.c, libF77/r_exp.c,
	libF77/r_int.c, libF77/r_cosh.c, libF77/r_atn2.c, libF77/r_cos.c,
	libF77/r_asin.c, libF77/r_atan.c, libF77/r_acos.c,
	libF77/pow_dd.c, libF77/pow_zz.c, libF77/main.c, libF77/i_dnnt.c,
	libF77/i_nint.c, libF77/h_dnnt.c, libF77/h_nint.c, libF77/exit.c,
	libF77/d_tan.c, libF77/d_tanh.c, libF77/d_sqrt.c, libF77/d_sin.c,
	libF77/d_sinh.c, libF77/d_mod.c, libF77/d_nint.c, libF77/d_log.c,
	libF77/d_int.c, libF77/d_lg10.c, libF77/d_cosh.c, libF77/d_exp.c,
	libF77/d_atn2.c, libF77/d_cos.c, libF77/d_atan.c, libF77/d_acos.c,
	libF77/d_asin.c, libF77/c_sqrt.c, libF77/cabs.c, libF77/c_sin.c,
	libF77/c_exp.c, libF77/c_log.c, libF77/c_cos.c, libF77/F77_aloc.c,
	libF77/abort_.c, libI77/xwsne.c, libI77/wref.c, libI77/util.c,
	libI77/uio.c, libI77/rsne.c, libI77/rdfmt.c, libI77/rawio.h,
	libI77/open.c, libI77/lread.c, libI77/inquire.c, libI77/fio.h,
	libI77/err.c, libI77/endfile.c, libI77/close.c:
	Use #include <...>, not #include "..." for mkdeps

Sat Jul  6 21:39:21 1996  Dave Love  <d.love@dl.ac.uk>

	* libI77/ftell_.c: Added from Netlib distribution.

Sat Mar 30 20:57:24 1996  Dave Love  <d.love@dl.ac.uk>

	* configure.in: Eliminate explicit use of
	{RANLIB,AR}_FOR_TARGET.
	* Makefile.in: Likewise.
	* libF77/Makefile.in: Likewise.
	* libI77/Makefile.in: Likewise.
	* configure: Regenerated.

Sat Mar 30 21:02:03 1996  Dave Love  <d.love@dl.ac.uk>

	* Makefile.in: Eliminate explicit use of
	{RANLIB,AR}_FOR_TARGET.

Tue Mar 26 23:39:59 1996  Dave Love  <d.love@dl.ac.uk>

	* Makefile.in: Remove hardwired RANLIB and RANLIB_TEST (unnoted
	change).

Mon Mar 25 21:04:56 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* Incorporate changes by Bell Labs to libf2c through 1996-03-23,
	including changes to dmg and netlib email addresses.

Tue Mar 19 13:10:02 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* Incorporate changes by AT&T/Bellcore to libf2c through 1996-03-19.

	* Makefile.in (rebuilt): New target.

	* libF77/Makefile.in, libI77/Makefile.in: Use $AR_FOR_TARGET, not
	$AR.

Tue Mar 19 12:53:19 1996  Dave Love  <d.love@dl.ac.uk>

	* configure.in (ac_cpp): #include <stdio.h> instead
	of <features.h>.

Tue Mar 19 12:52:09 1996  Mumit Khan  <khan@xraylith.wisc.edu>

	* configure.in (ac_cpp): For f2c integer type,
	add -I$srcdir/../.. to make it work on mips-ultrix4.2.

Sat Mar  9 17:37:15 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* libI77/Makefile.in (.c.o): Add -DAllow_TYQUAD, to enable
	I/O support for INTEGER*8.
	* f2c.h.in: Turn on longint type.

Fri Dec 29 18:22:01 1995  Craig Burley  <burley@gnu.ai.mit.edu>

	* Makefile.in: Reorganize the *clean rules to more closely
	parallel gcc's.

	* libF77/Makefile.in, libI77/Makefile.in: Ignore error from $(AR)
	command, in case just doing an install and installer has no write
	access to library (this is a kludge fix -- perhaps install targets
	should never try updating anything?).

Sat Nov 18 19:37:22 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.17 released.

Thu Nov 16 07:20:35 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Incorporate changes by AT&T/Bellcore to libf2c through 1995-11-15.

Fri Sep 22 02:19:59 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* libI77/backspace.c, libI77/close.c, libI77/endfile.c,
	libI77/fio.h, libI77/inquire.c, libI77/rawio.h,
	libF77/s_paus.c: Not an MSDOS system if GO32
	is defined, in the sense that the run-time environment
	is thus more UNIX-like.

Wed Sep 20 02:24:51 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* libF77/Makefile.in, libI77/Makefile.in: Comment out `ld -r -x'
	and `mv' line pairs, since `-x' isn't supported on systems
	such as Solaris, and these lines don't seem to do anything
	useful after all.

Wed Aug 30 15:58:35 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.16 released.

	* Incorporate changes by AT&T/Bellcore to libf2c through 950829.

Mon Aug 28 12:50:34 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* libF77/Makefile.in, libI77/Makefile.in ($(lib)): Force ar'ing
	and ranlib'ing of libf2c.a, else after rm'ing libf2c.a and
	doing a make, only libI77 or libF77 would be added to
	the newly created archive.
	Also, instead of `$?' list all targets explicitly so all
	objects are updated in libf2c.a even if only one actually
	needs recompiling, for similar reason -- we can't easily tell
	if a given object is really up-to-date in libf2c.a, or even
	present there.

Sun Aug 27 14:54:24 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* libF77/Makefile.in, libI77/Makefile.in: Fix spacing so
	initial tabs are present in all appropriate places.
	Move identical $(AR) commands in if then/else clauses
	to single command preceding if.
	(.c.o, Version[FI].o): Use $@ instead of $* because AIX (RS/6000)
	says $@ means source, not object, basename, and $@ seems to work
	everywhere.

Wed Aug 23 15:44:25 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* libF77/system_.c (system_): Declare as returning `ftnint',
	consistent with signal_, instead of defaulting to `int'.
	Hope dmg@research.att.com agrees, else probably will
	change to whatever he determines is correct (and change
	g77 accordingly).

Thu Aug 17 08:46:17 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* libI77/rsne.c (s_rsne): Call f_init if not already done.

Thu Aug 17 04:35:28 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Incorporate changes by Bellcore to libf2c through 950817.
	And this text is for EMACS: (foo at bar).

Wed Aug 16 17:33:06 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* libF77/Makefile.in, libI77/Makefile.in (CFLAGS): Put -g1
	after configured CFLAGS but before GCC_CFLAGS, so by default
	the libraries are built with minimal debugging information.

Fri Jul 28 10:30:15 1995  Dave Love  <d.love@dl.ac.uk>

	* libI77/open.c (f_open): Call f_init if not already done.

Sat Jul  1 19:31:56 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* libF77/system_.c (system_): Make buff one byte bigger so
	following byte doesn't get overwritten by call with large
	string.

Tue Jun 27 23:28:16 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Incorporate changes by Bellcore to libf2c through 950613.

	* libF77/Version.c (__G77_LIBF77_VERSION__): Add this string
	to track g77 mods to libf2c.

	* libI77/Version.c (__G77_LIBI77_VERSION__): Add this string
	to track g77 mods to libf2c.

	* libI77/rawio.h: #include <rawio.h> only conditionally,
	using macro intended for that purpose.

Fri May 19 11:20:00 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* configure.in: Incorporate change made by d.love,

	* configure: Regenerated.

Wed Apr 26 21:08:57 BST 1995  Dave Love  <d.love@dl.ac.uk>

	* configure.in: Fix quoting problem in atexit check.

	* configure: Regenerated (with current autoconf).

Wed Mar 15 12:49:58 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Incorporate changes by Bellcore to libf2c through 950315.

Sun Mar  5 18:54:29 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* README: Tell people not to read lib[fi]77/README.

Wed Feb 15 14:30:58 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* configure.in: Update copyright notice at top of file.

	* f2c.h.in (f2c_i2): Make sure defining this crashes compilations.

	* libI77/Makefile.in (F2C_H): Fix typo in definition of this
	symbol (was FF2C_H=...).

Sun Feb 12 13:39:36 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* README: Remove some obsolete items.
	Add date.

	* TODO: Add date.

Sat Feb 11 22:07:54 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Makefile.in (libf77, libi77): Add rules to .PHONY list.

	* f2c.h.in (flag): Make same type as friends.

	* libF77/Makefile.in (libf77): Rename to $(lib), remove from
	.PHONY list.  Fix some typos.

	* libI77/Makefile.in (libi77): Rename to $(lib), remove from
	.PHONY list.  Fix some typos.

Thu Feb  2 12:22:41 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Makefile.in (libF77/Makefile): Fix typos in this rule's name
	and dependencies.

	* libF77/Makefile.in (libf77): Add rule to .PHONY list.

	* libI77/Makefile.in (libi77): Add rule to .PHONY list.

Local Variables:
add-log-time-format: current-time-string
End:
