mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 03:46:53 -05:00
bugs.texi, [...]: Doc updates from Craig.
* bugs.texi, g77.1, g77.texi, intdoc.in, news.texi: Doc updates
from Craig.
Too late for egcs-1.1, but installed so they'll be in minor releases.
From-SVN: r22149
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
Tue Sep 1 10:00:21 1998 Craig Burley <burley@gnu.org>
|
||||
|
||||
* bugs.texi, g77.1, g77.texi, intdoc.in, news.texi: Doc updates
|
||||
from Craig.
|
||||
|
||||
1998-08-23 Dave Love <d.love@dl.ac.uk>
|
||||
|
||||
* g77.texi: Increment `version-g77' and fix a few typos.
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
@c The text of this file appears in the file BUGS
|
||||
@c in the G77 distribution, as well as in the G77 manual.
|
||||
|
||||
@c 1998-07-15
|
||||
@c 1998-09-01
|
||||
|
||||
@ifclear BUGSONLY
|
||||
@node Actual Bugs
|
||||
@@ -72,6 +72,13 @@ and @code{ASSIGN} are involved.
|
||||
|
||||
Fixed in @code{egcs} version 1.1.
|
||||
|
||||
@item
|
||||
@code{g77} fails to warn about
|
||||
use of a ``live'' iterative-DO variable
|
||||
as an implied-DO variable
|
||||
in a @samp{WRITE} or @samp{PRINT} statement
|
||||
(although it does warn about this in a @samp{READ} statement).
|
||||
|
||||
@item
|
||||
A compiler crash, or apparently infinite run time,
|
||||
can result when compiling complicated expressions
|
||||
@@ -231,17 +238,13 @@ by versions of @code{g77} prior to 0.5.20.
|
||||
@cindex -fPIC option
|
||||
@cindex options, -fPIC
|
||||
@item
|
||||
There seem to be some problems with passing constants, and perhaps
|
||||
general expressions (other than simple variables/arrays), to procedures
|
||||
when compiling on some systems (such as i386) with @samp{-fPIC}, as in
|
||||
when compiling for ELF targets.
|
||||
@code{g77} sometimes produces invalid assembler code
|
||||
when using the @samp{-fPIC} option (such as compiling for ELF targets)
|
||||
on the Intel x86 architecture target.
|
||||
The symptom is that the assembler complains about invalid opcodes.
|
||||
This bug is in the gcc back end,
|
||||
and it apparently occurs only when
|
||||
compiling sufficiently complicated functions @emph{without} the
|
||||
@samp{-O} option.
|
||||
This bug is in the gcc back end.
|
||||
|
||||
Fixed in @code{egcs} version 1.1.
|
||||
Fixed in @code{egcs} version 1.0.2.
|
||||
|
||||
@cindex padding
|
||||
@cindex structures
|
||||
|
||||
16
gcc/f/g77.1
16
gcc/f/g77.1
@@ -1,20 +1,20 @@
|
||||
.\" Copyright (c) 1995-1997 Free Software Foundation -*-Text-*-
|
||||
.\" See section COPYING for conditions for redistribution
|
||||
.\" FIXME: no info here on predefines. Should there be? extra for F77...
|
||||
.TH G77 1 "1998-04-17" "GNU Tools" "GNU Tools"
|
||||
.TH G77 1 "1998-09-01" "GNU Tools" "GNU Tools"
|
||||
.de BP
|
||||
.sp
|
||||
.ti \-.2i
|
||||
\(**
|
||||
..
|
||||
.SH NAME
|
||||
g77 \- GNU project Fortran Compiler (v0.5.23)
|
||||
g77 \- GNU project Fortran Compiler (v0.5.24)
|
||||
.SH SYNOPSIS
|
||||
.RB g77 " [" \c
|
||||
.IR option " | " "filename " ].\|.\|.
|
||||
.SH WARNING
|
||||
The information in this man page is an extract from the full
|
||||
documentation of the GNU Fortran compiler (version 0.5.23),
|
||||
documentation of the GNU Fortran compiler (version 0.5.24),
|
||||
and is limited to the meaning of some of the options.
|
||||
.PP
|
||||
This man page is not up to date, since no volunteers want to
|
||||
@@ -22,8 +22,8 @@ maintain it. If you find a discrepancy between the man page and the
|
||||
software, please check the Info file, which is the authoritative
|
||||
documentation.
|
||||
.\" .PP
|
||||
.\" The version of GNU Fortran documented by the Info file is 0.5.23,
|
||||
.\" which includes substantial improvements and changes since 0.5.23,
|
||||
.\" The version of GNU Fortran documented by the Info file is 0.5.24,
|
||||
.\" which includes substantial improvements and changes since 0.5.24,
|
||||
.\" the version documented in this man page.
|
||||
.PP
|
||||
If we find that the things in this man page that are out of date cause
|
||||
@@ -37,7 +37,7 @@ For complete and current documentation, refer to the Info file `\|\c
|
||||
.B g77\c
|
||||
\&\|' or the manual
|
||||
.I
|
||||
Using and Porting GNU Fortran (for version 0.5.23)\c
|
||||
Using and Porting GNU Fortran (for version 0.5.24)\c
|
||||
\&. Both are made from the Texinfo source file
|
||||
.BR g77.texi .
|
||||
.PP
|
||||
@@ -268,7 +268,7 @@ a.out link edited output
|
||||
.br
|
||||
\fILIBDIR\fR/f771 compiler
|
||||
.br
|
||||
\fILIBDIR\fR/libf2c.a Fortran run-time library
|
||||
\fILIBDIR\fR/libg2c.a Fortran run-time library
|
||||
.br
|
||||
\fILIBDIR\fR/libgcc.a GCC subroutine library
|
||||
.br
|
||||
@@ -311,7 +311,7 @@ entries in
|
||||
\&.
|
||||
.br
|
||||
.I
|
||||
Using and Porting GNU Fortran (for version 0.5.23)\c
|
||||
Using and Porting GNU Fortran (for version 0.5.24)\c
|
||||
, James Craig Burley;
|
||||
.I
|
||||
Using and Porting GNU CC (for version 2.0)\c
|
||||
|
||||
190
gcc/f/g77.texi
190
gcc/f/g77.texi
@@ -14,7 +14,7 @@
|
||||
@c %**start of header
|
||||
@setfilename g77.info
|
||||
|
||||
@set last-up-date 1998-08-23
|
||||
@set last-up-date 1998-09-01
|
||||
@set version-g77 0.5.24
|
||||
@set email-general egcs@@cygnus.com
|
||||
@set email-bugs egcs-bugs@@cygnus.com
|
||||
@@ -3310,7 +3310,71 @@ 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.1:
|
||||
@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
|
||||
@@ -3335,16 +3399,27 @@ when the generated code wants to link to the one
|
||||
in @code{libf2c} (@code{libg2c}).
|
||||
|
||||
@item
|
||||
The F90 @samp{DATE_AND_TIME} intrinsic now is
|
||||
@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 F90 @samp{System_Clock} intrinsic allows
|
||||
the optional arguments (except for the @samp{Count}
|
||||
argument) to be omitted.
|
||||
|
||||
@item
|
||||
Upgrade to @code{libf2c} as of 1998-06-18.
|
||||
@end itemize
|
||||
|
||||
@heading In 0.5.23:
|
||||
@@ -3373,7 +3448,7 @@ the options @samp{-fargument-alias}, @samp{-fargument-noalias},
|
||||
and @samp{-fargument-noalias-global},
|
||||
and the corresponding alias-analysis code.
|
||||
|
||||
(Version 1.0.1 of @code{egcs} has the alias-analysis
|
||||
(@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,
|
||||
@@ -3385,7 +3460,7 @@ Support for the GNU compiler options
|
||||
@samp{-freduce-all-givs},
|
||||
and @samp{-frerun-loop-opt}.
|
||||
|
||||
(Version 1.0.1 of @code{egcs} supports these options.
|
||||
(@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.)
|
||||
@@ -3443,7 +3518,7 @@ and about truncations of various sorts of constants.
|
||||
@heading In 0.5.22:
|
||||
@itemize @bullet
|
||||
@item
|
||||
Fix @code{SIGNAL} intrinsic so it offers portable
|
||||
Fix @code{Signal} intrinsic so it offers portable
|
||||
support for 64-bit systems (such as Digital Alphas
|
||||
running GNU/Linux).
|
||||
|
||||
@@ -3466,7 +3541,7 @@ Allow any numeric argument to intrinsics
|
||||
|
||||
@item
|
||||
Use @code{tempnam}, if available, to open scratch files
|
||||
(as in @samp{OPEN(STATUS='SCRATCH')}
|
||||
(as in @samp{OPEN(STATUS='SCRATCH')})
|
||||
so that the @code{TMPDIR} environment variable,
|
||||
if present, is used.
|
||||
|
||||
@@ -3488,6 +3563,61 @@ 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 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
|
||||
@@ -3525,9 +3655,16 @@ to avoid compiler crashes resulting from coding errors
|
||||
that these diagnostics normally would identify.
|
||||
|
||||
@item
|
||||
Fix @code{libU77} routines that accept file names
|
||||
to strip trailing spaces from them, for consistency
|
||||
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
|
||||
@@ -3555,9 +3692,21 @@ 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:
|
||||
@@ -3606,7 +3755,7 @@ building it from this and future versions of @code{g77}.
|
||||
@item
|
||||
Dave Love's implementation of @code{libU77} has been
|
||||
added to the version of @code{libf2c} distributed with
|
||||
and built by @code{g77}.
|
||||
and built as part of @code{g77}.
|
||||
@code{g77} now knows about the routines in this library
|
||||
as intrinsics.
|
||||
|
||||
@@ -3654,8 +3803,8 @@ This type is wide enough
|
||||
(holds the same number of bits)
|
||||
as the character-pointer type on the machine.
|
||||
|
||||
On most systems, this won't make a noticeable difference,
|
||||
whereas on Alphas and other systems with 64-bit pointers,
|
||||
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)}
|
||||
@@ -3731,6 +3880,15 @@ 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:
|
||||
|
||||
@@ -2058,9 +2058,10 @@ Fills @var{@1@} with the system's host name returned by
|
||||
@code{gethostname(2)}, returning 0 on success or a non-zero error code
|
||||
(@code{ENOSYS} if the system does not provide @code{gethostname(2)}).
|
||||
|
||||
On some systems (specifically SCO) it might be necessary to link the
|
||||
``socket'' library if you call this routine, i.e.@: append
|
||||
@samp{-lg2c -lsocket -lm} to the @code{g77} arguments.
|
||||
On some systems (specifically SCO) it may be necessary to link the
|
||||
``socket'' library if you call this routine.
|
||||
Typically this means adding @samp{-lg2c -lsocket -lm}
|
||||
to the @code{g77} command line when linking the program.
|
||||
")
|
||||
|
||||
DEFDOC (HOSTNM_subr, "Get host name.", "\
|
||||
@@ -2074,9 +2075,10 @@ Some non-GNU implementations of Fortran provide this intrinsic as
|
||||
only a function, not as a subroutine, or do not support the
|
||||
(optional) @var{@2@} argument.
|
||||
|
||||
On some systems (specifically SCO) it might be necessary to link the
|
||||
``socket'' library if you call this routine, i.e.@: append
|
||||
@samp{-lg2c -lsocket -lm} to the @code{g77} arguments.
|
||||
On some systems (specifically SCO) it may be necessary to link the
|
||||
``socket'' library if you call this routine.
|
||||
Typically this means adding @samp{-lg2c -lsocket -lm}
|
||||
to the @code{g77} command line when linking the program.
|
||||
")
|
||||
|
||||
DEFDOC (FLUSH, "Flush buffered output.", "\
|
||||
@@ -2162,10 +2164,10 @@ Returns in
|
||||
|
||||
DEFDOC (FSEEK, "Position file (low-level).", "\
|
||||
Attempts to move Fortran unit @var{@1@} to the specified
|
||||
@var{Offset}: absolute offset if @var{@2@}=0; relative to the
|
||||
current offset if @var{@2@}=1; relative to the end of the file if
|
||||
@var{@2@}=2.
|
||||
It branches to label @var{@3@} if @var{@1@} is
|
||||
@var{@2@}: absolute offset if @var{@3@}=0; relative to the
|
||||
current offset if @var{@3@}=1; relative to the end of the file if
|
||||
@var{@3@}=2.
|
||||
It branches to label @var{@4@} if @var{@1@} is
|
||||
not open or if the call otherwise fails.
|
||||
")
|
||||
|
||||
|
||||
362
gcc/f/news.texi
362
gcc/f/news.texi
@@ -5,7 +5,7 @@
|
||||
@c The text of this file appears in the file BUGS
|
||||
@c in the G77 distribution, as well as in the G77 manual.
|
||||
|
||||
@c 1998-05-20
|
||||
@c 1998-09-01
|
||||
|
||||
@ifclear NEWSONLY
|
||||
@node News
|
||||
@@ -46,7 +46,205 @@ Miscellany
|
||||
This order is not strict---for example, some items
|
||||
involve a combination of these elements.
|
||||
|
||||
@heading In @code{egcs} 1.1:
|
||||
Note that two variants of @code{g77} are tracked below.
|
||||
The @code{egcs} variant is described vis-a-vis
|
||||
previous versions of @code{egcs} and/or
|
||||
an official FSF version,
|
||||
as appropriate.
|
||||
|
||||
Therefore, @code{egcs} versions sometimes have multiple listings
|
||||
to help clarify how they differ from other versions,
|
||||
though this can make getting a complete picture
|
||||
of what a particular @code{egcs} version contains
|
||||
somewhat more difficult.
|
||||
|
||||
@heading In @code{egcs} 1.1 (versus 0.5.24):
|
||||
@itemize @bullet
|
||||
@item
|
||||
Fix @code{g77} crash compiling code
|
||||
containing the construct @samp{CMPLX(0.)} or similar.
|
||||
|
||||
@item
|
||||
Fix @code{g77} crash
|
||||
(or apparently infinite run-time)
|
||||
when compiling certain complicated expressions
|
||||
involving @code{COMPLEX} arithmetic
|
||||
(especially multiplication).
|
||||
|
||||
@cindex DNRM2
|
||||
@cindex stack, 387 coprocessor
|
||||
@cindex Intel x86
|
||||
@cindex -O2
|
||||
@item
|
||||
Fix a code-generation bug that afflicted
|
||||
Intel x86 targets when @samp{-O2} was specified
|
||||
compiling, for example, an old version of
|
||||
the @samp{DNRM2} routine.
|
||||
|
||||
The x87 coprocessor stack was being
|
||||
mismanaged in cases involving assigned @code{GOTO}
|
||||
and @code{ASSIGN}.
|
||||
|
||||
@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
|
||||
Fix bugs in the @code{libU77} intrinsic @samp{HostNm}
|
||||
that wrote one byte beyond the end of its @samp{CHARACTER}
|
||||
argument,
|
||||
and in the @code{libU77} intrinsics
|
||||
@samp{GMTime} and @samp{LTime}
|
||||
that overwrote their arguments.
|
||||
|
||||
@item
|
||||
Assumed arrays with negative bounds
|
||||
(such as @samp{REAL A(-1:*)})
|
||||
no longer elicit spurious diagnostics from @code{g77},
|
||||
even on systems with pointers having
|
||||
different sizes than integers.
|
||||
|
||||
@item
|
||||
Valid combinations of @code{EXTERNAL},
|
||||
passing that external as a dummy argument
|
||||
without explicitly giving it a type,
|
||||
and, in a subsequent program unit,
|
||||
referencing that external as
|
||||
an external function with a different type
|
||||
no longer crash @code{g77}.
|
||||
|
||||
@item
|
||||
@code{CASE DEFAULT} no longer crashes @code{g77}.
|
||||
|
||||
@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.
|
||||
|
||||
@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
|
||||
@code{g77} no longer installs the @file{f77} command
|
||||
and @file{f77.1} man page
|
||||
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.
|
||||
|
||||
@item
|
||||
@code{g77} no longer installs the @file{libf2c.a} library
|
||||
and @file{f2c.h} include file
|
||||
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.
|
||||
|
||||
@item
|
||||
The @file{libf2c.a} library produced by @code{g77} has been
|
||||
renamed to @file{libg2c.a}.
|
||||
It is installed only in the @code{gcc} ``private''
|
||||
directory heirarchy, @file{gcc-lib}.
|
||||
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.
|
||||
|
||||
@item
|
||||
The @file{f2c.h} include (header) file produced by @code{g77}
|
||||
has been renamed to @file{g2c.h}.
|
||||
It is installed only in the @code{gcc} ``private''
|
||||
directory heirarchy, @file{gcc-lib}.
|
||||
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.
|
||||
|
||||
@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
|
||||
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.
|
||||
|
||||
@item
|
||||
@code{install-info} now used to update the directory of
|
||||
Info documentation to contain an entry for @code{g77}
|
||||
(during installation).
|
||||
|
||||
@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.
|
||||
|
||||
@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}.
|
||||
|
||||
@item
|
||||
Improve documentation and indexing.
|
||||
|
||||
@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 itemize
|
||||
|
||||
@heading In 0.5.24 and @code{egcs} 1.1 (versus 0.5.23):
|
||||
@itemize @bullet
|
||||
@item
|
||||
@code{g77} no longer produces incorrect code
|
||||
@@ -97,11 +295,11 @@ not to the longstanding deficiencies vis-a-vis
|
||||
@samp{COMMON} and @samp{EQUIVALENCE}.
|
||||
|
||||
@item
|
||||
The F90 @samp{DATE_AND_TIME} intrinsic now is
|
||||
The F90 @samp{Date_and_Time} intrinsic now is
|
||||
supported.
|
||||
|
||||
@item
|
||||
The F90 @samp{SYSTEM_CLOCK} intrinsic allows
|
||||
The F90 @samp{System_Clock} intrinsic allows
|
||||
the optional arguments (except for the @samp{Count}
|
||||
argument) to be omitted.
|
||||
|
||||
@@ -112,7 +310,8 @@ Upgrade to @code{libf2c} as of 1998-06-18.
|
||||
Improve documentation and indexing.
|
||||
@end itemize
|
||||
|
||||
@heading In 0.5.23:
|
||||
@c 1998-05-20: 0.5.23 released.
|
||||
@heading In 0.5.23 (versus 0.5.22):
|
||||
@itemize @bullet
|
||||
@item
|
||||
This release contains several regressions against
|
||||
@@ -138,7 +337,7 @@ the options @samp{-fargument-alias}, @samp{-fargument-noalias},
|
||||
and @samp{-fargument-noalias-global},
|
||||
and the corresponding alias-analysis code.
|
||||
|
||||
(Version 1.0.1 of @code{egcs} has the alias-analysis
|
||||
(@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,
|
||||
@@ -150,7 +349,7 @@ Support for the GNU compiler options
|
||||
@samp{-freduce-all-givs},
|
||||
and @samp{-frerun-loop-opt}.
|
||||
|
||||
(Version 1.0.1 of @code{egcs} supports these options.
|
||||
(@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.)
|
||||
@@ -294,7 +493,8 @@ specifier, and perhaps some build (porting) problems
|
||||
as well.
|
||||
@end itemize
|
||||
|
||||
@heading In 0.5.22:
|
||||
@c 1998-03-16: 0.5.22 released.
|
||||
@heading In 0.5.22 (versus 0.5.21):
|
||||
@itemize @bullet
|
||||
@item
|
||||
Fix code generation for iterative @code{DO} loops that
|
||||
@@ -304,7 +504,7 @@ For example, @samp{DO 10 J=2,J} now is compiled correctly.
|
||||
|
||||
@cindex DNRM2
|
||||
@cindex stack, 387 coprocessor
|
||||
@cindex ix86
|
||||
@cindex Intel x86
|
||||
@cindex -O2
|
||||
@item
|
||||
Fix a code-generation bug that afflicted
|
||||
@@ -321,7 +521,7 @@ Fix @code{DTime} intrinsic so as not to truncate
|
||||
results to integer values (on some systems).
|
||||
|
||||
@item
|
||||
Fix @code{SIGNAL} intrinsic so it offers portable
|
||||
Fix @code{Signal} intrinsic so it offers portable
|
||||
support for 64-bit systems (such as Digital Alphas
|
||||
running GNU/Linux).
|
||||
|
||||
@@ -382,7 +582,7 @@ Allow any numeric argument to intrinsics
|
||||
|
||||
@item
|
||||
Use @code{tempnam}, if available, to open scratch files
|
||||
(as in @samp{OPEN(STATUS='SCRATCH')}
|
||||
(as in @samp{OPEN(STATUS='SCRATCH')})
|
||||
so that the @code{TMPDIR} environment variable,
|
||||
if present, is used.
|
||||
|
||||
@@ -421,7 +621,7 @@ anyway for a statement like @samp{PRINT '(I)garbage', 1}
|
||||
by printing @samp{(I)garbage} as the format string.)
|
||||
|
||||
@item
|
||||
Improve compilation of FORMAT expressions so that
|
||||
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
|
||||
@@ -446,6 +646,137 @@ This fixes a formatted-I/O bug that afflicted
|
||||
(such as Digital Alpha running GNU/Linux).
|
||||
@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
|
||||
@item
|
||||
Fix @code{g77} crash triggered by @code{CASE} statement with
|
||||
an omitted lower or upper bound.
|
||||
|
||||
@item
|
||||
Fix @code{g77} crash on statements such as
|
||||
@samp{PRINT *, (REAL(Z(I)),I=1,2)}, where
|
||||
@samp{Z} is @code{DOUBLE COMPLEX}.
|
||||
|
||||
@cindex ELF support
|
||||
@cindex support, ELF
|
||||
@cindex -fPIC option
|
||||
@cindex options, -fPIC
|
||||
@item
|
||||
Fix @samp{-fPIC} (such as compiling for ELF targets)
|
||||
on the Intel x86 architecture target
|
||||
so invalid assembler code is no longer produced.
|
||||
|
||||
@item
|
||||
Fix @samp{-fpedantic} to not reject procedure invocations
|
||||
such as @samp{I=J()} and @samp{CALL FOO()}.
|
||||
|
||||
@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
|
||||
|
||||
@c 1998-01-02: egcs-1.0.1 released.
|
||||
@heading In @code{egcs} 1.0.1 (versus @code{egcs} 1.0):
|
||||
@itemize @bullet
|
||||
@item
|
||||
Fix run-time crash involving @code{NAMELIST} on 64-bit
|
||||
machines such as Alphas.
|
||||
@end itemize
|
||||
|
||||
@c 1997-12-03: egcs-1.0 released.
|
||||
@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
|
||||
|
||||
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.
|
||||
|
||||
@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.
|
||||
|
||||
@item
|
||||
Fix @code{DTime} intrinsic so as not to truncate
|
||||
results to integer values (on some systems).
|
||||
|
||||
@item
|
||||
Remove support for non-@code{egcs} versions of @code{gcc}.
|
||||
|
||||
@cindex -@w{}-driver option
|
||||
@cindex 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}.
|
||||
|
||||
@item
|
||||
Improve diagnostic messages from @code{libf2c}
|
||||
so it is more likely that the printing of the
|
||||
active format string is limited to the string,
|
||||
with no trailing garbage being printed.
|
||||
|
||||
(Unlike @code{f2c}, @code{g77} did not append
|
||||
a null byte to its compiled form of every
|
||||
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.)
|
||||
|
||||
@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 itemize
|
||||
|
||||
@c 1997-09-09: 0.5.21 released.
|
||||
@heading In 0.5.21:
|
||||
@itemize @bullet
|
||||
@item
|
||||
@@ -765,6 +1096,7 @@ that aren't quite accurate in @code{g77}'s version of
|
||||
Reserve @code{INTEGER(KIND=0)} for future use.
|
||||
@end itemize
|
||||
|
||||
@c 1997-02-28: 0.5.20 released.
|
||||
@heading In 0.5.20:
|
||||
@itemize @bullet
|
||||
@item
|
||||
@@ -1026,6 +1358,7 @@ up automatically via a message in the diagnostic itself.
|
||||
the Info documentation.)
|
||||
@end itemize
|
||||
|
||||
@c 1997-02-01: 0.5.19.1 released.
|
||||
@heading In 0.5.19.1:
|
||||
@itemize @bullet
|
||||
@item
|
||||
@@ -1050,6 +1383,7 @@ For example, @samp{C = CSQRT(C)}, @samp{Z = Z/C}, and @samp{Z = Z**I}
|
||||
@code{DOUBLE COMPLEX}) have been fixed.
|
||||
@end itemize
|
||||
|
||||
@c 1996-12-07: 0.5.19 released.
|
||||
@heading In 0.5.19:
|
||||
@itemize @bullet
|
||||
@item
|
||||
@@ -1169,6 +1503,7 @@ of the areas.
|
||||
Improvements to documentation and indexing.
|
||||
@end itemize
|
||||
|
||||
@c 1996-04-01: 0.5.18 released.
|
||||
@heading In 0.5.18:
|
||||
@itemize @bullet
|
||||
@item
|
||||
@@ -1356,6 +1691,7 @@ named @code{netlib.bell-labs.com}, and the
|
||||
maintainer's new address is @email{dmg@@bell-labs.com}.
|
||||
@end itemize
|
||||
|
||||
@c 1995-11-18: 0.5.17 released.
|
||||
@heading In 0.5.17:
|
||||
@itemize @bullet
|
||||
@item
|
||||
@@ -1462,6 +1798,7 @@ Support @code{gcc} version 2.7.1.
|
||||
Upgrade to @code{libf2c} as of 1995-11-15.
|
||||
@end itemize
|
||||
|
||||
@c 1995-08-30: 0.5.16 released.
|
||||
@heading In 0.5.16:
|
||||
@itemize @bullet
|
||||
@item
|
||||
@@ -1634,6 +1971,7 @@ Build @code{libf2c} with @samp{-g0}, not @samp{-g2}, in effect
|
||||
smaller library without lots of debugging clutter.
|
||||
@end itemize
|
||||
|
||||
@c 1995-05-19: 0.5.15 released.
|
||||
@heading In 0.5.15:
|
||||
@itemize @bullet
|
||||
@item
|
||||
|
||||
Reference in New Issue
Block a user