2004-09-06  Release Manager

	* GCC 3.4.2 released.

2004-07-01  Release Manager

	* GCC 3.4.1 released.

2004-05-06  Bud Davis  <bdavis9659@comcast.net>

	PR libf2c/15151
	* libI77/wrtfmt.c(wrt_L):  Make sizes and types consistent.

2004-04-18  Release Manager

	* GCC 3.4.0 released.

Thu Feb  5 15:08:08 2004  Geoffrey Keating  <geoffk@apple.com>

	PR 12179
	* aclocal.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Use 'gcc', not 'gcc-lib'.
	Add comment about poorly-named variables.
	* Makefile.in (libsubdir): Use 'gcc', not 'gcc-lib'.
	* configure: Regenerate.

2004-01-31  Bud Davis  <bdavis9659@comcast.net>

	PR fortran/12884
	* libI77/rsne.c: Enable reading a '/' when reading
	a '$' delimited namelist.

2004-01-14 Kelley Cook  <kcook@gcc.gnu.org>

	* libF77/configure.in: Update to AC_PREREQ(2.13)
	* libI77/configure.in: Update to AC_PREREQ(2.13)
	* libU77/configure.in: Update to AC_PREREQ(2.13)
	* libU77/configure: Regenerate. 

2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure: Regenerate.

2003-09-21  Toon Moene  <toon@moene.indiv.nluug.nl>

	PR libf2c/11918
	* fstat_.c: Call f_init().
	* isatty_.c: Ditto.
	* fnum_.c: Check file descriptor before handing it back.

Tue Sep  9 15:22:57 2003  Alan Modra  <amodra@bigpond.net.au>

	* configure: Regenerate.

2003-07-04  H.J. Lu <hongjiu.lu@intel.com>

	* Makefile.in: Replace PWD with PWD_COMMAND.

2003-06-15  Nathanael Nerode  <neroden@gcc.gnu.org>

	* libU77/bes.c, libU77/dbes.c: Remove.
	* libU77/Makefile.in: Remove references to bes.c, dbes.c

2003-04-21  Loren J. Rittle  <ljrittle@acm.org>

	* libI77/configure.in (_XOPEN_SOURCE): Bump to 600.
	* libI77/configure: Regenerate. 
	* libU77/configure.in (_XOPEN_SOURCE): Bump to 600.
	* libU77/configure: Regenerate. 

2003-04-11  Bud Davis <bdavis9659@comcast.net>

	PR Fortran/1832
	* libf2c/libI77/iio.c (z_putc): Check for overflowing length
	of output string.

2003-03-24  Bud Davis  <bdavis9659@comcast.net>

	PR fortran/10197
	* libI77/open.c (f_open): A DIRECT ACCESS file is
	UNFORMATTED by default.

Wed Mar 12 22:27:14 2003  Andreas Schwab  <schwab@suse.de>

	* aclocal.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Avoid trailing /. in
	glibcpp_toolexeclibdir.
	* configure: Rebuilt.

2003-02-20  Alexandre Oliva  <aoliva@redhat.com>

	* configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
	config.status.
	* configure: Rebuilt.

2003-02-03  Andreas Jaeger  <aj@suse.de>

	* libU77/configure.in (AC_PROG_CC_WORKS): Define _GNU_SOURCE.
	* libU77/config.hin: Regenerated.
	* libU77/configure: Regenerated.

2003-01-27  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in ($(LIBG2C)): -rpath is glibcpp_toolexeclibdir.
	* aclocal.m4 (glibcpp_toolexeclibdir): Instead of
	$(MULTISUBDIR), use `$CC -print-multi-os-directory`, unless
	version_specific_libs is enabled.
	* configure: Rebuilt.

2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>

	* Makefile.in (FLAGS_TO_PASS): Also pass DESTDIR.
	(install, uninstall): Prepend $(DESTDIR) to destination
	paths in all (un)installation commands.

Wed Dec 18 11:33:35 2002  Jason Merrill  <jason@redhat.com>

	* libU77/date_.c (G77_date_y2kbuggy_0): Declare G77_abort_0 noreturn.
	* libU77/vxtidate_.c (G77_vxtidate_y2kbuggy_0): Likewise.

2002-11-26  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Remove skip-this-dir support.
	* configure: Regenerate.

2002-11-19  Toon Moene  <toon@moene.indiv.nluug.nl>

	PR fortran/8587
	* libF77/pow_zz.c: Handle (0.0, 0.0) ** power.

2002-10-18  Krister Walfridsson  <cato@df.lth.se>

	* libU77/configure.in (_XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED,
	__EXTENSIONS__, _FILE_OFFSET_BITS): Check that _XOPEN_SOURCE 500L
	may be defined before defining these.
	* libU77/configure: Regenerate.
	* libI77/configure.in (_XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED,
	__EXTENSIONS__, _FILE_OFFSET_BITS): Check that _XOPEN_SOURCE 500L
	may be defined before defining these.
	* libI77/configure: Regenerate.

2002-09-23  Zack Weinberg  <zack@codesourcery.com>

	* libF77/Version.c: Rename junk to __LIBF77_VERSION__.  Add
	external decls for __LIBI77_VERSION__ and __LIBU77_VERSION__.
	Delete __G77_LIBF77_VERSION__
	(g77__fvers__): Print all three __LIB*77_VERSION__ strings,
	and __VERSION__ if we have it; nothing else.

	* libI77/Version.c: Provide only __LIBI77_VERSION__ (formerly junk).
	* libU77/Version.c: Provide only __LIBU77_VERSION__ (formerly junk).

Sun Sep 22 23:43:37 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (all): Fix multilib parallel build.

2002-09-14  Tim Prince  <tprince@computer.org>

	PR libf2c/7384
	* libU77/datetime_.c: Use GetLocalTime on MS-Windows.

2002-08-31  Toon Moene  <toon@moene.indiv.nluug.nl>

	PR fortran/6367
	* libI77/rsne.c (x_rsne): Use local variable no2 to count further
	list elements to read.

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

	* libI77/open.c (f_open): Do not indicate unformatted file
	if record length is given without a FORMATTED/UNFORMATTED
	specification.

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.

Wed Jun  5 15:05:41 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* f2cext.c (alarm_): Mark parameter(s) with attribute `unused'.
	* libF77/h_len.c (h_len): Likewise.
	* libF77/i_len.c (i_len): Likewise.
	* libI77/rsli.c (i_ungetc): Likewise.
	* libU77/date_.c (G77_date_y2kbuggy_0): Likewise.
	* libU77/fputc_.c (G77_fputc_0): Likewise.
	* libU77/vxtidate_.c (G77_vxtidate_y2kbuggy_0): Likewise.
	* libU77/vxttime_.c (G77_vxttime_0): Likewise.

Mon Jun  3 22:24:48 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libF77/main.c (f_setarg, f_setsig): Prototype.
	* libI77/lread.c (quad_read): Delete.
	* libI77/uio.c: Include config.h.
	* libI77/wref.c (wrt_E): Cast isdigit arg to unsigned char.
	* libU77/dtime_.c (clk_tck): Move to the scope where it is used.
	* libU77/etime_.c (clk_tck): Likewise.

Mon Jun  3 22:23:03 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libF77/lbitbits.c (lbit_cshift): disambiguate expressions
	with parentheses.
	* libF77/qbitbits.c (qbit_cshift): Likewise.
	* libI77/inquire.c (f_inqu): Likewise.
	* libI77/rdfmt.c (rd_Z): Likewise.
	* libI77/rsne.c (x_rsne): Likewise.

Mon Jun  3 22:21:23 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (s-libe77): Add WARN_CFLAGS.

Sun Jun  2 10:32:35 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libI77/dfe.c (s_rdfe, s_wdfe): Wrap parentheses around
	assignment used as truth value.
	* libI77/due.c (s_rdue, s_wdue): Likewise.
	* libI77/endfile.c (f_end): Likewise.
	* libI77/iio.c (s_rsfi, s_wsfi): Likewise.
	* libI77/lread.c (ERR, l_C, nmL_getc, s_rsle): Likewise.
	* libI77/lwrite.c (l_g, l_put): Likewise.
	* libI77/open.c (f_open): Likewise.
	* libI77/rdfmt.c (rd_Z): Likewise.
	* libI77/rsfe.c (s_rsfe): Likewise.
	* libI77/rsne.c (hash, mk_hashtab, nl_init, getname, getdimen,
	x_rsne, s_rsne): Likewise.
	* libI77/sue.c (s_rsue, s_wsue): Likewise.
	* libI77/wref.c (wrt_E, wrt_F): Likewise.
	* libI77/wsfe.c (s_wsfe): Likewise.
	* libI77/wsle.c (s_wsle): Likewise.
	* libI77/wsne.c (s_wsne): Likewise.

Sun Jun  2 08:59:50 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libF77/main.c (main): Avoid implicit int.
	* libI77/dfe.c (y_rsk, y_getc, c_dfe): Likewise.
	* libI77/due.c (c_due): Likewise.
	* libI77/err.c (f__canseek, f__nowreading, f__nowwriting):
	Likewise.
	* libI77/fmt.c (op_gen, ne_d, e_d, pars_f, type_f, en_fio):
	Likewise.
	* libI77/iio.c (z_getc, z_rnew, c_si, z_wnew): Likewise.
	* libI77/lread.c (t_getc, c_le, l_read): Likewise.
	* libI77/lwrite.c (l_write): Likewise.
	* libI77/open.c (fk_open): Likewise.
	* libI77/rdfmt.c (rd_ed, rd_ned): Likewise.
	* libI77/rsfe.c (xrd_SL, x_getc, x_endp, x_rev): Likewise.
	* libI77/rsne.c (t_getc, x_rsne): Likewise.
	* libI77/sfe.c (c_sfe): Likewise.
	* libI77/sue.c (c_sue): Likewise.
	* libI77/uio.c (do_us): Likewise.
	* libI77/wref.c (wrt_E, wrt_F): Likewise.
	* libI77/wrtfmt.c (wrt_L, w_ed, w_ned): Likewise.

Sun Jun  2 08:58:05 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libI77/rdfmt.c (rd_I): Delete unused variable(s).
	* libU77/access_.c (G77_access_0): Likewise.
	* libU77/chdir_.c (G77_chdir_0): Likewise.
	* libU77/chmod_.c (G77_chmod_0): Likewise.
	* libU77/ctime_.c (G77_ctime_0): Likewise.
	* libU77/link_.c (G77_link_0): Likewise.
	* libU77/lstat_.c (G77_lstat_0): Likewise.
	* libU77/rename_.c (G77_rename_0): Likewise.
	* libU77/stat_.c (G77_stat_0): Likewise.
	* libU77/symlnk_.c (G77_symlnk_0): Likewise.
	* libU77/unlink_.c (G77_unlink_0): Likewise.

Sun Jun  2 08:55:20 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libI77/inquire.c (f_inqu): Avoid ambiguous else clauses.
	* libI77/lread.c (l_C, l_L): Likewise.
	* libI77/open.c (f_open): Likewise.
	* libI77/rsne.c (x_rsne): Likewise.
	* libI77/wref.c (wrt_F): Likewise.

Sun Jun  2 08:53:15 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libF77/getenv_.c (G77_getenv_0): Avoid signed/unsigned warning.
	* libF77/system_.c (G77_system_0): Likewise.
	* libI77/open.c (f_open): Likewise.
	* libI77/rdfmt.c (rd_Z): Likewise.
	* libI77/uio.c (do_us, do_ud): Likewise.

Sat Jun  1 08:33:14 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libF77/*: Fix formatting.
	* libI77/*: Likewise.
	* libU77/*: Likewise.

Fri May 31 21:56:30 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* g2c.hin, libF77/d_cnjg.c, libF77/main.c, libF77/r_cnjg.c,
	libF77/s_cat.c, libF77/s_paus.c, libF77/s_rnge.c, libF77/setarg.c,
	libF77/setsig.c, libF77/signal1.h0, libI77/dfe.c, libI77/due.c,
	libI77/err.c, libI77/fio.h, libI77/fmt.c, libI77/iio.c,
	libI77/ilnw.c, libI77/lread.c, libI77/lwrite.c, libI77/rsfe.c,
	libI77/rsli.c, libI77/rsne.c, libI77/sfe.c, libI77/sue.c,
	libI77/util.c, libI77/wrtfmt.c, libI77/wsfe.c, libI77/wsle.c,
	libI77/xwsne.c, libU77/date_.c: Kill VOID, Void and Int.

Fri May 31 21:54:37 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libF77/F77_aloc.c, libF77/exit_.c, libF77/main.c,
	libF77/s_paus.c, libF77/s_stop.c, libF77/setarg.c,
	libF77/setsig.c, libF77/sig_die.c, libF77/signal1.h0,
	libI77/close.c, libI77/dolio.c, libI77/fio.h, libI77/fmt.h,
	libI77/lio.h: Delete checks on __cplusplus.

Fri May 31 21:50:01 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libF77/*: Delete KR_headers cruft.
	* libI77/*: Likewise.
	* libU77/*: Likewise.

Thu May 30 23:04:52 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (WARN_CFLAGS): New.
	(FLAGS_TO_PASS): Add WARN_CFLAGS.
	* libF77/Makefile.in (ALL_CFLAGS): Likewise.
	* libI77/Makefile.in (ALL_CFLAGS): Likewise.
	* libU77/Makefile.in (ALL_CFLAGS): Likewise.

2002-05-30  H.J. Lu  (hjl@gnu.org)

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

Mon May 20 13:03:54 2002  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libF77/Makefile.in (SHELL): Set to @SHELL@.
	* libI77/Makefile.in (SHELL): Likewise.
	* libU77/Makefile.in (SHELL): Likewise.

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

	* Makefile.in: Use @SHELL@, not /bin/sh for SHELL
	definition.

2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in: Allow for PWDCMD to override hardcoded pwd.
	* aclocal.m4: Likewise.
	* configure: Regenerate.

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-11  Toon Moene  <toon@moene.indiv.nluug.nl>

	* libI77/lio.h: Treat INTEGER*1 as signed char.

2002-03-06  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:
