aboutsummaryrefslogtreecommitdiff
path: root/gcc/f/install.texi
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/f/install.texi')
-rw-r--r--gcc/f/install.texi170
1 files changed, 111 insertions, 59 deletions
diff --git a/gcc/f/install.texi b/gcc/f/install.texi
index 3271eeabc82..4702bf54b4c 100644
--- a/gcc/f/install.texi
+++ b/gcc/f/install.texi
@@ -5,7 +5,19 @@
@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-09-09
+@c 1998-03-15
+
+@set version-g77 0.5.22
+@set version-gcc 2.7.2.3
+@set version-gcc-patched 2.7.2.3.f.2
+@set version-gzip 1.2.4
+@set version-tar 1.12
+@set version-patch 2.5
+@set version-make 3.76.1
+@set version-bison 1.25
+@set version-makeinfo 1.68
+@set version-texinfo 3.11
+@set version-sed 2.05
@ifclear INSTALLONLY
@node Installation
@@ -62,19 +74,19 @@ 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.
+is @value{version-gzip}.
(The version of GNU @code{tar} used to package this release
-is 1.11.2.)
+is @value{version-tar}.)
-@item @file{gcc-2.7.2.3.tar.gz}
+@item @file{gcc-@value{version-gcc}.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.3.tar.gz} into a
-directory (named @file{gcc-2.7.2.3}) called the @dfn{source tree}
+If you've already unpacked @file{gcc-@value{version-gcc}.tar.gz} into a
+directory (named @file{gcc-@value{version-gcc}}) 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.
@@ -83,7 +95,7 @@ Without an applicable @code{gcc} source tree, you cannot
build @code{g77}.
You can obtain an FSF distribution of @code{gcc} from the FSF.
-@item @file{g77-0.5.21.tar.gz}
+@item @file{g77-@value{version-g77}.tar.gz}
You probably have already unpacked this package,
or you are reading an advance copy of these installation instructions,
which are contained in this distribution.
@@ -99,7 +111,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.3}, plus @code{g77}, will be built
+in @code{gcc-@value{version-gcc}}, 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
@@ -198,7 +210,7 @@ In any case, you can apply patches by hand---patch files
are designed for humans to read them.
The version of GNU @code{patch} used to develop this release
-is 2.4.
+is @value{version-patch}.
@item @code{make}
Your system must have @code{make}, and you will probably save
@@ -206,7 +218,7 @@ yourself a lot of trouble if it is GNU @code{make} (sometimes
referred to as @code{gmake}).
The version of GNU @code{make} used to develop this release
-is 3.73.
+is @value{version-make}.
@item @code{cc}
Your system must have a working C compiler.
@@ -223,7 +235,7 @@ You can obtain @code{bison} the same way you obtained
@code{gcc} and @code{g77}.
The version of GNU @code{bison} used to develop this release
-is 1.25.
+is @value{version-bison}.
@xref{Missing bison?},
for information on how to work around not having @code{bison}.
@@ -235,7 +247,8 @@ You can obtain @code{makeinfo} the same way you obtained
@code{gcc} and @code{g77}.
The version of GNU @code{makeinfo} used to develop this release
-is 1.68, from GNU @code{texinfo} version 3.11.
+is @value{version-makeinfo}, from
+GNU @code{texinfo} version @value{version-texinfo}.
@xref{Missing makeinfo?},
for information on getting around the lack of @code{makeinfo}.
@@ -246,10 +259,10 @@ version that cannot handle configuring, building, or
installing @code{gcc} or @code{g77}.
The version of GNU @code{sed} used to develop this release
-is 2.05.
+is @value{version-sed}.
(Note that GNU @code{sed} version 3.0 was withdrawn by the
FSF---if you happen to have this version installed, replace
-it with version 2.05 immediately.
+it with version @value{version-sed} immediately.
See a GNU distribution site for further explanation.)
@item @code{root} access or equivalent
@@ -287,6 +300,7 @@ either @code{gcc} or @code{g77}.
@menu
* General Problems:: Problems afflicting most or all systems.
+* System-specific Problems:: Problems afflicting particular systems.
* Cross-compiler Problems:: Problems afflicting cross-compilation setups.
@end menu
@@ -296,10 +310,10 @@ either @code{gcc} or @code{g77}.
These problems can occur on most or all systems.
@menu
-* GNU C Required:: Why even ANSI C is not enough.
+* GNU C Required:: Why even ANSI C is not enough.
* Patching GNU CC Necessary:: Why @code{gcc} must be patched first.
* Building GNU CC Necessary:: Why you can't build @emph{just} Fortran.
-* Missing strtoul:: If linking @code{f771} fails due to an
+* Missing strtoul:: If linking @code{f771} fails due to an
unresolved reference to @code{strtoul}.
* Object File Differences:: It's okay that @samp{make compare} will
flag @file{f/zzz.o}.
@@ -464,7 +478,26 @@ than the corresponding output files.
If the above does not work, definitely start from scratch
and avoid copying the @code{gcc} using any method that does
not reliably preserve date-time-modified information, such
-as the UNIX @samp{cp -r} command.
+as the UNIX @samp{cp -r} command (use @samp{cp -pr} instead).
+
+@node System-specific Problems
+@subsection System-specific Problems
+
+@cindex Digital Alpha
+@cindex Alpha, Digital
+@cindex DEC Alpha
+@cindex AXP
+If your system is based on a Digital Alpha (AXP) architecture
+and employs a 64-bit operating system (such as GNU/Linux),
+you might consider using @code{egcs} instead of versions
+of @code{g77} based on versions of @code{gcc} prior to 2.8.
+@uref{http://www.cygnus.com/egcs} for information on @code{egcs},
+or obtain a copy from @uref{ftp://egcs.cygnus.com/pub/egcs}.
+
+@cindex Irix 6
+@cindex SGI
+If your system is Irix 6, to obtain a working version of @code{gcc},
+@uref{http://reality.sgi.com/knobi/gcc-2.7.2.x-on-irix-6.2-6.3}.
@node Cross-compiler Problems
@subsection Cross-compiler Problems
@@ -679,7 +712,7 @@ The @code{g77} build will crash if an attempt is made to build
it as a cross-compiler
for a target when @code{g77} cannot reliably determine the bit pattern of
floating-point constants for the target.
-Planned improvements for g77-0.6
+Planned improvements for version 0.6 of @code{g77}
will give it the capabilities it needs to not have to crash the build
but rather generate correct code for the target.
(Currently, @code{g77}
@@ -781,8 +814,8 @@ 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.3.tar.gz
-/usr/FSF/g77-0.5.21.tar.gz
+/usr/FSF/gcc-@value{version-gcc}.tar.gz
+/usr/FSF/g77-@value{version-g77}.tar.gz
@end example
@c (You can use @file{gcc-2.7.2.1.tar.gz} instead, or
@@ -823,20 +856,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.3.tar.gz | tar xf -}
+sh[ 2]# @kbd{gunzip -c < /usr/FSF/gcc-@value{version-gcc}.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 -}
+sh[ 3]# @kbd{gunzip -c < /usr/FSF/g77-@value{version-g77}.tar.gz | tar xf -}
["Broken pipe" again possible.]
@set unpack-g77 3
-sh[ 4]# @kbd{ln -s gcc-2.7.2.3 gcc}
+sh[ 4]# @kbd{ln -s gcc-@value{version-gcc} gcc}
@set link-gcc 4
-sh[ 5]# @kbd{ln -s g77-0.5.21 g77}
+sh[ 5]# @kbd{ln -s g77-@value{version-g77} 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.3.diff}
+sh[ 7]# @kbd{patch -p1 -E -V t -d gcc < gcc/f/gbe/@value{version-gcc}.diff}
[Unless patch complains about rejected patches, this step worked.]
@set apply-patch 7
sh[ 8]# @kbd{cd gcc}
@@ -898,17 +931,17 @@ installed version of @code{g77} and @code{gcc} in any case.
@c instead, or apply @file{gcc-2.7.2-2.7.2.1.diff.gz} to achieve
@c similar results.
-@item Step @value{unpack-g77}: @kbd{gunzip -d < /usr/FSF/g77-0.5.21.tar.gz | tar xf -}
+@item Step @value{unpack-g77}: @kbd{gunzip -d < /usr/FSF/g77-@value{version-g77}.tar.gz | tar xf -}
It is not always necessary to obtain the latest version of
@code{g77} as a complete @file{.tar.gz} file if you have
a complete, earlier distribution of @code{g77}.
If appropriate, you can unpack that earlier
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}.
+@value{version-g77} of @code{g77}.
-@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-gcc}: @kbd{ln -s gcc-@value{version-gcc} gcc}
+@item Step @value{link-g77}: @kbd{ln -s g77-@value{version-g77} g77}
These commands mainly help reduce typing,
and help reduce visual clutter in examples
in this manual showing what to type to install @code{g77}.
@@ -922,7 +955,7 @@ other than the FSF.
@item Step @value{merge-g77}: @kbd{mv -i g77/* gcc}
After doing this, you can, if you like, type
-@samp{rm g77} and @samp{rmdir g77-0.5.21} to remove
+@samp{rm g77} and @samp{rmdir g77-@value{version-g77}} to remove
the empty directory and the symbol link to it.
But, it might be helpful to leave them around as
quick reminders of which version(s) of @code{g77} are
@@ -935,10 +968,11 @@ into the @file{gcc} directory).
@item Step @value{apply-patch}: @kbd{patch -p1 @dots{}}
@c (Or `@kbd{@dots{} < gcc/f/gbe/2.7.2.1.diff}', if appropriate.)
@c
-This can produce a wide variety of printed output,
-from @samp{Hmm, I can't seem to find a patch in there anywhere...}
-to long lists of messages indicated that patches are
-being found, applied successfully, and so on.
+If you are using
+GNU @code{patch} version @value{version-patch} or later,
+this should produce a list of files patched.
+(Other versions of @code{patch} might not work
+properly.)
If messages about ``fuzz'', ``offset'', or
especially ``reject files'' are printed, it might
@@ -954,6 +988,15 @@ To remove these, after @kbd{cd gcc}, type @kbd{rm -i *.~*~}.
@xref{Merging Distributions}, for more information.
+@emph{Note:} @code{gcc} versions circa 2.7.2.2 and 2.7.2.3
+are known to have slightly differing versions of the
+@code{gcc/ChangeLog} file,
+depending on how they are obtained.
+You can safely ignore diagnostics @code{patch} reports
+when patching this particular file,
+since it is purely a documentation file for implementors.
+See @file{gcc/f/gbe/2.7.2.3.diff} for more information.
+
@item Step @value{f77-install-ok}: @kbd{touch f77-install-ok}
Don't do this if you don't want to overwrite an existing
version of @code{f77} (such as a native compiler, or a
@@ -1130,10 +1173,10 @@ and @code{g77} is:
@example
sh# @kbd{cd /usr/src}
-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.3 gcc}
-sh# @kbd{ln -s g77-0.5.21 g77}
+sh# @kbd{gunzip -c /usr/FSF/gcc-@value{version-gcc}.tar.gz | tar xf -}
+sh# @kbd{gunzip -c /usr/FSF/g77-@value{version-g77}.tar.gz | tar xf -}
+sh# @kbd{ln -s gcc-@value{version-gcc} gcc}
+sh# @kbd{ln -s g77-@value{version-g77} g77}
sh# @kbd{mv -i g77/* gcc}
@end example
@@ -1158,7 +1201,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.3}).
+as it appears in the FSF distributions---e.g. @file{gcc-@value{version-gcc}}).
@file{g77/f} is the subdirectory containing all of the
code, documentation, and other information that is specific
@@ -1288,11 +1331,11 @@ It is hoped that the GBE interface, and the @code{gcc} and
@code{g77} products in general, will stabilize sufficiently
for the need for hand-patching to disappear.
-Invoking @code{patch} as described in @file{gcc/f/gbe/README}
-can produce a wide variety of printed output,
-from @samp{Hmm, I can't seem to find a patch in there anywhere...}
-to long lists of messages indicated that patches are
-being found, applied successfully, and so on.
+If you are using
+GNU @code{patch} version @value{version-patch} or later,
+this should produce a list of files patched.
+(Other versions of @code{patch} might not work
+properly.)
If messages about ``fuzz'', ``offset'', or
especially ``reject files'' are printed, it might
@@ -1311,6 +1354,15 @@ After @code{patch} finishes, the @code{gcc} directory might
have old versions of several files as saved by @code{patch}.
To remove these, after @kbd{cd gcc}, type @kbd{rm -i *.~*~}.
+@emph{Note:} @code{gcc} versions circa 2.7.2.2 and 2.7.2.3
+are known to have slightly differing versions of the
+@code{gcc/ChangeLog} file,
+depending on how they are obtained.
+You can safely ignore diagnostics @code{patch} reports
+when patching this particular file,
+since it is purely a documentation file for implementors.
+See @file{gcc/f/gbe/2.7.2.3.diff} for more information.
+
@pindex config-lang.in
@emph{Note:} @code{g77}'s configuration file @file{gcc/f/config-lang.in}
ensures that the source code for the version of @code{gcc}
@@ -1327,7 +1379,7 @@ but could easily produce broken code.
@cindex creating patch files
@cindex patch files, creating
@pindex gcc/f/gbe/
-@samp{diff -rcp2N} is used to create the patch files
+@samp{LC_ALL=C TZ=UTC0 diff -rcp2N} is used to create the patch files
in @file{gcc/f/gbe/}.
@node Installing f77
@@ -1778,46 +1830,46 @@ printed by them when they work:
@example
sh# @kbd{cd /usr/src/gcc}
sh# @kbd{./g77 --driver=./xgcc -B./ -v}
-g77 version 0.5.21
+g77 version @value{version-g77}
./xgcc -B./ -v -fnull-version -o /tmp/gfa18047 @dots{}
Reading specs from ./specs
-gcc version 2.7.2.3.f.1
+gcc version @value{version-gcc-patched}
./cpp -lang-c -v -isystem ./include -undef @dots{}
-GNU CPP version 2.7.2.3.f.1 (Linux/Alpha)
+GNU CPP version @value{version-gcc-patched} (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.3.f.1/include
+ /usr/lib/gcc-lib/alpha-unknown-linux/@value{version-gcc-patched}/include
/usr/include
End of search list.
./f771 /tmp/cca18048.i -fset-g77-defaults -quiet -dumpbase @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 F77 version @value{version-gcc-patched} (Linux/Alpha) compiled @dots{}
+GNU Fortran Front End version @value{version-g77} 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
+__G77_LIBF77_VERSION__: @value{version-g77}
@@(#)LIBF77 VERSION 19970404
-__G77_LIBI77_VERSION__: 0.5.21
+__G77_LIBI77_VERSION__: @value{version-g77}
@@(#) LIBI77 VERSION pjw,dmg-mods 19970816
-__G77_LIBU77_VERSION__: 0.5.21
+__G77_LIBU77_VERSION__: @value{version-g77}
@@(#) 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.3.f.1
+gcc version @value{version-gcc-patched}
./cpp -lang-c -v -isystem ./include -undef @dots{}
-GNU CPP version 2.7.2.3.f.1 (Linux/Alpha)
+GNU CPP version @value{version-gcc-patched} (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.3.f.1/include
+ /usr/lib/gcc-lib/alpha-unknown-linux/@value{version-gcc-patched}/include
/usr/include
End of search list.
./cc1 /tmp/cca18063.i -quiet -dumpbase null.c -version @dots{}
-GNU C version 2.7.2.3.f.1 (Linux/Alpha) compiled @dots{}
+GNU C version @value{version-gcc-patched} (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':
@@ -2137,7 +2189,7 @@ until you're sure your distribution is widely used and has been
well tested.
This especially goes for those of you making any
changes to the @code{g77} sources to port @code{g77}, e.g. to OS/2.
-@email{fortran@@gnu.ai.mit.edu} has received a fair number of bug
+@email{fortran@@gnu.org} has received a fair number of bug
reports that turned out to be problems with other peoples' ports
and distributions, about which nothing could be done for the
user.