Commit 34b8e428 by Jeff Law

Update to official g77-0.5.21.

From-SVN: r15443
parent ddd28aec
Tue Sep 9 01:59:35 1997 Craig Burley <burley@gnu.ai.mit.edu>
* Version 0.5.21 released.
Tue Sep 9 00:31:01 1997 Craig Burley <burley@gnu.ai.mit.edu>
* intdoc.c (dumpem): Put appropriate commentary in
output file, so readers know it isn't source.
Wed Aug 27 08:08:25 1997 Craig Burley <burley@gnu.ai.mit.edu>
* proj.h: Always #include "config.j" first, to pick up
gcc's configuration.
* com.c: Change bcopy() and bzero() calls to memcpy()
and memset() calls, to make more of g77 ANSI C.
1997-08-26 Dave Love <d.love@dl.ac.uk>
* Make-lang.in ($(srcdir)/f/runtime/configure,
$(srcdir)/f/runtime/libU77/configure): Fix for when srcdir isn't
relative.
Tue Aug 26 05:59:21 1997 Craig Burley <burley@gnu.ai.mit.edu> Tue Aug 26 05:59:21 1997 Craig Burley <burley@gnu.ai.mit.edu>
* ansify.c (main): Make sure readers of stdout know * ansify.c (main): Make sure readers of stdout know
......
...@@ -38,13 +38,16 @@ follow the `g77' installation instructions: ...@@ -38,13 +38,16 @@ follow the `g77' installation instructions:
available--in fact, a complete GNU UNIX system can be put together available--in fact, a complete GNU UNIX system can be put together
on most systems, if desired. on most systems, if desired.
`gcc-2.7.2.2.tar.gz' The version of GNU `gzip' used to package this release is 1.24.
(The version of GNU `tar' used to package this release is 1.11.2.)
`gcc-2.7.2.3.tar.gz'
You need to have this, or some other applicable, version of `gcc' You need to have this, or some other applicable, version of `gcc'
on your system. The version should be an exact copy of a on your system. The version should be an exact copy of a
distribution from the FSF. It is approximately 7MB large. distribution from the FSF. Its size is approximately 7.1MB.
If you've already unpacked `gcc-2.7.2.2.tar.gz' into a directory If you've already unpacked `gcc-2.7.2.3.tar.gz' into a directory
(named `gcc-2.7.2.2') called the "source tree" for `gcc', you can (named `gcc-2.7.2.3') called the "source tree" for `gcc', you can
delete the distribution itself, but you'll need to remember to delete the distribution itself, but you'll need to remember to
skip any instructions to unpack this distribution. skip any instructions to unpack this distribution.
...@@ -52,27 +55,85 @@ follow the `g77' installation instructions: ...@@ -52,27 +55,85 @@ follow the `g77' installation instructions:
You can obtain an FSF distribution of `gcc' from the FSF. You can obtain an FSF distribution of `gcc' from the FSF.
`g77-0.5.21.tar.gz' `g77-0.5.21.tar.gz'
You probably have already unpacked this distribution, or you are You probably have already unpacked this package, or you are
reading an advanced copy of this manual, which is contained in reading an advance copy of these installation instructions, which
this distribution. This distribution approximately 1MB large. are contained in this distribution. The size of this package is
approximately 1.5MB.
You can obtain an FSF distribution of `g77' from the FSF, the same You can obtain an FSF distribution of `g77' from the FSF, the same
way you obtained `gcc'. way you obtained `gcc'.
100MB disk space Enough disk space
For a complete "bootstrap" build, about 100MB of disk space is The amount of disk space needed to unpack, build, install, and use
required for `g77' by the author's current GNU/Linux system. `g77' depends on the type of system you're using, how you build
`g77', and how much of it you install (primarily, which languages
Some juggling can reduce the amount of space needed; during the you install).
bootstrap process, once Stage 3 starts, during which the version
of `gcc' that has been copied into the `stage2/' directory is used The sizes shown below assume all languages distributed in
to rebuild the system, you can delete the `stage1/' directory to `gcc-2.7.2.3', plus `g77', will be built and installed. These
free up some space. sizes are indicative of GNU/Linux systems on Intel x86 running
COFF and on Digital Alpha (AXP) systems running ELF. These should
It is likely that many systems don't require the complete be fairly representative of 32-bit and 64-bit systems,
bootstrap build, as they already have a recent version of `gcc' respectively.
installed. Such systems might be able to build `g77' with only
about 75MB of free space. Note that all sizes are approximate and subject to change without
notice! They are based on preliminary releases of g77 made shortly
before the public beta release.
-- `gcc' and `g77' distributions occupy 8.6MB packed, 35MB
unpacked. These consist of the source code and documentation,
plus some derived files (mostly documentation), for `gcc' and
`g77'. Any deviations from these numbers for different kinds
of systems are likely to be very minor.
-- A "bootstrap" build requires an additional 67.3MB for a
total of 102MB on an ix86, and an additional 98MB for a total
of 165MB on an Alpha.
-- Removing `gcc/stage1' after the build recovers 10.7MB for a
total of 91MB on an ix86, and recovers ??MB for a total of
??MB on an Alpha.
After doing this, the integrity of the build can still be
verified via `make compare', and the `gcc' compiler modified
and used to build itself for testing fairly quickly, using
the copy of the compiler kept in `gcc/stage2'.
-- Removing `gcc/stage2' after the build further recovers
27.3MB for a total of 64.3MB, and recovers ??MB for a total
of ??MB on an Alpha.
After doing this, the compiler can still be installed,
especially if GNU `make' is used to avoid gratuitous rebuilds
(or, the installation can be done by hand).
-- Installing `gcc' and `g77' copies 14.9MB onto the `--prefix'
disk for a total of 79.2MB on an ix86, and copies ??MB onto
the `--prefix' disk for a total of ??MB on an Alpha.
After installation, if no further modifications and builds of
`gcc' or `g77' are planned, the source and build directory may be
removed, leaving the total impact on a system's disk storage as
that of the amount copied during installation.
Systems with the appropriate version of `gcc' installed don't
require the complete bootstrap build. Doing a "straight build"
requires about as much space as does a bootstrap build followed by
removing both the `gcc/stage1' and `gcc/stage2' directories.
Installing `gcc' and `g77' over existing versions might require
less *new* disk space, but note that, unlike many products, `gcc'
installs itself in a way that avoids overwriting other installed
versions of itself, so that other versions may easily be invoked
(via `gcc -V VERSION').
So, the amount of space saved as a result of having an existing
version of `gcc' and `g77' already installed is not
much--typically only the command drivers (`gcc', `g77', `g++', and
so on, which are small) and the documentation is overwritten by
the new installation. The rest of the new installation is done
without replacing existing installed versions (assuming they have
different version numbers).
`patch' `patch'
Although you can do everything `patch' does yourself, by hand, Although you can do everything `patch' does yourself, by hand,
...@@ -84,11 +145,15 @@ follow the `g77' installation instructions: ...@@ -84,11 +145,15 @@ follow the `g77' installation instructions:
In any case, you can apply patches by hand--patch files are In any case, you can apply patches by hand--patch files are
designed for humans to read them. designed for humans to read them.
The version of GNU `patch' used to develop this release is 2.4.
`make' `make'
Your system must have `make', and you will probably save yourself Your system must have `make', and you will probably save yourself
a lot of trouble if it is GNU `make' (sometimes referred to as a lot of trouble if it is GNU `make' (sometimes referred to as
`gmake'). `gmake').
The version of GNU `make' used to develop this release is 3.73.
`cc' `cc'
Your system must have a working C compiler. Your system must have a working C compiler.
...@@ -102,6 +167,8 @@ follow the `g77' installation instructions: ...@@ -102,6 +167,8 @@ follow the `g77' installation instructions:
distribution. You can obtain `bison' the same way you obtained distribution. You can obtain `bison' the same way you obtained
`gcc' and `g77'. `gcc' and `g77'.
The version of GNU `bison' used to develop this release is 1.25.
*Note Missing bison?::, for information on how to work around not *Note Missing bison?::, for information on how to work around not
having `bison'. having `bison'.
...@@ -110,12 +177,27 @@ follow the `g77' installation instructions: ...@@ -110,12 +177,27 @@ follow the `g77' installation instructions:
need for it. You can obtain `makeinfo' the same way you obtained need for it. You can obtain `makeinfo' the same way you obtained
`gcc' and `g77'. `gcc' and `g77'.
The version of GNU `makeinfo' used to develop this release is
1.68, from GNU `texinfo' version 3.11.
*Note Missing makeinfo?::, for information on getting around the *Note Missing makeinfo?::, for information on getting around the
lack of `makeinfo'. lack of `makeinfo'.
`root' access `sed'
All UNIX systems have `sed', but some have a broken version that
cannot handle configuring, building, or installing `gcc' or `g77'.
The version of GNU `sed' used to develop this release is 2.05.
(Note that GNU `sed' version 3.0 was withdrawn by the FSF--if you
happen to have this version installed, replace it with version
2.05 immediately. See a GNU distribution site for further
explanation.)
`root' access or equivalent
To perform the complete installation procedures on a system, you To perform the complete installation procedures on a system, you
need to have `root' access to that system, or equivalent access. need to have `root' access to that system, or equivalent access to
the `--prefix' directory tree specified on the `configure' command
line.
Portions of the procedure (such as configuring and building `g77') Portions of the procedure (such as configuring and building `g77')
can be performed by any user with enough disk space and virtual can be performed by any user with enough disk space and virtual
...@@ -282,7 +364,7 @@ reasons. ...@@ -282,7 +364,7 @@ reasons.
* Improvements to the way `libf2c' is built could make building * Improvements to the way `libf2c' is built could make building
`g77' as a cross-compiler easier--for example, passing and using `g77' as a cross-compiler easier--for example, passing and using
`LD' and `AR' in the appropriate ways. `$(LD)' and `$(AR)' in the appropriate ways.
* There are still some challenges putting together the right * There are still some challenges putting together the right
run-time libraries (needed by `libf2c') for a target system, run-time libraries (needed by `libf2c') for a target system,
...@@ -472,7 +554,7 @@ is assumed that the source distributions themselves already reside in ...@@ -472,7 +554,7 @@ is assumed that the source distributions themselves already reside in
`/usr/FSF', a naming convention used by the author of `g77' on his own `/usr/FSF', a naming convention used by the author of `g77' on his own
system: system:
/usr/FSF/gcc-2.7.2.2.tar.gz /usr/FSF/gcc-2.7.2.3.tar.gz
/usr/FSF/g77-0.5.21.tar.gz /usr/FSF/g77-0.5.21.tar.gz
Users of the following systems should not blindly follow these Users of the following systems should not blindly follow these
...@@ -496,20 +578,20 @@ of some of the steps. These explanations follow this list of steps. ...@@ -496,20 +578,20 @@ of some of the steps. These explanations follow this list of steps.
sh[ 1]# cd /usr/src sh[ 1]# cd /usr/src
sh[ 2]# gunzip -c < /usr/FSF/gcc-2.7.2.2.tar.gz | tar xf - sh[ 2]# gunzip -c < /usr/FSF/gcc-2.7.2.3.tar.gz | tar xf -
[Might say "Broken pipe"...that is normal on some systems.] [Might say "Broken pipe"...that is normal on some systems.]
sh[ 3]# gunzip -c < /usr/FSF/g77-0.5.21.tar.gz | tar xf - sh[ 3]# gunzip -c < /usr/FSF/g77-0.5.21.tar.gz | tar xf -
["Broken pipe" again possible.] ["Broken pipe" again possible.]
sh[ 4]# ln -s gcc-2.7.2.2 gcc sh[ 4]# ln -s gcc-2.7.2.3 gcc
sh[ 5]# ln -s g77-0.5.21 g77 sh[ 5]# ln -s g77-0.5.21 g77
sh[ 6]# mv -i g77/* gcc sh[ 6]# mv -i g77/* gcc
[No questions should be asked by mv here; or, you made a mistake.] [No questions should be asked by mv here; or, you made a mistake.]
sh[ 7]# patch -p1 -V t -d gcc < gcc/f/gbe/2.7.2.2.diff sh[ 7]# patch -p1 -V t -d gcc < gcc/f/gbe/2.7.2.3.diff
[Unless patch complains about rejected patches, this step worked.] [Unless patch complains about rejected patches, this step worked.]
sh[ 8]# cd gcc sh[ 8]# cd gcc
...@@ -531,15 +613,22 @@ of some of the steps. These explanations follow this list of steps. ...@@ -531,15 +613,22 @@ of some of the steps. These explanations follow this list of steps.
sh[12]# make bootstrap sh[12]# make bootstrap
[This takes a long time, and is where most problems occur.] [This takes a long time, and is where most problems occur.]
sh[13]# rm -fr stage1 sh[13]# make compare
[This verifies that the compiler is `sane'. Only
the file `f/zzz.o' (aka `tmp-foo1' and `tmp-foo2')
should be in the list of object files this command
prints as having different contents. If other files
are printed, you have likely found a g77 bug.]
sh[14]# make -k install sh[14]# rm -fr stage1
sh[15]# make -k install
[The actual installation.] [The actual installation.]
sh[15]# g77 -v sh[16]# g77 -v
[Verify that g77 is installed, obtain version info.] [Verify that g77 is installed, obtain version info.]
sh[16]# sh[17]#
*Note Updating Your Info Directory: Updating Documentation, for *Note Updating Your Info Directory: Updating Documentation, for
information on how to update your system's top-level `info' directory information on how to update your system's top-level `info' directory
...@@ -562,7 +651,7 @@ Step 3: `gunzip -d < /usr/FSF/g77-0.5.21.tar.gz | tar xf -' ...@@ -562,7 +651,7 @@ Step 3: `gunzip -d < /usr/FSF/g77-0.5.21.tar.gz | tar xf -'
achieve the same result--a source tree containing version 0.5.21 achieve the same result--a source tree containing version 0.5.21
of `g77'. of `g77'.
Step 4: `ln -s gcc-2.7.2.2 gcc' Step 4: `ln -s gcc-2.7.2.3 gcc'
Step 5: `ln -s g77-0.5.21 g77' Step 5: `ln -s g77-0.5.21 g77'
These commands mainly help reduce typing, and help reduce visual These commands mainly help reduce typing, and help reduce visual
...@@ -641,10 +730,18 @@ Step 12: `make bootstrap' ...@@ -641,10 +730,18 @@ Step 12: `make bootstrap'
*Note Building gcc::, for complete `g77'-specific information on *Note Building gcc::, for complete `g77'-specific information on
this step. this step.
Step 13: `rm -fr stage1' Step 13: `make compare'
*Note Where to Port Bugs: Bug Lists, for information on where to
report that you observed more than `f/zzz.o' having different
contents during this phase.
*Note How to Report Bugs: Bug Reporting, for information on *how*
to report bugs like this.
Step 14: `rm -fr stage1'
You don't need to do this, but it frees up disk space. You don't need to do this, but it frees up disk space.
Step 14: `make -k install' Step 15: `make -k install'
If this doesn't seem to work, try: If this doesn't seem to work, try:
make -k install install-libf77 install-f2c-all make -k install install-libf77 install-f2c-all
...@@ -655,7 +752,7 @@ Step 14: `make -k install' ...@@ -655,7 +752,7 @@ Step 14: `make -k install'
information on entering this manual into your system's list of information on entering this manual into your system's list of
texinfo manuals. texinfo manuals.
Step 15: `g77 -v' Step 16: `g77 -v'
If this command prints approximately 25 lines of output, including If this command prints approximately 25 lines of output, including
the GNU Fortran Front End version number (which should be the same the GNU Fortran Front End version number (which should be the same
as the version number for the version of `g77' you just built and as the version number for the version of `g77' you just built and
...@@ -723,9 +820,9 @@ generally only the documentation is immediately usable. ...@@ -723,9 +820,9 @@ generally only the documentation is immediately usable.
A sequence of commands typically used to unpack `gcc' and `g77' is: A sequence of commands typically used to unpack `gcc' and `g77' is:
sh# cd /usr/src sh# cd /usr/src
sh# gunzip -d < /usr/FSF/gcc-2.7.2.2.tar.gz | tar xf - sh# gunzip -c /usr/FSF/gcc-2.7.2.3.tar.gz | tar xf -
sh# gunzip -d < /usr/FSF/g77-0.5.21.tar.gz | tar xf - sh# gunzip -c /usr/FSF/g77-0.5.21.tar.gz | tar xf -
sh# ln -s gcc-2.7.2.2 gcc sh# ln -s gcc-2.7.2.3 gcc
sh# ln -s g77-0.5.21 g77 sh# ln -s g77-0.5.21 g77
sh# mv -i g77/* gcc sh# mv -i g77/* gcc
...@@ -745,7 +842,7 @@ and the top level of just the `g77' source tree (prior to issuing the ...@@ -745,7 +842,7 @@ and the top level of just the `g77' source tree (prior to issuing the
All three entries should be moved (or copied) into a `gcc' source All three entries should be moved (or copied) into a `gcc' source
tree (typically named after its version number and as it appears in the tree (typically named after its version number and as it appears in the
FSF distributions--e.g. `gcc-2.7.2.2'). FSF distributions--e.g. `gcc-2.7.2.3').
`g77/f' is the subdirectory containing all of the code, `g77/f' is the subdirectory containing all of the code,
documentation, and other information that is specific to `g77'. The documentation, and other information that is specific to `g77'. The
...@@ -1214,43 +1311,43 @@ them when they work: ...@@ -1214,43 +1311,43 @@ them when they work:
g77 version 0.5.21 g77 version 0.5.21
./xgcc -B./ -v -fnull-version -o /tmp/gfa18047 ... ./xgcc -B./ -v -fnull-version -o /tmp/gfa18047 ...
Reading specs from ./specs Reading specs from ./specs
gcc version 2.7.2.2.f.3 gcc version 2.7.2.3.f.1
./cpp -lang-c -v -isystem ./include -undef ... ./cpp -lang-c -v -isystem ./include -undef ...
GNU CPP version 2.7.2.2.f.3 (Linux/Alpha) GNU CPP version 2.7.2.3.f.1 (Linux/Alpha)
#include "..." search starts here: #include "..." search starts here:
#include <...> search starts here: #include <...> search starts here:
./include ./include
/usr/local/include /usr/local/include
/usr/alpha-unknown-linux/include /usr/alpha-unknown-linux/include
/usr/lib/gcc-lib/alpha-unknown-linux/2.7.2.2.f.3/include /usr/lib/gcc-lib/alpha-unknown-linux/2.7.2.3.f.1/include
/usr/include /usr/include
End of search list. End of search list.
./f771 /tmp/cca18048.i -fset-g77-defaults -quiet -dumpbase ... ./f771 /tmp/cca18048.i -fset-g77-defaults -quiet -dumpbase ...
GNU F77 version 2.7.2.2.f.3 (Linux/Alpha) compiled ... GNU F77 version 2.7.2.3.f.1 (Linux/Alpha) compiled ...
GNU Fortran Front End version 0.5.21 compiled: ... GNU Fortran Front End version 0.5.21 compiled: ...
as -nocpp -o /tmp/cca180481.o /tmp/cca18048.s as -nocpp -o /tmp/cca180481.o /tmp/cca18048.s
ld -G 8 -O1 -o /tmp/gfa18047 /usr/lib/crt0.o -L. ... ld -G 8 -O1 -o /tmp/gfa18047 /usr/lib/crt0.o -L. ...
__G77_LIBF77_VERSION__: 0.5.21 __G77_LIBF77_VERSION__: 0.5.21
@(#)LIBF77 VERSION 19970404 @(#)LIBF77 VERSION 19970404
__G77_LIBI77_VERSION__: 0.5.21 __G77_LIBI77_VERSION__: 0.5.21
@(#) LIBI77 VERSION pjw,dmg-mods 19970527 @(#) LIBI77 VERSION pjw,dmg-mods 19970816
__G77_LIBU77_VERSION__: 0.5.21 __G77_LIBU77_VERSION__: 0.5.21
@(#) LIBU77 VERSION 19970609 @(#) LIBU77 VERSION 19970609
sh# ./xgcc -B./ -v -o /tmp/delete-me -xc /dev/null -xnone sh# ./xgcc -B./ -v -o /tmp/delete-me -xc /dev/null -xnone
Reading specs from ./specs Reading specs from ./specs
gcc version 2.7.2.2.f.3 gcc version 2.7.2.3.f.1
./cpp -lang-c -v -isystem ./include -undef ... ./cpp -lang-c -v -isystem ./include -undef ...
GNU CPP version 2.7.2.2.f.3 (Linux/Alpha) GNU CPP version 2.7.2.3.f.1 (Linux/Alpha)
#include "..." search starts here: #include "..." search starts here:
#include <...> search starts here: #include <...> search starts here:
./include ./include
/usr/local/include /usr/local/include
/usr/alpha-unknown-linux/include /usr/alpha-unknown-linux/include
/usr/lib/gcc-lib/alpha-unknown-linux/2.7.2.2.f.3/include /usr/lib/gcc-lib/alpha-unknown-linux/2.7.2.3.f.1/include
/usr/include /usr/include
End of search list. End of search list.
./cc1 /tmp/cca18063.i -quiet -dumpbase null.c -version ... ./cc1 /tmp/cca18063.i -quiet -dumpbase null.c -version ...
GNU C version 2.7.2.2.f.3 (Linux/Alpha) compiled ... GNU C version 2.7.2.3.f.1 (Linux/Alpha) compiled ...
as -nocpp -o /tmp/cca180631.o /tmp/cca18063.s as -nocpp -o /tmp/cca180631.o /tmp/cca18063.s
ld -G 8 -O1 -o /tmp/delete-me /usr/lib/crt0.o -L. ... ld -G 8 -O1 -o /tmp/delete-me /usr/lib/crt0.o -L. ...
/usr/lib/crt0.o: In function `__start': /usr/lib/crt0.o: In function `__start':
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
# - define the names for selecting the language in LANGUAGES. # - define the names for selecting the language in LANGUAGES.
# #
# $(srcdir) must be set to the gcc/ source directory (not gcc/f/). # $(srcdir) must be set to the gcc/ source directory (not gcc/f/).
#
# Extra flags to pass to recursive makes (and to sub-configure). # Extra flags to pass to recursive makes (and to sub-configure).
# Use different quoting rules compared with FLAGS_TO_PASS so we can use # Use different quoting rules compared with FLAGS_TO_PASS so we can use
# this to set environment variables as well # this to set environment variables as well
...@@ -92,6 +93,7 @@ G77_INSTALL_NAME = `t='$(program_transform_name)'; echo g77 | sed $$t` ...@@ -92,6 +93,7 @@ G77_INSTALL_NAME = `t='$(program_transform_name)'; echo g77 | sed $$t`
# Actual names to use when installing a cross-compiler. # Actual names to use when installing a cross-compiler.
F77_CROSS_NAME = `t='$(program_transform_cross_name)'; echo f77 | sed $$t` F77_CROSS_NAME = `t='$(program_transform_cross_name)'; echo f77 | sed $$t`
G77_CROSS_NAME = `t='$(program_transform_cross_name)'; echo g77 | sed $$t` G77_CROSS_NAME = `t='$(program_transform_cross_name)'; echo g77 | sed $$t`
#
# Define the names for selecting f77 in LANGUAGES. # Define the names for selecting f77 in LANGUAGES.
# Note that it would be nice to move the dependency on g77 # Note that it would be nice to move the dependency on g77
# into the F77 rule, but that needs a little bit of work # into the F77 rule, but that needs a little bit of work
...@@ -309,6 +311,7 @@ f/runtime/libU77/Makefile: stmp-f2c.h ...@@ -309,6 +311,7 @@ f/runtime/libU77/Makefile: stmp-f2c.h
# $(srcdir)/config/$(xmake_file) $(srcdir)/config/$(tmake_file) # $(srcdir)/config/$(xmake_file) $(srcdir)/config/$(tmake_file)
# top=`pwd`; cd f/f2c; \ # top=`pwd`; cd f/f2c; \
# $${top}/f/f2c/configure --srcdir=$${top}/f/f2c # $${top}/f/f2c/configure --srcdir=$${top}/f/f2c
#
# Build hooks: # Build hooks:
# I'm not sure there's a way of getting f2c into here conditionally on # I'm not sure there's a way of getting f2c into here conditionally on
...@@ -373,15 +376,10 @@ $(srcdir)/f/NEWS: f/news0.texi f/news.texi ...@@ -373,15 +376,10 @@ $(srcdir)/f/NEWS: f/news0.texi f/news.texi
--no-validate news0.texi -o NEWS --no-validate news0.texi -o NEWS
$(srcdir)/f/runtime/configure: $(srcdir)/f/runtime/configure.in $(srcdir)/f/runtime/configure: $(srcdir)/f/runtime/configure.in
case $(srcdir) in \ cd $(srcdir)/f/runtime && $(MAKE) srcdir=. -f Makefile.in rebuilt
/*) cd f/runtime && $(MAKE) srcdir=$(srcdir)/f/runtime -f $(srcdir)/f/runtime/Makefile.in rebuilt;; \
*) cd f/runtime && $(MAKE) srcdir=../../$(srcdir)/f/runtime -f ../../$(srcdir)/f/runtime/Makefile.in rebuilt;; \
esac
$(srcdir)/f/runtime/libU77/configure: $(srcdir)/f/runtime/libU77/configure.in $(srcdir)/f/runtime/libU77/configure: $(srcdir)/f/runtime/libU77/configure.in
case $(srcdir) in \ cd $(srcdir)/f/runtime && $(MAKE) srcdir=. -f Makefile.in rebuilt
/*) cd f/runtime && $(MAKE) srcdir=$(srcdir)/f/runtime -f $(srcdir)/f/runtime/Makefile.in rebuilt;; \
*) cd f/runtime && $(MAKE) srcdir=../../$(srcdir)/f/runtime -f ../../$(srcdir)/f/runtime/Makefile.in rebuilt;; \
esac
f77.rebuilt: $(srcdir)/f/g77.info $(srcdir)/f/BUGS $(srcdir)/f/INSTALL \ f77.rebuilt: $(srcdir)/f/g77.info $(srcdir)/f/BUGS $(srcdir)/f/INSTALL \
$(srcdir)/f/NEWS $(srcdir)/f/runtime/configure \ $(srcdir)/f/NEWS $(srcdir)/f/runtime/configure \
$(srcdir)/f/runtime/libU77/configure $(srcdir)/f/runtime/libU77/configure
...@@ -389,6 +387,7 @@ f77.rebuilt: $(srcdir)/f/g77.info $(srcdir)/f/BUGS $(srcdir)/f/INSTALL \ ...@@ -389,6 +387,7 @@ f77.rebuilt: $(srcdir)/f/g77.info $(srcdir)/f/BUGS $(srcdir)/f/INSTALL \
maybe-f2c: maybe-f2c:
#For now, omit f2c stuff. -- burley #For now, omit f2c stuff. -- burley
# case "$(STAGESTUFF)" in *f2c*) $(MAKE) f2c;; esac # case "$(STAGESTUFF)" in *f2c*) $(MAKE) f2c;; esac
#
# Install hooks: # Install hooks:
# f771 is installed elsewhere as part of $(COMPILERS). # f771 is installed elsewhere as part of $(COMPILERS).
...@@ -511,6 +510,7 @@ f77.uninstall: ...@@ -511,6 +510,7 @@ f77.uninstall:
rm -rf include/f2c.h ; \ rm -rf include/f2c.h ; \
rm -rf $(libdir)/libf2c.a ; \ rm -rf $(libdir)/libf2c.a ; \
fi fi
#
# Clean hooks: # Clean hooks:
# A lot of the ancillary files are deleted by the main makefile. # A lot of the ancillary files are deleted by the main makefile.
# We just have to delete files specific to us. # We just have to delete files specific to us.
...@@ -518,19 +518,12 @@ f77.uninstall: ...@@ -518,19 +518,12 @@ f77.uninstall:
f77.mostlyclean: f77.mostlyclean:
-rm -f f/*$(objext) -rm -f f/*$(objext)
-rm -f f/fini f/f771 f/stamp-str f/str-*.h f/str-*.j f/intdoc f/ansify f/intdoc.h0 -rm -f f/fini f/f771 f/stamp-str f/str-*.h f/str-*.j f/intdoc f/ansify f/intdoc.h0
-case $(srcdir) in \ -cd $(srcdir)/f/runtime; $(MAKE) -f Makefile.in mostlyclean
/*) cd f/runtime; $(MAKE) -f $(srcdir)/f/runtime/Makefile.in mostlyclean;; \
*) cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in mostlyclean;; \
esac
f77.clean: f77.clean:
-case $(srcdir) in \ -cd $(srcdir)/f/runtime; $(MAKE) -f Makefile.in clean;; \
/*) cd f/runtime; $(MAKE) -f $(srcdir)/f/runtime/Makefile.in clean;; \
*) cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in clean;; \
esac esac
f77.distclean: f77.distclean:
-case $(srcdir) in \ -cd $(srcdir)/f/runtime; $(MAKE) -f Makefile.in distclean;; \
/*) cd f/runtime; $(MAKE) -f $(srcdir)/f/runtime/Makefile.in distclean;; \
*) cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in distclean;; \
esac esac
-rm -f f/Makefile -rm -f f/Makefile
# like gcc's extraclean, which does clean f/ for us, but not f/gbe, # like gcc's extraclean, which does clean f/ for us, but not f/gbe,
...@@ -549,11 +542,10 @@ f77.extraclean: f77.distclean ...@@ -549,11 +542,10 @@ f77.extraclean: f77.distclean
-rm -f f/*/*/*lose f/*/*/*.s f/*/*/*.s[0-9] f/*/*/*.i -rm -f f/*/*/*lose f/*/*/*.s f/*/*/*.s[0-9] f/*/*/*.i
# realclean is the pre-2.7.0 name for maintainer-clean # realclean is the pre-2.7.0 name for maintainer-clean
f77.maintainer-clean f77.realclean: f77.distclean f77.maintainer-clean f77.realclean: f77.distclean
-case $(srcdir) in \ -cd $(srcdir)/f/runtime; $(MAKE) -f Makefile.in maintainer-clean;; \
/*) cd f/runtime; $(MAKE) -f $(srcdir)/f/runtime/Makefile.in maintainer-clean;; \
*) cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in maintainer-clean;; \
esac esac
-rm -f f/g77.info* f/g77.*aux f/TAGS f/BUGS f/INSTALL f/NEWS f/intdoc.texi -rm -f f/g77.info* f/g77.*aux f/TAGS f/BUGS f/INSTALL f/NEWS f/intdoc.texi
#
# Stage hooks: # Stage hooks:
# The main makefile has already created stage?/f. # The main makefile has already created stage?/f.
...@@ -590,6 +582,7 @@ f77.stage4: ...@@ -590,6 +582,7 @@ f77.stage4:
-mv $(LIBF77STAGESTUFF) stage4/f/runtime/libF77 -mv $(LIBF77STAGESTUFF) stage4/f/runtime/libF77
-mv $(LIBI77STAGESTUFF) stage4/f/runtime/libI77 -mv $(LIBI77STAGESTUFF) stage4/f/runtime/libI77
-mv $(LIBU77STAGESTUFF) stage4/f/runtime/libU77 -mv $(LIBU77STAGESTUFF) stage4/f/runtime/libU77
#
# Maintenance hooks: # Maintenance hooks:
# This target creates the files that can be rebuilt, but go in the # This target creates the files that can be rebuilt, but go in the
......
...@@ -136,6 +136,7 @@ all: all.indirect ...@@ -136,6 +136,7 @@ all: all.indirect
####host overrides ####host overrides
####cross overrides ####cross overrides
####build overrides ####build overrides
#
# Now figure out from those variables how to compile and link. # Now figure out from those variables how to compile and link.
all.indirect: f/Makefile f771 all.indirect: f/Makefile f771
...@@ -201,6 +202,7 @@ FLAGS_TO_PASS = \ ...@@ -201,6 +202,7 @@ FLAGS_TO_PASS = \
.c.o: .c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< -o $@ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< -o $@
#
# Lists of files for various purposes. # Lists of files for various purposes.
# Language-specific object files for g77 # Language-specific object files for g77
...@@ -265,6 +267,7 @@ f/Makefile: ...@@ -265,6 +267,7 @@ f/Makefile:
Makefile: $(srcdir)/f/Makefile.in $(srcdir)/configure Makefile: $(srcdir)/f/Makefile.in $(srcdir)/configure
native: f771 native: f771
#
# Compiling object files from source files. # Compiling object files from source files.
# Note that dependencies on obstack.h are not written # Note that dependencies on obstack.h are not written
...@@ -543,6 +546,7 @@ deps-kinda: ...@@ -543,6 +546,7 @@ deps-kinda:
-e 's: \([.]/\)*f/str[.]h: f/stamp-str:g' \ -e 's: \([.]/\)*f/str[.]h: f/stamp-str:g' \
-e 's%^\(.*\)[ ]*: %f/\1: %g' -e 's%^\(.*\)[ ]*: %f/\1: %g'
#
# These exist for maintenance purposes. # These exist for maintenance purposes.
# Update the tags table. # Update the tags table.
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
@c The text of this file appears in the 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 in the G77 distribution, as well as in the G77 manual.
@c 1996-08-19 @c 1996-09-09
@ifclear BUGSONLY @ifclear BUGSONLY
@node Actual Bugs @node Actual Bugs
...@@ -25,21 +25,8 @@ configure, port, build, and install @code{g77}, ...@@ -25,21 +25,8 @@ configure, port, build, and install @code{g77},
@ref{Problems Installing}. @ref{Problems Installing}.
@itemize @bullet @itemize @bullet
@cindex DNRM2 miscompiled
@item
An old version of the BLAS function @code{DNRM2} is miscompiled
on ix86 machines when @samp{-O2} (or higher, probably) is
used.
The bug is in the @code{gcc} back end, as proven using
a C translation of a simplified version of @code{DRNM2}
that illustrates the bug.
(The code in @file{gcc/reg-stack.c} fails to recognize that,
after an initial load of @samp{XMAX}, a subsequent load
must be preceded by a stack pop, or @samp{fstp %st(0)} in
assembler, to avoid ultimately overflowing the floating-point
stack.)
@cindex Alpha @cindex Alpha
@cindex -O2
@item @item
@code{g77}'s version of @code{gcc}, and probably @code{g77} @code{g77}'s version of @code{gcc}, and probably @code{g77}
itself, cannot be reliably used with the @samp{-O2} option itself, cannot be reliably used with the @samp{-O2} option
...@@ -53,6 +40,24 @@ in this case, @samp{R} might be initialized to @samp{4.0}. ...@@ -53,6 +40,24 @@ in this case, @samp{R} might be initialized to @samp{4.0}.
Until this bug is fixed, use only @samp{-O1} or no optimization. Until this bug is fixed, use only @samp{-O1} or no optimization.
@cindex DNRM2
@cindex stack, 387 coprocessor
@cindex ix86
@cindex -O2
@item
A code-generation bug afflicts
Intel x86 targets when @samp{-O2} is specified
compiling, for example, an old version of
the @samp{DNRM2} routine.
The x87 coprocessor stack is being somewhat
mismanaged in cases where assigned @code{GOTO}
and @code{ASSIGN} are involved.
Version 0.5.21 of @code{g77} contains an initial
effort to fix the problem, but this effort is
incomplete, and a more complete fix is planned
for the next release.
@cindex SIGNAL() intrinsic @cindex SIGNAL() intrinsic
@cindex intrinsics, SIGNAL() @cindex intrinsics, SIGNAL()
@item @item
......
...@@ -13874,9 +13874,9 @@ duplicate_decls (tree newdecl, tree olddecl) ...@@ -13874,9 +13874,9 @@ duplicate_decls (tree newdecl, tree olddecl)
{ {
register unsigned olddecl_uid = DECL_UID (olddecl); register unsigned olddecl_uid = DECL_UID (olddecl);
bcopy ((char *) newdecl + sizeof (struct tree_common), memcpy ((char *) olddecl + sizeof (struct tree_common),
(char *) olddecl + sizeof (struct tree_common), (char *) newdecl + sizeof (struct tree_common),
sizeof (struct tree_decl) - sizeof (struct tree_common)); sizeof (struct tree_decl) - sizeof (struct tree_common));
DECL_UID (olddecl) = olddecl_uid; DECL_UID (olddecl) = olddecl_uid;
} }
...@@ -15744,7 +15744,7 @@ open_include_file (filename, searchptr) ...@@ -15744,7 +15744,7 @@ open_include_file (filename, searchptr)
else else
{ {
dir = (char *) xmalloc (p - filename + 1); dir = (char *) xmalloc (p - filename + 1);
bcopy (filename, dir, p - filename); memcpy (dir, filename, p - filename);
dir[p - filename] = '\0'; dir[p - filename] = '\0';
from = p + 1; from = p + 1;
map = read_name_map (dir); map = read_name_map (dir);
...@@ -15958,7 +15958,7 @@ ffecom_file_ (char *name) ...@@ -15958,7 +15958,7 @@ ffecom_file_ (char *name)
early #line directives (when -g is in effect). */ early #line directives (when -g is in effect). */
fp = &instack[++indepth]; fp = &instack[++indepth];
bzero ((char *) fp, sizeof (FILE_BUF)); memset ((char *) fp, 0, sizeof (FILE_BUF));
if (name == NULL) if (name == NULL)
name = ""; name = "";
fp->nominal_fname = fp->fname = name; fp->nominal_fname = fp->fname = name;
...@@ -16218,7 +16218,7 @@ ffecom_open_include_ (char *name, ffewhereLine l, ffewhereColumn c) ...@@ -16218,7 +16218,7 @@ ffecom_open_include_ (char *name, ffewhereLine l, ffewhereColumn c)
instack[indepth].column = ffewhere_column_use (c); instack[indepth].column = ffewhere_column_use (c);
fp = &instack[indepth + 1]; fp = &instack[indepth + 1];
bzero ((char *) fp, sizeof (FILE_BUF)); memset ((char *) fp, 0, sizeof (FILE_BUF));
fp->nominal_fname = fp->fname = fname; fp->nominal_fname = fp->fname = fname;
fp->dir = searchptr; fp->dir = searchptr;
......
...@@ -102,7 +102,7 @@ was contributed to Craig by David Ronis (@email{ronis@@onsager.chem.mcgill.ca}). ...@@ -102,7 +102,7 @@ was contributed to Craig by David Ronis (@email{ronis@@onsager.chem.mcgill.ca}).
@sp 2 @sp 2
@center James Craig Burley @center James Craig Burley
@sp 3 @sp 3
@center Last updated 1997-08-24 @center Last updated 1997-09-09
@sp 1 @sp 1
@c The version number appears some more times in this file. @c The version number appears some more times in this file.
...@@ -3251,7 +3251,7 @@ users use @code{g77}. ...@@ -3251,7 +3251,7 @@ users use @code{g77}.
such changes to @code{g77}. such changes to @code{g77}.
To find out about existing bugs and ongoing plans for GNU To find out about existing bugs and ongoing plans for GNU
Fortran, retrieve @url{ftp://alpha.gnu.ai.mit.edu/g77.plan} Fortran, retrieve @uref{ftp://alpha.gnu.ai.mit.edu/g77.plan}
or, if you cannot do that, email or, if you cannot do that, email
@email{fortran@@gnu.ai.mit.edu} asking for a recent copy of the @email{fortran@@gnu.ai.mit.edu} asking for a recent copy of the
GNU Fortran @file{.plan} file. GNU Fortran @file{.plan} file.
...@@ -3699,8 +3699,8 @@ way through the compilation process instead of being lost. ...@@ -3699,8 +3699,8 @@ way through the compilation process instead of being lost.
GNU Fortran supports a variety of extensions to, and dialects GNU Fortran supports a variety of extensions to, and dialects
of, the Fortran language. of, the Fortran language.
Its primary base is the ANSI FORTRAN 77 standard, currently available on Its primary base is the ANSI FORTRAN 77 standard, currently available on
the network at @url{http://kumo.swcp.com/fortran/F77_std/f77_std.html} the network at @uref{http://kumo.swcp.com/fortran/F77_std/f77_std.html}
or in @url{ftp://ftp.ast.cam.ac.uk/pub/michael/}. or in @uref{ftp://ftp.ast.cam.ac.uk/pub/michael/}.
It offers some extensions that are popular among users It offers some extensions that are popular among users
of UNIX @code{f77} and @code{f2c} compilers, some that of UNIX @code{f77} and @code{f2c} compilers, some that
are popular among users of other compilers (such as Digital are popular among users of other compilers (such as Digital
...@@ -3711,7 +3711,7 @@ by GNU Fortran. ...@@ -3711,7 +3711,7 @@ by GNU Fortran.
@cindex textbooks @cindex textbooks
(If you need a text on Fortran, (If you need a text on Fortran,
a few freely available electronic references have pointers from a few freely available electronic references have pointers from
@url{http://www.fortran.com/fortran/Books/}.) @uref{http://www.fortran.com/fortran/Books/}.)
Part of what defines a particular implementation of a Fortran Part of what defines a particular implementation of a Fortran
system, such as @code{g77}, is the particular characteristics system, such as @code{g77}, is the particular characteristics
...@@ -7867,7 +7867,7 @@ options @code{g77} passes by running @samp{g77 -v}. ...@@ -7867,7 +7867,7 @@ options @code{g77} passes by running @samp{g77 -v}.
@cindex cfortran.h @cindex cfortran.h
@cindex Netlib @cindex Netlib
Even if you don't actually use it as a compiler, @samp{f2c} from Even if you don't actually use it as a compiler, @samp{f2c} from
@url{ftp://ftp.netlib.org/f2c/src}, can be a useful tool when you're @uref{ftp://ftp.netlib.org/f2c/src}, can be a useful tool when you're
interfacing (linking) Fortran and C@. interfacing (linking) Fortran and C@.
@xref{f2c Skeletons and Prototypes,,Generating Skeletons and Prototypes with @code{f2c}}. @xref{f2c Skeletons and Prototypes,,Generating Skeletons and Prototypes with @code{f2c}}.
...@@ -7877,7 +7877,7 @@ build the @file{src} directory from the distribution, consult the ...@@ -7877,7 +7877,7 @@ build the @file{src} directory from the distribution, consult the
@code{f2c} program on your path. @code{f2c} program on your path.
Something else that might be useful is @samp{cfortran.h} from Something else that might be useful is @samp{cfortran.h} from
@url{ftp://zebra/desy.de/cfortran}. @uref{ftp://zebra/desy.de/cfortran}.
This is a fairly general tool which This is a fairly general tool which
can be used to generate interfaces for calling in both directions can be used to generate interfaces for calling in both directions
between Fortran and C@. between Fortran and C@.
...@@ -7921,8 +7921,8 @@ the return type of a @code{REAL} @code{FUNCTION}.) ...@@ -7921,8 +7921,8 @@ the return type of a @code{REAL} @code{FUNCTION}.)
@samp{-P} option to generate C prototypes appropriate for calling the @samp{-P} option to generate C prototypes appropriate for calling the
Fortran.@footnote{The files generated like this can also be used for Fortran.@footnote{The files generated like this can also be used for
inter-unit consistency checking of dummy and actual arguments, although inter-unit consistency checking of dummy and actual arguments, although
the @samp{ftnchek} tool from @url{ftp://ftp.netlib.org/fortran} the @samp{ftnchek} tool from @uref{ftp://ftp.netlib.org/fortran}
or @url{ftp://ftp.dsm.fordham.edu} is or @uref{ftp://ftp.dsm.fordham.edu} is
probably better for this purpose.} probably better for this purpose.}
If the Fortran code containing any If the Fortran code containing any
routines to be called from C is in file @file{joe.f}, use the command routines to be called from C is in file @file{joe.f}, use the command
...@@ -10164,7 +10164,7 @@ or installing @code{g77} is not provided here. ...@@ -10164,7 +10164,7 @@ or installing @code{g77} is not provided here.
To find out about major bugs discovered in the current release and To find out about major bugs discovered in the current release and
possible workarounds for them, retrieve possible workarounds for them, retrieve
@url{ftp://alpha.gnu.ai.mit.edu/g77.plan}. @uref{ftp://alpha.gnu.ai.mit.edu/g77.plan}.
(Note that some of this portion of the manual is lifted (Note that some of this portion of the manual is lifted
directly from the @code{gcc} manual, with minor modifications directly from the @code{gcc} manual, with minor modifications
...@@ -10270,7 +10270,7 @@ How to cope with such problems is well beyond the scope ...@@ -10270,7 +10270,7 @@ How to cope with such problems is well beyond the scope
of this manual. of this manual.
However, users of Linux-based systems (such as GNU/Linux) However, users of Linux-based systems (such as GNU/Linux)
should review @url{http://www.bitwizard.nl/sig11}, a source should review @uref{http://www.bitwizard.nl/sig11}, a source
of detailed information on diagnosing hardware problems, of detailed information on diagnosing hardware problems,
by recognizing their common symptoms. by recognizing their common symptoms.
...@@ -12272,8 +12272,8 @@ their use into selective changes in your own code. ...@@ -12272,8 +12272,8 @@ their use into selective changes in your own code.
@pindex ftncheck @pindex ftncheck
Validate your code with @code{ftnchek} or a similar code-checking Validate your code with @code{ftnchek} or a similar code-checking
tool. tool.
@code{ftncheck} can be found at @url{ftp://ftp.netlib.org/fortran} @code{ftncheck} can be found at @uref{ftp://ftp.netlib.org/fortran}
or @url{ftp://ftp.dsm.fordham.edu}. or @uref{ftp://ftp.dsm.fordham.edu}.
@item @item
Try your code out using other Fortran compilers, such as @code{f2c}. Try your code out using other Fortran compilers, such as @code{f2c}.
......
/* global.c -- Implementation File (module.c template V1.0) /* global.c -- Implementation File (module.c template V1.0)
Copyright (C) 1995 Free Software Foundation, Inc. Copyright (C) 1995, 1997 Free Software Foundation, Inc.
Contributed by James Craig Burley (burley@gnu.ai.mit.edu). Contributed by James Craig Burley (burley@gnu.ai.mit.edu).
This file is part of GNU Fortran. This file is part of GNU Fortran.
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
@c The text of this file appears in the 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 in the G77 distribution, as well as in the G77 manual.
@c 1997-08-17 @c 1997-09-09
@ifclear INSTALLONLY @ifclear INSTALLONLY
@node Installation @node Installation
...@@ -61,20 +61,21 @@ There are GNU versions of all these available---in fact, ...@@ -61,20 +61,21 @@ There are GNU versions of all these available---in fact,
a complete GNU UNIX system can be put together on a complete GNU UNIX system can be put together on
most systems, if desired. most systems, if desired.
=======
The version of GNU @code{gzip} used to package this release The version of GNU @code{gzip} used to package this release
is 1.24. is 1.24.
(The version of GNU @code{tar} used to package this release (The version of GNU @code{tar} used to package this release
is 1.11.2.) is 1.11.2.)
@item @file{gcc-2.7.2.2.tar.gz} @item @file{gcc-2.7.2.3.tar.gz}
You need to have this, or some other applicable, version You need to have this, or some other applicable, version
of @code{gcc} on your system. of @code{gcc} on your system.
The version should be an exact copy of a distribution The version should be an exact copy of a distribution
from the FSF. from the FSF.
Its size is approximately 7.1MB. Its size is approximately 7.1MB.
If you've already unpacked @file{gcc-2.7.2.2.tar.gz} into a If you've already unpacked @file{gcc-2.7.2.3.tar.gz} into a
directory (named @file{gcc-2.7.2.2}) called the @dfn{source tree} directory (named @file{gcc-2.7.2.3}) called the @dfn{source tree}
for @code{gcc}, you can delete the distribution for @code{gcc}, you can delete the distribution
itself, but you'll need to remember to skip any instructions to unpack itself, but you'll need to remember to skip any instructions to unpack
this distribution. this distribution.
...@@ -99,7 +100,7 @@ using, how you build @code{g77}, and how much of it you ...@@ -99,7 +100,7 @@ using, how you build @code{g77}, and how much of it you
install (primarily, which languages you install). install (primarily, which languages you install).
The sizes shown below assume all languages distributed The sizes shown below assume all languages distributed
in @code{gcc-2.7.2.2}, plus @code{g77}, will be built in @code{gcc-2.7.2.3}, plus @code{g77}, will be built
and installed. and installed.
These sizes are indicative of GNU/Linux systems on These sizes are indicative of GNU/Linux systems on
Intel x86 running COFF and on Digital Alpha (AXP) systems Intel x86 running COFF and on Digital Alpha (AXP) systems
...@@ -759,7 +760,7 @@ already reside in @file{/usr/FSF}, a naming convention ...@@ -759,7 +760,7 @@ already reside in @file{/usr/FSF}, a naming convention
used by the author of @code{g77} on his own system: used by the author of @code{g77} on his own system:
@example @example
/usr/FSF/gcc-2.7.2.2.tar.gz /usr/FSF/gcc-2.7.2.3.tar.gz
/usr/FSF/g77-0.5.21.tar.gz /usr/FSF/g77-0.5.21.tar.gz
@end example @end example
...@@ -801,20 +802,20 @@ These explanations follow this list of steps. ...@@ -801,20 +802,20 @@ These explanations follow this list of steps.
@example @example
sh[ 1]# @kbd{cd /usr/src} sh[ 1]# @kbd{cd /usr/src}
@set source-dir 1 @set source-dir 1
sh[ 2]# @kbd{gunzip -c < /usr/FSF/gcc-2.7.2.2.tar.gz | tar xf -} sh[ 2]# @kbd{gunzip -c < /usr/FSF/gcc-2.7.2.3.tar.gz | tar xf -}
[Might say "Broken pipe"...that is normal on some systems.] [Might say "Broken pipe"...that is normal on some systems.]
@set unpack-gcc 2 @set unpack-gcc 2
sh[ 3]# @kbd{gunzip -c < /usr/FSF/g77-0.5.21.tar.gz | tar xf -} sh[ 3]# @kbd{gunzip -c < /usr/FSF/g77-0.5.21.tar.gz | tar xf -}
["Broken pipe" again possible.] ["Broken pipe" again possible.]
@set unpack-g77 3 @set unpack-g77 3
sh[ 4]# @kbd{ln -s gcc-2.7.2.2 gcc} sh[ 4]# @kbd{ln -s gcc-2.7.2.3 gcc}
@set link-gcc 4 @set link-gcc 4
sh[ 5]# @kbd{ln -s g77-0.5.21 g77} sh[ 5]# @kbd{ln -s g77-0.5.21 g77}
@set link-g77 5 @set link-g77 5
sh[ 6]# @kbd{mv -i g77/* gcc} sh[ 6]# @kbd{mv -i g77/* gcc}
[No questions should be asked by mv here; or, you made a mistake.] [No questions should be asked by mv here; or, you made a mistake.]
@set merge-g77 6 @set merge-g77 6
sh[ 7]# @kbd{patch -p1 -V t -d gcc < gcc/f/gbe/2.7.2.2.diff} sh[ 7]# @kbd{patch -p1 -V t -d gcc < gcc/f/gbe/2.7.2.3.diff}
[Unless patch complains about rejected patches, this step worked.] [Unless patch complains about rejected patches, this step worked.]
@set apply-patch 7 @set apply-patch 7
sh[ 8]# @kbd{cd gcc} sh[ 8]# @kbd{cd gcc}
...@@ -882,7 +883,7 @@ version of @code{g77}, and then apply the appropriate patches ...@@ -882,7 +883,7 @@ version of @code{g77}, and then apply the appropriate patches
to achieve the same result---a source tree containing version to achieve the same result---a source tree containing version
0.5.21 of @code{g77}. 0.5.21 of @code{g77}.
@item Step @value{link-gcc}: @kbd{ln -s gcc-2.7.2.2 gcc} @item Step @value{link-gcc}: @kbd{ln -s gcc-2.7.2.3 gcc}
@item Step @value{link-g77}: @kbd{ln -s g77-0.5.21 g77} @item Step @value{link-g77}: @kbd{ln -s g77-0.5.21 g77}
These commands mainly help reduce typing, These commands mainly help reduce typing,
and help reduce visual clutter in examples and help reduce visual clutter in examples
...@@ -1105,9 +1106,9 @@ and @code{g77} is: ...@@ -1105,9 +1106,9 @@ and @code{g77} is:
@example @example
sh# @kbd{cd /usr/src} sh# @kbd{cd /usr/src}
sh# @kbd{gunzip -c /usr/FSF/gcc-2.7.2.2.tar.gz | tar xf -} sh# @kbd{gunzip -c /usr/FSF/gcc-2.7.2.3.tar.gz | tar xf -}
sh# @kbd{gunzip -c /usr/FSF/g77-0.5.21.tar.gz | tar xf -} sh# @kbd{gunzip -c /usr/FSF/g77-0.5.21.tar.gz | tar xf -}
sh# @kbd{ln -s gcc-2.7.2.2 gcc} sh# @kbd{ln -s gcc-2.7.2.3 gcc}
sh# @kbd{ln -s g77-0.5.21 g77} sh# @kbd{ln -s g77-0.5.21 g77}
sh# @kbd{mv -i g77/* gcc} sh# @kbd{mv -i g77/* gcc}
@end example @end example
...@@ -1133,7 +1134,7 @@ g77/f ...@@ -1133,7 +1134,7 @@ g77/f
All three entries should be moved (or copied) into a @code{gcc} All three entries should be moved (or copied) into a @code{gcc}
source tree (typically named after its version number and source tree (typically named after its version number and
as it appears in the FSF distributions---e.g. @file{gcc-2.7.2.2}). as it appears in the FSF distributions---e.g. @file{gcc-2.7.2.3}).
@file{g77/f} is the subdirectory containing all of the @file{g77/f} is the subdirectory containing all of the
code, documentation, and other information that is specific code, documentation, and other information that is specific
...@@ -1749,43 +1750,43 @@ sh# @kbd{./g77 --driver=./xgcc -B./ -v} ...@@ -1749,43 +1750,43 @@ sh# @kbd{./g77 --driver=./xgcc -B./ -v}
g77 version 0.5.21 g77 version 0.5.21
./xgcc -B./ -v -fnull-version -o /tmp/gfa18047 @dots{} ./xgcc -B./ -v -fnull-version -o /tmp/gfa18047 @dots{}
Reading specs from ./specs Reading specs from ./specs
gcc version 2.7.2.2.f.3 gcc version 2.7.2.3.f.1
./cpp -lang-c -v -isystem ./include -undef @dots{} ./cpp -lang-c -v -isystem ./include -undef @dots{}
GNU CPP version 2.7.2.2.f.3 (Linux/Alpha) GNU CPP version 2.7.2.3.f.1 (Linux/Alpha)
#include "..." search starts here: #include "..." search starts here:
#include <...> search starts here: #include <...> search starts here:
./include ./include
/usr/local/include /usr/local/include
/usr/alpha-unknown-linux/include /usr/alpha-unknown-linux/include
/usr/lib/gcc-lib/alpha-unknown-linux/2.7.2.2.f.3/include /usr/lib/gcc-lib/alpha-unknown-linux/2.7.2.3.f.1/include
/usr/include /usr/include
End of search list. End of search list.
./f771 /tmp/cca18048.i -fset-g77-defaults -quiet -dumpbase @dots{} ./f771 /tmp/cca18048.i -fset-g77-defaults -quiet -dumpbase @dots{}
GNU F77 version 2.7.2.2.f.3 (Linux/Alpha) compiled @dots{} GNU F77 version 2.7.2.3.f.1 (Linux/Alpha) compiled @dots{}
GNU Fortran Front End version 0.5.21 compiled: @dots{} GNU Fortran Front End version 0.5.21 compiled: @dots{}
as -nocpp -o /tmp/cca180481.o /tmp/cca18048.s as -nocpp -o /tmp/cca180481.o /tmp/cca18048.s
ld -G 8 -O1 -o /tmp/gfa18047 /usr/lib/crt0.o -L. @dots{} ld -G 8 -O1 -o /tmp/gfa18047 /usr/lib/crt0.o -L. @dots{}
__G77_LIBF77_VERSION__: 0.5.21 __G77_LIBF77_VERSION__: 0.5.21
@@(#)LIBF77 VERSION 19970404 @@(#)LIBF77 VERSION 19970404
__G77_LIBI77_VERSION__: 0.5.21 __G77_LIBI77_VERSION__: 0.5.21
@@(#) LIBI77 VERSION pjw,dmg-mods 19970527 @@(#) LIBI77 VERSION pjw,dmg-mods 19970816
__G77_LIBU77_VERSION__: 0.5.21 __G77_LIBU77_VERSION__: 0.5.21
@@(#) LIBU77 VERSION 19970609 @@(#) LIBU77 VERSION 19970609
sh# @kbd{./xgcc -B./ -v -o /tmp/delete-me -xc /dev/null -xnone} sh# @kbd{./xgcc -B./ -v -o /tmp/delete-me -xc /dev/null -xnone}
Reading specs from ./specs Reading specs from ./specs
gcc version 2.7.2.2.f.3 gcc version 2.7.2.3.f.1
./cpp -lang-c -v -isystem ./include -undef @dots{} ./cpp -lang-c -v -isystem ./include -undef @dots{}
GNU CPP version 2.7.2.2.f.3 (Linux/Alpha) GNU CPP version 2.7.2.3.f.1 (Linux/Alpha)
#include "..." search starts here: #include "..." search starts here:
#include <...> search starts here: #include <...> search starts here:
./include ./include
/usr/local/include /usr/local/include
/usr/alpha-unknown-linux/include /usr/alpha-unknown-linux/include
/usr/lib/gcc-lib/alpha-unknown-linux/2.7.2.2.f.3/include /usr/lib/gcc-lib/alpha-unknown-linux/2.7.2.3.f.1/include
/usr/include /usr/include
End of search list. End of search list.
./cc1 /tmp/cca18063.i -quiet -dumpbase null.c -version @dots{} ./cc1 /tmp/cca18063.i -quiet -dumpbase null.c -version @dots{}
GNU C version 2.7.2.2.f.3 (Linux/Alpha) compiled @dots{} GNU C version 2.7.2.3.f.1 (Linux/Alpha) compiled @dots{}
as -nocpp -o /tmp/cca180631.o /tmp/cca18063.s as -nocpp -o /tmp/cca180631.o /tmp/cca18063.s
ld -G 8 -O1 -o /tmp/delete-me /usr/lib/crt0.o -L. @dots{} ld -G 8 -O1 -o /tmp/delete-me /usr/lib/crt0.o -L. @dots{}
/usr/lib/crt0.o: In function `__start': /usr/lib/crt0.o: In function `__start':
......
...@@ -282,6 +282,8 @@ dumpem () ...@@ -282,6 +282,8 @@ dumpem ()
summaries[cc_summaries[i].imp] = cc_summaries[i].text; summaries[cc_summaries[i].imp] = cc_summaries[i].text;
} }
printf ("@c This file is automatically derived from intdoc.c, intdoc.in,\n");
printf ("@c ansify.c, intrin.def, and intrin.h. Edit those files instead.\n");
printf ("@menu\n"); printf ("@menu\n");
for (i = 0; ((size_t) i) < ARRAY_SIZE (names); ++i) for (i = 0; ((size_t) i) < ARRAY_SIZE (names); ++i)
{ {
......
@c This file is automatically derived from intdoc.c, intdoc.in,
@c ansify.c, intrin.def, and intrin.h. Edit those files instead.
@menu @menu
@ifset familyF2U @ifset familyF2U
* Abort Intrinsic:: Abort the program. * Abort Intrinsic:: Abort the program.
......
/* intrin.h -- Public interface for intrin.c /* intrin.h -- Public interface for intrin.c
Copyright (C) 1995, 1996 Free Software Foundation, Inc. Copyright (C) 1995-1997 Free Software Foundation, Inc.
Contributed by James Craig Burley (burley@gnu.ai.mit.edu). Contributed by James Craig Burley (burley@gnu.ai.mit.edu).
This file is part of GNU Fortran. This file is part of GNU Fortran.
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
@c The text of this file appears in the 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 in the G77 distribution, as well as in the G77 manual.
@c 1997-08-25 @c 1997-09-09
@ifclear NEWSONLY @ifclear NEWSONLY
@node News @node News
...@@ -152,6 +152,13 @@ of arguments exist. ...@@ -152,6 +152,13 @@ of arguments exist.
This avoids a compiler crash. This avoids a compiler crash.
@item @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.
@item
Improve performance of the @code{gcc} back end so Improve performance of the @code{gcc} back end so
certain complicated expressions involving @code{COMPLEX} certain complicated expressions involving @code{COMPLEX}
arithmetic (especially multiplication) don't appear to arithmetic (especially multiplication) don't appear to
...@@ -164,12 +171,13 @@ back end. ...@@ -164,12 +171,13 @@ back end.
@item @item
Integrate GNU Ada's (GNAT's) changes to the back end, Integrate GNU Ada's (GNAT's) changes to the back end,
which consist almost entirely of bug fixes. which consist almost entirely of bug fixes.
These fixes are circa version 3.10p of GNAT.
@item @item
Include some other @code{gcc} fixes that seem useful in Include some other @code{gcc} fixes that seem useful in
@code{g77}'s version of @code{gcc}. @code{g77}'s version of @code{gcc}.
(See @file{gcc/ChangeLog} for details---compare it (See @file{gcc/ChangeLog} for details---compare it
to that file in the vanilla @code{gcc-2.7.2.2.tar.gz} to that file in the vanilla @code{gcc-2.7.2.3.tar.gz}
distribution.) distribution.)
@item @item
...@@ -224,15 +232,25 @@ during the assembler or linker phase, a compiler ...@@ -224,15 +232,25 @@ during the assembler or linker phase, a compiler
crash, or generation of incorrect code. crash, or generation of incorrect code.
@item @item
Improve alias analysis code to properly handle Make some fixes to alias analysis code.
output registers (such as the @samp{%o} registers
on the SPARC).
@item @item
Add support for @code{restrict} keyword in @code{gcc} Add support for @code{restrict} keyword in @code{gcc}
front end. front end.
@item @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}.
@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.
@item
Modify @code{make} rules and related code so that Modify @code{make} rules and related code so that
generation of Info documentation doesn't require generation of Info documentation doesn't require
compilation using @code{gcc}. compilation using @code{gcc}.
...@@ -269,10 +287,6 @@ Fix @code{libf2c} build procedure to re-archive library ...@@ -269,10 +287,6 @@ Fix @code{libf2c} build procedure to re-archive library
if previous attempt to archive was interrupted. if previous attempt to archive was interrupted.
@item @item
Fix @code{gcc} to more easily support configuring on
Pentium Pro (686) systems.
@item
Change @code{gcc} to unroll loops only during the last Change @code{gcc} to unroll loops only during the last
invocation (of as many as two invocations) of loop invocation (of as many as two invocations) of loop
optimization. optimization.
......
...@@ -64,6 +64,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA ...@@ -64,6 +64,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
/* Include files everyone gets. */ /* Include files everyone gets. */
#include "config.j" /* Must come before any other #includes in gcc. */
#include "assert.j" /* Use gcc's assert.h. */ #include "assert.j" /* Use gcc's assert.h. */
#include <stdio.h> #include <stdio.h>
#include <stddef.h> #include <stddef.h>
......
Tue Sep 9 00:33:24 1997 Craig Burley <burley@gnu.ai.mit.edu>
* Version 0.5.21 released.
Mon Sep 8 19:39:01 1997 Craig Burley <burley@gnu.ai.mit.edu>
* libI77/close.c (f_exit): Fix thinko, inverted test
of whether initialization done, so exiting now closes
open units again.
Tue Aug 26 01:42:21 1997 Craig Burley <burley@gnu.ai.mit.edu> Tue Aug 26 01:42:21 1997 Craig Burley <burley@gnu.ai.mit.edu>
From Jim Wilson: From Jim Wilson:
......
...@@ -174,7 +174,7 @@ all: ../../include/f2c.h $(lib) ...@@ -174,7 +174,7 @@ all: ../../include/f2c.h $(lib)
$(lib): stamp-lib ; @true $(lib): stamp-lib ; @true
stamp-lib: stamp-libf77 stamp-libi77 stamp-libu77 stamp-lib: stamp-libf77 stamp-libi77 stamp-libu77
rm -f stamp-lib rm -f stamp-lib
$(AR) $(AR_FLAGS) $(lib) $(FOBJ) $(IOBJ) $(UOBJ) $(AR) $(AR_FLAGS) $(lib) $?
rm -fr libE77 rm -fr libE77
mkdir libE77 mkdir libE77
for name in $(F2CEXT); \ for name in $(F2CEXT); \
......
...@@ -3,7 +3,7 @@ static char junk[] = "\n@(#) LIBI77 VERSION pjw,dmg-mods 19970816\n"; ...@@ -3,7 +3,7 @@ static char junk[] = "\n@(#) LIBI77 VERSION pjw,dmg-mods 19970816\n";
/* /*
*/ */
char __G77_LIBI77_VERSION__[] = "0.5.21-19970811"; char __G77_LIBI77_VERSION__[] = "0.5.21";
/* /*
2.01 $ format added 2.01 $ format added
......
...@@ -27,7 +27,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -27,7 +27,7 @@ Boston, MA 02111-1307, USA. */
#if HAVE_UNISTD_H #if HAVE_UNISTD_H
# include <unistd.h> # include <unistd.h>
#endif #endif
#include <errno.h> #include <errno.h> /* for ENOSYS */
#include "f2c.h" #include "f2c.h"
integer G77_hostnm_0 (char *name, ftnlen Lname) integer G77_hostnm_0 (char *name, ftnlen Lname)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment