--- gcc/INSTALL 2018/04/24 16:48:15 1.1.1.8 +++ gcc/INSTALL 2018/04/24 16:51:46 1.1.1.11 @@ -1,4 +1,4 @@ -This is a copy of one node from the Info file gcc.info-1. +This is a copy of one node from the Info file gcc.info-2. For full information on installing and porting GCC, refer to the GCC manual: @@ -6,8 +6,6 @@ GCC manual: TeX output gcc.dvi TeX source gcc.texinfo -File: gcc.info, Node: Installation, Next: Trouble, Prev: Options, Up: Top - Installing GNU CC ***************** @@ -41,14 +39,26 @@ Here is the procedure for installing GNU `i386-sysv' Intel 386 PCs running system V. - `sequent-386' + `i386-sysv-gas' + Intel 386 PCs running system V, using the GNU assembler and + GNU linker. + + `sequent-i386' Sequent with Intel 386 processors. `sun2' Sun 2 running system version 2 or 3. `sun3' - Sun 3 running system version 2 or 3. + 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. @@ -57,7 +67,10 @@ Here is the procedure for installing GNU Sun 2 running system version 4. `sun3-os4' - Sun 3 running system version 4. + Sun 3 running system version 4, with 68881. + + `sun3-nfp-os4' + Sun 3 running system version 4, without 68881. `sun4-os4' Sun 4 running system version 4. @@ -65,13 +78,34 @@ Here is the procedure for installing GNU `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. + + `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. + + `convex-c1' + Convex C1 computer. + + `convex-c2' + Convex C2 computer. + `hp9k320' - HP 9000 series 300 using HPUX assembler. + 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. - `kp9k320g' + `hp9k320g' HP 9000 series 300 using GNU assembler, linker and debugger. - This requires the HP-adapt package which is or will soon be - available in the same places as GNU CC. + 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. `isi68' ISI 68000 or 68020 system. @@ -79,8 +113,20 @@ Here is the procedure for installing GNU `news800' Sony NEWS 68020 system. + `next' + NeXT system. + + `altos' + Altos 3068. Note that you must use the GNU assembler, + linker and debugger, with COFF-encapsulation. Also, you + must fix a kernel bug. Details in the file `ALTOS-README'. + `3b1' - AT&T 3b1, a.k.a. 7300 PC. + 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. `sequent-ns32k' Sequent containing ns32000 processors. @@ -101,8 +147,8 @@ Here is the procedure for installing GNU Config::.). This file is responsible for defining information about the host machine. It includes `tm.h'. - The file's name should be `xm-MACHINE.h', with these - exceptions: + The file is located in the subdirectory `config'. Its name + should be `xm-MACHINE.h', with these exceptions: `xm-vms.h' for vaxen running VMS. @@ -133,14 +179,18 @@ Here is the procedure for installing GNU which refers to the appropriate file. * Make a symbolic link named `tm.h' to the - machine-description macro file for your machine (its name - should be `tm-MACHINE.h'). + machine-description macro file for your machine. It should + be in the subdirectory `config' and its name should be + `tm-MACHINE.h'. If your system is a 68000, don't use the file `tm-m68k.h' directly. Instead, use one of these files: `tm-sun3.h' - for Sun 3 machines. + for Sun 3 machines with 68881. + + `tm-sun3-nfp.h' + for Sun 3 machines with no hardware floating point. `tm-sun2.h' for Sun 2 machines. @@ -176,8 +226,10 @@ Here is the procedure for installing GNU For the 80386, don't use `tm-i386.h' directly. Use `tm-i386v.h' if the target machine is running system V, - `tm-seq386.h' for a Sequent 386 system, or `tm-compaq.h' - for a Compaq, or `tm-sun386i.h' for a Sun 386 system. + `tm-i386gas.h' if it is running system V but you are using + the GNU assembler and linker, `tm-seq386.h' for a Sequent + 386 system, or `tm-compaq.h' for a Compaq, or + `tm-sun386i.h' for a Sun 386 system. For the 32000, use `tm-sequent.h' if you are using a Sequent machine, or `tm-encore.h' for an Encore machine, or @@ -190,14 +242,18 @@ Here is the procedure for installing GNU Note that Encore systems are supported only under BSD. + For Sparc (Sun 4) machines, use `tm-sparc.h' with operating + system version 4, and `tm-sun4os3.h' with system version 3. + * Make a symbolic link named `md' to the machine description - pattern file. Its name should be `MACHINE.md', but MACHINE - is often not the same as the name used in the `tm.h' file - because the `md' files are more general. + pattern file. It should be in the `config' subdirectory + and its name should be `MACHINE.md'; but MACHINE is often + not the same as the name used in the `tm.h' file because + the `md' files are more general. * Make a symbolic link named `aux-output.c' to the output - subroutine file for your machine (its name should be - `output-MACHINE.c'). + subroutine file for your machine. It should be in the + `config' subdirectory and its name should be `out-MACHINE.c'. 4. Make sure the Bison parser generator is installed. (This is unnecessary if the Bison output files `c-parse.tab.c' and @@ -221,7 +277,17 @@ Here is the procedure for installing GNU operating system, and should be investigated and reported (*note Bugs::.). - 7. Move the first-stage object files and executables into a + 7. 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' + 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 subdirectory with this command: make stage1 @@ -230,7 +296,7 @@ Here is the procedure for installing GNU installation is complete, you may wish to delete these files with `rm -r stage1'. - 8. Recompile the compiler with itself, with this command: + 10. Recompile the compiler with itself, with this command: make CC=stage1/gcc CFLAGS="-g -O -Bstage1/" @@ -240,8 +306,8 @@ Here is the procedure for installing GNU make CC=stage1/gcc CFLAGS="-g -O -Bstage1/ -msoft-float" - 9. If you wish to test the compiler by compiling it with itself one - more time, do this: + 11. If you wish to test the compiler by compiling it with itself one + more time, do this (in C shell): make stage2 make CC=stage2/gcc CFLAGS="-g -O -Bstage2/" @@ -249,16 +315,28 @@ Here is the procedure for installing GNU cmp $file stage2/$file end - This will notify you if any of these stage 3 object files - differs from those of stage 2. Any difference, no matter how - innocuous, indicates that the stage 2 compiler has compiled GNU - CC incorrectly, and is therefore a potentially serious bug which - you should investigate and report (*note Bugs::.). - Aside from the `-B' option, the options should be the same as when you made stage 2. - 10. Install the compiler driver, the compiler's passes and run-time + The `foreach' command (written in C shell) will notify you if + any of these stage 3 object files differs from those of stage 2. + On BSD systems, any difference, no matter how innocuous, + indicates that the stage 2 compiler has compiled GNU CC + incorrectly, and is therefore a potentially serious bug which + you should investigate and report (*note Bugs::.). + + On systems that use COFF object files, bytes 5 to 8 will always + be different, since it is a timestamp. On these systems, you + can do the comparison as follows (in Bourne shell): + + for file in *.o; do + echo $file + tail +10 $file > foo1 + tail +10 stage2/$file > foo2 + cmp foo1 foo2 + done + + 12. Install the compiler driver, the compiler's passes and run-time support. You can use the following command: make install @@ -267,7 +345,7 @@ Here is the procedure for installing GNU `gcc-cc1', `gcc-cpp' and `gcc-gnulib' in directory `/usr/local/lib', which is where the compiler driver program looks for them. It also copies the driver program `gcc' into - the directory `/usr/local', so that it appears in typical + the directory `/usr/local/bin', so that it appears in typical execution search paths. *Warning: there is a bug in `alloca' in the Sun library. To @@ -293,7 +371,7 @@ Here is the procedure for installing GNU `fixincludes'. This installs modified, corrected copies of the files `ioctl.h', `ttychars.h' and many others, in a special directory where only GNU CC will normally look for them. This - script will work on various systems because it choose the files + script will work on various systems because it chooses the files by searching all the system headers for the problem cases that we know about. @@ -308,6 +386,7 @@ Also, you can specify an alternative def files by setting the Make variable `libdir' when you make GNU CC. + File: gcc.info, Node: VMS Install, Prev: Installation, Up: Installation Installing GNU CC on VMS @@ -326,6 +405,13 @@ If you must recompile, here is how: 2. Type `@make' to do recompile everything. + 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. + 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: @@ -346,6 +432,20 @@ VMS CLD file for GNU CC as follows: $ set command /table=sys$library:dcltables gnu_cc:gcc + 3. To install the help file, do the following: + + $ lib/help sys$library:helplib.hlb gcc.hlp + Now you can invoke the compiler with a command like `gcc /verbose file.c', which is equivalent to the command `gcc -v -c file.c' in Unix. + +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. + +Note that GNU CC on VMS does not generate debugging information to +describe the program's symbols. It is not straightforward to +implement this, and we have no time to spend on it, but we might +consent to install a very modular implementation if you write it. +You will probably have to modify GAS as well as GNU CC.