mirror of git://gcc.gnu.org/git/gcc.git
parent
a515a901af
commit
8cacfe1153
|
@ -219,7 +219,7 @@ Enough disk space
|
|||
|
||||
`makeinfo' is part of the GNU `texinfo' package; `makeinfo'
|
||||
version 1.68 is distributed as part of GNU `texinfo' version
|
||||
3.11.
|
||||
3.12.
|
||||
|
||||
`makeinfo' is not needed in the typical case of installing `gcc'
|
||||
and `g77'. *Note Missing tools?::, for information on when it
|
||||
|
|
281
gcc/f/NEWS
281
gcc/f/NEWS
|
@ -1,5 +1,5 @@
|
|||
This file lists recent changes to the GNU Fortran compiler. Copyright
|
||||
(C) 1995, 1996 Free Software Foundation, Inc. You may copy,
|
||||
(C) 1995, 96, 97, 1998 Free Software Foundation, Inc. You may copy,
|
||||
distribute, and modify it freely as long as you preserve this copyright
|
||||
notice and permission notice.
|
||||
|
||||
|
@ -29,8 +29,162 @@ with the most recent version first.
|
|||
This order is not strict--for example, some items involve a
|
||||
combination of these elements.
|
||||
|
||||
In `egcs' 1.1:
|
||||
==============
|
||||
Note that two variants of `g77' are tracked below. The `egcs'
|
||||
variant is described vis-a-vis previous versions of `egcs' and/or an
|
||||
official FSF version, as appropriate.
|
||||
|
||||
Therefore, `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 `egcs' version contains
|
||||
somewhat more difficult.
|
||||
|
||||
In 0.5.24 and `egcs' 1.1.1 (versus 0.5.23 and 1.1):
|
||||
===================================================
|
||||
|
||||
* Fix `libg2c' so it performs an implicit `ENDFILE' operation (as
|
||||
appropriate) whenever a `REWIND' is done.
|
||||
|
||||
(This bug was introduced in 0.5.23 and `egcs' 1.1 in `g77''s
|
||||
version of `libf2c'.)
|
||||
|
||||
* Fix `libg2c' so it no longer crashes with a spurious diagnostic
|
||||
upon doing any I/O following a direct formatted write.
|
||||
|
||||
(This bug was introduced in 0.5.23 and `egcs' 1.1 in `g77''s
|
||||
version of `libf2c'.)
|
||||
|
||||
* Fix `g77' so it no longer crashes compiling references to the
|
||||
`Rand' intrinsic on some systems.
|
||||
|
||||
* Fix `g77' portion of installation process so it works better on
|
||||
some systems (those with shells requiring `else true' clauses on
|
||||
`if' constructs for the completion code to be set properly).
|
||||
|
||||
In `egcs' 1.1 (versus 0.5.24):
|
||||
==============================
|
||||
|
||||
* Fix `g77' crash compiling code containing the construct
|
||||
`CMPLX(0.)' or similar.
|
||||
|
||||
* Fix `g77' crash (or apparently infinite run-time) when compiling
|
||||
certain complicated expressions involving `COMPLEX' arithmetic
|
||||
(especially multiplication).
|
||||
|
||||
* Fix a code-generation bug that afflicted Intel x86 targets when
|
||||
`-O2' was specified compiling, for example, an old version of the
|
||||
`DNRM2' routine.
|
||||
|
||||
The x87 coprocessor stack was being mismanaged in cases involving
|
||||
assigned `GOTO' and `ASSIGN'.
|
||||
|
||||
* Align static double-precision variables and arrays on Intel x86
|
||||
targets regardless of whether `-malign-double' is specified.
|
||||
|
||||
Generally, this affects only local variables and arrays having the
|
||||
`SAVE' attribute or given initial values via `DATA'.
|
||||
|
||||
In `egcs' 1.1 (versus `egcs' 1.0.3):
|
||||
====================================
|
||||
|
||||
* Fix bugs in the `libU77' intrinsic `HostNm' that wrote one byte
|
||||
beyond the end of its `CHARACTER' argument, and in the `libU77'
|
||||
intrinsics `GMTime' and `LTime' that overwrote their arguments.
|
||||
|
||||
* Assumed arrays with negative bounds (such as `REAL A(-1:*)') no
|
||||
longer elicit spurious diagnostics from `g77', even on systems
|
||||
with pointers having different sizes than integers.
|
||||
|
||||
This bug is not known to have existed in any recent version of
|
||||
`gcc'. It was introduced in an early release of `egcs'.
|
||||
|
||||
* Valid combinations of `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 `g77'.
|
||||
|
||||
* `CASE DEFAULT' no longer crashes `g77'.
|
||||
|
||||
* The `-Wunused' option no longer issues a spurious warning about
|
||||
the "master" procedure generated by `g77' for procedures
|
||||
containing `ENTRY' statements.
|
||||
|
||||
* Support `FORMAT(I<EXPR>)' when EXPR is a compile-time constant
|
||||
`INTEGER' expression.
|
||||
|
||||
* Fix `g77' `-g' option so procedures that use `ENTRY' can be
|
||||
stepped through, line by line, in `gdb'.
|
||||
|
||||
* Allow any `REAL' argument to intrinsics `Second' and `CPU_Time'.
|
||||
|
||||
* Use `tempnam', if available, to open scratch files (as in
|
||||
`OPEN(STATUS='SCRATCH')') so that the `TMPDIR' environment
|
||||
variable, if present, is used.
|
||||
|
||||
* `g77''s version of `libf2c' separates out the setting of global
|
||||
state (such as command-line arguments and signal handling) from
|
||||
`main.o' into distinct, new library archive members.
|
||||
|
||||
This should make it easier to write portable applications that
|
||||
have their own (non-Fortran) `main()' routine properly set up the
|
||||
`libf2c' environment, even when `libf2c' (now `libg2c') is a
|
||||
shared library.
|
||||
|
||||
* `g77' no longer installs the `f77' command and `f77.1' man page in
|
||||
the `/usr' or `/usr/local' heirarchy, even if the `f77-install-ok'
|
||||
file exists in the source or build directory. See the
|
||||
installation documentation for more information.
|
||||
|
||||
* `g77' no longer installs the `libf2c.a' library and `f2c.h'
|
||||
include file in the `/usr' or `/usr/local' heirarchy, even if the
|
||||
`f2c-install-ok' or `f2c-exists-ok' files exist in the source or
|
||||
build directory. See the installation documentation for more
|
||||
information.
|
||||
|
||||
* The `libf2c.a' library produced by `g77' has been renamed to
|
||||
`libg2c.a'. It is installed only in the `gcc' "private" directory
|
||||
heirarchy, `gcc-lib'. This allows system administrators and users
|
||||
to choose which version of the `libf2c' library from `netlib' they
|
||||
wish to use on a case-by-case basis. See the installation
|
||||
documentation for more information.
|
||||
|
||||
* The `f2c.h' include (header) file produced by `g77' has been
|
||||
renamed to `g2c.h'. It is installed only in the `gcc' "private"
|
||||
directory heirarchy, `gcc-lib'. This allows system administrators
|
||||
and users to choose which version of the include file from
|
||||
`netlib' they wish to use on a case-by-case basis. See the
|
||||
installation documentation for more information.
|
||||
|
||||
* The `g77' command now expects the run-time library to be named
|
||||
`libg2c.a' instead of `libf2c.a', to ensure that a version other
|
||||
than the one built and installed as part of the same `g77' version
|
||||
is picked up.
|
||||
|
||||
* During the configuration and build process, `g77' creates
|
||||
subdirectories it needs only as it needs them. Other cleaning up
|
||||
of the configuration and build process has been performed as well.
|
||||
|
||||
* `install-info' now used to update the directory of Info
|
||||
documentation to contain an entry for `g77' (during installation).
|
||||
|
||||
* 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 `OPEN', `INQUIRE', `READ', and `WRITE' statements, and
|
||||
about truncations of various sorts of constants.
|
||||
|
||||
* Improve compilation of `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 `libf2c' for statements
|
||||
like `PRINT '(I1', 42'.
|
||||
|
||||
* Improve documentation and indexing.
|
||||
|
||||
* The upgrade to `libf2c' as of 1998-06-18 should fix a variety of
|
||||
problems, including those involving some uses of the `T' format
|
||||
specifier, and perhaps some build (porting) problems as well.
|
||||
|
||||
In 0.5.24 and `egcs' 1.1 (versus 0.5.23):
|
||||
=========================================
|
||||
|
||||
* `g77' no longer produces incorrect code and initial values for
|
||||
`EQUIVALENCE' and `COMMON' aggregates that, due to "unnatural"
|
||||
|
@ -62,17 +216,17 @@ In `egcs' 1.1:
|
|||
and other information, not to the longstanding deficiencies
|
||||
vis-a-vis `COMMON' and `EQUIVALENCE'.
|
||||
|
||||
* The F90 `DATE_AND_TIME' intrinsic now is supported.
|
||||
* The F90 `Date_and_Time' intrinsic now is supported.
|
||||
|
||||
* The F90 `SYSTEM_CLOCK' intrinsic allows the optional arguments
|
||||
* The F90 `System_Clock' intrinsic allows the optional arguments
|
||||
(except for the `Count' argument) to be omitted.
|
||||
|
||||
* Upgrade to `libf2c' as of 1998-06-18.
|
||||
|
||||
* Improve documentation and indexing.
|
||||
|
||||
In 0.5.23:
|
||||
==========
|
||||
In 0.5.23 (versus 0.5.22):
|
||||
==========================
|
||||
|
||||
* This release contains several regressions against version 0.5.22
|
||||
of `g77', due to using the "vanilla" `gcc' back end instead of
|
||||
|
@ -92,18 +246,17 @@ In 0.5.23:
|
|||
`-fargument-noalias-global', and the corresponding
|
||||
alias-analysis code.
|
||||
|
||||
(Version 1.0.1 of `egcs' has the alias-analysis code, but not
|
||||
the `__restrict__' keyword. `egcs' `g77' users benefit from
|
||||
the alias-analysis code despite the lack of the
|
||||
`__restrict__' keyword, which is a C-language construct.)
|
||||
(`egcs' has the alias-analysis code, but not the
|
||||
`__restrict__' keyword. `egcs' `g77' users benefit from the
|
||||
alias-analysis code despite the lack of the `__restrict__'
|
||||
keyword, which is a C-language construct.)
|
||||
|
||||
- Support for the GNU compiler options `-fmove-all-movables',
|
||||
`-freduce-all-givs', and `-frerun-loop-opt'.
|
||||
|
||||
(Version 1.0.1 of `egcs' supports these options. `g77' users
|
||||
of `egcs' benefit from them even if they are not explicitly
|
||||
specified, because the defaults are optimized for `g77'
|
||||
users.)
|
||||
(`egcs' supports these options. `g77' users of `egcs'
|
||||
benefit from them even if they are not explicitly specified,
|
||||
because the defaults are optimized for `g77' users.)
|
||||
|
||||
- Support for the `-W' option warning about integer division by
|
||||
zero.
|
||||
|
@ -198,8 +351,8 @@ In 0.5.23:
|
|||
some uses of the `T' format specifier, and perhaps some build
|
||||
(porting) problems as well.
|
||||
|
||||
In 0.5.22:
|
||||
==========
|
||||
In 0.5.22 (versus 0.5.21):
|
||||
==========================
|
||||
|
||||
* Fix code generation for iterative `DO' loops that have one or more
|
||||
references to the iteration variable, or to aliases of it, in
|
||||
|
@ -216,7 +369,7 @@ In 0.5.22:
|
|||
* Fix `DTime' intrinsic so as not to truncate results to integer
|
||||
values (on some systems).
|
||||
|
||||
* Fix `SIGNAL' intrinsic so it offers portable support for 64-bit
|
||||
* Fix `Signal' intrinsic so it offers portable support for 64-bit
|
||||
systems (such as Digital Alphas running GNU/Linux).
|
||||
|
||||
* Fix run-time crash involving `NAMELIST' on 64-bit machines such as
|
||||
|
@ -255,8 +408,8 @@ In 0.5.22:
|
|||
* Allow any numeric argument to intrinsics `Int2' and `Int8'.
|
||||
|
||||
* Use `tempnam', if available, to open scratch files (as in
|
||||
`OPEN(STATUS='SCRATCH')' so that the `TMPDIR' environment variable,
|
||||
if present, is used.
|
||||
`OPEN(STATUS='SCRATCH')') so that the `TMPDIR' environment
|
||||
variable, if present, is used.
|
||||
|
||||
* Rename the `gcc' keyword `restrict' to `__restrict__', to avoid
|
||||
rejecting valid, existing, C programs. Support for `restrict' is
|
||||
|
@ -282,7 +435,7 @@ In 0.5.22:
|
|||
like `PRINT '(I)garbage', 1' by printing `(I)garbage' as the
|
||||
format string.)
|
||||
|
||||
* Improve compilation of FORMAT expressions so that a null byte is
|
||||
* Improve compilation of `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 `libf2c' for statements
|
||||
like `PRINT '(I1', 42'.
|
||||
|
@ -299,6 +452,92 @@ In 0.5.22:
|
|||
bug that afflicted 64-bit systems with 32-bit integers (such as
|
||||
Digital Alpha running GNU/Linux).
|
||||
|
||||
In `egcs' 1.0.2 (versus `egcs' 1.0.1):
|
||||
======================================
|
||||
|
||||
* Fix `g77' crash triggered by `CASE' statement with an omitted
|
||||
lower or upper bound.
|
||||
|
||||
* Fix `g77' crash on statements such as `PRINT *,
|
||||
(REAL(Z(I)),I=1,2)', where `Z' is `DOUBLE COMPLEX'.
|
||||
|
||||
* Fix `-fPIC' (such as compiling for ELF targets) on the Intel x86
|
||||
architecture target so invalid assembler code is no longer
|
||||
produced.
|
||||
|
||||
* Fix `-fpedantic' to not reject procedure invocations such as
|
||||
`I=J()' and `CALL FOO()'.
|
||||
|
||||
* Fix `-fugly-comma' to affect invocations of only external
|
||||
procedures. Restore rejection of gratuitous trailing omitted
|
||||
arguments to intrinsics, as in `I=MAX(3,4,,)'.
|
||||
|
||||
* Fix compiler so it accepts `-fgnu-intrinsics-*' and
|
||||
`-fbadu77-intrinsics-*' options.
|
||||
|
||||
In `egcs' 1.0.1 (versus `egcs' 1.0):
|
||||
====================================
|
||||
|
||||
* Fix run-time crash involving `NAMELIST' on 64-bit machines such as
|
||||
Alphas.
|
||||
|
||||
In `egcs' 1.0 (versus 0.5.21):
|
||||
==============================
|
||||
|
||||
* Version 1.0 of `egcs' contains several regressions against version
|
||||
0.5.21 of `g77', due to using the "vanilla" `gcc' back end instead
|
||||
of patching it to fix a few bugs and improve performance in a few
|
||||
cases.
|
||||
|
||||
*Note Actual Bugs We Haven't Fixed Yet: Actual Bugs, available in
|
||||
plain-text format in `gcc/f/BUGS', for information on the known
|
||||
bugs in this version, including the regressions.
|
||||
|
||||
Features that have been dropped from this version of `g77' due to
|
||||
their being implemented via `g77'-specific patches to the `gcc'
|
||||
back end in previous releases include:
|
||||
|
||||
- Support for the C-language `restrict' keyword.
|
||||
|
||||
- Support for the `-W' option warning about integer division by
|
||||
zero.
|
||||
|
||||
- The Intel x86-specific option `-malign-double' applying to
|
||||
stack-allocated data as well as statically-allocate data.
|
||||
|
||||
Note that the `gcc/f/gbe/' subdirectory has been removed from this
|
||||
distribution as a result of `g77' being fully integrated with the
|
||||
`egcs' variant of the `gcc' back end.
|
||||
|
||||
* Fix code generation for iterative `DO' loops that have one or more
|
||||
references to the iteration variable, or to aliases of it, in
|
||||
their control expressions. For example, `DO 10 J=2,J' now is
|
||||
compiled correctly.
|
||||
|
||||
* Fix `DTime' intrinsic so as not to truncate results to integer
|
||||
values (on some systems).
|
||||
|
||||
* Remove support for non-`egcs' versions of `gcc'.
|
||||
|
||||
* Remove support for the `--driver' option, as `g77' now does all
|
||||
the driving, just like `gcc'.
|
||||
|
||||
* Allow any numeric argument to intrinsics `Int2' and `Int8'.
|
||||
|
||||
* Improve diagnostic messages from `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 `f2c', `g77' did not append a null byte to its compiled
|
||||
form of every format string specified via a `FORMAT' statement.
|
||||
However, `f2c' would exhibit the problem anyway for a statement
|
||||
like `PRINT '(I)garbage', 1' by printing `(I)garbage' as the
|
||||
format string.)
|
||||
|
||||
* Upgrade to `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).
|
||||
|
||||
In 0.5.21:
|
||||
==========
|
||||
|
||||
|
|
Loading…
Reference in New Issue