--- gcc/INSTALL 2018/04/24 16:51:46 1.1.1.11 +++ gcc/INSTALL 2018/04/24 16:52:40 1.1.1.12 @@ -13,6 +13,9 @@ Here is the procedure for installing GNU * Menu: +* Other Dir:: Compiling in a separate directory (not where the source is). +* Sun Install:: See below for installation on the Sun. +* 3B1 Install:: See below for installation on the 3B1. * VMS Install:: See below for installation on VMS. 1. Edit `Makefile'. If you are using HPUX, or any form of system @@ -22,8 +25,9 @@ Here is the procedure for installing GNU 2. On a Sequent system, go to the Berkeley universe. 3. Choose configuration files. The easy way to do this is to run - the command file `config.gcc' with a single argument, which is - the name of the machine (and operating system, in some cases). + the command file `config.gcc' with a single argument, which + specifies the type of machine (and in some cases which operating + system). Here is a list of the possible arguments: @@ -46,22 +50,25 @@ Here is the procedure for installing GNU `sequent-i386' Sequent with Intel 386 processors. + `i386-aix' + Intel 386 PCs or PS/2s running AIX. + `sun2' Sun 2 running system version 2 or 3. `sun3' - Sun 3 running system version 2 or 3, with 68881. - - Note there we do not provide a configuration file to use an - FPA by default because programs that establish signal - handlers for floating point traps inherently cannot work - with the FPA. + Sun 3 running system version 2 or 3, with 68881. Note + there we do not provide a configuration file to use an FPA + by default, because programs that establish signal handlers + for floating point traps inherently cannot work with the FPA. `sun3-nfp' Sun 3 running system version 2 or 3, without 68881. `sun4' - Sun 4 running system version 2 or 3. + Sun 4 running system version 2 or 3. *Note + Incompatibilities::, for calling convention + incompatibilities on the Sun 4 (sparc). `sun2-os4' Sun 2 running system version 4. @@ -73,22 +80,59 @@ Here is the procedure for installing GNU Sun 3 running system version 4, without 68881. `sun4-os4' - Sun 4 running system version 4. + Sun 4 running system version 4. *Note Incompatibilities::, + for calling convention incompatibilities on the Sun 4 + (sparc). `sun386' Sun 386 (``roadrunner''). `alliant' - Alliant FX/8 computer. Currently, there are bugs in the - support for floating point. Also note that Alliant's - version of dbx does not manage to work with the output from - GNU CC. + Alliant FX/8 computer. Note that the standard installed C + compiler in Concentrix 5.0 has a bug which prevent it from + compiling GNU CC correctly. You can patch the compiler bug + as follows: + + cp /bin/pcc ./pcc + adb -w ./pcc - << 'EOF' + 15f6?w 6610 + EOF + + Then you must use the `-ip12' option when compiling GNU CC + with the patched compiler, as shown here: + + make CC="./pcc -ip12" CFLAGS=-w + + Note also that Alliant's version of DBX does not manage to + work with the output from GNU CC. + + `tahoe' + The tahoe computer (running BSD, and using DBX). + + `decstation' + The DEC 3100 Mips machine (``pmax''). Note that GNU CC + cannot generate debugging information in the unusual format + used on the Mips. + + `mips-sysv' + The Mips computer, RS series, with the System V environment + as default. Note that GNU CC cannot generate debugging + information in the unusual format used on the Mips. + + `mips-bsd43' + The Mips computer, RS series, with the BSD 4.3 environment + as default. Note that GNU CC cannot generate debugging + information in the unusual format used on the Mips. `mips' - Some variant of MIPS computer (but not the one from DEC). - Note that this machine description was written for GNU CC - version 1.32 and may require some updating to work with the - current version. + The Mips computer, M series. Note that GNU CC cannot + generate debugging information in the unusual format used + on the Mips. + + `iris' + The Mips computer, as delivered by Iris. Note that GNU CC + cannot generate debugging information in the unusual format + used on the Mips. `convex-c1' Convex C1 computer. @@ -96,19 +140,34 @@ Here is the procedure for installing GNU `convex-c2' Convex C2 computer. + `pyramid' + Pyramid computer. + `hp9k320' HP 9000 series 300 using HPUX assembler. Note there is no support in GNU CC for HP's debugger; thus, `-g' is not available in this configuration. - `hp9k320g' + `hp9k320-gas' HP 9000 series 300 using GNU assembler, linker and debugger. This requires the HP-adapt package, which is available along with the GNU linker as part of the ``binutils'' distribution. This is on the GNU CC distribution tape. + `hp9k320-old' + HP 9000 series 300 using HPUX assembler, in operating + system versions older than 6.5. Note there is no support + in GNU CC for HP's debugger; thus, `-g' is not available in + this configuration. + + `hp9k320-bsd' + HP 9000 series 300 running BSD. + `isi68' - ISI 68000 or 68020 system. + ISI 68000 or 68020 system with a 68881. + + `isi68-nfp' + ISI 68000 or 68020 system without a 68881. `news800' Sony NEWS 68020 system. @@ -122,11 +181,11 @@ Here is the procedure for installing GNU must fix a kernel bug. Details in the file `ALTOS-README'. `3b1' - AT&T 3b1, a.k.a. 7300 PC. Note that the current version of - GNU CC cannot be compiled with the Unix compiler on this - machine, due to bugs in the Unix comiler. GNU CC does work - correctly, however, if you can compile it with older - version of GNU CC or cross-compile it. + AT&T 3b1, a.k.a. 7300 PC. Note that special procedures are + needed to compile GNU CC with this machine's standard C + compiler, due to bugs in that compiler. *Note 3b1 + Install::. You can bootstrap it more easily with previous + versions of GNU CC if you have them. `sequent-ns32k' Sequent containing ns32000 processors. @@ -159,11 +218,6 @@ Here is the procedure for installing GNU `xm-i386v.h' for Intel 80386's running system V. - `xm-sunos4.h' - for Suns (model 2, 3 or 4) running *operating system* - version 4. (Use `xm-m68k.h' or `xm-sparc.h' for - version 3.) - `xm-sun386i.h' for Sun roadrunner running any version of the operating system. @@ -192,6 +246,13 @@ Here is the procedure for installing GNU `tm-sun3-nfp.h' for Sun 3 machines with no hardware floating point. + `tm-sun3os3.h' + for Sun 3 machines with 68881, running Sunos version 3. + + `tm-sun3os3nf.h' + for Sun 3 machines with no hardware floating point, + running Sunos version 3. + `tm-sun2.h' for Sun 2 machines. @@ -202,8 +263,12 @@ Here is the procedure for installing GNU for Integrated Solutions systems. This file assumes you use the GNU assembler. + `tm-isi68-nfp.h' + for Integrated Solutions systems without a 68881. + This file assumes you use the GNU assembler. + `tm-news800.h' - for SONY News systems. + for Sony NEWS systems. `tm-hp9k320.h' for HPUX systems, if you are using GNU CC with the @@ -231,6 +296,12 @@ Here is the procedure for installing GNU 386 system, or `tm-compaq.h' for a Compaq, or `tm-sun386i.h' for a Sun 386 system. + For the Mips computer, there are five choices: `tm-mips.h' + for the M series, `tm-mips-bsd.h' for the RS series with + BSD, `tm-mips-sysv.h' for the RS series with System V, + `tm-iris.h' for the Iris version of the machine, and + `tm-decstatn.h' for the Decstation. + For the 32000, use `tm-sequent.h' if you are using a Sequent machine, or `tm-encore.h' for an Encore machine, or `tm-genix.h' if you are using Genix version 3; otherwise, @@ -263,13 +334,7 @@ Here is the procedure for installing GNU Bison versions older that Sept 8, 1988 will produce incorrect output for `c-parse.tab.c'. - 5. If you are using a Sun, make sure the environment variable - `FLOAT_OPTION' is not set. If this option were set to `f68881' - when `gnulib' is compiled, the resulting code would demand to be - linked with a special startup file and will not link properly - without special pains. - - 6. Build the compiler. Just type `make' in the compiler directory. + 5. Build the compiler. Just type `make' in the compiler directory. Ignore any warnings you may see about ``statement not reached'' in the `insn-emit.c'; they are normal. Any other compilation @@ -277,17 +342,17 @@ Here is the procedure for installing GNU operating system, and should be investigated and reported (*note Bugs::.). - 7. Optionally, install the library functions for 64-bit integer + 6. Optionally, install the library functions for 64-bit integer arithmetic. You do this with the command `make gnulib2'. In the future this will happen automatically; for now, it is optional, until we are sure it works on all machines. - 8. If you are using COFF-encapsulation, you must convert `gnulib' + 7. If you are using COFF-encapsulation, you must convert `gnulib' to a GNU-format library at this point. See the file `README-ENCAP' in the directory containing the GNU binary file utilities, for directions. - 9. Move the first-stage object files and executables into a + 8. Move the first-stage object files and executables into a subdirectory with this command: make stage1 @@ -296,7 +361,7 @@ Here is the procedure for installing GNU installation is complete, you may wish to delete these files with `rm -r stage1'. - 10. Recompile the compiler with itself, with this command: + 9. Recompile the compiler with itself, with this command: make CC=stage1/gcc CFLAGS="-g -O -Bstage1/" @@ -306,7 +371,7 @@ Here is the procedure for installing GNU make CC=stage1/gcc CFLAGS="-g -O -Bstage1/ -msoft-float" - 11. If you wish to test the compiler by compiling it with itself one + 10. If you wish to test the compiler by compiling it with itself one more time, do this (in C shell): make stage2 @@ -336,7 +401,7 @@ Here is the procedure for installing GNU cmp foo1 foo2 done - 12. Install the compiler driver, the compiler's passes and run-time + 11. Install the compiler driver, the compiler's passes and run-time support. You can use the following command: make install @@ -387,32 +452,111 @@ files by setting the Make variable `libd  -File: gcc.info, Node: VMS Install, Prev: Installation, Up: Installation +File: gcc.info, Node: Other Dir, Next: Sun Install, Prev: Installation, Up: Installation -Installing GNU CC on VMS -======================== +Compilation in a Separate Directory +=================================== -The VMS version of GNU CC is distributed in a backup saveset -containing both source code and precompiled binaries. +If you wish to build the object files and executables in a directory +other than the one containing the source files, here is what you must +do differently: -Sometimes the binaries will be from an older version that the -sources, because we don't always have time to update them. In this -case, you should use the binaries you get to recompile the sources. -If you must recompile, here is how: + 1. Go to that directory before running `config.gcc': - 1. Copy the file `tm-vms.h' to `tm.h', `xm-vms.h' to `config.h', - `vax.md' to `md.' and `output-vax.c' to `aux-output.c'. + mkdir gcc-sun3 + cd gcc-sun3 - 2. Type `@make' to do recompile everything. + On systems that do not support symbolic links, this directory + must be on the same file system as the source code directory. - If you are compiling with a version of GCC older than 1.33, - specify `/DEFINE=("inline=")' as an option in all the - compilations. This requires editing all the `gcc' commands in - `make-cc1.com'. (The older versions had problems supporting - `inline'.) Once you have a working 1.33 or newer GCC, you can - change this file back. + 2. Specify where to find `config.gcc' when you run it: + + ../gcc-1.36/config.gcc ... + + 3. Specify where to find the sources, as an argument to `config.gcc': + + ../gcc-1.36/config.gcc -srcdir=../gcc-1.36 sun3 + + The `-srcdir=DIR' option is not needed when the source directory + is the parent of the current directory, because `config.gcc' + detects that case automatically. + +Now, you can run `make' in that directory. You need not repeat the +configuration steps shown above, when ordinary source files change. +You must, however, run `config.gcc' again when the configuration +files change, if your system does not support symbolic links. + + + +File: gcc.info, Node: Sun Install, Next: 3b1 Install, Prev: Other Dir, Up: Installation + +Installing GNU CC on the Sun +============================ + +Make sure the environment variable `FLOAT_OPTION' is not set when you +compile `gnulib'. If this option were set to `f68881' when `gnulib' +is compiled, the resulting code would demand to be linked with a +special startup file and would not link properly without special +pains. + +There is a bug in `alloca' in certain versions of the Sun library. +To avoid this bug, install the binaries of GNU CC that were compiled +by GNU CC. They use `alloca' as a built-in function and never the +one in the library. + +Some versions of the Sun compiler crash when compiling GNU CC. The +problem is a segmentation fault in cpp. + +This problem seems to be due to the bulk of data in the environment +variables. You may be able to avoid it by using the following +command to compile GNU CC with Sun CC: + + make CC="TERMCAP=x OBJS=x LIBFUNCS=x STAGESTUFF=x cc" + + + +File: gcc.info, Node: 3b1 Install, Next: VMS Install, Prev: Sun Install, Up: Installation + +Installing GNU CC on the 3b1 +============================ + +Installing GNU CC on the 3b1 is difficult if you do not already have +GNU CC running, due to bugs in the installed C compiler. However, +the following procedure might work. We are unable to test it. + + 1. Comment out the `#include "config.h"' line on line 37 of + `cccp.c' and do `make cpp'. This makes a preliminary version of + GNU cpp. + + 2. Save the old `/lib/cpp' and copy the preliminary GNU cpp to that + file name. + + 3. Undo your change in `cccp.c', or reinstall the original version, + and do `make cpp' again. + + 4. Copy this final version of GNU cpp into `/lib/cpp'. + + 5. Replace every occurance of `obstack_free' in `tree.c' with + `_obstack_free'. + + 6. Run `make' to get the first-stage GNU CC. + + 7. Reinstall the original version of `/lib/cpp'. + + 8. Now you can compile GNU CC with itself and install it in the + normal fashion. + + + +File: gcc.info, Node: VMS Install, Prev: 3B1 Install, Up: Installation + +Installing GNU CC on VMS +======================== -To install the `GCC' command so you can use the compiler easily, in +The VMS version of GNU CC is distributed in a backup saveset +containing both source code and precompiled binaries. + +To install the `gcc' command so you can use the compiler easily, in the same manner as you use the VMS C compiler, you must install the VMS CLD file for GNU CC as follows: @@ -421,16 +565,18 @@ VMS CLD file for GNU CC as follows: (`gcc-cpp', `gcc-cc1', etc.) and the C include files are kept. This should be done with the commands: - $ assign /super /system disk:[gcc] gnu_cc - $ assign /super /system disk:[gcc.include] gnu_cc_include + $ assign /super /system disk:[gcc.] gnu_cc + $ assign /super /system disk:[gcc.include.] gnu_cc_include with the appropriate disk and directory names. These commands can be placed in your system startup file so they will be - executed whenever the machine is rebooted. + executed whenever the machine is rebooted. You may, if you + choose, do this via the `GCC_INSTALL.COM' script in the `[GCC]' + directory. 2. Install the `GCC' command with the command line: - $ set command /table=sys$library:dcltables gnu_cc:gcc + $ set command /table=sys$library:dcltables gnu_cc:[000000]gcc 3. To install the help file, do the following: @@ -440,6 +586,42 @@ VMS CLD file for GNU CC as follows: /verbose file.c', which is equivalent to the command `gcc -v -c file.c' in Unix. +We try to put corresponding binaries and sources on the VMS +distribution tape. But sometimes the binaries will be from an older +version that the sources, because we don't always have time to update +them. (Use the `/verbose' option to determine the version number of +the binaries and compare it with the source file `version.c' to tell +whether this is so.) In this case, you should use the binaries you +get to recompile the sources. If you must recompile, here is how: + + 1. Copy the file `tm-vms.h' to `tm.h', `xm-vms.h' to `config.h', + `vax.md' to `md.' and `out-vax.c' to `aux-output.c'. The files + to be copied are found in the subdirectory named `config'; they + should be copied to the main directory of GNU CC. + + 2. Setup the logical names and command tables as defined above. In + addition, define the vms logical name `GNU_BISON' to point at + the to the directories where the Bison executable is kept. This + should be done with the command: + + $ assign /super /system disk:[bison.] gnu_bison + + You may, if you choose, use the `INSTALL_BISON.COM' script in + the `[BISON]' directory. + + 3. Install the `BISON' command with the command line: + + $ set command /table=sys$library:dcltables gnu_bison:[000000]bison + + 4. Type `@make' to do recompile everything. + + If you are compiling with a version of GNU CC older than 1.33, + specify `/DEFINE=("inline=")' as an option in all the + compilations. This requires editing all the `gcc' commands in + `make-cc1.com'. (The older versions had problems supporting + `inline'.) Once you have a working 1.33 or newer GNU CC, you + can change this file back. + There is a known problem on VMS: `const' global variables don't work compatibly with the VMS C compiler; we don't know a way to get them to the linker properly.