Commit 51efa892 by Craig Burley Committed by Craig Burley

Improve g77 doc infrastructure

From-SVN: r25743
parent 4b632bf1
Sat Mar 13 14:26:55 1999 Craig Burley <craig@jcb-sc.com>
* RELEASE-PREP: New file, lists things to do for a release.
* Make-lang.in, bugs.texi, bugs0.texi, g77.texi, g77install.texi,
install0.texi, news.texi, news0.texi: Accommodate new doc
architecture.
Consolidate news items. Don't describe old news items in
various generated docs.
Don't describe FSF-g77 installation stuff in various EGCS-g77
generated docs.
Move description of AUTOMATIC to more suitable location.
* root.texi: New file for new doc architecture.
Thu Mar 11 17:32:55 1999 Craig Burley <craig@jcb-sc.com>
* g77.texi: Add AUTOMATIC to list of unsupported extensions.
......
......@@ -244,7 +244,7 @@ f77.dvi: f/g77.dvi
# g77 documentation.
f/g77.info: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \
$(srcdir)/f/g77install.texi $(srcdir)/f/news.texi \
$(srcdir)/f/intdoc.texi
$(srcdir)/f/intdoc.texi $(srcdir)/f/root.texi
case "$(LANGUAGES)" in \
*[fF]77*) touch lang-f77;; \
*) rm -f lang-f77;; \
......@@ -256,7 +256,7 @@ f/g77.info: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \
f/g77.dvi: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \
$(srcdir)/f/g77install.texi $(srcdir)/f/news.texi \
$(srcdir)/f/intdoc.texi
$(srcdir)/f/intdoc.texi $(srcdir)/f/root.texi
case "$(LANGUAGES)" in \
*[fF]77*) touch lang-f77;; \
*) rm -f lang-f77;; \
......@@ -306,15 +306,15 @@ $(srcdir)/f/intdoc.texi: f/intdoc.c f/intdoc.in f/ansify.c f/intrin.def f/intrin
rm f/intdoc f/ansify f/intdoc.h0; \
else true; fi
$(srcdir)/f/BUGS: f/bugs0.texi f/bugs.texi
$(srcdir)/f/BUGS: f/bugs0.texi f/bugs.texi f/root.texi
cd $(srcdir)/f; $(MAKEINFO) -D BUGSONLY --no-header --no-split \
--no-validate -o BUGS bugs0.texi
$(srcdir)/f/INSTALL: f/install0.texi f/g77install.texi
$(srcdir)/f/INSTALL: f/install0.texi f/g77install.texi f/root.texi
cd $(srcdir)/f; $(MAKEINFO) -D INSTALLONLY --no-header --no-split \
--no-validate -o INSTALL install0.texi
$(srcdir)/f/NEWS: f/news0.texi f/news.texi
$(srcdir)/f/NEWS: f/news0.texi f/news.texi f/root.texi
cd $(srcdir)/f; $(MAKEINFO) -D NEWSONLY --no-header --no-split \
--no-validate -o NEWS news0.texi
......
1999-03-13 RELEASE-PREP
Things to do to prepare a g77 release (FSF, egcs, whatever).
- Update root.texi: clear DEVELOPMENT flag, set version info.
@c Copyright (C) 1995-1998 Free Software Foundation, Inc.
@c Copyright (C) 1995-1999 Free Software Foundation, Inc.
@c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi.
@c When changing the above copyright notice, be sure to
@c change the one in `bugs0.texi' accordingly, to effect
@c the change in the derived file `BUGS'.
@c The text of this file appears in the file BUGS
@c in the G77 distribution, as well as in the G77 manual.
@c 1999-03-03
@c Keep this the same as the dates above, since it's used
@c in the standalone derivations of this file (e.g. BUGS).
@set copyrights-bugs 1995-1999
@set last-update-bugs 1999-03-13
@include root.texi
@ifset DOC-BUGS
@c The immediately following lines apply to the BUGS file
@c which is derived from this file.
@emph{Note:} This file is automatically generated from the files
@file{bugs0.texi} and @file{bugs.texi}.
@file{BUGS} is @emph{not} a source file,
although it is normally included within source distributions.
This file lists known bugs in the @value{which-g77} version
of the GNU Fortran compiler.
Copyright (C) @value{copyrights-bugs} Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
@node Top,,, (dir)
@chapter Known Bugs In GNU Fortran
@end ifset
@ifclear BUGSONLY
@node Actual Bugs
@section Actual Bugs We Haven't Fixed Yet
@end ifclear
@ifset DOC-G77
@node Known Bugs
@section Known Bugs In GNU Fortran
@end ifset
This section identifies bugs that @code{g77} @emph{users}
might run into in
@ifhtml
the current development
@end ifhtml
version
@ifnothtml
@value{version-g77}
@end ifnothtml
might run into in the @value{which-g77} version
of @code{g77}.
This includes bugs that are actually in the @code{gcc}
back end (GBE) or in @code{libf2c}, because those
......@@ -32,22 +45,56 @@ sets of code are at least somewhat under the control
of (and necessarily intertwined with) @code{g77},
so it isn't worth separating them out.
@ifset DOC-G77
For information on bugs in @emph{other} versions of @code{g77},
@ifhtml
see the page on Fortran news.
@end ifhtml
@ifnothtml
@ref{News,,News About GNU Fortran}.
@end ifnothtml
There, lists of bugs fixed in various versions of @code{g77},
can help determine what bugs existed in prior versions.
@end ifset
@ifset DOC-BUGS
For information on bugs in @emph{other} versions of @code{g77},
see @file{@value{path-g77}/NEWS}.
There, lists of bugs fixed in various versions of @code{g77},
can help determine what bugs existed in prior versions.
@end ifset
@ifset DEVELOPMENT
@emph{Warning:} The information below is still under development,
and might not accurately reflect the @code{g77} code base
of which it is a part.
Efforts are made to keep it somewhat up-to-date,
but they are particularly concentrated
on any version of this information
that is distributed as part of a @emph{released} @code{g77}.
In particular, while this information is intended to apply to
the @value{which-g77} version of @code{g77},
only an official @emph{release} of that version
is expected to contain documentation that is
most consistent with the @code{g77} product in that version.
@end ifset
An online, ``live'' version of this document
(derived directly from the mainline, development version
of @code{g77} within @code{egcs})
is available via
@uref{http://egcs.cygnus.com/onlinedocs/g77_bugs.html}.
Follow the ``Known Bugs'' link.
@ifset DOC-G77
For information on bugs that might afflict people who
configure, port, build, and install @code{g77},
@ifhtml
see the chapter on installing in the @code{g77} documentation.
@end ifhtml
@ifnothtml
@ref{Problems Installing}.
@end ifnothtml
@end ifset
@ifset DOC-BUGS
For information on bugs that might afflict people who
configure, port, build, and install @code{g77},
see "Problems Installing" in @file{@value{path-g77}/INSTALL}.
@end ifset
The following information was last updated on @value{last-update-bugs}:
@itemize @bullet
@item
......@@ -129,14 +176,11 @@ improvements to the compiler.)
Note that @code{g77} does display a warning message to
notify the user before the compiler appears to hang.
@ifhtml
See the @code{g77} installation documentation
@end ifhtml
@ifnothtml
@ifset DOC-G77
@xref{Large Initialization,,Initialization of Large Aggregate Areas},
@end ifnothtml
for information on how to change the point at which
@code{g77} decides to issue this warning.
@end ifset
@cindex debugging
@cindex common blocks
......@@ -154,13 +198,10 @@ As of Version 0.5.19, a temporary kludge solution is provided whereby
some rudimentary information on a member is written as a string that
is the member's value as a character string.
@ifhtml
See the @code{g77} documentation
@end ifhtml
@ifnothtml
@ifset DOC-G77
@xref{Code Gen Options,,Options for Code Generation Conventions},
@end ifnothtml
for information on the @samp{-fdebug-kludge} option.
@end ifset
@cindex code, displaying main source
@cindex displaying main source code
......
\input texinfo @c -*-texinfo-*-
@c %**start of header
@c %**start of header
@setfilename BUGS
@set BUGSONLY
@c %**end of header
@c The immediately following lines apply to the BUGS file
@c which is generated using this file.
NOTE: This file is automatically generated from the files
`bugs0.texi' and `bugs.texi'. `BUGS' is *not* a source file,
although it is normally included within source distributions.
This file lists known bugs in the GNU Fortran compiler.
Copyright (C) 1995-1998 Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
@node Top,,, (dir)
@chapter Bugs in GNU Fortran
@c This tells bugs.texi that it's generating just the BUGS file.
@set DOC-BUGS
@include bugs.texi
@bye
\input texinfo @c -*-texinfo-*-
@c fix @set inside @example:
@tex
\gdef\set{\begingroup\catcode` =10 \parsearg\setxxx}
\gdef\setyyy#1 #2\endsetyyy{%
\def\temp{#2}%
\ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
\else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
\fi
\endgroup
}
@end tex
@c %**start of header
@setfilename g77.info
@set last-up-date 1999-03-11
@set version-g77 0.5.24
@set email-general egcs@@egcs.cygnus.com
@set email-bugs egcs-bugs@@egcs.cygnus.com
@set email-burley craig@@jcb-sc.com
@set path-g77 egcs/gcc/f
@set path-libf2c egcs/libf2c
@set last-update 1999-03-13
@set copyrights-g77 1995-1999
@include root.texi
@c This tells @include'd files that they're part of the overall G77 doc
@c set. (They might be part of a higher-level doc set too.)
@set DOC-G77
@c @setfilename useg77.info
@c @setfilename portg77.info
......@@ -35,9 +24,13 @@
@c and make sure the following does NOT begin with '@c':
@c @clear USING
@c (For FSF printing, turn on smallbook; that is all that is needed.)
@c 6/27/96 FSF DO wants smallbook fmt for 1st bound edition. (from gcc.texi)
@c @smallbook
@c smallbook
@c i also commented out the finalout command, so if there *are* any
@c overfulls, you'll (hopefully) see the rectangle in the right hand
@c margin. -- burley 1999-03-13 (from mew's comment in gcc.texi).
@c @finalout
@ifset INTERNALS
@ifset USING
......@@ -61,16 +54,48 @@
@syncodeindex fn cp
@syncodeindex vr cp
@c %**end of header
@setchapternewpage odd
@c Cause even numbered pages to be printed on the left hand side of
@c the page and odd numbered pages to be printed on the right hand
@c side of the page. Using this, you can print on both sides of a
@c sheet of paper and have the text on the same part of the sheet.
@c The text on right hand pages is pushed towards the right hand
@c margin and the text on left hand pages is pushed toward the left
@c hand margin.
@c (To provide the reverse effect, set bindingoffset to -0.75in.)
@c @tex
@c \global\bindingoffset=0.75in
@c \global\normaloffset =0.75in
@c @end tex
@ifinfo
This file explains how to use the GNU Fortran system.
@dircategory Programming
@direntry
* g77: (g77). The GNU Fortran compiler.
@end direntry
@ifset INTERNALS
@ifset USING
This file documents the use and the internals of the GNU Fortran (@code{g77})
compiler.
It corresponds to the @value{which-g77} version of @code{g77}.
@end ifset
@end ifset
@ifclear USING
This file documents the internals of the GNU Fortran (@code{g77}) compiler.
It corresponds to the @value{which-g77} version of @code{g77}.
@end ifclear
@ifclear INTERNALS
This file documents the use of the GNU Fortran (@code{g77}) compiler.
It corresponds to the @value{which-g77} version of @code{g77}.
@end ifclear
Published by the Free Software Foundation
59 Temple Place - Suite 330
Boston, MA 02111-1307 USA
Copyright (C) 1995-1997 Free Software Foundation, Inc.
Copyright (C) @value{copyrights-g77} Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
......@@ -104,23 +129,32 @@ Contributed by James Craig Burley (@email{@value{email-burley}}).
Inspired by a first pass at translating @file{g77-0.5.16/f/DOC} that
was contributed to Craig by David Ronis (@email{ronis@@onsager.chem.mcgill.ca}).
@finalout
@setchapternewpage odd
@c @finalout
@titlepage
@comment The title is printed in a large font.
@center @titlefont{Using GNU Fortran}
@ifset INTERNALS
@ifset USING
@center @titlefont{Using and Porting GNU Fortran}
@end ifset
@end ifset
@ifclear INTERNALS
@title Using GNU Fortran
@end ifclear
@ifclear USING
@title Porting GNU Fortran
@end ifclear
@sp 2
@center James Craig Burley
@sp 3
@center Last updated @value{last-up-date}
@center Last updated @value{last-update}
@sp 1
@c The version number appears some more times in this file.
@center for version @value{version-g77}
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1995-1999 Free Software Foundation, Inc.
Copyright @copyright{} @value{copyrights-g77} Free Software Foundation, Inc.
@sp 2
For GNU Fortran Version @value{version-g77}*
For the @value{which-g77} Version*
@sp 1
Published by the Free Software Foundation @*
59 Temple Place - Suite 330@*
......@@ -153,34 +187,50 @@ original English.
@ifinfo
@dircategory Programming
@direntry
* g77: (g77). The GNU Fortran compiler.
@end direntry
@node Top, Copying,, (DIR)
@top Introduction
@cindex Introduction
@ifset INTERNALS
@ifset USING
This manual documents how to run, install and port the GNU Fortran
compiler, as well as its new features and incompatibilities, and how to
report bugs. It corresponds to GNU Fortran version @value{version-g77}.
This manual documents how to run, install and port @code{g77},
as well as its new features and incompatibilities,
and how to report bugs.
It corresponds to the @value{which-g77} version of @code{g77}.
@end ifset
@end ifset
@ifclear INTERNALS
This manual documents how to run and install the GNU Fortran compiler,
This manual documents how to run and install @code{g77},
as well as its new features and incompatibilities, and how to report
bugs. It corresponds to GNU Fortran version @value{version-g77}.
bugs.
It corresponds to the @value{which-g77} version of @code{g77}.
@end ifclear
@ifclear USING
This manual documents how to port the GNU Fortran compiler,
as well as its new features and incompatibilities, and how to report
bugs. It corresponds to GNU Fortran version @value{version-g77}.
This manual documents how to port @code{g77},
as well as its new features and incompatibilities,
and how to report bugs.
It corresponds to the @value{which-g77} version of @code{g77}.
@end ifclear
@end ifinfo
@ifset DEVELOPMENT
@emph{Warning:} This document is still under development,
and might not accurately reflect the @code{g77} code base
of which it is a part.
Efforts are made to keep it somewhat up-to-date,
but they are particularly concentrated
on any version of this information
that is distributed as part of a @emph{released} @code{g77}.
In particular, while this document is intended to apply to
the @value{which-g77} version of @code{g77},
only an official @emph{release} of that version
is expected to contain documentation that is
most consistent with the @code{g77} product in that version.
@end ifset
@menu
* Copying:: GNU General Public License says
how you can copy and share GNU Fortran.
......@@ -3374,806 +3424,9 @@ variables.
@include news.texi
@node Changes
@chapter User-visible Changes
@cindex versions, recent
@cindex recent versions
@cindex changes, user-visible
@cindex user-visible changes
This section describes changes to @code{g77} that are visible
to the programmers who actually write and maintain Fortran
code they compile with @code{g77}.
Information on changes to installation procedures,
changes to the documentation, and bug fixes is
not provided here, unless it is likely to affect how
users use @code{g77}.
@xref{News,,News About GNU Fortran}, for information on
such changes to @code{g77}.
To find out about existing bugs and ongoing plans for GNU
Fortran, retrieve @uref{ftp://alpha.gnu.org/g77.plan}
or, if you cannot do that, email
@email{fortran@@gnu.org} asking for a recent copy of the
GNU Fortran @file{.plan} file.
@heading In @code{egcs 1.2}:
@itemize @bullet
@item
Source file names with the suffixes @samp{.FOR} and @samp{.FPP}
now are recognized by @code{g77}
as if they ended in @samp{.for} and @samp{.fpp}, respectively.
@end itemize
@heading In @code{egcs} 1.1 (versus 0.5.24):
@itemize @bullet
@cindex alignment
@cindex double-precision performance
@cindex -malign-double
@item
Align static double-precision variables and arrays
on Intel x86 targets
regardless of whether @samp{-malign-double} is specified.
Generally, this affects only local variables and arrays
having the @code{SAVE} attribute
or given initial values via @code{DATA}.
@end itemize
@heading In @code{egcs} 1.1 (versus @code{egcs} 1.0.3):
@itemize @bullet
@item
Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a
compile-time constant @code{INTEGER} expression.
@item
Fix @code{g77} @samp{-g} option so procedures that
use @samp{ENTRY} can be stepped through, line by line,
in @code{gdb}.
@item
Allow any @code{REAL} argument to intrinsics
@code{Second} and @code{CPU_Time}.
@item
Use @code{tempnam}, if available, to open scratch files
(as in @samp{OPEN(STATUS='SCRATCH')})
so that the @code{TMPDIR} environment variable,
if present, is used.
@item
@code{g77}'s version of @code{libf2c} separates out
the setting of global state
(such as command-line arguments and signal handling)
from @file{main.o} into distinct, new library
archive members.
This should make it easier to write portable applications
that have their own (non-Fortran) @code{main()} routine
properly set up the @code{libf2c} environment, even
when @code{libf2c} (now @code{libg2c}) is a shared library.
@item
The @code{g77} command now expects the run-time library
to be named @code{libg2c.a} instead of @code{libf2c.a},
to ensure that a version other than the one built and
installed as part of the same @code{g77} version is picked up.
@item
Some diagnostics have been changed from warnings to errors,
to prevent inadvertent use of the resulting, probably buggy,
programs.
These mostly include diagnostics about use of unsupported features
in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and
@code{WRITE} statements,
and about truncations of various sorts of constants.
@end itemize
@heading In 0.5.24 and @code{egcs} 1.1 (versus 0.5.23):
@itemize @bullet
@item
@code{g77} now treats @samp{%LOC(@var{expr})} and
@samp{LOC(@var{expr})} as ``ordinary'' expressions
when they are used as arguments in procedure calls.
This change applies only to global (filewide) analysis,
making it consistent with
how @code{g77} actually generates code
for these cases.
Previously, @code{g77} treated these expressions
as denoting special ``pointer'' arguments
for the purposes of filewide analysis.
@item
The @code{g77} driver now ensures that @samp{-lg2c}
is specified in the link phase prior to any
occurrence of @samp{-lm}.
This prevents accidentally linking to a routine
in the SunOS4 @samp{-lm} library
when the generated code wants to link to the one
in @code{libf2c} (@code{libg2c}).
@item
@code{g77} emits more debugging information when
@samp{-g} is used.
This new information allows, for example,
@kbd{which __g77_length_a} to be used in @code{gdb}
to determine the type of the phantom length argument
supplied with @samp{CHARACTER} variables.
This information pertains to internally-generated
type, variable, and other information,
not to the longstanding deficiencies vis-a-vis
@samp{COMMON} and @samp{EQUIVALENCE}.
@item
The F90 @samp{Date_and_Time} intrinsic now is
supported.
@item
The F90 @samp{System_Clock} intrinsic allows
the optional arguments (except for the @samp{Count}
argument) to be omitted.
@end itemize
@heading In 0.5.23:
@itemize @bullet
@item
This release contains several regressions against
version 0.5.22 of @code{g77}, due to using the
``vanilla'' @code{gcc} back end instead of patching
it to fix a few bugs and improve performance in a
few cases.
@xref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet},
available in plain-text format in @code{gcc/f/BUGS},
for information on the known bugs in this version,
including the regressions.
Features that have been dropped from this version
of @code{g77} due to their being implemented
via @code{g77}-specific patches to the @code{gcc}
back end in previous releases include:
@itemize --
@item
Support for @code{__restrict__} keyword,
the options @samp{-fargument-alias}, @samp{-fargument-noalias},
and @samp{-fargument-noalias-global},
and the corresponding alias-analysis code.
(@code{egcs} has the alias-analysis
code, but not the @code{__restrict__} keyword.
@code{egcs} @code{g77} users benefit from the alias-analysis
code despite the lack of the @code{__restrict__} keyword,
which is a C-language construct.)
@item
Support for the GNU compiler options
@samp{-fmove-all-movables},
@samp{-freduce-all-givs},
and @samp{-frerun-loop-opt}.
(@code{egcs} supports these options.
@code{g77} users of @code{egcs} benefit from them even if
they are not explicitly specified,
because the defaults are optimized for @code{g77} users.)
@item
Support for the @samp{-W} option warning about
integer division by zero.
@item
The Intel x86-specific option @samp{-malign-double}
applying to stack-allocated data
as well as statically-allocate data.
@end itemize
@item
Support @code{gcc} version 2.8,
and remove support for prior versions of @code{gcc}.
@cindex -@w{}-driver option
@cindex @code{g77} options, -@w{}-driver
@cindex options, -@w{}-driver
@item
Remove support for the @samp{--driver} option,
as @code{g77} now does all the driving,
just like @code{gcc}.
@item
The @code{g77} command now expects the run-time library
to be named @code{libg2c.a} instead of @code{libf2c.a},
to ensure that a version other than the one built and
installed as part of the same @code{g77} version is picked up.
@item
@code{g77}'s version of @code{libf2c} separates out
the setting of global state
(such as command-line arguments and signal handling)
from @file{main.o} into distinct, new library
archive members.
This should make it easier to write portable applications
that have their own (non-Fortran) @code{main()} routine
properly set up the @code{libf2c} environment, even
when @code{libf2c} (now @code{libg2c}) is a shared library.
@item
Some diagnostics have been changed from warnings to errors,
to prevent inadvertent use of the resulting, probably buggy,
programs.
These mostly include diagnostics about use of unsupported features
in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and
@code{WRITE} statements,
and about truncations of various sorts of constants.
@end itemize
@heading In 0.5.22:
@itemize @bullet
@item
Fix @code{Signal} intrinsic so it offers portable
support for 64-bit systems (such as Digital Alphas
running GNU/Linux).
@item
Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a
compile-time constant @code{INTEGER} expression.
@item
Fix @code{g77} @samp{-g} option so procedures that
use @samp{ENTRY} can be stepped through, line by line,
in @code{gdb}.
@item
Allow any @code{REAL} argument to intrinsics
@code{Second} and @code{CPU_Time}.
@item
Allow any numeric argument to intrinsics
@code{Int2} and @code{Int8}.
@item
Use @code{tempnam}, if available, to open scratch files
(as in @samp{OPEN(STATUS='SCRATCH')})
so that the @code{TMPDIR} environment variable,
if present, is used.
@item
Rename the @code{gcc} keyword @code{restrict} to
@code{__restrict__}, to avoid rejecting valid, existing,
C programs.
Support for @code{restrict} is now more like support
for @code{complex}.
@item
Fix @samp{-fugly-comma} to affect invocations of
only external procedures.
Restore rejection of gratuitous trailing omitted
arguments to intrinsics, as in @samp{I=MAX(3,4,,)}.
@item
Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
@samp{-fbadu77-intrinsics-*} options.
@end itemize
@heading In @code{egcs} 1.0.2 (versus @code{egcs} 1.0.1):
@itemize @bullet
@item
Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
@samp{-fbadu77-intrinsics-*} options.
@end itemize
@heading In @code{egcs} 1.0 (versus 0.5.21):
@itemize @bullet
@item
Version 1.0 of @code{egcs}
contains several regressions against
version 0.5.21 of @code{g77},
due to using the
``vanilla'' @code{gcc} back end instead of patching
it to fix a few bugs and improve performance in a
few cases.
@xref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet},
available in plain-text format in @code{gcc/f/BUGS},
for information on the known bugs in this version,
including the regressions.
Features that have been dropped from this version
of @code{g77} due to their being implemented
via @code{g77}-specific patches to the @code{gcc}
back end in previous releases include:
@itemize --
@item
Support for the C-language @code{restrict} keyword.
@item
Support for the @samp{-W} option warning about
integer division by zero.
@item
The Intel x86-specific option @samp{-malign-double}
applying to stack-allocated data
as well as statically-allocate data.
@end itemize
@cindex -@w{}-driver option
@cindex @code{g77} options, -@w{}-driver
@cindex options, -@w{}-driver
@item
Remove support for the @samp{--driver} option,
as @code{g77} now does all the driving,
just like @code{gcc}.
@item
Allow any numeric argument to intrinsics
@code{Int2} and @code{Int8}.
@end itemize
@heading In 0.5.21:
@itemize @bullet
@item
When the @samp{-W} option is specified, @code{gcc}, @code{g77},
and other GNU compilers that incorporate the @code{gcc}
back end as modified by @code{g77}, issue
a warning about integer division by constant zero.
@item
New option @samp{-Wno-globals} disables warnings
about ``suspicious'' use of a name both as a global
name and as the implicit name of an intrinsic, and
warnings about disagreements over the number or natures of
arguments passed to global procedures, or the
natures of the procedures themselves.
The default is to issue such warnings, which are
new as of this version of @code{g77}.
@item
New option @samp{-fno-globals} disables diagnostics
about potentially fatal disagreements
analysis problems, such as disagreements over the
number or natures of arguments passed to global
procedures, or the natures of those procedures themselves.
The default is to issue such diagnostics and flag
the compilation as unsuccessful.
With this option, the diagnostics are issued as
warnings, or, if @samp{-Wno-globals} is specified,
are not issued at all.
This option also disables inlining of global procedures,
to avoid compiler crashes resulting from coding errors
that these diagnostics normally would identify.
@item
Fix @code{libU77} routines that accept file and other names
to strip trailing blanks from them, for consistency
with other implementations.
Blanks may be forcibly appended to such names by
appending a single null character (@samp{CHAR(0)})
to the significant trailing blanks.
@item
Fix @code{CHMOD} intrinsic to work with file names
that have embedded blanks, commas, and so on.
@item
Fix @code{SIGNAL} intrinsic so it accepts an
optional third @samp{Status} argument.
@item
Make many changes to @code{libU77} intrinsics to
support existing code more directly.
Such changes include allowing both subroutine and
function forms of many routines, changing @code{MCLOCK()}
and @code{TIME()} to return @code{INTEGER(KIND=1)} values,
introducing @code{MCLOCK8()} and @code{TIME8()} to
return @code{INTEGER(KIND=2)} values,
and placing functions that are intended to perform
side effects in a new intrinsic group, @code{badu77}.
@item
Add options @samp{-fbadu77-intrinsics-delete},
@samp{-fbadu77-intrinsics-hide}, and so on.
@item
Add @code{INT2} and @code{INT8} intrinsics.
@item
Add @code{CPU_TIME} intrinsic.
@item
Add @code{ALARM} intrinsic.
@item
@code{CTIME} intrinsic now accepts any @code{INTEGER}
argument, not just @code{INTEGER(KIND=2)}.
@item
@code{g77} driver now prints version information (such as produced
by @kbd{g77 -v}) to @code{stderr} instead of @code{stdout}.
@item
The @samp{.r} suffix now designates a Ratfor source file,
to be preprocessed via the @code{ratfor} command, available
separately.
@end itemize
@heading In 0.5.20:
@itemize @bullet
@item
The @samp{-fno-typeless-boz} option is now the default.
This option specifies that non-decimal-radix
constants using the prefixed-radix form (such as @samp{Z'1234'})
are to be interpreted as @code{INTEGER(KIND=1)} constants.
Specify @samp{-ftypeless-boz} to cause such
constants to be interpreted as typeless.
(Version 0.5.19 introduced @samp{-fno-typeless-boz} and
its inverse.)
@xref{Fortran Dialect Options,,Options Controlling Fortran Dialect},
for information on the @samp{-ftypeless-boz} option.
@item
Options @samp{-ff90-intrinsics-enable} and
@samp{-fvxt-intrinsics-enable} now are the
defaults.
Some programs might use names that clash with
intrinsic names defined (and now enabled) by these
options or by the new @code{libU77} intrinsics.
Users of such programs might need to compile them
differently (using, for example, @samp{-ff90-intrinsics-disable})
or, better yet, insert appropriate @code{EXTERNAL}
statements specifying that these names are not intended
to be names of intrinsics.
@item
The @samp{ALWAYS_FLUSH} macro is no longer defined when
building @code{libf2c}, which should result in improved
I/O performance, especially over NFS.
@emph{Note:} If you have code that depends on the behavior
of @code{libf2c} when built with @samp{ALWAYS_FLUSH} defined,
you will have to modify @code{libf2c} accordingly before
building it from this and future versions of @code{g77}.
@xref{Output Assumed To Flush}, for more information.
@item
Dave Love's implementation of @code{libU77} has been
added to the version of @code{libf2c} distributed with
and built as part of @code{g77}.
@code{g77} now knows about the routines in this library
as intrinsics.
@item
New option @samp{-fvxt} specifies that the
source file is written in VXT Fortran, instead of GNU Fortran.
@xref{VXT Fortran}, for more information on the constructs
recognized when the @samp{-fvxt} option is specified.
@item
The @samp{-fvxt-not-f90} option has been deleted,
along with its inverse, @samp{-ff90-not-vxt}.
If you used one of these deleted options, you should
re-read the pertinent documentation to determine which
options, if any, are appropriate for compiling your
code with this version of @code{g77}.
@xref{Other Dialects}, for more information.
@item
The @samp{-fugly} option now issues a warning, as it
likely will be removed in a future version.
(Enabling all the @samp{-fugly-*} options is unlikely
to be feasible, or sensible, in the future,
so users should learn to specify only those
@samp{-fugly-*} options they really need for a
particular source file.)
@item
The @samp{-fugly-assumed} option, introduced in
version 0.5.19, has been changed to
better accommodate old and new code.
@xref{Ugly Assumed-Size Arrays}, for more information.
@item
Related to supporting Alpha (AXP) machines, the @code{LOC()}
intrinsic and @code{%LOC()} construct now return
values of @code{INTEGER(KIND=0)} type,
as defined by the GNU Fortran language.
This type is wide enough
(holds the same number of bits)
as the character-pointer type on the machine.
On most machines, this won't make a difference,
whereas, on Alphas and other systems with 64-bit pointers,
the @code{INTEGER(KIND=0)} type is equivalent to @code{INTEGER(KIND=2)}
(often referred to as @code{INTEGER*8})
instead of the more common @code{INTEGER(KIND=1)}
(often referred to as @code{INTEGER*4}).
@item
Emulate @code{COMPLEX} arithmetic in the @code{g77} front
end, to avoid bugs in @code{complex} support in the
@code{gcc} back end.
New option @samp{-fno-emulate-complex}
causes @code{g77} to revert the 0.5.19 behavior.
@item
Dummy arguments are no longer assumed to potentially alias
(overlap)
other dummy arguments or @code{COMMON} areas when any of
these are defined (assigned to) by Fortran code.
This can result in faster and/or smaller programs when
compiling with optimization enabled, though on some
systems this effect is observed only when @samp{-fforce-addr}
also is specified.
New options @samp{-falias-check}, @samp{-fargument-alias},
@samp{-fargument-noalias},
and @samp{-fno-argument-noalias-global} control the
way @code{g77} handles potential aliasing.
@xref{Aliasing Assumed To Work}, for detailed information on why the
new defaults might result in some programs no longer working the way they
did when compiled by previous versions of @code{g77}.
@item
New option @samp{-fugly-assign} specifies that the
same memory locations are to be used to hold the
values assigned by both statements @samp{I = 3} and
@samp{ASSIGN 10 TO I}, for example.
(Normally, @code{g77} uses a separate memory location
to hold assigned statement labels.)
@xref{Ugly Assigned Labels}, for more information.
@item
@code{FORMAT} and @code{ENTRY} statements now are allowed to
precede @code{IMPLICIT NONE} statements.
@item
Enable full support of @code{INTEGER(KIND=2)}
(often referred to as @code{INTEGER*8})
available in
@code{libf2c} and @file{f2c.h} so that @code{f2c} users
may make full use of its features via the @code{g77}
version of @file{f2c.h} and the @code{INTEGER(KIND=2)}
support routines in the @code{g77} version of @code{libf2c}.
@item
Improve @code{g77} driver and @code{libf2c} so that @samp{g77 -v}
yields version information on the library.
@item
The @code{SNGL} and @code{FLOAT} intrinsics now are
specific intrinsics, instead of synonyms for the
generic intrinsic @code{REAL}.
@item
New intrinsics have been added.
These are @code{REALPART}, @code{IMAGPART},
@code{COMPLEX},
@code{LONG}, and @code{SHORT}.
@item
A new group of intrinsics, @samp{gnu}, has been added
to contain the new @code{REALPART}, @code{IMAGPART},
and @code{COMPLEX} intrinsics.
An old group, @samp{dcp}, has been removed.
@item
Complain about industry-wide ambiguous references
@samp{REAL(@var{expr})} and @samp{AIMAG(@var{expr})},
where @var{expr} is @code{DOUBLE COMPLEX} (or any
complex type other than @code{COMPLEX}), unless
@samp{-ff90} option specifies Fortran 90 interpretation
or new @samp{-fugly-complex} option, in conjunction with
@samp{-fnot-f90}, specifies @code{f2c} interpretation.
@end itemize
@heading In 0.5.19:
@itemize @bullet
@item
A temporary kludge option provides bare-bones information on
@code{COMMON} and @code{EQUIVALENCE} members at debug time.
@xref{Code Gen Options,,Options for Code Generation Conventions},
for information on the @samp{-fdebug-kludge} option.
@item
New @samp{-fonetrip} option specifies FORTRAN-66-style
one-trip @code{DO} loops.
@item
New @samp{-fno-silent} option causes names of program units
to be printed as they are compiled, in a fashion similar to
UNIX @code{f77} and @code{f2c}.
@item
New @samp{-fugly-assumed} option specifies that arrays
dimensioned via @samp{DIMENSION X(1)}, for example, are to be
treated as assumed-size.
@item
New @samp{-fno-typeless-boz} option specifies that non-decimal-radix
constants using the prefixed-radix form (such as @samp{Z'1234'})
are to be interpreted as @code{INTEGER(KIND=1)} constants.
@item
New @samp{-ff66} option is a ``shorthand'' option that specifies
behaviors considered appropriate for FORTRAN 66 programs.
@item
New @samp{-ff77} option is a ``shorthand'' option that specifies
behaviors considered appropriate for UNIX @code{f77} programs.
@item
New @samp{-fugly-comma} and @samp{-fugly-logint} options provided
to perform some of what @samp{-fugly} used to do.
@samp{-fugly} and @samp{-fno-ugly} are now ``shorthand'' options,
in that they do nothing more than enable (or disable) other
@samp{-fugly-*} options.
@item
Change code generation for list-directed I/O so it allows
for new versions of @code{libf2c} that might return non-zero
status codes for some operations previously assumed to always
return zero.
This change not only affects how @code{IOSTAT=} variables
are set by list-directed I/O, it also affects whether
@code{END=} and @code{ERR=} labels are reached by these
operations.
@item
Add intrinsic support for new @code{FTELL} and @code{FSEEK}
procedures in @code{libf2c}.
@item
Add options @samp{--help} and @samp{--version} to the
@code{g77} command, to conform to GNU coding guidelines.
Also add printing of @code{g77} version number when
the @samp{--verbose} (@samp{-v}) option is used.
@end itemize
@heading In 0.5.18:
@itemize @bullet
@item
The @code{BYTE} and @code{WORD} statements now are supported,
to a limited extent.
@item
@code{INTEGER*1}, @code{INTEGER*2}, @code{INTEGER*8},
and their @code{LOGICAL}
equivalents, now are supported to a limited extent.
Among the missing elements are complete intrinsic and constant
support.
@item
Support automatic arrays in procedures.
For example, @samp{REAL A(N)}, where @samp{A} is
not a dummy argument, specifies that @samp{A} is
an automatic array.
The size of @samp{A} is calculated from the value
of @samp{N} each time the procedure is called,
that amount of space is allocated, and that space
is freed when the procedure returns to its caller.
@item
Add @samp{-fno-zeros} option, enabled by default,
to reduce compile-time CPU and memory usage for
code that provides initial zero values for variables
and arrays.
@item
Introduce three new options that apply to all compilations
by @code{g77}-aware GNU compilers---@samp{-fmove-all-movables},
@samp{-freduce-all-givs}, and @samp{-frerun-loop-opt}---which
can improve the run-time performance of some programs.
@item
Replace much of the existing documentation with a single
Info document.
@item
New option @samp{-fno-second-underscore}.
@end itemize
@heading In 0.5.17:
@itemize @bullet
@item
The @code{ERF()} and @code{ERFC()} intrinsics now are generic
intrinsics, mapping to @code{ERF}/@code{DERF} and
@code{ERFC}/@code{DERFC}, respectively.
@emph{Note:} Use @samp{INTRINSIC ERF,ERFC} in any code that
might reference these as generic intrinsics, to
improve the likelihood of diagnostics (instead of subtle run-time
bugs) when using compilers that don't support these as intrinsics.
@item
New option @samp{-Wsurprising}.
@item
DO loops with non-@code{INTEGER} variables now diagnosed only when
@samp{-Wsurprising} specified.
Previously, this was diagnosed @emph{unless} @samp{-fpedantic} or
@samp{-fugly} was specified.
@end itemize
@heading In 0.5.16:
@itemize @bullet
@item
@code{libf2c} changed to output a leading zero (0) digit for floating-point
values output via list-directed and formatted output (to bring @code{g77}
more into line with many existing Fortran implementations---the
ANSI FORTRAN 77 standard leaves this choice to the implementation).
@item
@code{libf2c} no longer built with debugging information
intact, making it much smaller.
@item
Automatic installation of the @code{g77} command now works.
@item
Diagnostic messages now more informative, a la @code{gcc},
including messages like @samp{In function `foo':} and @samp{In file
included from...:}.
@item
New group of intrinsics called @samp{unix}, including @code{ABORT},
@code{DERF}, @code{DERFC}, @code{ERF}, @code{ERFC}, @code{EXIT},
@code{FLUSH}, @code{GETARG}, @code{GETENV}, @code{SIGNAL}, and
@code{SYSTEM}.
@item
@samp{-funix-intrinsics-@{delete,hide,disable,enable@}}
options added.
@item
@samp{-fno-underscoring} option added.
@item
@samp{--driver} option added to the @code{g77} command.
@item
Support for the @code{gcc} options @samp{-fident} and @samp{-fno-ident}
added.
@item
@samp{g77 -v} returns much more version info, making the submission
of better bug reports easily.
@item
Many improvements to the @code{g77} command to better fulfill its role as
a front-end to the @code{gcc} driver.
For example, @code{g77} now
recognizes @samp{--verbose} as a verbose way of specifying @samp{-v}.
@item
Compiling preprocessed (@file{*.F} and @file{*.fpp}) files now
results in better diagnostics and debugging information, as the
source-location info now is passed all the
way through the compilation process instead of being lost.
@end itemize
@set USERVISONLY
@include news.texi
@clear USERVISONLY
@node Language
@chapter The GNU Fortran Language
......@@ -11426,7 +10679,7 @@ or installing @code{g77} is not provided here.
@xref{Problems Installing}.
To find out about major bugs discovered in the current release and
possible workarounds for them, retrieve
possible workarounds for them, see
@uref{ftp://alpha.gnu.org/g77.plan}.
(Note that some of this portion of the manual is lifted
......@@ -11439,7 +10692,7 @@ gcc,Using and Porting GNU CC}.)
@menu
* But-bugs:: Bugs really in other programs or elsewhere.
* Actual Bugs:: Bugs and misfeatures we will fix later.
* Known Bugs:: Bugs known to be in this version of @code{g77}.
* Missing Features:: Features we already know we want to add later.
* Disappointments:: Regrettable things we can't change.
* Non-bugs:: Things we think are right, but some others disagree.
......@@ -11999,7 +11252,6 @@ GNU Fortran language:
* Intrinsics in PARAMETER Statements::
* SELECT CASE on CHARACTER Type::
* RECURSIVE Keyword::
* AUTOMATIC Statement::
* Popular Non-standard Types::
* Full Support for Compiler Types::
* Array Bounds Expressions::
......@@ -12016,6 +11268,7 @@ GNU Fortran dialects:
* STRUCTURE UNION RECORD MAP::
* OPEN CLOSE and INQUIRE Keywords::
* ENCODE and DECODE::
* AUTOMATIC Statement::
* Suppressing Space Padding::
* Fortran Preprocessor::
* Bit Operations on Floating-point Data::
......@@ -12158,30 +11411,6 @@ designed to do recursion.
All recursive code can be rewritten to not use recursion,
but the result is not pretty.
@node AUTOMATIC Statement
@subsection @code{AUTOMATIC} Statement
@cindex @code{AUTOMATIC} statement
@cindex statements, @code{AUTOMATIC}
@cindex automatic variables
@cindex variables, automatic
@code{g77} doesn't support the @code{AUTOMATIC} keyword that
@code{f2c} does.
It is not yet clear exactly what this statement would achieve.
The semantic equivalent would be provided by @code{RECURSIVE}
combined with lack of @code{SAVE}.
In that sense, perhaps all it would provide is an
overriding of an unadorned (blanket) @code{SAVE} statement
for specific variables.
It might also serve as a hint to the compiler that placing
even a very large array on the stack is acceptable.
Perhaps it should disallow @code{DATA}
or other specification of any initial values
for affected variables as well.
@node Increasing Precision/Range
@subsection Increasing Precision/Range
@cindex -r8
......@@ -12573,6 +11802,30 @@ with:
It is entirely possible that @code{ENCODE} and @code{DECODE} will
be supported by a future version of @code{g77}.
@node AUTOMATIC Statement
@subsection @code{AUTOMATIC} Statement
@cindex @code{AUTOMATIC} statement
@cindex statements, @code{AUTOMATIC}
@cindex automatic variables
@cindex variables, automatic
@code{g77} doesn't support the @code{AUTOMATIC} keyword that
@code{f2c} does.
It is not yet clear exactly what this statement would achieve.
The semantic equivalent would be provided by @code{RECURSIVE}
combined with lack of @code{SAVE}.
In that sense, perhaps all it would provide is an
overriding of an unadorned (blanket) @code{SAVE} statement
for specific variables.
It might also serve as a hint to the compiler that placing
even a very large array on the stack is acceptable.
Perhaps it should disallow @code{DATA}
or other specification of any initial values
for affected variables as well.
@node Suppressing Space Padding
@subsection Suppressing Space Padding of Source Lines
......
@c Copyright (C) 1995-1998 Free Software Foundation, Inc.
@c Copyright (C) 1995-1999 Free Software Foundation, Inc.
@c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi.
@c When changing the above copyright notice, be sure to
@c change the one in `install0.texi' accordingly, to effect
@c the change in the derived file `INSTALL'.
@c The text of this file appears in the file INSTALL
@c in the G77 distribution, as well as in the G77 manual.
@c 1998-07-13
@c Keep this the same as the dates above, since it's used
@c in the standalone derivations of this file (e.g. INSTALL).
@set copyrights 1995-1999
@set last-update-install 1999-03-13
@include root.texi
@ifset DOC-INSTALL
@c The immediately following lines apply to the INSTALL file
@c which is generated using this file.
@emph{Note:} This file is automatically generated from the files
@file{install0.texi} and @file{g77install.texi}.
@file{INSTALL} is @emph{not} a source file,
although it is normally included within source distributions.
This file contains installation information for the GNU Fortran compiler.
Copyright (C) @value{copyrights-install} Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
@node Top,,, (dir)
@chapter Installing GNU Fortran
@end ifset
@set version-g77 0.5.24
@set version-gcc 2.8.1
@set version-autoconf 2.12
@set version-bison 1.25
......@@ -24,20 +42,32 @@
@set version-tar 1.12
@set version-texinfo 3.12
@ifclear INSTALLONLY
@ifset DOC-G77
@node Installation
@chapter Installing GNU Fortran
@end ifclear
@cindex installing, GNU Fortran
@end ifset
The following information describes how to install @code{g77}.
@ifset EGCS-G77
@set OMIT-FSF-G77
Note that, for @code{egcs} users,
much of this information is obsolete,
much of the information is obsolete,
and is superceded by the
@code{egcs} installation procedures.
Such information is explicitly flagged as such.
Such information is accordingly omitted and flagged as such.
@ifset DEVELOPMENT
@ifclear DOC-INSTALL
@clear OMIT-FSF-G77
(It is not actually omitted from the development version of this documentation,
so the @code{g77} developers can easily find all the documentation
for all versions of @code{g77} in one place.)
@end ifclear
@end ifset
@end ifset
@ifclear OMIT-FSF-G77
The information in this file generally pertains to dealing
with @emph{source} distributions of @code{g77} and @code{gcc}.
It is possible that some of this information will be applicable
......@@ -49,6 +79,25 @@ whoever built and first distributed them.
Nevertheless, efforts to make @code{g77} easier to both build
and install from source and package up as a binary distribution
are ongoing.
@end ifclear
@ifset DEVELOPMENT
@emph{Warning:} The information below is still under development,
and might not accurately reflect the @code{g77} code base
of which it is a part.
Efforts are made to keep it somewhat up-to-date,
but they are particularly concentrated
on any version of this information
that is distributed as part of a @emph{released} @code{g77}.
In particular, while this information is intended to apply to
the @value{which-g77} version of @code{g77},
only an official @emph{release} of that version
is expected to contain documentation that is
most consistent with the @code{g77} product in that version.
@end ifset
The following information was last updated on @value{last-update-install}:
@menu
* Prerequisites:: Make sure your system is ready for @code{g77}.
......@@ -63,10 +112,12 @@ are ongoing.
@section Prerequisites
@cindex prerequisites
@emph{Version info:}
For @code{egcs} users, the following information is
@ifset EGCS-G77
For @code{egcs} users, this information is
superceded by the @code{egcs} installation instructions.
@end ifset
@ifclear OMIT-FSF-G77
The procedures described to unpack, configure, build, and
install @code{g77} assume your system has certain programs
already installed.
......@@ -342,6 +393,8 @@ instead of the entire @file{.tar.gz} distribution
to rebuild derived files, such as @code{makeinfo}).
@end table
@end ifclear
@node Problems Installing
@section Problems Installing
@cindex problems installing
......@@ -389,7 +442,7 @@ so there are no plans for an interim fix.
This requirement does not mean you must already have @code{gcc}
installed to build @code{g77}.
As long as you have a working C compiler, you can use a
bootstrap build to automate the process of first building
``bootstrap'' build to automate the process of first building
@code{gcc} using the working C compiler you have, then building
@code{g77} and rebuilding @code{gcc} using that just-built @code{gcc},
and so on.
......@@ -429,10 +482,12 @@ is not yet established.
@cindex @code{ld}, can't find _strtoul
@cindex SunOS4
@emph{Version info:}
The following information does not apply to the
@ifset EGCS-G77
This information does not apply to the
@code{egcs} version of @code{g77}.
@end ifset
@ifclear OMIT-FSF-G77
On SunOS4 systems, linking the @code{f771} program used to
produce an error message concerning an undefined symbol named
@samp{_strtoul}, because the @samp{strtoul} library function
......@@ -447,7 +502,7 @@ but every attempt at this has failed for at least one kind of system.
To limit the failures to those few systems actually missing the
required routines, the bare-bones versions are still provided,
in @file{gcc/f/proj.c},
in @file{@value{path-g77}/proj.c},
if the appropriate macros are defined.
These are @code{NEED_BSEARCH} for @samp{bsearch} and
@code{NEED_STRTOUL} for @samp{NEED_STRTOUL}.
......@@ -455,7 +510,7 @@ These are @code{NEED_BSEARCH} for @samp{bsearch} and
Therefore, if you are sure your system is missing
@code{bsearch} or @code{strtoul} in its library,
define the relevant macro(s) before building @code{g77}.
This can be done by editing @file{gcc/f/proj.c} and inserting
This can be done by editing @file{@value{path-g77}/proj.c} and inserting
either or both of the following @samp{#define} statements
before the comment shown:
......@@ -474,15 +529,17 @@ To build with the bundled @code{cc} on SunOS4, for example, try:
make bootstrap BOOT_CFLAGS='-O2 -g -DNEED_STRTOUL'
@end smallexample
If you then encounter problems compiling @file{gcc/f/proj.c},
If you then encounter problems compiling @file{@value{path-g77}/proj.c},
it might be due to a discrepancy between how @samp{bsearch}
or @samp{strtoul} are defined by that file and how they're
declared by your system's header files.
In that case, you'll have to use some basic knowledge of C
to work around the problem, perhaps by editing @file{gcc/f/proj.c}
to work around the problem, perhaps by editing @file{@value{path-g77}/proj.c}
somewhat.
@end ifclear
@node Cleanup Kills Stage Directories
@subsubsection Cleanup Kills Stage Directories
@cindex stage directories
......@@ -536,7 +593,9 @@ be fixed in a future version of @code{gcc}.
A linker bug on some versions of AIX 4.1 might prevent building
when @code{g77} is built within @code{gcc}.
It might also occur when building within @code{egcs}.
@ifset DOC-G77
@xref{LINKFAIL}.
@end ifset
@node Cross-compiler Problems
@subsection Cross-compiler Problems
......@@ -601,7 +660,7 @@ system, depending on the systems involved in the configuration.
@section Changing Settings Before Building
Here are some internal @code{g77} settings that can be changed
by editing source files in @file{gcc/f/} before building.
by editing source files in @file{@value{path-g77}/} before building.
This information, and perhaps even these settings, represent
stop-gap solutions to problems people doing various ports
......@@ -641,7 +700,7 @@ the use of unit numbers higher than 99, you can change the
value of the @samp{MXUNIT} macro, which represents the maximum unit
number, to an appropriately higher value.
To do this, edit the file @file{f/runtime/libI77/fio.h} in your
To do this, edit the file @file{@value{path-libf2c}/libI77/fio.h} in your
@code{g77} source tree, changing the following line:
@example
......@@ -707,7 +766,7 @@ modify the @code{g77} source tree so that the version of
@code{libg2c} is built with the @samp{ALWAYS_FLUSH} macro
defined, enabling this behavior.
To do this, find this line in @file{f/runtime/f2c.h} in
To do this, find this line in @file{@value{path-libf2c}/f2c.h} in
your @code{g77} source tree:
@example
......@@ -729,7 +788,7 @@ Then build or rebuild @code{g77} as appropriate.
@cindex segmentation violation
@code{g77}, on most machines, puts many variables and arrays on the stack
where possible, and can be configured (by changing
@samp{FFECOM_sizeMAXSTACKITEM} in @file{gcc/f/com.c}) to force
@samp{FFECOM_sizeMAXSTACKITEM} in @file{@value{path-g77}/com.c}) to force
smaller-sized entities into static storage (saving
on stack space) or permit larger-sized entities to be put on the
stack (which can improve run-time performance, as it presents
......@@ -777,7 +836,7 @@ a factor of 10.
This size currently is quite small, since @code{g77}
currently has a known bug requiring too much memory
and time to handle such cases.
In @file{gcc/f/data.c}, the macro
In @file{@value{path-g77}/data.c}, the macro
@samp{FFEDATA_sizeTOO_BIG_INIT_} is defined
to the minimum size for the warning to appear.
The size is specified in storage units,
......@@ -831,10 +890,12 @@ systems.
@section Quick Start
@cindex quick start
@emph{Version info:}
For @code{egcs} users, the following information is
@ifset EGCS-G77
For @code{egcs} users, this information is
superceded by the @code{egcs} installation instructions.
@end ifset
@ifclear OMIT-FSF-G77
This procedure configures, builds, and installs @code{g77}
``out of the box'' and works on most UNIX systems.
Each command is identified by a unique number,
......@@ -1112,13 +1173,17 @@ around anymore.
Removing them can free up a lot of disk space.
@end table
@end ifclear
@node Complete Installation
@section Complete Installation
@emph{Version info:}
For @code{egcs} users, the following information is
mostly superceded by the @code{egcs} installation instructions.
@ifset EGCS-G77
For @code{egcs} users, this information is
superceded by the @code{egcs} installation instructions.
@end ifset
@ifclear OMIT-FSF-G77
Here is the complete @code{g77}-specific information on how
to configure, build, and install @code{g77}.
......@@ -1270,7 +1335,7 @@ the directories they create.)
If your version of @code{gcc} is older than the oldest version
supported by @code{g77}
(as casually determined by listing the contents of @file{gcc/f/INSTALL/},
(as casually determined by listing the contents of @file{@value{path-g77}/INSTALL/},
which contains these installation instructions in plain-text format),
you should obtain a newer, supported version of @code{gcc}.
(You could instead obtain an older version of @code{g77},
......@@ -1295,9 +1360,7 @@ it is likely that @file{gcc-2.8.2} would work well with @code{g77}.
However, @file{gcc-2.9.0} would almost certainly
not work with that version of @code{g77}
without appropriate modifications,
so a new version of @code{g77} would be needed (and you should
wait for it rather than bothering the maintainers---@pxref{Changes,,
User-Visible Changes}).
so a new version of @code{g77} would be needed.
@cindex distributions, why separate
@cindex separate distributions
......@@ -1314,7 +1377,7 @@ and such changes require corresponding changes to
the @code{g77} front end (FFE).
@c @pindex config-lang.in
@c @emph{Note:} @code{g77}'s configuration file @file{gcc/f/config-lang.in}
@c @emph{Note:} @code{g77}'s configuration file @file{@value{path-g77}/config-lang.in}
@c sometimes ensures that the source code for the version of @code{gcc}
@c being configured has at least one indication of being an appropriate
@c version as required specifically by @code{g77}.
......@@ -1907,7 +1970,7 @@ do @emph{not} do @samp{make maintainer-clean}, and, to ensure that
type these commands:
@example
sh# @kbd{cd gcc/f/runtime}
sh# @kbd{cd @value{path-libf2c}}
sh# @kbd{touch configure libU77/configure}
sh# @kbd{cd ../../..}
sh#
......@@ -1978,11 +2041,19 @@ sh# @kbd{cd ..}
sh#
@end example
@end ifclear
@node Distributing Binaries
@section Distributing Binaries
@cindex binaries, distributing
@cindex code, distributing
@ifset EGCS-G77
For @code{egcs} users, this information is
superceded by the @code{egcs} installation instructions.
@end ifset
@ifclear OMIT-FSF-G77
If you are building @code{g77} for distribution to others in binary form,
first make sure you are aware of your legal responsibilities (read
the file @file{gcc/COPYING} thoroughly).
......@@ -2101,7 +2172,7 @@ If it is not included, users will have trouble understanding
diagnostics messages and other such things, and will send
you a lot of email asking questions.
Please edit this documentation (by editing @file{gcc/f/*.texi}
Please edit this documentation (by editing @file{@value{path-g77}/*.texi}
and doing @samp{make doc} from the @file{/usr/src/gcc} directory)
to reflect any changes you've made to @code{g77}, or at
least to encourage users of your binary distribution to
......@@ -2172,3 +2243,5 @@ and distributions, about which nothing could be done for the
user.
Once you are quite certain a bug report does not involve
your efforts, you can forward it to us.
@end ifclear
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename INSTALL
@set INSTALLONLY
@c %**end of header
@c The immediately following lines apply to the INSTALL file
@c which is generated using this file.
NOTE: This file is automatically generated from the files
`install0.texi' and `g77install.texi'. `INSTALL' is *not* a source
file, although it is normally included within source distributions.
This file contains installation information for the GNU Fortran compiler.
Copyright (C) 1995-1998 Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
@node Top,,, (dir)
@chapter Installing GNU Fortran
@c This tells g77install.texi that it's generating just the INSTALL file.
@set DOC-INSTALL
@include g77install.texi
@bye
......@@ -2,22 +2,64 @@
@c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi.
@c When changing the above copyright notice, be sure to
@c change the one in `news0.texi' accordingly, to effect
@c the change in the derived file `NEWS'.
@c The text of this file appears in the file BUGS
@c The text of this file appears in the file NEWS
@c in the G77 distribution, as well as in the G77 manual.
@c 1999-03-06
@c Keep this the same as the dates above, since it's used
@c in the standalone derivations of this file (e.g. NEWS).
@set copyrights-news 1995-1999
@set last-update-news 1999-03-13
@include root.texi
@ifclear NEWSONLY
@ifset DOC-NEWS
@c The immediately following lines apply to the NEWS file
@c which is derived from this file.
@emph{Note:} This file is automatically generated from the files
@file{news0.texi} and @file{news.texi}.
@file{NEWS} is @emph{not} a source file,
although it is normally included within source distributions.
This file lists news about the @value{which-g77} version
(and some other versions) of the GNU Fortran compiler.
Copyright (C) @value{copyrights-news} Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
@node Top,,, (dir)
@chapter News About GNU Fortran
@end ifset
@ifset DOC-G77
@ifset USERVISONLY
@node Changes
@chapter User-visible Changes
@cindex versions, recent
@cindex recent versions
@cindex changes, user-visible
@cindex user-visible changes
This chapter describes changes to @code{g77} that are visible
to the programmers who actually write and maintain Fortran
code they compile with @code{g77}.
Information on changes to installation procedures,
changes to the documentation, and bug fixes is
not provided here, unless it is likely to affect how
users use @code{g77}.
@xref{News,,News About GNU Fortran}, for information on
such changes to @code{g77}.
@end ifset
@ifclear USERVISONLY
@node News
@chapter News About GNU Fortran
@end ifclear
@cindex versions, recent
@cindex recent versions
@end ifclear
@end ifset
@ifclear USERVISONLY
Changes made to recent versions of GNU Fortran are listed
below, with the most recent version first.
......@@ -49,6 +91,7 @@ Miscellany
This order is not strict---for example, some items
involve a combination of these elements.
@end ifclear
Note that two variants of @code{g77} are tracked below.
The @code{egcs} variant is described vis-a-vis
......@@ -62,8 +105,55 @@ though this can make getting a complete picture
of what a particular @code{egcs} version contains
somewhat more difficult.
@heading In @code{egcs} 1.2:
@ifset DOC-G77
For information on bugs in the @value{which-g77} version of @code{g77},
@ref{Known Bugs,,Known Bugs In GNU Fortran}.
@end ifset
@ifset DOC-BUGS
For information on bugs in the @value{which-g77} version of @code{g77},
see @file{@value{path-g77}/BUGS}.
@end ifset
@ifset DEVELOPMENT
@emph{Warning:} The information below is still under development,
and might not accurately reflect the @code{g77} code base
of which it is a part.
Efforts are made to keep it somewhat up-to-date,
but they are particularly concentrated
on any version of this information
that is distributed as part of a @emph{released} @code{g77}.
In particular, while this information is intended to apply to
the @value{which-g77} version of @code{g77},
only an official @emph{release} of that version
is expected to contain documentation that is
most consistent with the @code{g77} product in that version.
Nevertheless, information on @emph{previous} releases of @code{g77}, below,
is likely to be more up-to-date and accurate
than the equivalent information that accompanied
those releases,
assuming the last-updated date of the information below
is later than the dates of those releases.
That's due to attempts to keep this development version
of news about previous @code{g77} versions up-to-date.
@end ifset
@ifclear USERVISONLY
An online, ``live'' version of this document
(derived directly from the mainline, development version
of @code{g77} within @code{egcs})
is available at
@uref{http://egcs.cygnus.com/onlinedocs/g77_news.html}.
@end ifclear
The following information was last updated on @value{last-update-news}:
@heading In @code{egcs} 1.2 (versus 1.1.2):
@itemize @bullet
@ifclear USERVISONLY
@item
Fix @code{g77} so it no longer crashes when compiling
I/O statements using keywords that define @code{INTEGER} values,
......@@ -71,10 +161,13 @@ such as @samp{IOSTAT=@var{j}},
where @var{j} is other than default @code{INTEGER}
(such as @code{INTEGER*2}).
Instead, it issues a diagnostic.
@end ifclear
@ifclear USERVISONLY
@item
The @samp{-ax} option is now obeyed when compiling Fortran programs.
(It is passed to the @file{f771} driver.)
@end ifclear
@item
Source file names with the suffixes @samp{.FOR} and @samp{.FPP}
......@@ -89,19 +182,26 @@ of catching references to the implementations of these intrinsics
using the @samp{EXTERNAL} mechanism
(which would avoid the new warnings).
@ifset DOC-G77
@xref{Year 2000 (Y2K) Problems}, for more information.
@end ifset
@ifclear USERVISONLY
@item
@code{g77} now warns about a reference to a function
when the corresponding @emph{subsequent} function program unit
disagrees with the reference concerning the type of the function.
@end ifclear
@ifclear USERVISONLY
@item
Improve documentation and indexing,
including information on Year 2000 (Y2K) compliance.
@end ifclear
@end itemize
@heading In 0.5.24 and @code{egcs} 1.1.2 (versus 0.5.23 and 1.1.1):
@ifclear USERVISONLY
@itemize @bullet
@item
Fix the @code{IDate} Intrinsic (VXT)
......@@ -109,10 +209,10 @@ so the returned year is in the documented, non-Y2K-compliant range
of 0--99,
instead of being returned as 100 in the year 2000.
@ifnothtml
@ifset DOC-G77
@xref{IDate Intrinsic (VXT)},
for more information.
@end ifnothtml
@end ifset
@item
Fix the @samp{Date_and_Time} intrinsic (in @code{libg2c})
......@@ -127,8 +227,10 @@ in @var{SArray}(7).
@item
Improve documentation.
@end itemize
@end ifclear
@heading In 0.5.24 and @code{egcs} 1.1.1 (versus 0.5.23 and 1.1):
@ifclear USERVISONLY
@itemize @bullet
@item
Fix @code{libg2c} so it performs an implicit @code{ENDFILE} operation
......@@ -156,20 +258,26 @@ better on some systems
on @samp{if} constructs
for the completion code to be set properly).
@end itemize
@end ifclear
@heading In @code{egcs} 1.1 (versus 0.5.24):
@itemize @bullet
@ifclear USERVISONLY
@item
Fix @code{g77} crash compiling code
containing the construct @samp{CMPLX(0.)} or similar.
@end ifclear
@ifclear USERVISONLY
@item
Fix @code{g77} crash
(or apparently infinite run-time)
when compiling certain complicated expressions
involving @code{COMPLEX} arithmetic
(especially multiplication).
@end ifclear
@ifclear USERVISONLY
@cindex DNRM2
@cindex stack, 387 coprocessor
@cindex Intel x86
......@@ -183,6 +291,7 @@ the @samp{DNRM2} routine.
The x87 coprocessor stack was being
mismanaged in cases involving assigned @code{GOTO}
and @code{ASSIGN}.
@end ifclear
@cindex alignment
@cindex double-precision performance
......@@ -200,6 +309,7 @@ or given initial values via @code{DATA}.
@c 1998-09-01: egcs-1.1 released.
@heading In @code{egcs} 1.1 (versus @code{egcs} 1.0.3):
@itemize @bullet
@ifclear USERVISONLY
@item
Fix bugs in the @code{libU77} intrinsic @samp{HostNm}
that wrote one byte beyond the end of its @samp{CHARACTER}
......@@ -207,7 +317,9 @@ argument,
and in the @code{libU77} intrinsics
@samp{GMTime} and @samp{LTime}
that overwrote their arguments.
@end ifclear
@ifclear USERVISONLY
@item
Assumed arrays with negative bounds
(such as @samp{REAL A(-1:*)})
......@@ -218,7 +330,9 @@ different sizes than integers.
This bug is not known to have existed in any
recent version of @code{gcc}.
It was introduced in an early release of @code{egcs}.
@end ifclear
@ifclear USERVISONLY
@item
Valid combinations of @code{EXTERNAL},
passing that external as a dummy argument
......@@ -227,14 +341,19 @@ and, in a subsequent program unit,
referencing that external as
an external function with a different type
no longer crash @code{g77}.
@end ifclear
@ifclear USERVISONLY
@item
@code{CASE DEFAULT} no longer crashes @code{g77}.
@end ifclear
@ifclear USERVISONLY
@item
The @samp{-Wunused} option no longer issues a spurious
warning about the ``master'' procedure generated by
@code{g77} for procedures containing @code{ENTRY} statements.
@end ifclear
@item
Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a
......@@ -267,6 +386,7 @@ that have their own (non-Fortran) @code{main()} routine
properly set up the @code{libf2c} environment, even
when @code{libf2c} (now @code{libg2c}) is a shared library.
@ifclear USERVISONLY
@item
@code{g77} no longer installs the @file{f77} command
and @file{f77.1} man page
......@@ -274,7 +394,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy,
even if the @file{f77-install-ok} file exists
in the source or build directory.
See the installation documentation for more information.
@end ifclear
@ifclear USERVISONLY
@item
@code{g77} no longer installs the @file{libf2c.a} library
and @file{f2c.h} include file
......@@ -282,7 +404,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy,
even if the @file{f2c-install-ok} or @file{f2c-exists-ok} files exist
in the source or build directory.
See the installation documentation for more information.
@end ifclear
@ifclear USERVISONLY
@item
The @file{libf2c.a} library produced by @code{g77} has been
renamed to @file{libg2c.a}.
......@@ -292,7 +416,9 @@ This allows system administrators and users to choose which
version of the @code{libf2c} library from @code{netlib} they
wish to use on a case-by-case basis.
See the installation documentation for more information.
@end ifclear
@ifclear USERVISONLY
@item
The @file{f2c.h} include (header) file produced by @code{g77}
has been renamed to @file{g2c.h}.
......@@ -302,6 +428,7 @@ This allows system administrators and users to choose which
version of the include file from @code{netlib} they
wish to use on a case-by-case basis.
See the installation documentation for more information.
@end ifclear
@item
The @code{g77} command now expects the run-time library
......@@ -309,17 +436,21 @@ to be named @code{libg2c.a} instead of @code{libf2c.a},
to ensure that a version other than the one built and
installed as part of the same @code{g77} version is picked up.
@ifclear USERVISONLY
@item
During the configuration and build process,
@code{g77} creates subdirectories it needs only as it
needs them.
Other cleaning up of the configuration and build process
has been performed as well.
@end ifclear
@ifclear USERVISONLY
@item
@code{install-info} now used to update the directory of
Info documentation to contain an entry for @code{g77}
(during installation).
@end ifclear
@item
Some diagnostics have been changed from warnings to errors,
......@@ -330,41 +461,53 @@ in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and
@code{WRITE} statements,
and about truncations of various sorts of constants.
@ifclear USERVISONLY
@item
Improve compilation of @code{FORMAT} expressions so that
a null byte is appended to the last operand if it
is a constant.
This provides a cleaner run-time diagnostic as provided
by @code{libf2c} for statements like @samp{PRINT '(I1', 42}.
@end ifclear
@ifclear USERVISONLY
@item
Improve documentation and indexing.
@end ifclear
@ifclear USERVISONLY
@item
The upgrade to @code{libf2c} as of 1998-06-18
should fix a variety of problems, including
those involving some uses of the @samp{T} format
specifier, and perhaps some build (porting) problems
as well.
@end ifclear
@end itemize
@heading In 0.5.24 and @code{egcs} 1.1 (versus 0.5.23):
@itemize @bullet
@ifclear USERVISONLY
@item
@code{g77} no longer produces incorrect code
and initial values
for @samp{EQUIVALENCE} and @samp{COMMON}
aggregates that, due to ``unnatural'' ordering of members
vis-a-vis their types, require initial padding.
@end ifclear
@ifclear USERVISONLY
@item
@code{g77} no longer crashes when compiling code
containing specification statements such as
@samp{INTEGER(KIND=7) PTR}.
@end ifclear
@ifclear USERVISONLY
@item
@code{g77} no longer crashes when compiling code
such as @samp{J = SIGNAL(1, 2)}.
@end ifclear
@item
@code{g77} now treats @samp{%LOC(@var{expr})} and
......@@ -411,13 +554,30 @@ The F90 @samp{System_Clock} intrinsic allows
the optional arguments (except for the @samp{Count}
argument) to be omitted.
@ifclear USERVISONLY
@item
Upgrade to @code{libf2c} as of 1998-06-18.
@end ifclear
@ifclear USERVISONLY
@item
Improve documentation and indexing.
@end ifclear
@end itemize
@ifset DOC-NEWS
@heading In previous versions:
Information on previous versions is not provided
in this @file{@value{path-g77}/NEWS} file,
to keep it short.
See @file{@value{path-g77}/news.texi},
or any of its other derivations
(Info, HTML, dvi forms)
for such information.
@end ifset
@ifclear DOC-NEWS
@c 1998-05-20: 0.5.23 released.
@heading In 0.5.23 (versus 0.5.22):
@itemize @bullet
......@@ -428,16 +588,6 @@ version 0.5.22 of @code{g77}, due to using the
it to fix a few bugs and improve performance in a
few cases.
@ifhtml
See the page on Fortran news
@end ifhtml
@ifnothtml
@xref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet},
available in plain-text format in @code{gcc/f/BUGS},
@end ifnothtml
for information on the known bugs in this version,
including the regressions.
Features that have been dropped from this version
of @code{g77} due to their being implemented
via @code{g77}-specific patches to the @code{gcc}
......@@ -477,10 +627,13 @@ applying to stack-allocated data
as well as statically-allocate data.
@end itemize
@ifclear USERVISONLY
Note that the @file{gcc/f/gbe/} subdirectory has been removed
from this distribution as a result of @code{g77} no longer
including patches for the @code{gcc} back end.
@end ifclear
@ifclear USERVISONLY
@item
Fix bugs in the @code{libU77} intrinsic @samp{HostNm}
that wrote one byte beyond the end of its @samp{CHARACTER}
......@@ -488,22 +641,26 @@ argument,
and in the @code{libU77} intrinsics
@samp{GMTime} and @samp{LTime}
that overwrote their arguments.
@end ifclear
@item
Support @code{gcc} version 2.8,
and remove support for prior versions of @code{gcc}.
@cindex -@w{}-driver option
@cindex g77 options, -@w{}-driver
@cindex @code{g77} options, -@w{}-driver
@cindex options, -@w{}-driver
@item
Remove support for the @samp{--driver} option,
as @code{g77} now does all the driving,
just like @code{gcc}.
@ifclear USERVISONLY
@item
@code{CASE DEFAULT} no longer crashes @code{g77}.
@end ifclear
@ifclear USERVISONLY
@item
Valid combinations of @code{EXTERNAL},
passing that external as a dummy argument
......@@ -512,7 +669,9 @@ and, in a subsequent program unit,
referencing that external as
an external function with a different type
no longer crash @code{g77}.
@end ifclear
@ifclear USERVISONLY
@item
@code{g77} no longer installs the @file{f77} command
and @file{f77.1} man page
......@@ -520,7 +679,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy,
even if the @file{f77-install-ok} file exists
in the source or build directory.
See the installation documentation for more information.
@end ifclear
@ifclear USERVISONLY
@item
@code{g77} no longer installs the @file{libf2c.a} library
and @file{f2c.h} include file
......@@ -528,7 +689,9 @@ in the @file{/usr} or @file{/usr/local} heirarchy,
even if the @file{f2c-install-ok} or @file{f2c-exists-ok} files exist
in the source or build directory.
See the installation documentation for more information.
@end ifclear
@ifclear USERVISONLY
@item
The @file{libf2c.a} library produced by @code{g77} has been
renamed to @file{libg2c.a}.
......@@ -538,7 +701,9 @@ This allows system administrators and users to choose which
version of the @code{libf2c} library from @code{netlib} they
wish to use on a case-by-case basis.
See the installation documentation for more information.
@end ifclear
@ifclear USERVISONLY
@item
The @file{f2c.h} include (header) file produced by @code{g77}
has been renamed to @file{g2c.h}.
......@@ -548,6 +713,7 @@ This allows system administrators and users to choose which
version of the include file from @code{netlib} they
wish to use on a case-by-case basis.
See the installation documentation for more information.
@end ifclear
@item
The @code{g77} command now expects the run-time library
......@@ -555,10 +721,12 @@ to be named @code{libg2c.a} instead of @code{libf2c.a},
to ensure that a version other than the one built and
installed as part of the same @code{g77} version is picked up.
@ifclear USERVISONLY
@item
The @samp{-Wunused} option no longer issues a spurious
warning about the ``master'' procedure generated by
@code{g77} for procedures containing @code{ENTRY} statements.
@end ifclear
@item
@code{g77}'s version of @code{libf2c} separates out
......@@ -572,6 +740,7 @@ that have their own (non-Fortran) @code{main()} routine
properly set up the @code{libf2c} environment, even
when @code{libf2c} (now @code{libg2c}) is a shared library.
@ifclear USERVISONLY
@item
During the configuration and build process,
@code{g77} creates subdirectories it needs only as it
......@@ -579,11 +748,14 @@ needs them, thus avoiding unnecessary creation of, for example,
@file{stage1/f/runtime} when doing a non-bootstrap build.
Other cleaning up of the configuration and build process
has been performed as well.
@end ifclear
@ifclear USERVISONLY
@item
@code{install-info} now used to update the directory of
Info documentation to contain an entry for @code{g77}
(during installation).
@end ifclear
@item
Some diagnostics have been changed from warnings to errors,
......@@ -594,9 +766,12 @@ in the @code{OPEN}, @code{INQUIRE}, @code{READ}, and
@code{WRITE} statements,
and about truncations of various sorts of constants.
@ifclear USERVISONLY
@item
Improve documentation and indexing.
@end ifclear
@ifclear USERVISONLY
@item
Upgrade to @code{libf2c} as of 1998-04-20.
......@@ -604,17 +779,21 @@ This should fix a variety of problems, including
those involving some uses of the @samp{T} format
specifier, and perhaps some build (porting) problems
as well.
@end ifclear
@end itemize
@c 1998-03-16: 0.5.22 released.
@heading In 0.5.22 (versus 0.5.21):
@itemize @bullet
@ifclear USERVISONLY
@item
Fix code generation for iterative @code{DO} loops that
have one or more references to the iteration variable,
or to aliases of it, in their control expressions.
For example, @samp{DO 10 J=2,J} now is compiled correctly.
@end ifclear
@ifclear USERVISONLY
@cindex DNRM2
@cindex stack, 387 coprocessor
@cindex Intel x86
......@@ -628,49 +807,66 @@ the @samp{DNRM2} routine.
The x87 coprocessor stack was being
mismanaged in cases involving assigned @code{GOTO}
and @code{ASSIGN}.
@end ifclear
@ifclear USERVISONLY
@item
Fix @code{DTime} intrinsic so as not to truncate
results to integer values (on some systems).
@end ifclear
@item
Fix @code{Signal} intrinsic so it offers portable
support for 64-bit systems (such as Digital Alphas
running GNU/Linux).
@ifclear USERVISONLY
@item
Fix run-time crash involving @code{NAMELIST} on 64-bit
machines such as Alphas.
@end ifclear
@ifclear USERVISONLY
@item
Fix @code{g77} version of @code{libf2c} so it no longer
produces a spurious @samp{I/O recursion} diagnostic at run time
when an I/O operation (such as @samp{READ *,I}) is interrupted
in a manner that causes the program to be terminated
via the @samp{f_exit} routine (such as via @kbd{C-c}).
@end ifclear
@ifclear USERVISONLY
@item
Fix @code{g77} crash triggered by @code{CASE} statement with
an omitted lower or upper bound.
@end ifclear
@ifclear USERVISONLY
@item
Fix @code{g77} crash compiling references to @code{CPU_Time}
intrinsic.
@end ifclear
@ifclear USERVISONLY
@item
Fix @code{g77} crash
(or apparently infinite run-time)
when compiling certain complicated expressions
involving @code{COMPLEX} arithmetic
(especially multiplication).
@end ifclear
@ifclear USERVISONLY
@item
Fix @code{g77} crash on statements such as
@samp{PRINT *, (REAL(Z(I)),I=1,2)}, where
@samp{Z} is @code{DOUBLE COMPLEX}.
@end ifclear
@ifclear USERVISONLY
@item
Fix a @code{g++} crash.
@end ifclear
@item
Support @samp{FORMAT(I<@var{expr}>)} when @var{expr} is a
......@@ -681,9 +877,11 @@ Fix @code{g77} @samp{-g} option so procedures that
use @samp{ENTRY} can be stepped through, line by line,
in @code{gdb}.
@ifclear USERVISONLY
@item
Fix a profiling-related bug in @code{gcc} back end for
Intel x86 architecture.
@end ifclear
@item
Allow any @code{REAL} argument to intrinsics
......@@ -706,9 +904,11 @@ C programs.
Support for @code{restrict} is now more like support
for @code{complex}.
@ifclear USERVISONLY
@item
Fix @samp{-fpedantic} to not reject procedure invocations
such as @samp{I=J()} and @samp{CALL FOO()}.
@end ifclear
@item
Fix @samp{-fugly-comma} to affect invocations of
......@@ -720,6 +920,7 @@ arguments to intrinsics, as in @samp{I=MAX(3,4,,)}.
Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
@samp{-fbadu77-intrinsics-*} options.
@ifclear USERVISONLY
@item
Improve diagnostic messages from @code{libf2c}
so it is more likely that the printing of the
......@@ -732,45 +933,63 @@ format string specified via a @code{FORMAT} statement.
However, @code{f2c} would exhibit the problem
anyway for a statement like @samp{PRINT '(I)garbage', 1}
by printing @samp{(I)garbage} as the format string.)
@end ifclear
@ifclear USERVISONLY
@item
Improve compilation of @code{FORMAT} expressions so that
a null byte is appended to the last operand if it
is a constant.
This provides a cleaner run-time diagnostic as provided
by @code{libf2c} for statements like @samp{PRINT '(I1', 42}.
@end ifclear
@ifclear USERVISONLY
@item
Fix various crashes involving code with diagnosed errors.
@end ifclear
@ifclear USERVISONLY
@item
Fix cross-compilation bug when configuring @code{libf2c}.
@end ifclear
@ifclear USERVISONLY
@item
Improve diagnostics.
@end ifclear
@ifclear USERVISONLY
@item
Improve documentation and indexing.
@end ifclear
@ifclear USERVISONLY
@item
Upgrade to @code{libf2c} as of 1997-09-23.
This fixes a formatted-I/O bug that afflicted
64-bit systems with 32-bit integers
(such as Digital Alpha running GNU/Linux).
@end ifclear
@end itemize
@c 1998-03-15: egcs-1.0.2 released.
@heading In @code{egcs} 1.0.2 (versus @code{egcs} 1.0.1):
@itemize @bullet
@ifclear USERVISONLY
@item
Fix @code{g77} crash triggered by @code{CASE} statement with
an omitted lower or upper bound.
@end ifclear
@ifclear USERVISONLY
@item
Fix @code{g77} crash on statements such as
@samp{PRINT *, (REAL(Z(I)),I=1,2)}, where
@samp{Z} is @code{DOUBLE COMPLEX}.
@end ifclear
@ifclear USERVISONLY
@cindex ELF support
@cindex support, ELF
@cindex -fPIC option
......@@ -779,16 +998,21 @@ Fix @code{g77} crash on statements such as
Fix @samp{-fPIC} (such as compiling for ELF targets)
on the Intel x86 architecture target
so invalid assembler code is no longer produced.
@end ifclear
@ifclear USERVISONLY
@item
Fix @samp{-fpedantic} to not reject procedure invocations
such as @samp{I=J()} and @samp{CALL FOO()}.
@end ifclear
@ifclear USERVISONLY
@item
Fix @samp{-fugly-comma} to affect invocations of
only external procedures.
Restore rejection of gratuitous trailing omitted
arguments to intrinsics, as in @samp{I=MAX(3,4,,)}.
@end ifclear
@item
Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
......@@ -797,11 +1021,13 @@ Fix compiler so it accepts @samp{-fgnu-intrinsics-*} and
@c 1998-01-02: egcs-1.0.1 released.
@heading In @code{egcs} 1.0.1 (versus @code{egcs} 1.0):
@ifclear USERVISONLY
@itemize @bullet
@item
Fix run-time crash involving @code{NAMELIST} on 64-bit
machines such as Alphas.
@end itemize
@end ifclear
@c 1997-12-03: egcs-1.0 released.
@heading In @code{egcs} 1.0 (versus 0.5.21):
......@@ -815,16 +1041,6 @@ due to using the
it to fix a few bugs and improve performance in a
few cases.
@ifhtml
See the page on Fortran news
@end ifhtml
@ifnothtml
@xref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet},
available in plain-text format in @code{gcc/f/BUGS},
@end ifnothtml
for information on the known bugs in this version,
including the regressions.
Features that have been dropped from this version
of @code{g77} due to their being implemented
via @code{g77}-specific patches to the @code{gcc}
......@@ -844,21 +1060,28 @@ applying to stack-allocated data
as well as statically-allocate data.
@end itemize
@ifclear USERVISONLY
Note that the @file{gcc/f/gbe/} subdirectory has been removed
from this distribution as a result of @code{g77}
being fully integrated with
the @code{egcs} variant of the @code{gcc} back end.
@end ifclear
@ifclear USERVISONLY
@item
Fix code generation for iterative @code{DO} loops that
have one or more references to the iteration variable,
or to aliases of it, in their control expressions.
For example, @samp{DO 10 J=2,J} now is compiled correctly.
@end ifclear
@ifclear USERVISONLY
@item
Fix @code{DTime} intrinsic so as not to truncate
results to integer values (on some systems).
@end ifclear
@ifclear USERVISONLY
@item
@c Toon Moene discovered these.
Some Fortran code, miscompiled
......@@ -870,12 +1093,15 @@ It is believed that a C function known to miscompile
on that configuration
when using the @samp{-O2 -funroll-loops} options
also is now compiled correctly.
@end ifclear
@ifclear USERVISONLY
@item
Remove support for non-@code{egcs} versions of @code{gcc}.
@end ifclear
@cindex -@w{}-driver option
@cindex g77 options, -@w{}-driver
@cindex @code{g77} options, -@w{}-driver
@cindex options, -@w{}-driver
@item
Remove support for the @samp{--driver} option,
......@@ -886,6 +1112,7 @@ just like @code{gcc}.
Allow any numeric argument to intrinsics
@code{Int2} and @code{Int8}.
@ifclear USERVISONLY
@item
Improve diagnostic messages from @code{libf2c}
so it is more likely that the printing of the
......@@ -898,17 +1125,21 @@ format string specified via a @code{FORMAT} statement.
However, @code{f2c} would exhibit the problem
anyway for a statement like @samp{PRINT '(I)garbage', 1}
by printing @samp{(I)garbage} as the format string.)
@end ifclear
@ifclear USERVISONLY
@item
Upgrade to @code{libf2c} as of 1997-09-23.
This fixes a formatted-I/O bug that afflicted
64-bit systems with 32-bit integers
(such as Digital Alpha running GNU/Linux).
@end ifclear
@end itemize
@c 1997-09-09: 0.5.21 released.
@heading In 0.5.21:
@itemize @bullet
@ifclear USERVISONLY
@item
Fix a code-generation bug introduced by 0.5.20
caused by loop unrolling (by specifying
......@@ -916,7 +1147,9 @@ caused by loop unrolling (by specifying
This bug afflicted all code compiled by
version 2.7.2.2.f.2 of @code{gcc} (C, C++,
Fortran, and so on).
@end ifclear
@ifclear USERVISONLY
@item
Fix a code-generation bug manifested when
combining local @code{EQUIVALENCE} with a
......@@ -925,7 +1158,9 @@ the first executable statement (or is
treated as an executable-context statement
as a result of using the @samp{-fpedantic}
option).
@end ifclear
@ifclear USERVISONLY
@item
Fix a compiler crash that occured when an
integer division by a constant zero is detected.
......@@ -934,27 +1169,44 @@ the @code{gcc} back end issues a warning about such a case.
This bug afflicted all code compiled by
version 2.7.2.2.f.2 of @code{gcc} (C, C++,
Fortran, and so on).
@end ifclear
@ifset USERVISONLY
@item
When the @samp{-W} option is specified, @code{gcc}, @code{g77},
and other GNU compilers that incorporate the @code{gcc}
back end as modified by @code{g77}, issue
a warning about integer division by constant zero.
@end ifset
@ifclear USERVISONLY
@item
Fix a compiler crash that occurred in some cases
of procedure inlining.
(Such cases became more frequent in 0.5.20.)
@end ifclear
@ifclear USERVISONLY
@item
Fix a compiler crash resulting from using @code{DATA}
or similar to initialize a @code{COMPLEX} variable or
array to zero.
@end ifclear
@ifclear USERVISONLY
@item
Fix compiler crashes involving use of @code{AND}, @code{OR},
or @code{XOR} intrinsics.
@end ifclear
@ifclear USERVISONLY
@item
Fix compiler bug triggered when using a @code{COMMON}
or @code{EQUIVALENCE} variable
as the target of an @code{ASSIGN}
or assigned-@code{GOTO} statement.
@end ifclear
@ifclear USERVISONLY
@item
Fix compiler crashes due to using the name of a some
non-standard intrinsics (such as @samp{FTELL} or
......@@ -962,6 +1214,7 @@ non-standard intrinsics (such as @samp{FTELL} or
or common block.
Such dual use of a name in a program is allowed by
the standard.
@end ifclear
@c @code{g77}'s version of @code{libf2c} has been modified
@c so that the external names of library's procedures do not
......@@ -988,16 +1241,20 @@ the standard.
@c the new @code{libf2c} routine @samp{fputc_}, which is
@c simply a jacket routine that calls @samp{G77_fputc_0}.
@ifclear USERVISONLY
@item
Place automatic arrays on the stack, even if
@code{SAVE} or the @samp{-fno-automatic} option
is in effect.
This avoids a compiler crash in some cases.
@end ifclear
@ifclear USERVISONLY
@item
The @samp{-malign-double} option now reliably aligns
@code{DOUBLE PRECISION} optimally on Pentium and
Pentium Pro architectures (586 and 686 in @code{gcc}).
@end ifclear
@item
New option @samp{-Wno-globals} disables warnings
......@@ -1027,41 +1284,53 @@ This option also disables inlining of global procedures,
to avoid compiler crashes resulting from coding errors
that these diagnostics normally would identify.
@ifclear USERVISONLY
@item
Diagnose cases where a reference to a procedure
disagrees with the type of that procedure, or
where disagreements about the number or nature
of arguments exist.
This avoids a compiler crash.
@end ifclear
@ifclear USERVISONLY
@item
Fix parsing bug whereby @code{g77} rejected a
second initialization specification immediately
following the first's closing @samp{/} without
an intervening comma in a @code{DATA} statement,
and the second specification was an implied-DO list.
@end ifclear
@ifclear USERVISONLY
@item
Improve performance of the @code{gcc} back end so
certain complicated expressions involving @code{COMPLEX}
arithmetic (especially multiplication) don't appear to
take forever to compile.
@end ifclear
@ifclear USERVISONLY
@item
Fix a couple of profiling-related bugs in @code{gcc}
back end.
@end ifclear
@ifclear USERVISONLY
@item
Integrate GNU Ada's (GNAT's) changes to the back end,
which consist almost entirely of bug fixes.
These fixes are circa version 3.10p of GNAT.
@end ifclear
@ifclear USERVISONLY
@item
Include some other @code{gcc} fixes that seem useful in
@code{g77}'s version of @code{gcc}.
(See @file{gcc/ChangeLog} for details---compare it
to that file in the vanilla @code{gcc-2.7.2.3.tar.gz}
distribution.)
@end ifclear
@item
Fix @code{libU77} routines that accept file and other names
......@@ -1079,11 +1348,13 @@ that have embedded blanks, commas, and so on.
Fix @code{SIGNAL} intrinsic so it accepts an
optional third @samp{Status} argument.
@ifclear USERVISONLY
@item
Fix @code{IDATE()} intrinsic subroutine (VXT form)
so it accepts arguments in the correct order.
Documentation fixed accordingly, and for
@code{GMTIME()} and @code{LTIME()} as well.
@end ifclear
@item
Make many changes to @code{libU77} intrinsics to
......@@ -1097,42 +1368,57 @@ return @code{INTEGER(KIND=2)} values,
and placing functions that are intended to perform
side effects in a new intrinsic group, @code{badu77}.
@ifclear USERVISONLY
@item
Improve @code{libU77} so it is more portable.
@end ifclear
@item
Add options @samp{-fbadu77-intrinsics-delete},
@samp{-fbadu77-intrinsics-hide}, and so on.
@ifclear USERVISONLY
@item
Fix crashes involving diagnosed or invalid code.
@end ifclear
@ifclear USERVISONLY
@item
@code{g77} and @code{gcc} now do a somewhat better
job detecting and diagnosing arrays that are too
large to handle before these cause diagnostics
during the assembler or linker phase, a compiler
crash, or generation of incorrect code.
@end ifclear
@ifclear USERVISONLY
@item
Make some fixes to alias analysis code.
@end ifclear
@ifclear USERVISONLY
@item
Add support for @code{restrict} keyword in @code{gcc}
front end.
@end ifclear
@ifclear USERVISONLY
@item
Support @code{gcc} version 2.7.2.3
(modified by @code{g77} into version 2.7.2.3.f.1),
and remove
support for prior versions of @code{gcc}.
@end ifclear
@ifclear USERVISONLY
@item
Incorporate GNAT's patches to the @code{gcc} back
end into @code{g77}'s, so GNAT users do not need
to apply GNAT's patches to build both GNAT and @code{g77}
from the same source tree.
@end ifclear
@ifclear USERVISONLY
@item
Modify @code{make} rules and related code so that
generation of Info documentation doesn't require
......@@ -1140,6 +1426,7 @@ compilation using @code{gcc}.
Now, any ANSI C compiler should be adequate to
produce the @code{g77} documentation (in particular,
the tables of intrinsics) from scratch.
@end ifclear
@item
Add @code{INT2} and @code{INT8} intrinsics.
......@@ -1154,46 +1441,64 @@ Add @code{ALARM} intrinsic.
@code{CTIME} intrinsic now accepts any @code{INTEGER}
argument, not just @code{INTEGER(KIND=2)}.
@ifclear USERVISONLY
@item
Warn when explicit type declaration disagrees with
the type of an intrinsic invocation.
@end ifclear
@ifclear USERVISONLY
@item
Support @samp{*f771} entry in @code{gcc} @file{specs} file.
@end ifclear
@ifclear USERVISONLY
@item
Fix typo in @code{make} rule @samp{g77-cross}, used only for
cross-compiling.
@end ifclear
@ifclear USERVISONLY
@item
Fix @code{libf2c} build procedure to re-archive library
if previous attempt to archive was interrupted.
@end ifclear
@ifclear USERVISONLY
@item
Change @code{gcc} to unroll loops only during the last
invocation (of as many as two invocations) of loop
optimization.
@end ifclear
@ifclear USERVISONLY
@item
Improve handling of @samp{-fno-f2c} so that code that
attempts to pass an intrinsic as an actual argument,
such as @samp{CALL FOO(ABS)}, is rejected due to the fact
that the run-time-library routine is, effectively,
compiled with @samp{-ff2c} in effect.
@end ifclear
@ifclear USERVISONLY
@item
Fix @code{g77} driver to recognize @samp{-fsyntax-only}
as an option that inhibits linking, just like @samp{-c} or
@samp{-S}, and to recognize and properly handle the
@samp{-nostdlib}, @samp{-M}, @samp{-MM}, @samp{-nodefaultlibs},
and @samp{-Xlinker} options.
@end ifclear
@ifclear USERVISONLY
@item
Upgrade to @code{libf2c} as of 1997-08-16.
@end ifclear
@ifclear USERVISONLY
@item
Modify @code{libf2c} to consistently and clearly diagnose
recursive I/O (at run time).
@end ifclear
@item
@code{g77} driver now prints version information (such as produced
......@@ -1204,26 +1509,36 @@ The @samp{.r} suffix now designates a Ratfor source file,
to be preprocessed via the @code{ratfor} command, available
separately.
@ifclear USERVISONLY
@item
Fix some aspects of how @code{gcc} determines what kind of
system is being configured and what kinds are supported.
For example, GNU Linux/Alpha ELF systems now are directly
supported.
@end ifclear
@ifclear USERVISONLY
@item
Improve diagnostics.
@end ifclear
@ifclear USERVISONLY
@item
Improve documentation and indexing.
@end ifclear
@ifclear USERVISONLY
@item
Include all pertinent files for @code{libf2c} that come
from @code{netlib.bell-labs.com}; give any such files
that aren't quite accurate in @code{g77}'s version of
@code{libf2c} the suffix @samp{.netlib}.
@end ifclear
@ifclear USERVISONLY
@item
Reserve @code{INTEGER(KIND=0)} for future use.
@end ifclear
@end itemize
@c 1997-02-28: 0.5.20 released.
......@@ -1234,13 +1549,18 @@ The @samp{-fno-typeless-boz} option is now the default.
This option specifies that non-decimal-radix
constants using the prefixed-radix form (such as @samp{Z'1234'})
are to be interpreted as @code{INTEGER} constants.
are to be interpreted as @code{INTEGER(KIND=1)} constants.
Specify @samp{-ftypeless-boz} to cause such
constants to be interpreted as typeless.
(Version 0.5.19 introduced @samp{-fno-typeless-boz} and
its inverse.)
@ifset DOC-G77
@xref{Fortran Dialect Options,,Options Controlling Fortran Dialect},
for information on the @samp{-ftypeless-boz} option.
@end ifset
@item
Options @samp{-ff90-intrinsics-enable} and
@samp{-fvxt-intrinsics-enable} now are the
......@@ -1265,6 +1585,10 @@ of @code{libf2c} when built with @samp{ALWAYS_FLUSH} defined,
you will have to modify @code{libf2c} accordingly before
building it from this and future versions of @code{g77}.
@ifset DOC-G77
@xref{Output Assumed To Flush}, for more information.
@end ifset
@item
Dave Love's implementation of @code{libU77} has been
added to the version of @code{libf2c} distributed with
......@@ -1276,6 +1600,11 @@ as intrinsics.
New option @samp{-fvxt} specifies that the
source file is written in VXT Fortran, instead of GNU Fortran.
@ifset DOC-G77
@xref{VXT Fortran}, for more information on the constructs
recognized when the @samp{-fvxt} option is specified.
@end ifset
@item
The @samp{-fvxt-not-f90} option has been deleted,
along with its inverse, @samp{-ff90-not-vxt}.
......@@ -1285,6 +1614,10 @@ re-read the pertinent documentation to determine which
options, if any, are appropriate for compiling your
code with this version of @code{g77}.
@ifset DOC-G77
@xref{Other Dialects}, for more information.
@end ifset
@item
The @samp{-fugly} option now issues a warning, as it
likely will be removed in a future version.
......@@ -1300,23 +1633,35 @@ The @samp{-fugly-assumed} option, introduced in
version 0.5.19, has been changed to
better accommodate old and new code.
@ifset DOC-G77
@xref{Ugly Assumed-Size Arrays}, for more information.
@end ifset
@ifclear USERVISONLY
@item
Make a number of fixes to the @code{g77} front end and
the @code{gcc} back end to better support Alpha (AXP)
machines.
This includes providing at least one bug-fix to the
@code{gcc} back end for Alphas.
@end ifclear
@item
Related to supporting Alpha (AXP) machines, the @code{LOC()}
intrinsic and @code{%LOC()} construct now return
values of integer type that is the same width (holds
the same number of bits) as the pointer type on the
machine.
values of @code{INTEGER(KIND=0)} type,
as defined by the GNU Fortran language.
On most machines, this won't make a difference, whereas
on Alphas, the type these constructs return is
@code{INTEGER*8} instead of the more common @code{INTEGER*4}.
This type is wide enough
(holds the same number of bits)
as the character-pointer type on the machine.
On most machines, this won't make a difference,
whereas, on Alphas and other systems with 64-bit pointers,
the @code{INTEGER(KIND=0)} type is equivalent to @code{INTEGER(KIND=2)}
(often referred to as @code{INTEGER*8})
instead of the more common @code{INTEGER(KIND=1)}
(often referred to as @code{INTEGER*4}).
@item
Emulate @code{COMPLEX} arithmetic in the @code{g77} front
......@@ -1325,19 +1670,24 @@ end, to avoid bugs in @code{complex} support in the
New option @samp{-fno-emulate-complex}
causes @code{g77} to revert the 0.5.19 behavior.
@ifclear USERVISONLY
@item
Fix bug whereby @samp{REAL A(1)}, for example, caused
a compiler crash if @samp{-fugly-assumed} was in effect
and @var{A} was a local (automatic) array.
That case is no longer affected by the new
handling of @samp{-fugly-assumed}.
@end ifclear
@ifclear USERVISONLY
@item
Fix @code{g77} command driver so that @samp{g77 -o foo.f}
no longer deletes @file{foo.f} before issuing other
diagnostics, and so the @samp{-x} option is properly
handled.
@end ifclear
@ifclear USERVISONLY
@item
Enable inlining of subroutines and functions by the @code{gcc}
back end.
......@@ -1345,6 +1695,7 @@ This works as it does for @code{gcc} itself---program units
may be inlined for invocations that follow them in the same
program unit, as long as the appropriate compile-time
options are specified.
@end ifclear
@item
Dummy arguments are no longer assumed to potentially alias
......@@ -1362,10 +1713,19 @@ New options @samp{-falias-check}, @samp{-fargument-alias},
and @samp{-fno-argument-noalias-global} control the
way @code{g77} handles potential aliasing.
@ifset DOC-G77
@xref{Aliasing Assumed To Work}, for detailed information on why the
new defaults might result in some programs no longer working the way they
did when compiled by previous versions of @code{g77}.
@end ifset
@ifclear USERVISONLY
@item
The @code{CONJG()} and @code{DCONJG()} intrinsics now
are compiled in-line.
@end ifclear
@ifclear USERVISONLY
@item
The bug-fix for 0.5.19.1 has been re-done.
The @code{g77} compiler has been changed back to
......@@ -1390,6 +1750,7 @@ particular, if the linker complains about unresolved
references to names like @samp{g77__fvers__}---that
strongly suggests your installation has an obsolete
version of @code{libf2c}.)
@end ifclear
@item
New option @samp{-fugly-assign} specifies that the
......@@ -1399,17 +1760,26 @@ values assigned by both statements @samp{I = 3} and
(Normally, @code{g77} uses a separate memory location
to hold assigned statement labels.)
@ifset DOC-G77
@xref{Ugly Assigned Labels}, for more information.
@end ifset
@item
@code{FORMAT} and @code{ENTRY} statements now are allowed to
precede @code{IMPLICIT NONE} statements.
@ifclear USERVISONLY
@item
Produce diagnostic for unsupported @code{SELECT CASE} on
@code{CHARACTER} type, instead of crashing, at compile time.
@end ifclear
@ifclear USERVISONLY
@item
Fix crashes involving diagnosed or invalid code.
@end ifclear
@ifclear USERVISONLY
@item
Change approach to building @code{libf2c} archive
(@file{libf2c.a}) so that members are added to it
......@@ -1418,27 +1788,36 @@ an already-built @code{g77} doesn't need to have write
access to the build tree (whereas the user doing the
build might not have access to install new software
on the system).
@end ifclear
@ifclear USERVISONLY
@item
Support @code{gcc} version 2.7.2.2
(modified by @code{g77} into version 2.7.2.2.f.2),
and remove
support for prior versions of @code{gcc}.
@end ifclear
@ifclear USERVISONLY
@item
Upgrade to @code{libf2c} as of 1997-02-08, and
fix up some of the build procedures.
@end ifclear
@ifclear USERVISONLY
@item
Improve general build procedures for @code{g77},
fixing minor bugs (such as deletion of any file
named @file{f771} in the parent directory of @code{gcc/}).
@end ifclear
@item
Enable full support of @code{INTEGER*8} available in
Enable full support of @code{INTEGER(KIND=2)}
(often referred to as @code{INTEGER*8})
available in
@code{libf2c} and @file{f2c.h} so that @code{f2c} users
may make full use of its features via the @code{g77}
version of @file{f2c.h} and the @code{INTEGER*8}
version of @file{f2c.h} and the @code{INTEGER(KIND=2)}
support routines in the @code{g77} version of @code{libf2c}.
@item
......@@ -1471,12 +1850,17 @@ complex type other than @code{COMPLEX}), unless
or new @samp{-fugly-complex} option, in conjunction with
@samp{-fnot-f90}, specifies @code{f2c} interpretation.
@ifclear USERVISONLY
@item
Make improvements to diagnostics.
@end ifclear
@ifclear USERVISONLY
@item
Speed up compiler a bit.
@end ifclear
@ifclear USERVISONLY
@item
Improvements to documentation and indexing, including
a new chapter containing information on one, later
......@@ -1486,8 +1870,18 @@ up automatically via a message in the diagnostic itself.
(Hence the menu item @samp{M} for the node
@samp{Diagnostics} in the top-level menu of
the Info documentation.)
@end ifclear
@end itemize
@ifclear DOC-OLDNEWS
@heading In previous versions:
Information on previous versions is archived
in @file{@value{path-g77}/news.texi}
following the test of the @samp{DOC-OLDNEWS} macro.
@end ifclear
@ifset DOC-OLDNEWS
@c 1997-02-01: 0.5.19.1 released.
@heading In 0.5.19.1:
@itemize @bullet
......@@ -2088,8 +2482,7 @@ macros defined in @file{gcc/f/target.h} and used in places like
Add warning to be printed for each invocation of the compiler
if the target machine @code{INTEGER}, @code{REAL}, or @code{LOGICAL} size
is not 32 bits,
since @code{g77} is known to not work well for such cases (to be
fixed in Version 0.6---@pxref{Actual Bugs,,Actual Bugs We Haven't Fixed Yet}).
since @code{g77} is known to not work well for such cases.
@item
Lots of new documentation (though work is still needed to put it into
......@@ -2378,3 +2771,6 @@ Generate better code for some kinds of array references.
Speed up lexing somewhat (this makes the compilation phase noticeably
faster).
@end itemize
@end ifset
@end ifclear
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename NEW
@set NEWSONLY
@c %**start of header
@setfilename NEWS
@c %**end of header
@c The immediately following lines apply to the NEWS file
@c which is generated using this file.
NOTE: This file is automatically generated from the files
`news0.texi' and `news.texi'. `NEWS' is *not* a source file,
although it is normally included within source distributions.
This file lists recent changes to the GNU Fortran compiler.
Copyright (C) 1995-1999 Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
@node Top,,, (dir)
@chapter News About GNU Fortran
@c This tells news.texi that it's generating just the NEWS file.
@set DOC-NEWS
@include news.texi
@bye
@c DEVELOPMENT is set to indicate an in-development version,
@c as compared to a release version. When making a release
@c (e.g. a release branch in the CVS repository for egcs),
@c clear this and set the version information correctly.
@set DEVELOPMENT
@set version-g77 0.5.24
@set version-egcs 1.2
@c EGCS-G77 is set to indicate this is the EGCS version of g77.
@set EGCS-G77
@ifclear EGCS-G77
@c FSF-G77 is set to indicate this is the FSF version of g77.
@set FSF-G77
@end ifclear
@ifset EGCS-G77
@set email-general egcs@@egcs.cygnus.com
@set email-bugs egcs-bugs@@egcs.cygnus.com
@set path-g77 egcs/gcc/f
@set path-libf2c egcs/libf2c
@set which-g77 EGCS-@value{version-egcs}
@end ifset
@ifset FSF-G77
@set email-general fortran@@gnu.org
@set email-bugs fortran@@gnu.org
@set path-g77 gcc/f
@set path-libf2c gcc/f/runtime
@set which-g77 FSF-@value{version-g77}
@end ifset
@set email-burley craig@@jcb-sc.com
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment