diff options
author | David E. O'Brien <obrien@FreeBSD.org> | 1999-11-14 08:33:44 +0000 |
---|---|---|
committer | David E. O'Brien <obrien@FreeBSD.org> | 1999-11-14 08:33:44 +0000 |
commit | f91f0e2951d5783044f225d4443c2e10c737a387 (patch) | |
tree | 4d3a0bba86086f6cc9098f39d839513535ba5b68 /contrib | |
parent | 1859f7348ab8b8ac94011ba1df35e0d335d06187 (diff) | |
parent | 8b2496aa285d22049a9db2580023c8985bfcce8a (diff) | |
download | src-f91f0e2951d5783044f225d4443c2e10c737a387.tar.gz src-f91f0e2951d5783044f225d4443c2e10c737a387.zip |
This commit was generated by cvs2svn to compensate for changes in r53142,
which included commits to RCS files with non-trunk default branches.
Notes
Notes:
svn path=/head/; revision=53143
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/gcc/f/g77install.texi | 249 |
1 files changed, 165 insertions, 84 deletions
diff --git a/contrib/gcc/f/g77install.texi b/contrib/gcc/f/g77install.texi index 70411078f83b..abc639635549 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 |