summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>1999-11-14 08:33:44 +0000
committerobrien <obrien@FreeBSD.org>1999-11-14 08:33:44 +0000
commitac8208f082e0cc5f0eb897922605acba721196f7 (patch)
tree4d3a0bba86086f6cc9098f39d839513535ba5b68 /contrib
parent584ae1bbef06b8fca7b7b3a0ea1b2153f4dc7a7d (diff)
parented15955f8cf525b25d78196aa004cd5cca845305 (diff)
downloadFreeBSD-src-ac8208f082e0cc5f0eb897922605acba721196f7.zip
FreeBSD-src-ac8208f082e0cc5f0eb897922605acba721196f7.tar.gz
This commit was generated by cvs2svn to compensate for changes in r53142,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib')
-rw-r--r--contrib/gcc/f/g77install.texi249
1 files changed, 165 insertions, 84 deletions
diff --git a/contrib/gcc/f/g77install.texi b/contrib/gcc/f/g77install.texi
index 7041107..abc6396 100644
--- a/contrib/gcc/f/g77install.texi
+++ b/contrib/gcc/f/g77install.texi
@@ -1,14 +1,35 @@
-@c Copyright (C) 1995-1997 Free Software Foundation, Inc.
+@c Copyright (C) 1995-1999 Free Software Foundation, Inc.
@c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi.
@c The text of this file appears in the file INSTALL
@c in the G77 distribution, as well as in the G77 manual.
-@c 1998-07-13
+@c Keep this the same as the dates above, since it's used
+@c in the standalone derivations of this file (e.g. INSTALL).
+@set copyrights 1995-1999
+
+@set last-update-install 1999-07-17
+
+@include root.texi
+
+@ifset DOC-INSTALL
+@c The immediately following lines apply to the INSTALL file
+@c which is generated using this file.
+@emph{Note:} This file is automatically generated from the files
+@file{install0.texi} and @file{g77install.texi}.
+@file{INSTALL} is @emph{not} a source file,
+although it is normally included within source distributions.
+
+This file contains installation information for the GNU Fortran compiler.
+Copyright (C) @value{copyrights-install} Free Software Foundation, Inc.
+You may copy, distribute, and modify it freely as long as you preserve
+this copyright notice and permission notice.
+
+@node Top,,, (dir)
+@chapter Installing GNU Fortran
+@end ifset
-@set version-g77 0.5.24
-@set version-gcc 2.8.1
@set version-autoconf 2.12
@set version-bison 1.25
@set version-gperf 2.5
@@ -20,20 +41,33 @@
@set version-tar 1.12
@set version-texinfo 3.12
-@ifclear INSTALLONLY
+@ifset DOC-G77
@node Installation
@chapter Installing GNU Fortran
-@end ifclear
-@cindex installing GNU Fortran
+@cindex installing, GNU Fortran
+@end ifset
The following information describes how to install @code{g77}.
-Note that, for @code{egcs} users,
-much of this information is obsolete,
+@clear OMIT-FSF-G77
+
+@ifset EGCS-G77
+@set OMIT-FSF-G77
+@end ifset
+
+@ifset GCC-G77
+@set OMIT-FSF-G77
+@end ifset
+
+@ifset OMIT-FSF-G77
+Note that, for users of the @value{which-g77} version of @code{g77},
+much of the information is obsolete,
and is superceded by the
-@code{egcs} installation procedures.
-Such information is explicitly flagged as such.
+@value{which-gcc} installation procedures.
+Such information is accordingly omitted and flagged as such.
+@end ifset
+@ifclear OMIT-FSF-G77
The information in this file generally pertains to dealing
with @emph{source} distributions of @code{g77} and @code{gcc}.
It is possible that some of this information will be applicable
@@ -45,6 +79,25 @@ whoever built and first distributed them.
Nevertheless, efforts to make @code{g77} easier to both build
and install from source and package up as a binary distribution
are ongoing.
+@end ifclear
+
+@ifset DEVELOPMENT
+@emph{Warning:} The information below is still under development,
+and might not accurately reflect the @code{g77} code base
+of which it is a part.
+Efforts are made to keep it somewhat up-to-date,
+but they are particularly concentrated
+on any version of this information
+that is distributed as part of a @emph{released} @code{g77}.
+
+In particular, while this information is intended to apply to
+the @value{which-g77} version of @code{g77},
+only an official @emph{release} of that version
+is expected to contain documentation that is
+most consistent with the @code{g77} product in that version.
+@end ifset
+
+The following information was last updated on @value{last-update-install}:
@menu
* Prerequisites:: Make sure your system is ready for @code{g77}.
@@ -59,10 +112,13 @@ are ongoing.
@section Prerequisites
@cindex prerequisites
-@emph{Version info:}
-For @code{egcs} users, the following information is
-superceded by the @code{egcs} installation instructions.
+@ifset OMIT-FSF-G77
+For users of the @value{which-g77} version of @code{g77},
+this information is superceded by the
+@value{which-gcc} installation instructions.
+@end ifset
+@ifclear OMIT-FSF-G77
The procedures described to unpack, configure, build, and
install @code{g77} assume your system has certain programs
already installed.
@@ -338,6 +394,8 @@ instead of the entire @file{.tar.gz} distribution
to rebuild derived files, such as @code{makeinfo}).
@end table
+@end ifclear
+
@node Problems Installing
@section Problems Installing
@cindex problems installing
@@ -366,9 +424,9 @@ These problems can occur on most or all systems.
* GNU C Required:: Why even ANSI C is not enough.
* Patching GNU CC:: Why @code{gcc} needn't be patched.
* Building GNU CC Necessary:: Why you can't build @emph{just} Fortran.
-* Missing strtoul or bsearch:: When linking @samp{f771} fails.
+* Missing strtoul or bsearch:: When linking @code{f771} fails.
* Cleanup Kills Stage Directories:: For @code{g77} developers.
-* LANGUAGES Macro Ignored:: Sometimes @samp{LANGUAGES} is ignored.
+* LANGUAGES Macro Ignored:: Sometimes @code{LANGUAGES} is ignored.
@end menu
@node GNU C Required
@@ -385,7 +443,7 @@ so there are no plans for an interim fix.
This requirement does not mean you must already have @code{gcc}
installed to build @code{g77}.
As long as you have a working C compiler, you can use a
-bootstrap build to automate the process of first building
+``bootstrap'' build to automate the process of first building
@code{gcc} using the working C compiler you have, then building
@code{g77} and rebuilding @code{gcc} using that just-built @code{gcc},
and so on.
@@ -403,7 +461,7 @@ and @code{egcs} version 1.0.
@node Building GNU CC Necessary
@subsubsection Building GNU CC Necessary
-@cindex gcc, building
+@cindex @code{gcc}, building
@cindex building gcc
It should be possible to build the runtime without building @code{cc1}
@@ -420,22 +478,24 @@ is not yet established.
@cindex undefined reference (_strtoul)
@cindex f771, linking error for
@cindex linking error for f771
-@cindex ld error for f771
-@cindex ld can't find _bsearch
-@cindex ld can't find _strtoul
+@cindex @code{ld}, error linking f771
+@cindex @code{ld}, can't find _bsearch
+@cindex @code{ld}, can't find _strtoul
@cindex SunOS4
-@emph{Version info:}
-The following information does not apply to the
-@code{egcs} version of @code{g77}.
+@ifset OMIT-FSF-G77
+This information does not apply to
+the @value{which-g77} version of @code{g77},
+@end ifset
+@ifclear OMIT-FSF-G77
On SunOS4 systems, linking the @code{f771} program used to
produce an error message concerning an undefined symbol named
-@samp{_strtoul}, because the @samp{strtoul} library function
+@samp{_strtoul}, because the @code{strtoul} library function
is not provided on that system.
Other systems have, in the past, been reported to not provide
-their own @samp{strtoul} or @samp{bsearch} function.
+their own @code{strtoul} or @code{bsearch} function.
Some versions @code{g77} tried to default to providing bare-bones
versions of @code{bsearch} and @code{strtoul} automatically,
@@ -443,15 +503,15 @@ but every attempt at this has failed for at least one kind of system.
To limit the failures to those few systems actually missing the
required routines, the bare-bones versions are still provided,
-in @file{gcc/f/proj.c},
+in @file{@value{path-g77}/proj.c},
if the appropriate macros are defined.
-These are @code{NEED_BSEARCH} for @samp{bsearch} and
-@code{NEED_STRTOUL} for @samp{NEED_STRTOUL}.
+These are @code{NEED_BSEARCH} for @code{bsearch} and
+@code{NEED_STRTOUL} for @code{NEED_STRTOUL}.
Therefore, if you are sure your system is missing
@code{bsearch} or @code{strtoul} in its library,
define the relevant macro(s) before building @code{g77}.
-This can be done by editing @file{gcc/f/proj.c} and inserting
+This can be done by editing @file{@value{path-g77}/proj.c} and inserting
either or both of the following @samp{#define} statements
before the comment shown:
@@ -470,15 +530,17 @@ To build with the bundled @code{cc} on SunOS4, for example, try:
make bootstrap BOOT_CFLAGS='-O2 -g -DNEED_STRTOUL'
@end smallexample
-If you then encounter problems compiling @file{gcc/f/proj.c},
-it might be due to a discrepancy between how @samp{bsearch}
-or @samp{strtoul} are defined by that file and how they're
+If you then encounter problems compiling @file{@value{path-g77}/proj.c},
+it might be due to a discrepancy between how @code{bsearch}
+or @code{strtoul} are defined by that file and how they're
declared by your system's header files.
In that case, you'll have to use some basic knowledge of C
-to work around the problem, perhaps by editing @file{gcc/f/proj.c}
+to work around the problem, perhaps by editing @file{@value{path-g77}/proj.c}
somewhat.
+@end ifclear
+
@node Cleanup Kills Stage Directories
@subsubsection Cleanup Kills Stage Directories
@cindex stage directories
@@ -498,14 +560,14 @@ that, on demand.
@node LANGUAGES Macro Ignored
@subsubsection LANGUAGES Macro Ignored
-@cindex @samp{LANGUAGES} macro ignored
-@cindex ignoring @samp{LANGUAGES} macro
+@cindex @code{LANGUAGES} macro ignored
+@cindex ignoring @code{LANGUAGES} macro
Prior to version 0.5.23 of @code{g77}
and version 1.1 of @code{egcs},
@code{g77} would sometimes ignore
-the absence of @samp{f77} and @samp{F77} in the
-@samp{LANGUAGES} macro definition used for the
+the absence of @code{f77} and @code{F77} in the
+@code{LANGUAGES} macro definition used for the
@code{make} command being processed.
As of @code{g77} version 0.5.23
@@ -519,7 +581,7 @@ such as @code{g++},
are known to go ahead and perform various
language-specific activities when their
respective language strings do not appear
-in the @samp{LANGUAGES} macro in effect
+in the @code{LANGUAGES} macro in effect
during that invocation of @code{make}.
It is expected that these remaining problems will
@@ -532,7 +594,9 @@ be fixed in a future version of @code{gcc}.
A linker bug on some versions of AIX 4.1 might prevent building
when @code{g77} is built within @code{gcc}.
It might also occur when building within @code{egcs}.
+@ifset DOC-G77
@xref{LINKFAIL}.
+@end ifset
@node Cross-compiler Problems
@subsection Cross-compiler Problems
@@ -597,7 +661,7 @@ system, depending on the systems involved in the configuration.
@section Changing Settings Before Building
Here are some internal @code{g77} settings that can be changed
-by editing source files in @file{gcc/f/} before building.
+by editing source files in @file{@value{path-g77}/} before building.
This information, and perhaps even these settings, represent
stop-gap solutions to problems people doing various ports
@@ -606,7 +670,7 @@ As such, none of the following information is expected to
be pertinent in future versions of @code{g77}.
@menu
-* Larger File Unit Numbers:: Raising @samp{MXUNIT}.
+* Larger File Unit Numbers:: Raising @code{MXUNIT}.
* Always Flush Output:: Synchronizing write errors.
* Maximum Stackable Size:: Large arrays forced off the stack.
* Floating-point Bit Patterns:: Possible programs building @code{g77}
@@ -634,22 +698,22 @@ a run-time crash in @code{libf2c}, because the unit number,
If you know that Fortran programs at your installation require
the use of unit numbers higher than 99, you can change the
-value of the @samp{MXUNIT} macro, which represents the maximum unit
+value of the @code{MXUNIT} macro, which represents the maximum unit
number, to an appropriately higher value.
-To do this, edit the file @file{f/runtime/libI77/fio.h} in your
+To do this, edit the file @file{@value{path-libf2c}/libI77/fio.h} in your
@code{g77} source tree, changing the following line:
@example
#define MXUNIT 100
@end example
-Change the line so that the value of @samp{MXUNIT} is defined to be
+Change the line so that the value of @code{MXUNIT} is defined to be
at least one @emph{greater} than the maximum unit number used by
the Fortran programs on your system.
(For example, a program that does @samp{WRITE (UNIT=255)} would require
-@samp{MXUNIT} set to at least 256 to avoid crashing.)
+@code{MXUNIT} set to at least 256 to avoid crashing.)
Then build or rebuild @code{g77} as appropriate.
@@ -690,7 +754,7 @@ asynchronous, or, more precisely, buffered error reporting
(detection of errors might be delayed).
@code{libg2c} supports flagging write errors immediately when
-it is built with the @samp{ALWAYS_FLUSH} macro defined.
+it is built with the @code{ALWAYS_FLUSH} macro defined.
This results in a @code{libg2c} that runs slower, sometimes
quite a bit slower, under certain circumstances---for example,
accessing files via the networked file system NFS---but the
@@ -700,10 +764,10 @@ If you know that Fortran programs requiring this level of precision
of error reporting are to be compiled using the
version of @code{g77} you are building, you might wish to
modify the @code{g77} source tree so that the version of
-@code{libg2c} is built with the @samp{ALWAYS_FLUSH} macro
+@code{libg2c} is built with the @code{ALWAYS_FLUSH} macro
defined, enabling this behavior.
-To do this, find this line in @file{f/runtime/f2c.h} in
+To do this, find this line in @file{@value{path-libf2c}/f2c.h} in
your @code{g77} source tree:
@example
@@ -721,11 +785,11 @@ Then build or rebuild @code{g77} as appropriate.
@vindex FFECOM_sizeMAXSTACKITEM
@cindex code, stack variables
@cindex maximum stackable size
-@cindex stack allocation
+@cindex stack, allocation
@cindex segmentation violation
@code{g77}, on most machines, puts many variables and arrays on the stack
where possible, and can be configured (by changing
-@samp{FFECOM_sizeMAXSTACKITEM} in @file{gcc/f/com.c}) to force
+@code{FFECOM_sizeMAXSTACKITEM} in @file{@value{path-g77}/com.c}) to force
smaller-sized entities into static storage (saving
on stack space) or permit larger-sized entities to be put on the
stack (which can improve run-time performance, as it presents
@@ -733,7 +797,7 @@ more opportunities for the GBE to optimize the generated code).
@emph{Note:} Putting more variables and arrays on the stack
might cause problems due to system-dependent limits on stack size.
-Also, the value of @samp{FFECOM_sizeMAXSTACKITEM} has no
+Also, the value of @code{FFECOM_sizeMAXSTACKITEM} has no
effect on automatic variables and arrays.
@xref{But-bugs}, for more information.
@@ -758,7 +822,7 @@ something like @samp{EQUIVALENCE (I,R)} and @samp{DATA R/9.43578/}.)
@node Large Initialization
@subsection Initialization of Large Aggregate Areas
-@cindex speed, compiler
+@cindex speed, of compiler
@cindex slow compiler
@cindex memory utilization
@cindex large initialization
@@ -773,8 +837,8 @@ a factor of 10.
This size currently is quite small, since @code{g77}
currently has a known bug requiring too much memory
and time to handle such cases.
-In @file{gcc/f/data.c}, the macro
-@samp{FFEDATA_sizeTOO_BIG_INIT_} is defined
+In @file{@value{path-g77}/data.c}, the macro
+@code{FFEDATA_sizeTOO_BIG_INIT_} is defined
to the minimum size for the warning to appear.
The size is specified in storage units,
which can be bytes, words, or whatever, on a case-by-case basis.
@@ -827,10 +891,13 @@ systems.
@section Quick Start
@cindex quick start
-@emph{Version info:}
-For @code{egcs} users, the following information is
-superceded by the @code{egcs} installation instructions.
+@ifset OMIT-FSF-G77
+For users of the @value{which-g77} version of @code{g77},
+this information is superceded by the
+@value{which-gcc} installation instructions.
+@end ifset
+@ifclear OMIT-FSF-G77
This procedure configures, builds, and installs @code{g77}
``out of the box'' and works on most UNIX systems.
Each command is identified by a unique number,
@@ -1108,13 +1175,18 @@ around anymore.
Removing them can free up a lot of disk space.
@end table
+@end ifclear
+
@node Complete Installation
@section Complete Installation
-@emph{Version info:}
-For @code{egcs} users, the following information is
-mostly superceded by the @code{egcs} installation instructions.
+@ifset OMIT-FSF-G77
+For users of the @value{which-g77} version of @code{g77},
+this information is superceded by the
+@value{which-gcc} installation instructions.
+@end ifset
+@ifclear OMIT-FSF-G77
Here is the complete @code{g77}-specific information on how
to configure, build, and install @code{g77}.
@@ -1209,7 +1281,7 @@ tree for the first time.
@cindex modifying @code{g77}
@cindex code, modifying
@cindex Pentium optimizations
-@cindex optimizations, Pentium
+@cindex optimization, for Pentium
@emph{Note:} Please use @strong{only} @code{gcc} and @code{g77}
source trees as distributed by the FSF.
Use of modified versions is likely to result in problems that appear to be
@@ -1223,16 +1295,16 @@ and @code{gcc} can coexist as they do in the stock FSF distributions.
@node Merging Distributions
@subsection Merging Distributions
@cindex merging distributions
-@cindex @code{gcc} versions supported by @code{g77}
-@cindex versions of @code{gcc}
-@cindex support for @code{gcc} versions
+@cindex @code{gcc}, versions supported by @code{g77}
+@cindex versions, of @code{gcc}
+@cindex support, @code{gcc} versions
After merging the @code{g77} source tree into the @code{gcc} source tree,
you have put together a complete @code{g77} source tree.
-@cindex gcc version numbering
-@cindex version numbering
-@cindex g77 version number
+@cindex @code{gcc}, version number
+@cindex version number
+@cindex @code{g77}, version number
@cindex GNU version numbering
As of version 0.5.23, @code{g77} no longer modifies
the version number of @code{gcc},
@@ -1266,7 +1338,7 @@ the directories they create.)
If your version of @code{gcc} is older than the oldest version
supported by @code{g77}
-(as casually determined by listing the contents of @file{gcc/f/INSTALL/},
+(as casually determined by listing the contents of @file{@value{path-g77}/INSTALL/},
which contains these installation instructions in plain-text format),
you should obtain a newer, supported version of @code{gcc}.
(You could instead obtain an older version of @code{g77},
@@ -1291,9 +1363,7 @@ it is likely that @file{gcc-2.8.2} would work well with @code{g77}.
However, @file{gcc-2.9.0} would almost certainly
not work with that version of @code{g77}
without appropriate modifications,
-so a new version of @code{g77} would be needed (and you should
-wait for it rather than bothering the maintainers---@pxref{Changes,,
-User-Visible Changes}).
+so a new version of @code{g77} would be needed.
@cindex distributions, why separate
@cindex separate distributions
@@ -1310,7 +1380,7 @@ and such changes require corresponding changes to
the @code{g77} front end (FFE).
@c @pindex config-lang.in
-@c @emph{Note:} @code{g77}'s configuration file @file{gcc/f/config-lang.in}
+@c @emph{Note:} @code{g77}'s configuration file @file{@value{path-g77}/config-lang.in}
@c sometimes ensures that the source code for the version of @code{gcc}
@c being configured has at least one indication of being an appropriate
@c version as required specifically by @code{g77}.
@@ -1325,7 +1395,7 @@ the @code{g77} front end (FFE).
@node Where to Install
@subsection Where in the World Does Fortran (and GNU CC) Go?
@cindex language f77 not recognized
-@cindex gcc will not compile Fortran programs
+@cindex @code{gcc}, will not compile Fortran programs
Before configuring, you should make sure you know
where you want the @code{g77} and @code{gcc}
@@ -1470,16 +1540,16 @@ issuing an explanatory diagnostic.
@cindex building @code{gcc}
@cindex building @code{g77}
-@vindex LANGUAGES
+@cindex @code{LANGUAGES} macro
Building @code{g77} requires building enough of @code{gcc} that
these instructions assume you're going to build all of
@code{gcc}, including @code{g++}, @code{protoize}, and so on.
You can save a little time and disk space by changes the
-@samp{LANGUAGES} macro definition in @code{gcc/Makefile.in}
+@code{LANGUAGES} macro definition in @code{gcc/Makefile.in}
or @code{gcc/Makefile}, but if you do that, you're on your own.
One change is almost @emph{certainly} going to cause failures:
-removing @samp{c} or @samp{f77} from the definition of the
-@samp{LANGUAGES} macro.
+removing @code{c} or @code{f77} from the definition of the
+@code{LANGUAGES} macro.
After configuring @code{gcc}, which configures @code{g77} and
@code{libg2c} automatically, you're ready to start the actual
@@ -1557,7 +1627,7 @@ To save some disk space during installation, after Stage 2
is built, you can type @samp{rm -fr stage1} to remove the
binaries built during Stage 1.
-Also, @xref{Installation,,Installing GNU CC,gcc,Using and Porting GNU CC},
+Also, see @ref{Installation,,Installing GNU CC,gcc,Using and Porting GNU CC},
for important information on building @code{gcc} that is
not described in this @code{g77} manual.
For example, explanations of diagnostic messages
@@ -1718,7 +1788,7 @@ make -k CC=gcc install
As described in @ref{Installation,,Installing GNU CC,
gcc,Using and Porting GNU CC}, the values for
-the @samp{CC} and @samp{LANGUAGES} macros should
+the @code{CC} and @code{LANGUAGES} macros should
be the same as those you supplied for the build
itself.
@@ -1738,7 +1808,7 @@ make -k @dots{} install install-libf77
We don't know why some non-GNU versions of @code{make} sometimes
require this alternate command, but they do.
-(Remember to supply the appropriate definition for @samp{CC}
+(Remember to supply the appropriate definition for @code{CC}
where you see @samp{@dots{}} in the above command.)
Note that using the @samp{-k} option tells @code{make} to
@@ -1872,10 +1942,10 @@ information for the derived files to work around the
problem of not having the appropriate tools installed.
On UNIX systems, the simplest way to update the date-time-modified
-information of a file is to use the use the @samp{touch}
+information of a file is to use the use the @code{touch}
command.
-How to use @samp{touch} to update the derived files
+How to use @code{touch} to update the derived files
updated by each of the tools is described below.
@emph{Note:} New versions of @code{g77} might change the set of
files it generates by invoking each of these tools.
@@ -1903,7 +1973,7 @@ do @emph{not} do @samp{make maintainer-clean}, and, to ensure that
type these commands:
@example
-sh# @kbd{cd gcc/f/runtime}
+sh# @kbd{cd @value{path-libf2c}}
sh# @kbd{touch configure libU77/configure}
sh# @kbd{cd ../../..}
sh#
@@ -1974,11 +2044,20 @@ sh# @kbd{cd ..}
sh#
@end example
+@end ifclear
+
@node Distributing Binaries
@section Distributing Binaries
@cindex binaries, distributing
@cindex code, distributing
+@ifset OMIT-FSF-G77
+For users of the @value{which-g77} version of @code{g77},
+this information is superceded by the
+@value{which-gcc} installation instructions.
+@end ifset
+
+@ifclear OMIT-FSF-G77
If you are building @code{g77} for distribution to others in binary form,
first make sure you are aware of your legal responsibilities (read
the file @file{gcc/COPYING} thoroughly).
@@ -2097,7 +2176,7 @@ If it is not included, users will have trouble understanding
diagnostics messages and other such things, and will send
you a lot of email asking questions.
-Please edit this documentation (by editing @file{gcc/f/*.texi}
+Please edit this documentation (by editing @file{@value{path-g77}/*.texi}
and doing @samp{make doc} from the @file{/usr/src/gcc} directory)
to reflect any changes you've made to @code{g77}, or at
least to encourage users of your binary distribution to
@@ -2168,3 +2247,5 @@ and distributions, about which nothing could be done for the
user.
Once you are quite certain a bug report does not involve
your efforts, you can forward it to us.
+
+@end ifclear
OpenPOWER on IntegriCloud