From: Craig Burley Date: Sat, 13 Mar 1999 12:04:03 +0000 (+0000) Subject: Improve g77 doc infrastructure X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=51efa892bf3e3bdf5a3563965e8f1d4f02efb4ad;p=gcc.git Improve g77 doc infrastructure From-SVN: r25743 --- diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index 01fd18d5ee1..608c9f51ca0 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,17 @@ +Sat Mar 13 14:26:55 1999 Craig Burley + + * 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 * g77.texi: Add AUTOMATIC to list of unsupported extensions. diff --git a/gcc/f/Make-lang.in b/gcc/f/Make-lang.in index 3cc2884547c..4c2399b23b8 100644 --- a/gcc/f/Make-lang.in +++ b/gcc/f/Make-lang.in @@ -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 diff --git a/gcc/f/RELEASE-PREP b/gcc/f/RELEASE-PREP new file mode 100644 index 00000000000..7069ea596f5 --- /dev/null +++ b/gcc/f/RELEASE-PREP @@ -0,0 +1,5 @@ +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. diff --git a/gcc/f/bugs.texi b/gcc/f/bugs.texi index aa5d25454b6..0bad8586c33 100644 --- a/gcc/f/bugs.texi +++ b/gcc/f/bugs.texi @@ -1,30 +1,43 @@ -@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 diff --git a/gcc/f/bugs0.texi b/gcc/f/bugs0.texi index 3b77b018860..9636f4da3d4 100644 --- a/gcc/f/bugs0.texi +++ b/gcc/f/bugs0.texi @@ -1,21 +1,9 @@ \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 diff --git a/gcc/f/g77.texi b/gcc/f/g77.texi index d6d6c570a67..c715d4f27c5 100644 --- a/gcc/f/g77.texi +++ b/gcc/f/g77.texi @@ -1,26 +1,15 @@ \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 diff --git a/gcc/f/g77install.texi b/gcc/f/g77install.texi index f8904daf2fa..c73fc06c62a 100644 --- a/gcc/f/g77install.texi +++ b/gcc/f/g77install.texi @@ -1,17 +1,35 @@ -@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 diff --git a/gcc/f/install0.texi b/gcc/f/install0.texi index 65d0d6b0149..44311dd226e 100644 --- a/gcc/f/install0.texi +++ b/gcc/f/install0.texi @@ -1,21 +1,9 @@ \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 diff --git a/gcc/f/news.texi b/gcc/f/news.texi index a460fe04733..cb6e019701b 100644 --- a/gcc/f/news.texi +++ b/gcc/f/news.texi @@ -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 diff --git a/gcc/f/news0.texi b/gcc/f/news0.texi index c485adf048b..21176c39ecd 100644 --- a/gcc/f/news0.texi +++ b/gcc/f/news0.texi @@ -1,21 +1,9 @@ \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 diff --git a/gcc/f/root.texi b/gcc/f/root.texi new file mode 100644 index 00000000000..25032bf5e31 --- /dev/null +++ b/gcc/f/root.texi @@ -0,0 +1,33 @@ +@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