2004-11-04  Release Manager

	* GCC 3.4.3 released.

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:
