⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 install

📁 gcc-2.95.3 Linux下最常用的C编译器
💻
字号:
*Note:* This file is automatically generated from the files`install0.texi' and `g77install.texi'.  `INSTALL' is *not* a sourcefile, although it is normally included within source distributions.   This file contains installation information for the GNU Fortrancompiler.  Copyright (C) {No Value For "copyrights-install"} FreeSoftware Foundation, Inc.  You may copy, distribute, and modify itfreely as long as you preserve this copyright notice and permissionnotice.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 theinformation is obsolete, and is superceded by the GCC installationprocedures.  Such information is accordingly omitted and flagged assuch.   *Warning:* The information below is still under development, andmight 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 areparticularly concentrated on any version of this information that isdistributed as part of a *released* `g77'.   In particular, while this information is intended to apply to theGCC-2.95 version of `g77', only an official *release* of that versionis 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 issuperceded by the GCC installation instructions.Problems Installing===================   This is a list of problems (and some apparent problems which don'treally mean anything is wrong) that show up when configuring, building,installing, or porting GNU Fortran.   *Note Installation Problems: (gcc)Installation Problems, for moreinformation 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 thiswouldn't be very hard (just tedious), but the code using GNU extensionsto the C language is expected to be rewritten for 0.6 anyway, so thereare no plans for an interim fix.   This requirement does not mean you must already have `gcc' installedto 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' usingthe 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 isnot 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' wouldcreate the various `stageN' directories and their subdirectories, sodevelopers and expert installers wouldn't have to reconfigure aftercleaning up.   That help has arrived as of version 0.5.23 of `g77' and version 1.1of `egcs'.  Configuration itself no longer creates any particulardirectories 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 beingprocessed.   As of `g77' version 0.5.23 and `egcs' version 1.1, `g77' now obeysthis 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 variouslanguage-specific activities when their respective language strings donot appear in the `LANGUAGES' macro in effect during that invocation of`make'.   It is expected that these remaining problems will be fixed in afuture 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 inpublic beta testing since February of 1995.  Alpha testing was done bya small number of people worldwide on a fairly wide variety ofmachines, involving self-compilation in most or all cases.  Betatesting has been done primarily via self-compilation, but in more andmore cases, cross-compilation (and "criss-cross compilation", where aversion of a compiler is built on one machine to run on a second andgenerate 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 fromthe 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 intoproblems with cross-compilation on certain machines, for severalreasons.   * 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 editingsource files in `egcs/gcc/f/' before building.   This information, and perhaps even these settings, representstop-gap solutions to problems people doing various ports of `g77' haveencountered.  As such, none of the following information is expected tobe pertinent in future versions of `g77'.Larger File Unit Numbers------------------------   As distributed, whether as part of `f2c' or `g77', `libf2c' acceptsfile unit numbers only in the range 0 through 99.  For example, astatement 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 theuse of unit numbers higher than 99, you can change the value of the`MXUNIT' macro, which represents the maximum unit number, to anappropriately 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 atleast one *greater* than the maximum unit number used by the Fortranprograms 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 yoursystem might place on the number of files open at the same time.  Thatis, the macro might allow a program to do `WRITE (UNIT=100)', but thelibrary and operating system underlying `libf2c' might disallow it ifmany other files have already been opened (via `OPEN' or implicitly via`READ', `WRITE', and so on).  Information on how to increase theseother limits should be found in your system's documentation.Always Flush Output-------------------   Some Fortran programs require output (writes) to be flushed to theoperating system (under UNIX, via the `fflush()' library call) so thaterrors, such as disk full, are immediately flagged via the relevant`ERR=' and `IOSTAT=' mechanism, instead of such errors being flaggedlater as subsequent writes occur, forcing the previously written datato disk, or when the file is closed.   Essentially, the difference can be viewed as synchronous errorreporting (immediate flagging of errors during writes) versusasynchronous, or, more precisely, buffered error reporting (detectionof errors might be delayed).   `libg2c' supports flagging write errors immediately when it is builtwith the `ALWAYS_FLUSH' macro defined.  This results in a `libg2c' thatruns slower, sometimes quite a bit slower, under certaincircumstances--for example, accessing files via the networked filesystem NFS--but the effect can be more reliable, robust file I/O.   If you know that Fortran programs requiring this level of precisionof error reporting are to be compiled using the version of `g77' youare building, you might wish to modify the `g77' source tree so thatthe 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 thetrailing ` */'.   Then build or rebuild `g77' as appropriate.Maximum Stackable Size----------------------   `g77', on most machines, puts many variables and arrays on the stackwhere possible, and can be configured (by changing`FFECOM_sizeMAXSTACKITEM' in `egcs/gcc/f/com.c') to force smaller-sizedentities into static storage (saving on stack space) or permitlarger-sized entities to be put on the stack (which can improverun-time performance, as it presents more opportunities for the GBE tooptimize the generated code).   *Note:* Putting more variables and arrays on the stack might causeproblems due to system-dependent limits on stack size.  Also, the valueof `FFECOM_sizeMAXSTACKITEM' has no effect on automatic variables andarrays.  *Note But-bugs::, for more information.Floating-point Bit Patterns---------------------------   The `g77' build will crash if an attempt is made to build it as across-compiler for a target when `g77' cannot reliably determine thebit pattern of floating-point constants for the target.  Plannedimprovements for version 0.6 of `g77' will give it the capabilities itneeds to not have to crash the build but rather generate correct codefor the target.  (Currently, `g77' would generate bad code under suchcircumstances if it didn't crash during the build, e.g. when compilinga source file that does something like `EQUIVALENCE (I,R)' and `DATAR/9.43578/'.)Initialization of Large Aggregate Areas---------------------------------------   A warning message is issued when `g77' sees code that providesinitial 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 afactor of 10.   This size currently is quite small, since `g77' currently has aknown bug requiring too much memory and time to handle such cases.  In`egcs/gcc/f/data.c', the macro `FFEDATA_sizeTOO_BIG_INIT_' is definedto the minimum size for the warning to appear.  The size is specifiedin storage units, which can be bytes, words, or whatever, on acase-by-case basis.   After changing this macro definition, you must (of course) rebuildand reinstall `g77' for the change to take effect.   Note that, as of version 0.5.18, improvements have reduced the scopeof the problem for *sparse* initialization of large arrays, especiallythose with large, contiguous uninitialized areas.  However, the warningis issued at a point prior to when `g77' knows whether theinitialization is sparse, and delaying the warning could mean it isproduced too late to be helpful.   Therefore, the macro definition should not be adjusted to reflectsparse cases.  Instead, adjust it to generate the warning when denselyinitialized arrays begin to cause responses noticeably slower thanlinear performance would suggest.Alpha Problems Fixed--------------------   `g77' used to warn when it was used to compile Fortran code for atarget configuration that is not basically a 32-bit machine (such as anAlpha, which is a 64-bit machine, especially if it has a 64-bitoperating system running on it).  That was because `g77' was known tonot work properly on such configurations.   As of version 0.5.20, `g77' is believed to work well enough on suchsystems.  So, the warning is no longer needed or provided.   However, support for 64-bit systems, especially in areas such ascross-compilation and handling of intrinsics, is still incomplete.  Thesymptoms are believed to be compile-time diagnostics rather than thegeneration of bad code.  It is hoped that version 0.6 will completelysupport 64-bit systems.Quick Start===========   For users of the GCC-2.95 version of `g77', this information issuperceded by the GCC installation instructions.Complete Installation=====================   For users of the GCC-2.95 version of `g77', this information issuperceded by the GCC installation instructions.Distributing Binaries=====================   For users of the GCC-2.95 version of `g77', this information issuperceded by the GCC installation instructions.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -