diff options
Diffstat (limited to 'gcc/f/INSTALL')
-rw-r--r-- | gcc/f/INSTALL | 140 |
1 files changed, 85 insertions, 55 deletions
diff --git a/gcc/f/INSTALL b/gcc/f/INSTALL index d8a1dd89799..db4157af389 100644 --- a/gcc/f/INSTALL +++ b/gcc/f/INSTALL @@ -38,8 +38,9 @@ follow the `g77' installation instructions: available--in fact, a complete GNU UNIX system can be put together on most systems, if desired. - The version of GNU `gzip' used to package this release is 1.24. - (The version of GNU `tar' used to package this release is 1.11.2.) + The version of GNU `gzip' used to package this release is + 1.2.4. (The version of GNU `tar' used to package this release is + 1.12.) `gcc-2.7.2.3.tar.gz' You need to have this, or some other applicable, version of `gcc' @@ -54,7 +55,7 @@ follow the `g77' installation instructions: Without an applicable `gcc' source tree, you cannot build `g77'. You can obtain an FSF distribution of `gcc' from the FSF. -`g77-0.5.21.tar.gz' +`g77-0.5.22.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. The size of this package is @@ -145,14 +146,16 @@ Enough disk space In any case, you can apply patches by hand--patch files are designed for humans to read them. - The version of GNU `patch' used to develop this release is 2.4. + The version of GNU `patch' used to develop this release is + 2.5. `make' Your system must have `make', and you will probably save yourself a lot of trouble if it is GNU `make' (sometimes referred to as `gmake'). - The version of GNU `make' used to develop this release is 3.73. + The version of GNU `make' used to develop this release is + 3.76.1. `cc' Your system must have a working C compiler. @@ -167,7 +170,8 @@ Enough disk space distribution. You can obtain `bison' the same way you obtained `gcc' and `g77'. - The version of GNU `bison' used to develop this release is 1.25. + The version of GNU `bison' used to develop this release is + 1.25. *Note Missing bison?::, for information on how to work around not having `bison'. @@ -187,10 +191,10 @@ Enough disk space All UNIX systems have `sed', but some have a broken version that cannot handle configuring, building, or installing `gcc' or `g77'. - The version of GNU `sed' used to develop this release is 2.05. - (Note that GNU `sed' version 3.0 was withdrawn by the FSF--if you - happen to have this version installed, replace it with version - 2.05 immediately. See a GNU distribution site for further + The version of GNU `sed' used to develop this release is + 2.05. (Note that GNU `sed' version 3.0 was withdrawn by the + FSF--if you happen to have this version installed, replace it with + version 2.05 immediately. See a GNU distribution site for further explanation.) `root' access or equivalent @@ -338,7 +342,20 @@ corresponding output files. If the above does not work, definitely start from scratch and avoid copying the `gcc' using any method that does not reliably preserve -date-time-modified information, such as the UNIX `cp -r' command. +date-time-modified information, such as the UNIX `cp -r' command (use +`cp -pr' instead). + +System-specific Problems +------------------------ + + 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 `egcs' instead of versions of `g77' based on versions of +`gcc' prior to 2.8. `http://www.cygnus.com/egcs' for information on +`egcs', or obtain a copy from `ftp://egcs.cygnus.com/pub/egcs'. + + If your system is Irix 6, to obtain a working version of `gcc', +`http://reality.sgi.com/knobi/gcc-2.7.2.x-on-irix-6.2-6.3'. Cross-compiler Problems ----------------------- @@ -491,11 +508,12 @@ 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 g77-0.6 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/'.) +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 --------------------------------------- @@ -567,7 +585,7 @@ is assumed that the source distributions themselves already reside in system: /usr/FSF/gcc-2.7.2.3.tar.gz - /usr/FSF/g77-0.5.21.tar.gz + /usr/FSF/g77-0.5.22.tar.gz Users of the following systems should not blindly follow these quick-start instructions, because of problems their systems have coping @@ -593,17 +611,17 @@ of some of the steps. These explanations follow this list of steps. sh[ 2]# gunzip -c < /usr/FSF/gcc-2.7.2.3.tar.gz | tar xf - [Might say "Broken pipe"...that is normal on some systems.] - sh[ 3]# gunzip -c < /usr/FSF/g77-0.5.21.tar.gz | tar xf - + sh[ 3]# gunzip -c < /usr/FSF/g77-0.5.22.tar.gz | tar xf - ["Broken pipe" again possible.] sh[ 4]# ln -s gcc-2.7.2.3 gcc - sh[ 5]# ln -s g77-0.5.21 g77 + sh[ 5]# ln -s g77-0.5.22 g77 sh[ 6]# mv -i g77/* gcc [No questions should be asked by mv here; or, you made a mistake.] - sh[ 7]# patch -p1 -V t -d gcc < gcc/f/gbe/2.7.2.3.diff + sh[ 7]# patch -p1 -E -V t -d gcc < gcc/f/gbe/2.7.2.3.diff [Unless patch complains about rejected patches, this step worked.] sh[ 8]# cd gcc @@ -655,17 +673,17 @@ Step 1: `cd /usr/src' your system knew where to look for the source code for the installed version of `g77' and `gcc' in any case. -Step 3: `gunzip -d < /usr/FSF/g77-0.5.21.tar.gz | tar xf -' +Step 3: `gunzip -d < /usr/FSF/g77-0.5.22.tar.gz | tar xf -' It is not always necessary to obtain the latest version of `g77' as a complete `.tar.gz' file if you have a complete, earlier distribution of `g77'. If appropriate, you can unpack that earlier version of `g77', and then apply the appropriate patches to - achieve the same result--a source tree containing version 0.5.21 - of `g77'. + achieve the same result--a source tree containing version + 0.5.22 of `g77'. Step 4: `ln -s gcc-2.7.2.3 gcc' -Step 5: `ln -s g77-0.5.21 g77' +Step 5: `ln -s g77-0.5.22 g77' These commands mainly help reduce typing, and help reduce visual clutter in examples in this manual showing what to type to install `g77'. @@ -675,7 +693,7 @@ Step 5: `ln -s g77-0.5.21 g77' Step 6: `mv -i g77/* gcc' After doing this, you can, if you like, type `rm g77' and `rmdir - g77-0.5.21' to remove the empty directory and the symbol link to + g77-0.5.22' 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 `g77' are installed on your system. @@ -684,10 +702,9 @@ Step 6: `mv -i g77/* gcc' directory (as merged into the `gcc' directory). Step 7: `patch -p1 ...' - This can produce a wide variety of printed output, from `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 `patch' version 2.5 or later, this should + produce a list of files patched. (Other versions of `patch' might + not work properly.) If messages about "fuzz", "offset", or especially "reject files" are printed, it might mean you applied the wrong patch file. If @@ -701,6 +718,13 @@ Step 7: `patch -p1 ...' *Note Merging Distributions::, for more information. + *Note:* `gcc' versions circa 2.7.2.2 and 2.7.2.3 are known to have + slightly differing versions of the `gcc/ChangeLog' file, depending + on how they are obtained. You can safely ignore diagnostics + `patch' reports when patching this particular file, since it is + purely a documentation file for implementors. See + `gcc/f/gbe/2.7.2.3.diff' for more information. + Step 9: `touch f77-install-ok' Don't do this if you don't want to overwrite an existing version of `f77' (such as a native compiler, or a script that invokes @@ -833,9 +857,9 @@ generally only the documentation is immediately usable. sh# cd /usr/src sh# gunzip -c /usr/FSF/gcc-2.7.2.3.tar.gz | tar xf - - sh# gunzip -c /usr/FSF/g77-0.5.21.tar.gz | tar xf - + sh# gunzip -c /usr/FSF/g77-0.5.22.tar.gz | tar xf - sh# ln -s gcc-2.7.2.3 gcc - sh# ln -s g77-0.5.21 g77 + sh# ln -s g77-0.5.22 g77 sh# mv -i g77/* gcc *Notes:* The commands beginning with `gunzip...' might print `Broken @@ -947,10 +971,9 @@ changes to the `g77' front end (FFE). in general, will stabilize sufficiently for the need for hand-patching to disappear. - Invoking `patch' as described in `gcc/f/gbe/README' can produce a -wide variety of printed output, from `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 `patch' version 2.5 or later, this should +produce a list of files patched. (Other versions of `patch' might not +work properly.) If messages about "fuzz", "offset", or especially "reject files" are printed, it might mean you applied the wrong patch file. If you @@ -966,6 +989,13 @@ works). of several files as saved by `patch'. To remove these, after `cd gcc', type `rm -i *.~*~'. + *Note:* `gcc' versions circa 2.7.2.2 and 2.7.2.3 are known to have +slightly differing versions of the `gcc/ChangeLog' file, depending on +how they are obtained. You can safely ignore diagnostics `patch' +reports when patching this particular file, since it is purely a +documentation file for implementors. See `gcc/f/gbe/2.7.2.3.diff' for +more information. + *Note:* `g77''s configuration file `gcc/f/config-lang.in' ensures that the source code for the version of `gcc' being configured has at least one indication of being patched as required specifically by `g77'. @@ -975,7 +1005,8 @@ explanation. *Please* do not try to disable the check, otherwise `g77' might well appear to build and install correctly, and even appear to compile correctly, but could easily produce broken code. - `diff -rcp2N' is used to create the patch files in `gcc/f/gbe/'. + `LC_ALL=C TZ=UTC0 diff -rcp2N' is used to create the patch files in +`gcc/f/gbe/'. Installing `f77' ---------------- @@ -1320,46 +1351,46 @@ them when they work: sh# cd /usr/src/gcc sh# ./g77 --driver=./xgcc -B./ -v - g77 version 0.5.21 + g77 version 0.5.22 ./xgcc -B./ -v -fnull-version -o /tmp/gfa18047 ... Reading specs from ./specs - gcc version 2.7.2.3.f.1 + gcc version 2.7.2.3.f.2 ./cpp -lang-c -v -isystem ./include -undef ... - GNU CPP version 2.7.2.3.f.1 (Linux/Alpha) + GNU CPP version 2.7.2.3.f.2 (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/2.7.2.3.f.2/include /usr/include End of search list. ./f771 /tmp/cca18048.i -fset-g77-defaults -quiet -dumpbase ... - GNU F77 version 2.7.2.3.f.1 (Linux/Alpha) compiled ... - GNU Fortran Front End version 0.5.21 compiled: ... + GNU F77 version 2.7.2.3.f.2 (Linux/Alpha) compiled ... + GNU Fortran Front End version 0.5.22 compiled: ... as -nocpp -o /tmp/cca180481.o /tmp/cca18048.s ld -G 8 -O1 -o /tmp/gfa18047 /usr/lib/crt0.o -L. ... - __G77_LIBF77_VERSION__: 0.5.21 + __G77_LIBF77_VERSION__: 0.5.22 @(#)LIBF77 VERSION 19970404 - __G77_LIBI77_VERSION__: 0.5.21 + __G77_LIBI77_VERSION__: 0.5.22 @(#) LIBI77 VERSION pjw,dmg-mods 19970816 - __G77_LIBU77_VERSION__: 0.5.21 + __G77_LIBU77_VERSION__: 0.5.22 @(#) LIBU77 VERSION 19970609 sh# ./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 2.7.2.3.f.2 ./cpp -lang-c -v -isystem ./include -undef ... - GNU CPP version 2.7.2.3.f.1 (Linux/Alpha) + GNU CPP version 2.7.2.3.f.2 (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/2.7.2.3.f.2/include /usr/include End of search list. ./cc1 /tmp/cca18063.i -quiet -dumpbase null.c -version ... - GNU C version 2.7.2.3.f.1 (Linux/Alpha) compiled ... + GNU C version 2.7.2.3.f.2 (Linux/Alpha) compiled ... as -nocpp -o /tmp/cca180631.o /tmp/cca18063.s ld -G 8 -O1 -o /tmp/delete-me /usr/lib/crt0.o -L. ... /usr/lib/crt0.o: In function `__start': @@ -1605,10 +1636,9 @@ general) are broken, at least for their system. Finally, *please* ask for bug reports to go to you first, at least 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 `g77' sources to port `g77', e.g. to OS/2. -<fortran@gnu.ai.mit.edu> 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. Once you are quite -certain a bug report does not involve your efforts, you can forward it -to us. +the `g77' sources to port `g77', e.g. to OS/2. <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. Once you are quite certain a bug report does not +involve your efforts, you can forward it to us. |