aboutsummaryrefslogtreecommitdiff
path: root/contrib/gcc/f/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/f/INSTALL')
-rw-r--r--contrib/gcc/f/INSTALL352
1 files changed, 0 insertions, 352 deletions
diff --git a/contrib/gcc/f/INSTALL b/contrib/gcc/f/INSTALL
deleted file mode 100644
index 91858800958d..000000000000
--- a/contrib/gcc/f/INSTALL
+++ /dev/null
@@ -1,352 +0,0 @@
-*Note:* This file is automatically generated from the files
-`install0.texi' and `g77install.texi'. `INSTALL' is *not* a source
-file, although it is normally included within source distributions.
-
- This file contains installation information for the GNU Fortran
-compiler. Copyright (C) {No Value For "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.
-
-Installing GNU Fortran
-**********************
-
- The following information describes how to install `g77'.
-
- Note that, for users of the GCC-2.95 version of `g77', much of the
-information is obsolete, and is superceded by the GCC installation
-procedures. Such information is accordingly omitted and flagged as
-such.
-
- *Warning:* The information below is still under development, and
-might not accurately reflect the `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 *released* `g77'.
-
- In particular, while this information is intended to apply to the
-GCC-2.95 version of `g77', only an official *release* of that version
-is expected to contain documentation that is most consistent with the
-`g77' product in that version.
-
- The following information was last updated on 1999-07-17:
-
-Prerequisites
-=============
-
- For users of the GCC-2.95 version of `g77', this information is
-superceded by the GCC installation instructions.
-
-Problems Installing
-===================
-
- This is a list of problems (and some apparent problems which don't
-really mean anything is wrong) that show up when configuring, building,
-installing, or porting GNU Fortran.
-
- *Note Installation Problems: (gcc)Installation Problems, for more
-information on installation problems that can afflict either `gcc' or
-`g77'.
-
-General Problems
-----------------
-
- These problems can occur on most or all systems.
-
-GNU C Required
-..............
-
- Compiling `g77' requires GNU C, not just ANSI C. Fixing this
-wouldn't be very hard (just tedious), but the code using GNU extensions
-to the C language is expected to be rewritten for 0.6 anyway, so there
-are no plans for an interim fix.
-
- This requirement does not mean you must already have `gcc' installed
-to build `g77'. As long as you have a working C compiler, you can use a
-"bootstrap" build to automate the process of first building `gcc' using
-the working C compiler you have, then building `g77' and rebuilding
-`gcc' using that just-built `gcc', and so on.
-
-Patching GNU CC
-...............
-
- `g77' no longer requires application of a patch file to the `gcc'
-compiler tree. In fact, no such patch file is distributed with `g77'.
-This is as of version 0.5.23 and `egcs' version 1.0.
-
-Building GNU CC Necessary
-.........................
-
- It should be possible to build the runtime without building `cc1'
-and other non-Fortran items, but, for now, an easy way to do that is
-not yet established.
-
-Missing strtoul or bsearch
-..........................
-
- This information does not apply to the GCC-2.95 version of `g77',
-
-Cleanup Kills Stage Directories
-...............................
-
- It'd be helpful if `g77''s `Makefile.in' or `Make-lang.in' would
-create the various `stageN' directories and their subdirectories, so
-developers and expert installers wouldn't have to reconfigure after
-cleaning up.
-
- That help has arrived as of version 0.5.23 of `g77' and version 1.1
-of `egcs'. Configuration itself no longer creates any particular
-directories that are unique to `g77'. The build procedures in
-`Make-lang.in' take care of that, on demand.
-
-LANGUAGES Macro Ignored
-.......................
-
- Prior to version 0.5.23 of `g77' and version 1.1 of `egcs', `g77'
-would sometimes ignore the absence of `f77' and `F77' in the
-`LANGUAGES' macro definition used for the `make' command being
-processed.
-
- As of `g77' version 0.5.23 and `egcs' version 1.1, `g77' now obeys
-this macro in all relevant situations.
-
- However, in versions of `gcc' through 2.8.1, non-`g77' portions of
-`gcc', such as `g++', are known to go ahead and perform various
-language-specific activities when their respective language strings do
-not appear in the `LANGUAGES' macro in effect during that invocation of
-`make'.
-
- It is expected that these remaining problems will be fixed in a
-future version of `gcc'.
-
-System-specific Problems
-------------------------
-
- A linker bug on some versions of AIX 4.1 might prevent building when
-`g77' is built within `gcc'. It might also occur when building within
-`egcs'.
-
-Cross-compiler Problems
------------------------
-
- `g77' has been in alpha testing since September of 1992, and in
-public beta testing since February of 1995. Alpha testing was done by
-a small number of people worldwide on a fairly wide variety of
-machines, involving self-compilation in most or all cases. Beta
-testing has been done primarily via self-compilation, but in more and
-more cases, cross-compilation (and "criss-cross compilation", where a
-version of a compiler is built on one machine to run on a second and
-generate code that runs on a third) has been tried and has succeeded,
-to varying extents.
-
- Generally, `g77' can be ported to any configuration to which `gcc',
-`f2c', and `libf2c' can be ported and made to work together, aside from
-the known problems described in this manual. If you want to port `g77'
-to a particular configuration, you should first make sure `gcc' and
-`libf2c' can be ported to that configuration before focusing on `g77',
-because `g77' is so dependent on them.
-
- Even for cases where `gcc' and `libf2c' work, you might run into
-problems with cross-compilation on certain machines, for several
-reasons.
-
- * There is one known bug (a design bug to be fixed in 0.6) that
- prevents configuration of `g77' as a cross-compiler in some cases,
- though there are assumptions made during configuration that
- probably make doing non-self-hosting builds a hassle, requiring
- manual intervention.
-
- * `gcc' might still have some trouble being configured for certain
- combinations of machines. For example, it might not know how to
- handle floating-point constants.
-
- * Improvements to the way `libg2c' is built could make building
- `g77' as a cross-compiler easier--for example, passing and using
- `$(LD)' and `$(AR)' in the appropriate ways. (This is improved in
- the `egcs' version of `g77', especially as of version 1.1.)
-
- * There are still some challenges putting together the right
- run-time libraries (needed by `libg2c') for a target system,
- depending on the systems involved in the configuration. (This is
- a general problem with cross-compilation, and with `gcc' in
- particular.)
-
-Changing Settings Before Building
-=================================
-
- Here are some internal `g77' settings that can be changed by editing
-source files in `egcs/gcc/f/' before building.
-
- This information, and perhaps even these settings, represent
-stop-gap solutions to problems people doing various ports of `g77' have
-encountered. As such, none of the following information is expected to
-be pertinent in future versions of `g77'.
-
-Larger File Unit Numbers
-------------------------
-
- As distributed, whether as part of `f2c' or `g77', `libf2c' accepts
-file unit numbers only in the range 0 through 99. For example, a
-statement such as `WRITE (UNIT=100)' causes a run-time crash in
-`libf2c', because the unit number, 100, is out of range.
-
- 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
-`MXUNIT' macro, which represents the maximum unit number, to an
-appropriately higher value.
-
- To do this, edit the file `egcs/libf2c/libI77/fio.h' in your `g77'
-source tree, changing the following line:
-
- #define MXUNIT 100
-
- Change the line so that the value of `MXUNIT' is defined to be at
-least one *greater* than the maximum unit number used by the Fortran
-programs on your system.
-
- (For example, a program that does `WRITE (UNIT=255)' would require
-`MXUNIT' set to at least 256 to avoid crashing.)
-
- Then build or rebuild `g77' as appropriate.
-
- *Note:* Changing this macro has *no* effect on other limits your
-system might place on the number of files open at the same time. That
-is, the macro might allow a program to do `WRITE (UNIT=100)', but the
-library and operating system underlying `libf2c' might disallow it if
-many other files have already been opened (via `OPEN' or implicitly via
-`READ', `WRITE', and so on). Information on how to increase these
-other limits should be found in your system's documentation.
-
-Always Flush Output
--------------------
-
- Some Fortran programs require output (writes) to be flushed to the
-operating system (under UNIX, via the `fflush()' library call) so that
-errors, such as disk full, are immediately flagged via the relevant
-`ERR=' and `IOSTAT=' mechanism, instead of such errors being flagged
-later as subsequent writes occur, forcing the previously written data
-to disk, or when the file is closed.
-
- Essentially, the difference can be viewed as synchronous error
-reporting (immediate flagging of errors during writes) versus
-asynchronous, or, more precisely, buffered error reporting (detection
-of errors might be delayed).
-
- `libg2c' supports flagging write errors immediately when it is built
-with the `ALWAYS_FLUSH' macro defined. This results in a `libg2c' that
-runs slower, sometimes quite a bit slower, under certain
-circumstances--for example, accessing files via the networked file
-system NFS--but the effect can be more reliable, robust file I/O.
-
- If you know that Fortran programs requiring this level of precision
-of error reporting are to be compiled using the version of `g77' you
-are building, you might wish to modify the `g77' source tree so that
-the version of `libg2c' is built with the `ALWAYS_FLUSH' macro defined,
-enabling this behavior.
-
- To do this, find this line in `egcs/libf2c/f2c.h' in your `g77'
-source tree:
-
- /* #define ALWAYS_FLUSH */
-
- Remove the leading `/* ', so the line begins with `#define', and the
-trailing ` */'.
-
- Then build or rebuild `g77' as appropriate.
-
-Maximum Stackable Size
-----------------------
-
- `g77', on most machines, puts many variables and arrays on the stack
-where possible, and can be configured (by changing
-`FFECOM_sizeMAXSTACKITEM' in `egcs/gcc/f/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 more opportunities for the GBE to
-optimize the generated code).
-
- *Note:* Putting more variables and arrays on the stack might cause
-problems due to system-dependent limits on stack size. Also, the value
-of `FFECOM_sizeMAXSTACKITEM' has no effect on automatic variables and
-arrays. *Note But-bugs::, for more information.
-
-Floating-point Bit Patterns
----------------------------
-
- The `g77' build will crash if an attempt is made to build it as a
-cross-compiler for a target when `g77' cannot reliably determine the
-bit pattern of floating-point constants for the target. Planned
-improvements for version 0.6 of `g77' will give it the capabilities it
-needs to not have to crash the build but rather generate correct code
-for the target. (Currently, `g77' would generate bad code under such
-circumstances if it didn't crash during the build, e.g. when compiling
-a source file that does something like `EQUIVALENCE (I,R)' and `DATA
-R/9.43578/'.)
-
-Initialization of Large Aggregate Areas
----------------------------------------
-
- A warning message is issued when `g77' sees code that provides
-initial values (e.g. via `DATA') to an aggregate area (`COMMON' or
-`EQUIVALENCE', or even a large enough array or `CHARACTER' variable)
-that is large enough to increase `g77''s compile time by roughly a
-factor of 10.
-
- This size currently is quite small, since `g77' currently has a
-known bug requiring too much memory and time to handle such cases. In
-`egcs/gcc/f/data.c', the macro `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.
-
- After changing this macro definition, you must (of course) rebuild
-and reinstall `g77' for the change to take effect.
-
- Note that, as of version 0.5.18, improvements have reduced the scope
-of the problem for *sparse* initialization of large arrays, especially
-those with large, contiguous uninitialized areas. However, the warning
-is issued at a point prior to when `g77' knows whether the
-initialization is sparse, and delaying the warning could mean it is
-produced too late to be helpful.
-
- Therefore, the macro definition should not be adjusted to reflect
-sparse cases. Instead, adjust it to generate the warning when densely
-initialized arrays begin to cause responses noticeably slower than
-linear performance would suggest.
-
-Alpha Problems Fixed
---------------------
-
- `g77' used to warn when it was used to compile Fortran code for a
-target configuration that is not basically a 32-bit machine (such as an
-Alpha, which is a 64-bit machine, especially if it has a 64-bit
-operating system running on it). That was because `g77' was known to
-not work properly on such configurations.
-
- As of version 0.5.20, `g77' is believed to work well enough on such
-systems. So, the warning is no longer needed or provided.
-
- However, support for 64-bit systems, especially in areas such as
-cross-compilation and handling of intrinsics, is still incomplete. The
-symptoms are believed to be compile-time diagnostics rather than the
-generation of bad code. It is hoped that version 0.6 will completely
-support 64-bit systems.
-
-Quick Start
-===========
-
- For users of the GCC-2.95 version of `g77', this information is
-superceded by the GCC installation instructions.
-
-Complete Installation
-=====================
-
- For users of the GCC-2.95 version of `g77', this information is
-superceded by the GCC installation instructions.
-
-Distributing Binaries
-=====================
-
- For users of the GCC-2.95 version of `g77', this information is
-superceded by the GCC installation instructions.
-