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>
* ansify.c (main): Make sure readers of stdout know
......
......@@ -38,13 +38,16 @@ follow the `g77' installation instructions:
available--in fact, a complete GNU UNIX system can be put together
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'
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
(named `gcc-2.7.2.2') called the "source tree" for `gcc', you can
If you've already unpacked `gcc-2.7.2.3.tar.gz' into a directory
(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
skip any instructions to unpack this distribution.
......@@ -52,27 +55,85 @@ follow the `g77' installation instructions:
You can obtain an FSF distribution of `gcc' from the FSF.
`g77-0.5.21.tar.gz'
You probably have already unpacked this distribution, or you are
reading an advanced copy of this manual, which is contained in
this distribution. This distribution approximately 1MB large.
You probably have already unpacked this package, or you are
reading an advance copy of these installation instructions, which
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
way you obtained `gcc'.
100MB disk space
For a complete "bootstrap" build, about 100MB of disk space is
required for `g77' by the author's current GNU/Linux system.
Some juggling can reduce the amount of space needed; during the
bootstrap process, once Stage 3 starts, during which the version
of `gcc' that has been copied into the `stage2/' directory is used
to rebuild the system, you can delete the `stage1/' directory to
free up some space.
It is likely that many systems don't require the complete
bootstrap build, as they already have a recent version of `gcc'
installed. Such systems might be able to build `g77' with only
about 75MB of free space.
Enough disk space
The amount of disk space needed to unpack, build, install, and use
`g77' depends on the type of system you're using, how you build
`g77', and how much of it you install (primarily, which languages
you install).
The sizes shown below assume all languages distributed in
`gcc-2.7.2.3', plus `g77', will be built and installed. These
sizes are indicative of GNU/Linux systems on Intel x86 running
COFF and on Digital Alpha (AXP) systems running ELF. These should
be fairly representative of 32-bit and 64-bit systems,
respectively.
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'
Although you can do everything `patch' does yourself, by hand,
......@@ -84,11 +145,15 @@ follow the `g77' installation instructions:
In any case, you can apply patches by hand--patch files are
designed for humans to read them.
The version of GNU `patch' used to develop this release is 2.4.
`make'
Your system must have `make', and you will probably save yourself
a lot of trouble if it is GNU `make' (sometimes referred to as
`gmake').
The version of GNU `make' used to develop this release is 3.73.
`cc'
Your system must have a working C compiler.
......@@ -102,6 +167,8 @@ follow the `g77' installation instructions:
distribution. You can obtain `bison' the same way you obtained
`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
having `bison'.
......@@ -110,12 +177,27 @@ follow the `g77' installation instructions:
need for it. You can obtain `makeinfo' the same way you obtained
`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
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
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')
can be performed by any user with enough disk space and virtual
......@@ -282,7 +364,7 @@ reasons.
* Improvements to the way `libf2c' is built could make building
`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
run-time libraries (needed by `libf2c') for a target system,
......@@ -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
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
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.
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.]
sh[ 3]# gunzip -c < /usr/FSF/g77-0.5.21.tar.gz | tar xf -
["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[ 6]# mv -i g77/* gcc
[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.]
sh[ 8]# cd gcc
......@@ -531,15 +613,22 @@ of some of the steps. These explanations follow this list of steps.
sh[12]# make bootstrap
[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.]
sh[15]# g77 -v
sh[16]# g77 -v
[Verify that g77 is installed, obtain version info.]
sh[16]#
sh[17]#
*Note Updating Your Info Directory: Updating Documentation, for
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 -'
achieve the same result--a source tree containing version 0.5.21
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'
These commands mainly help reduce typing, and help reduce visual
......@@ -641,10 +730,18 @@ Step 12: `make bootstrap'
*Note Building gcc::, for complete `g77'-specific information on
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.
Step 14: `make -k install'
Step 15: `make -k install'
If this doesn't seem to work, try:
make -k install install-libf77 install-f2c-all
......@@ -655,7 +752,7 @@ Step 14: `make -k install'
information on entering this manual into your system's list of
texinfo manuals.
Step 15: `g77 -v'
Step 16: `g77 -v'
If this command prints approximately 25 lines of output, including
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
......@@ -723,9 +820,9 @@ generally only the documentation is immediately usable.
A sequence of commands typically used to unpack `gcc' and `g77' is:
sh# cd /usr/src
sh# gunzip -d < /usr/FSF/gcc-2.7.2.2.tar.gz | tar xf -
sh# gunzip -d < /usr/FSF/g77-0.5.21.tar.gz | tar xf -
sh# ln -s gcc-2.7.2.2 gcc
sh# gunzip -c /usr/FSF/gcc-2.7.2.3.tar.gz | tar xf -
sh# gunzip -c /usr/FSF/g77-0.5.21.tar.gz | tar xf -
sh# ln -s gcc-2.7.2.3 gcc
sh# ln -s g77-0.5.21 g77
sh# mv -i g77/* gcc
......@@ -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
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,
documentation, and other information that is specific to `g77'. The
......@@ -1214,43 +1311,43 @@ them when they work:
g77 version 0.5.21
./xgcc -B./ -v -fnull-version -o /tmp/gfa18047 ...
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 ...
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
/usr/local/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
End of search list.
./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: ...
as -nocpp -o /tmp/cca180481.o /tmp/cca18048.s
ld -G 8 -O1 -o /tmp/gfa18047 /usr/lib/crt0.o -L. ...
__G77_LIBF77_VERSION__: 0.5.21
@(#)LIBF77 VERSION 19970404
__G77_LIBI77_VERSION__: 0.5.21
@(#) LIBI77 VERSION pjw,dmg-mods 19970527
@(#) LIBI77 VERSION pjw,dmg-mods 19970816
__G77_LIBU77_VERSION__: 0.5.21
@(#) LIBU77 VERSION 19970609
sh# ./xgcc -B./ -v -o /tmp/delete-me -xc /dev/null -xnone
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 ...
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
/usr/local/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
End of search list.
./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
ld -G 8 -O1 -o /tmp/delete-me /usr/lib/crt0.o -L. ...
/usr/lib/crt0.o: In function `__start':
......
......@@ -37,6 +37,7 @@
# - define the names for selecting the language in LANGUAGES.
#
# $(srcdir) must be set to the gcc/ source directory (not gcc/f/).
#
# Extra flags to pass to recursive makes (and to sub-configure).
# Use different quoting rules compared with FLAGS_TO_PASS so we can use
# this to set environment variables as well
......@@ -92,6 +93,7 @@ G77_INSTALL_NAME = `t='$(program_transform_name)'; echo g77 | sed $$t`
# Actual names to use when installing a cross-compiler.
F77_CROSS_NAME = `t='$(program_transform_cross_name)'; echo f77 | sed $$t`
G77_CROSS_NAME = `t='$(program_transform_cross_name)'; echo g77 | sed $$t`
#
# Define the names for selecting f77 in LANGUAGES.
# Note that it would be nice to move the dependency on g77
# into the F77 rule, but that needs a little bit of work
......@@ -309,6 +311,7 @@ f/runtime/libU77/Makefile: stmp-f2c.h
# $(srcdir)/config/$(xmake_file) $(srcdir)/config/$(tmake_file)
# top=`pwd`; cd f/f2c; \
# $${top}/f/f2c/configure --srcdir=$${top}/f/f2c
#
# Build hooks:
# 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
--no-validate news0.texi -o NEWS
$(srcdir)/f/runtime/configure: $(srcdir)/f/runtime/configure.in
case $(srcdir) in \
/*) 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
cd $(srcdir)/f/runtime && $(MAKE) srcdir=. -f Makefile.in rebuilt
$(srcdir)/f/runtime/libU77/configure: $(srcdir)/f/runtime/libU77/configure.in
case $(srcdir) in \
/*) 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
cd $(srcdir)/f/runtime && $(MAKE) srcdir=. -f Makefile.in rebuilt
f77.rebuilt: $(srcdir)/f/g77.info $(srcdir)/f/BUGS $(srcdir)/f/INSTALL \
$(srcdir)/f/NEWS $(srcdir)/f/runtime/configure \
$(srcdir)/f/runtime/libU77/configure
......@@ -389,6 +387,7 @@ f77.rebuilt: $(srcdir)/f/g77.info $(srcdir)/f/BUGS $(srcdir)/f/INSTALL \
maybe-f2c:
#For now, omit f2c stuff. -- burley
# case "$(STAGESTUFF)" in *f2c*) $(MAKE) f2c;; esac
#
# Install hooks:
# f771 is installed elsewhere as part of $(COMPILERS).
......@@ -511,6 +510,7 @@ f77.uninstall:
rm -rf include/f2c.h ; \
rm -rf $(libdir)/libf2c.a ; \
fi
#
# Clean hooks:
# A lot of the ancillary files are deleted by the main makefile.
# We just have to delete files specific to us.
......@@ -518,19 +518,12 @@ f77.uninstall:
f77.mostlyclean:
-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
-case $(srcdir) in \
/*) cd f/runtime; $(MAKE) -f $(srcdir)/f/runtime/Makefile.in mostlyclean;; \
*) cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in mostlyclean;; \
esac
-cd $(srcdir)/f/runtime; $(MAKE) -f Makefile.in mostlyclean
f77.clean:
-case $(srcdir) in \
/*) cd f/runtime; $(MAKE) -f $(srcdir)/f/runtime/Makefile.in clean;; \
*) cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in clean;; \
-cd $(srcdir)/f/runtime; $(MAKE) -f Makefile.in clean;; \
esac
f77.distclean:
-case $(srcdir) in \
/*) cd f/runtime; $(MAKE) -f $(srcdir)/f/runtime/Makefile.in distclean;; \
*) cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in distclean;; \
-cd $(srcdir)/f/runtime; $(MAKE) -f Makefile.in distclean;; \
esac
-rm -f f/Makefile
# like gcc's extraclean, which does clean f/ for us, but not f/gbe,
......@@ -549,11 +542,10 @@ f77.extraclean: f77.distclean
-rm -f f/*/*/*lose f/*/*/*.s f/*/*/*.s[0-9] f/*/*/*.i
# realclean is the pre-2.7.0 name for maintainer-clean
f77.maintainer-clean f77.realclean: f77.distclean
-case $(srcdir) in \
/*) cd f/runtime; $(MAKE) -f $(srcdir)/f/runtime/Makefile.in maintainer-clean;; \
*) cd f/runtime; $(MAKE) -f ../../$(srcdir)/f/runtime/Makefile.in maintainer-clean;; \
-cd $(srcdir)/f/runtime; $(MAKE) -f Makefile.in maintainer-clean;; \
esac
-rm -f f/g77.info* f/g77.*aux f/TAGS f/BUGS f/INSTALL f/NEWS f/intdoc.texi
#
# Stage hooks:
# The main makefile has already created stage?/f.
......@@ -590,6 +582,7 @@ f77.stage4:
-mv $(LIBF77STAGESTUFF) stage4/f/runtime/libF77
-mv $(LIBI77STAGESTUFF) stage4/f/runtime/libI77
-mv $(LIBU77STAGESTUFF) stage4/f/runtime/libU77
#
# Maintenance hooks:
# This target creates the files that can be rebuilt, but go in the
......
......@@ -136,6 +136,7 @@ all: all.indirect
####host overrides
####cross overrides
####build overrides
#
# Now figure out from those variables how to compile and link.
all.indirect: f/Makefile f771
......@@ -201,6 +202,7 @@ FLAGS_TO_PASS = \
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< -o $@
#
# Lists of files for various purposes.
# Language-specific object files for g77
......@@ -265,6 +267,7 @@ f/Makefile:
Makefile: $(srcdir)/f/Makefile.in $(srcdir)/configure
native: f771
#
# Compiling object files from source files.
# Note that dependencies on obstack.h are not written
......@@ -543,6 +546,7 @@ deps-kinda:
-e 's: \([.]/\)*f/str[.]h: f/stamp-str:g' \
-e 's%^\(.*\)[ ]*: %f/\1: %g'
#
# These exist for maintenance purposes.
# Update the tags table.
......
......@@ -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 1996-08-19
@c 1996-09-09
@ifclear BUGSONLY
@node Actual Bugs
......@@ -25,21 +25,8 @@ configure, port, build, and install @code{g77},
@ref{Problems Installing}.
@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 -O2
@item
@code{g77}'s version of @code{gcc}, and probably @code{g77}
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}.
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 intrinsics, SIGNAL()
@item
......
......@@ -13874,9 +13874,9 @@ duplicate_decls (tree newdecl, tree olddecl)
{
register unsigned olddecl_uid = DECL_UID (olddecl);
bcopy ((char *) newdecl + sizeof (struct tree_common),
(char *) olddecl + sizeof (struct tree_common),
sizeof (struct tree_decl) - sizeof (struct tree_common));
memcpy ((char *) olddecl + sizeof (struct tree_common),
(char *) newdecl + sizeof (struct tree_common),
sizeof (struct tree_decl) - sizeof (struct tree_common));
DECL_UID (olddecl) = olddecl_uid;
}
......@@ -15744,7 +15744,7 @@ open_include_file (filename, searchptr)
else
{
dir = (char *) xmalloc (p - filename + 1);
bcopy (filename, dir, p - filename);
memcpy (dir, filename, p - filename);
dir[p - filename] = '\0';
from = p + 1;
map = read_name_map (dir);
......@@ -15958,7 +15958,7 @@ ffecom_file_ (char *name)
early #line directives (when -g is in effect). */
fp = &instack[++indepth];
bzero ((char *) fp, sizeof (FILE_BUF));
memset ((char *) fp, 0, sizeof (FILE_BUF));
if (name == NULL)
name = "";
fp->nominal_fname = fp->fname = name;
......@@ -16218,7 +16218,7 @@ ffecom_open_include_ (char *name, ffewhereLine l, ffewhereColumn c)
instack[indepth].column = ffewhere_column_use (c);
fp = &instack[indepth + 1];
bzero ((char *) fp, sizeof (FILE_BUF));
memset ((char *) fp, 0, sizeof (FILE_BUF));
fp->nominal_fname = fp->fname = fname;
fp->dir = searchptr;
......
......@@ -102,7 +102,7 @@ was contributed to Craig by David Ronis (@email{ronis@@onsager.chem.mcgill.ca}).
@sp 2
@center James Craig Burley
@sp 3
@center Last updated 1997-08-24
@center Last updated 1997-09-09
@sp 1
@c The version number appears some more times in this file.
......@@ -3251,7 +3251,7 @@ users use @code{g77}.
such changes to @code{g77}.
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
@email{fortran@@gnu.ai.mit.edu} asking for a recent copy of the
GNU Fortran @file{.plan} file.
......@@ -3699,8 +3699,8 @@ way through the compilation process instead of being lost.
GNU Fortran supports a variety of extensions to, and dialects
of, the Fortran language.
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}
or in @url{ftp://ftp.ast.cam.ac.uk/pub/michael/}.
the network at @uref{http://kumo.swcp.com/fortran/F77_std/f77_std.html}
or in @uref{ftp://ftp.ast.cam.ac.uk/pub/michael/}.
It offers some extensions that are popular among users
of UNIX @code{f77} and @code{f2c} compilers, some that
are popular among users of other compilers (such as Digital
......@@ -3711,7 +3711,7 @@ by GNU Fortran.
@cindex textbooks
(If you need a text on Fortran,
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
system, such as @code{g77}, is the particular characteristics
......@@ -7867,7 +7867,7 @@ options @code{g77} passes by running @samp{g77 -v}.
@cindex cfortran.h
@cindex Netlib
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@.
@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
@code{f2c} program on your path.
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
can be used to generate interfaces for calling in both directions
between Fortran and C@.
......@@ -7921,8 +7921,8 @@ the return type of a @code{REAL} @code{FUNCTION}.)
@samp{-P} option to generate C prototypes appropriate for calling the
Fortran.@footnote{The files generated like this can also be used for
inter-unit consistency checking of dummy and actual arguments, although
the @samp{ftnchek} tool from @url{ftp://ftp.netlib.org/fortran}
or @url{ftp://ftp.dsm.fordham.edu} is
the @samp{ftnchek} tool from @uref{ftp://ftp.netlib.org/fortran}
or @uref{ftp://ftp.dsm.fordham.edu} is
probably better for this purpose.}
If the Fortran code containing any
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.
To find out about major bugs discovered in the current release and
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
directly from the @code{gcc} manual, with minor modifications
......@@ -10270,7 +10270,7 @@ How to cope with such problems is well beyond the scope
of this manual.
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,
by recognizing their common symptoms.
......@@ -12272,8 +12272,8 @@ their use into selective changes in your own code.
@pindex ftncheck
Validate your code with @code{ftnchek} or a similar code-checking
tool.
@code{ftncheck} can be found at @url{ftp://ftp.netlib.org/fortran}
or @url{ftp://ftp.dsm.fordham.edu}.
@code{ftncheck} can be found at @uref{ftp://ftp.netlib.org/fortran}
or @uref{ftp://ftp.dsm.fordham.edu}.
@item
Try your code out using other Fortran compilers, such as @code{f2c}.
......
/* 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).
This file is part of GNU Fortran.
......
......@@ -5,7 +5,7 @@
@c The text of this file appears in the file INSTALL
@c in the G77 distribution, as well as in the G77 manual.
@c 1997-08-17
@c 1997-09-09
@ifclear INSTALLONLY
@node Installation
......@@ -61,20 +61,21 @@ There are GNU versions of all these available---in fact,
a complete GNU UNIX system can be put together on
most systems, if desired.
=======
The version of GNU @code{gzip} used to package this release
is 1.24.
(The version of GNU @code{tar} used to package this release
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
of @code{gcc} on your system.
The version should be an exact copy of a distribution
from the FSF.
Its size is approximately 7.1MB.
If you've already unpacked @file{gcc-2.7.2.2.tar.gz} into a
directory (named @file{gcc-2.7.2.2}) called the @dfn{source tree}
If you've already unpacked @file{gcc-2.7.2.3.tar.gz} into a
directory (named @file{gcc-2.7.2.3}) called the @dfn{source tree}
for @code{gcc}, you can delete the distribution
itself, but you'll need to remember to skip any instructions to unpack
this distribution.
......@@ -99,7 +100,7 @@ using, how you build @code{g77}, and how much of it you
install (primarily, which languages you install).
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.
These sizes are indicative of GNU/Linux systems on
Intel x86 running COFF and on Digital Alpha (AXP) systems
......@@ -759,7 +760,7 @@ already reside in @file{/usr/FSF}, a naming convention
used by the author of @code{g77} on his own system:
@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
@end example
......@@ -801,20 +802,20 @@ These explanations follow this list of steps.
@example
sh[ 1]# @kbd{cd /usr/src}
@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.]
@set unpack-gcc 2
sh[ 3]# @kbd{gunzip -c < /usr/FSF/g77-0.5.21.tar.gz | tar xf -}
["Broken pipe" again possible.]
@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
sh[ 5]# @kbd{ln -s g77-0.5.21 g77}
@set link-g77 5
sh[ 6]# @kbd{mv -i g77/* gcc}
[No questions should be asked by mv here; or, you made a mistake.]
@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.]
@set apply-patch 7
sh[ 8]# @kbd{cd gcc}
......@@ -882,7 +883,7 @@ version of @code{g77}, and then apply the appropriate patches
to achieve the same result---a source tree containing version
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}
These commands mainly help reduce typing,
and help reduce visual clutter in examples
......@@ -1105,9 +1106,9 @@ and @code{g77} is:
@example
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{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{mv -i g77/* gcc}
@end example
......@@ -1133,7 +1134,7 @@ g77/f
All three entries should be moved (or copied) into a @code{gcc}
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
code, documentation, and other information that is specific
......@@ -1749,43 +1750,43 @@ sh# @kbd{./g77 --driver=./xgcc -B./ -v}
g77 version 0.5.21
./xgcc -B./ -v -fnull-version -o /tmp/gfa18047 @dots{}
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{}
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
/usr/local/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
End of search list.
./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{}
as -nocpp -o /tmp/cca180481.o /tmp/cca18048.s
ld -G 8 -O1 -o /tmp/gfa18047 /usr/lib/crt0.o -L. @dots{}
__G77_LIBF77_VERSION__: 0.5.21
@@(#)LIBF77 VERSION 19970404
__G77_LIBI77_VERSION__: 0.5.21
@@(#) LIBI77 VERSION pjw,dmg-mods 19970527
@@(#) LIBI77 VERSION pjw,dmg-mods 19970816
__G77_LIBU77_VERSION__: 0.5.21
@@(#) LIBU77 VERSION 19970609
sh# @kbd{./xgcc -B./ -v -o /tmp/delete-me -xc /dev/null -xnone}
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{}
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
/usr/local/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
End of search list.
./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
ld -G 8 -O1 -o /tmp/delete-me /usr/lib/crt0.o -L. @dots{}
/usr/lib/crt0.o: In function `__start':
......
......@@ -282,6 +282,8 @@ dumpem ()
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");
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
@ifset familyF2U
* Abort Intrinsic:: Abort the program.
......
/* 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).
This file is part of GNU Fortran.
......
......@@ -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 1997-08-25
@c 1997-09-09
@ifclear NEWSONLY
@node News
......@@ -152,6 +152,13 @@ of arguments exist.
This avoids a compiler crash.
@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
certain complicated expressions involving @code{COMPLEX}
arithmetic (especially multiplication) don't appear to
......@@ -164,12 +171,13 @@ back end.
@item
Integrate GNU Ada's (GNAT's) changes to the back end,
which consist almost entirely of bug fixes.
These fixes are circa version 3.10p of GNAT.
@item
Include some other @code{gcc} fixes that seem useful in
@code{g77}'s version of @code{gcc}.
(See @file{gcc/ChangeLog} for details---compare it
to that file in the vanilla @code{gcc-2.7.2.2.tar.gz}
to that file in the vanilla @code{gcc-2.7.2.3.tar.gz}
distribution.)
@item
......@@ -224,15 +232,25 @@ during the assembler or linker phase, a compiler
crash, or generation of incorrect code.
@item
Improve alias analysis code to properly handle
output registers (such as the @samp{%o} registers
on the SPARC).
Make some fixes to alias analysis code.
@item
Add support for @code{restrict} keyword in @code{gcc}
front end.
@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
generation of Info documentation doesn't require
compilation using @code{gcc}.
......@@ -269,10 +287,6 @@ Fix @code{libf2c} build procedure to re-archive library
if previous attempt to archive was interrupted.
@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
invocation (of as many as two invocations) of loop
optimization.
......
......@@ -64,6 +64,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
/* Include files everyone gets. */
#include "config.j" /* Must come before any other #includes in gcc. */
#include "assert.j" /* Use gcc's assert.h. */
#include <stdio.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>
From Jim Wilson:
......
......@@ -174,7 +174,7 @@ all: ../../include/f2c.h $(lib)
$(lib): stamp-lib ; @true
stamp-lib: stamp-libf77 stamp-libi77 stamp-libu77
rm -f stamp-lib
$(AR) $(AR_FLAGS) $(lib) $(FOBJ) $(IOBJ) $(UOBJ)
$(AR) $(AR_FLAGS) $(lib) $?
rm -fr libE77
mkdir libE77
for name in $(F2CEXT); \
......
......@@ -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
......
......@@ -27,7 +27,7 @@ Boston, MA 02111-1307, USA. */
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <errno.h>
#include <errno.h> /* for ENOSYS */
#include "f2c.h"
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