Annotation of gcc/INSTALL, revision 1.1.1.12

1.1.1.10  root        1: This is a copy of one node from the Info file gcc.info-2.
1.1       root        2: For full information on installing and porting GCC, refer to the
1.1.1.6   root        3: GCC manual:
1.1       root        4: 
1.1.1.6   root        5:   Info file   gcc.info
                      6:   TeX output  gcc.dvi
                      7:   TeX source  gcc.texinfo
                      8: 
1.1       root        9: Installing GNU CC
                     10: *****************
                     11: 
                     12: Here is the procedure for installing GNU CC on a Unix system.
                     13: 
                     14: * Menu:
                     15: 
1.1.1.12! root       16: * Other Dir::     Compiling in a separate directory (not where the source is).
        !            17: * Sun Install::   See below for installation on the Sun.
        !            18: * 3B1 Install::   See below for installation on the 3B1.
1.1       root       19: * VMS Install::   See below for installation on VMS.
                     20: 
1.1.1.4   root       21:   1. Edit `Makefile'.  If you are using HPUX, or any form of system
                     22:      V, you must make a few changes described in comments at the
1.1.1.8   root       23:      beginning of the file.  Genix requires changes also.
1.1.1.2   root       24: 
                     25:   2. On a Sequent system, go to the Berkeley universe.
1.1       root       26: 
1.1.1.7   root       27:   3. Choose configuration files.  The easy way to do this is to run
1.1.1.12! root       28:      the command file `config.gcc' with a single argument, which
        !            29:      specifies the type of machine (and in some cases which operating
        !            30:      system).
1.1.1.7   root       31: 
1.1.1.8   root       32:      Here is a list of the possible arguments:
                     33: 
                     34:     `vax'
                     35:           Vaxes running BSD.
                     36: 
                     37:     `vms'
                     38:           Vaxes running VMS.
                     39: 
                     40:     `vax-sysv'
                     41:           Vaxes running system V.
                     42: 
                     43:     `i386-sysv'
                     44:           Intel 386 PCs running system V.
                     45: 
1.1.1.9   root       46:     `i386-sysv-gas'
                     47:           Intel 386 PCs running system V, using the GNU assembler and
                     48:           GNU linker.
                     49: 
1.1.1.10  root       50:     `sequent-i386'
1.1.1.8   root       51:           Sequent with Intel 386 processors.
                     52: 
1.1.1.12! root       53:     `i386-aix'
        !            54:           Intel 386 PCs or PS/2s running AIX.
        !            55: 
1.1.1.8   root       56:     `sun2'
                     57:           Sun 2 running system version 2 or 3.
                     58: 
                     59:     `sun3'
1.1.1.12! root       60:           Sun 3 running system version 2 or 3, with 68881.  Note
        !            61:           there we do not provide a configuration file to use an FPA
        !            62:           by default, because programs that establish signal handlers
        !            63:           for floating point traps inherently cannot work with the FPA.
1.1.1.11  root       64: 
1.1.1.9   root       65:     `sun3-nfp'
                     66:           Sun 3 running system version 2 or 3, without 68881.
                     67: 
1.1.1.8   root       68:     `sun4'
1.1.1.12! root       69:           Sun 4 running system version 2 or 3.  *Note
        !            70:           Incompatibilities::, for calling convention
        !            71:           incompatibilities on the Sun 4 (sparc).
1.1.1.8   root       72: 
                     73:     `sun2-os4'
                     74:           Sun 2 running system version 4.
                     75: 
                     76:     `sun3-os4'
1.1.1.9   root       77:           Sun 3 running system version 4, with 68881.
                     78: 
                     79:     `sun3-nfp-os4'
                     80:           Sun 3 running system version 4, without 68881.
                     81: 
1.1.1.8   root       82:     `sun4-os4'
1.1.1.12! root       83:           Sun 4 running system version 4.  *Note Incompatibilities::,
        !            84:           for calling convention incompatibilities on the Sun 4
        !            85:           (sparc).
1.1.1.8   root       86: 
                     87:     `sun386'
                     88:           Sun 386 (``roadrunner'').
                     89: 
1.1.1.9   root       90:     `alliant'
1.1.1.12! root       91:           Alliant FX/8 computer.  Note that the standard installed C
        !            92:           compiler in Concentrix 5.0 has a bug which prevent it from
        !            93:           compiling GNU CC correctly.  You can patch the compiler bug
        !            94:           as follows:
        !            95: 
        !            96:                cp /bin/pcc ./pcc
        !            97:                adb -w ./pcc - << 'EOF'
        !            98:                15f6?w 6610
        !            99:                EOF
        !           100: 
        !           101:           Then you must use the `-ip12' option when compiling GNU CC
        !           102:           with the patched compiler, as shown here:
        !           103: 
        !           104:                make CC="./pcc -ip12" CFLAGS=-w
        !           105: 
        !           106:           Note also that Alliant's version of DBX does not manage to
        !           107:           work with the output from GNU CC.
        !           108: 
        !           109:     `tahoe'
        !           110:           The tahoe computer (running BSD, and using DBX).
        !           111: 
        !           112:     `decstation'
        !           113:           The DEC 3100 Mips machine (``pmax'').  Note that GNU CC
        !           114:           cannot generate debugging information in the unusual format
        !           115:           used on the Mips.
        !           116: 
        !           117:     `mips-sysv'
        !           118:           The Mips computer, RS series, with the System V environment
        !           119:           as default.  Note that GNU CC cannot generate debugging
        !           120:           information in the unusual format used on the Mips.
        !           121: 
        !           122:     `mips-bsd43'
        !           123:           The Mips computer, RS series, with the BSD 4.3 environment
        !           124:           as default.  Note that GNU CC cannot generate debugging
        !           125:           information in the unusual format used on the Mips.
1.1.1.9   root      126: 
1.1.1.11  root      127:     `mips'
1.1.1.12! root      128:           The Mips computer, M series.  Note that GNU CC cannot
        !           129:           generate debugging information in the unusual format used
        !           130:           on the Mips.
        !           131: 
        !           132:     `iris'
        !           133:           The Mips computer, as delivered by Iris.  Note that GNU CC
        !           134:           cannot generate debugging information in the unusual format
        !           135:           used on the Mips.
1.1.1.11  root      136: 
1.1.1.9   root      137:     `convex-c1'
                    138:           Convex C1 computer.
                    139: 
                    140:     `convex-c2'
                    141:           Convex C2 computer.
                    142: 
1.1.1.12! root      143:     `pyramid'
        !           144:           Pyramid computer.
        !           145: 
1.1.1.8   root      146:     `hp9k320'
1.1.1.11  root      147:           HP 9000 series 300 using HPUX assembler.  Note there is no
                    148:           support in GNU CC for HP's debugger; thus, `-g' is not
                    149:           available in this configuration.
1.1.1.8   root      150: 
1.1.1.12! root      151:     `hp9k320-gas'
1.1.1.8   root      152:           HP 9000 series 300 using GNU assembler, linker and debugger.
1.1.1.11  root      153:           This requires the HP-adapt package, which is available
                    154:           along with the GNU linker as part of the ``binutils''
                    155:           distribution.  This is on the GNU CC distribution tape.
1.1.1.8   root      156: 
1.1.1.12! root      157:     `hp9k320-old'
        !           158:           HP 9000 series 300 using HPUX assembler, in operating
        !           159:           system versions older than 6.5.  Note there is no support
        !           160:           in GNU CC for HP's debugger; thus, `-g' is not available in
        !           161:           this configuration.
        !           162: 
        !           163:     `hp9k320-bsd'
        !           164:           HP 9000 series 300 running BSD.
        !           165: 
1.1.1.8   root      166:     `isi68'
1.1.1.12! root      167:           ISI 68000 or 68020 system with a 68881.
        !           168: 
        !           169:     `isi68-nfp'
        !           170:           ISI 68000 or 68020 system without a 68881.
1.1.1.8   root      171: 
                    172:     `news800'
                    173:           Sony NEWS 68020 system.
                    174: 
1.1.1.10  root      175:     `next'
                    176:           NeXT system.
                    177: 
1.1.1.11  root      178:     `altos'
                    179:           Altos 3068.  Note that you must use the GNU assembler,
                    180:           linker and debugger, with COFF-encapsulation.  Also, you
                    181:           must fix a kernel bug.  Details in the file `ALTOS-README'.
                    182: 
1.1.1.8   root      183:     `3b1'
1.1.1.12! root      184:           AT&T 3b1, a.k.a. 7300 PC.  Note that special procedures are
        !           185:           needed to compile GNU CC with this machine's standard C
        !           186:           compiler, due to bugs in that compiler.  *Note 3b1
        !           187:           Install::.  You can bootstrap it more easily with previous
        !           188:           versions of GNU CC if you have them.
1.1.1.8   root      189: 
                    190:     `sequent-ns32k'
                    191:           Sequent containing ns32000 processors.
                    192: 
                    193:     `encore'
                    194:           Encore ns32000 system.
                    195: 
                    196:     `genix'
                    197:           National Semiconductor ns32000 system.
                    198: 
                    199:     `88000'
                    200:           Motorola 88000 processor.  This port is not finished.
                    201: 
                    202:      Here we spell out what files need to be set up:
1.1       root      203: 
1.1.1.4   root      204:         * Make a symbolic link named `config.h' to the top-level
                    205:           config file for the machine you are using (*note
                    206:           Config::.).  This file is responsible for defining
                    207:           information about the host machine.  It includes `tm.h'.
                    208: 
1.1.1.11  root      209:           The file is located in the subdirectory `config'.  Its name
                    210:           should be `xm-MACHINE.h', with these exceptions:
1.1.1.4   root      211: 
1.1.1.8   root      212:          `xm-vms.h'
1.1.1.4   root      213:                for vaxen running VMS.
                    214: 
1.1.1.8   root      215:          `xm-vaxv.h'
1.1.1.4   root      216:                for vaxen running system V.
                    217: 
1.1.1.8   root      218:          `xm-i386v.h'
1.1.1.4   root      219:                for Intel 80386's running system V.
                    220: 
1.1.1.8   root      221:          `xm-sun386i.h'
                    222:                for Sun roadrunner running any version of the
                    223:                operating system.
                    224: 
                    225:          `xm-hp9k320.h'
1.1.1.4   root      226:                for the HP 9000 series 300.
                    227: 
1.1.1.8   root      228:          `xm-genix.h'
1.1.1.4   root      229:                for the ns32000 running Genix
                    230: 
                    231:           If your system does not support symbolic links, you might
                    232:           want to set up `config.h' to contain a `#include' command
                    233:           which refers to the appropriate file.
                    234: 
                    235:         * Make a symbolic link named `tm.h' to the
1.1.1.11  root      236:           machine-description macro file for your machine.  It should
                    237:           be in the subdirectory `config' and its name should be
                    238:           `tm-MACHINE.h'.
1.1.1.4   root      239: 
                    240:           If your system is a 68000, don't use the file `tm-m68k.h'
                    241:           directly.  Instead, use one of these files:
                    242: 
                    243:          `tm-sun3.h'
1.1.1.9   root      244:                for Sun 3 machines with 68881.
                    245: 
                    246:          `tm-sun3-nfp.h'
                    247:                for Sun 3 machines with no hardware floating point.
1.1.1.4   root      248: 
1.1.1.12! root      249:          `tm-sun3os3.h'
        !           250:                for Sun 3 machines with 68881, running Sunos version 3.
        !           251: 
        !           252:          `tm-sun3os3nf.h'
        !           253:                for Sun 3 machines with no hardware floating point,
        !           254:                running Sunos version 3.
        !           255: 
1.1.1.4   root      256:          `tm-sun2.h'
                    257:                for Sun 2 machines.
                    258: 
                    259:          `tm-3b1.h'
                    260:                for AT&T 3b1 (aka 7300 Unix PC).
                    261: 
                    262:          `tm-isi68.h'
1.1.1.8   root      263:                for Integrated Solutions systems.  This file assumes
                    264:                you use the GNU assembler.
1.1.1.4   root      265: 
1.1.1.12! root      266:          `tm-isi68-nfp.h'
        !           267:                for Integrated Solutions systems without a 68881. 
        !           268:                This file assumes you use the GNU assembler.
        !           269: 
1.1.1.4   root      270:          `tm-news800.h'
1.1.1.12! root      271:                for Sony NEWS systems.
1.1.1.4   root      272: 
                    273:          `tm-hp9k320.h'
                    274:                for HPUX systems, if you are using GNU CC with the
                    275:                system's assembler and linker.
                    276: 
                    277:          `tm-hp9k320g.h'
                    278:                for HPUX systems, if you are using the GNU assembler,
                    279:                linker and other utilities.  Not all of the pieces of
                    280:                GNU software needed for this mode of operation are as
                    281:                yet in distribution; full instructions will appear
                    282:                here in the future.
                    283: 
                    284:           For the vax, use `tm-vax.h' on BSD Unix, `tm-vaxv.h' on
                    285:           system V, or `tm-vms.h' on VMS.
                    286: 
                    287:           For the Motorola 88000, use `tm-m88k.h'.  The support for
                    288:           the 88000 has a few unfinished spots because there was no
                    289:           way to run the output.  Bugs are suspected in handling of
                    290:           branch-tables and in the function prologue and epilogue.
                    291: 
                    292:           For the 80386, don't use `tm-i386.h' directly.  Use
                    293:           `tm-i386v.h' if the target machine is running system V,
1.1.1.9   root      294:           `tm-i386gas.h' if it is running system V but you are using
                    295:           the GNU assembler and linker, `tm-seq386.h' for a Sequent
                    296:           386 system, or `tm-compaq.h' for a Compaq, or
                    297:           `tm-sun386i.h' for a Sun 386 system.
1.1.1.4   root      298: 
1.1.1.12! root      299:           For the Mips computer, there are five choices: `tm-mips.h'
        !           300:           for the M series, `tm-mips-bsd.h' for the RS series with
        !           301:           BSD, `tm-mips-sysv.h' for the RS series with System V,
        !           302:           `tm-iris.h' for the Iris version of the machine, and
        !           303:           `tm-decstatn.h' for the Decstation.
        !           304: 
1.1.1.4   root      305:           For the 32000, use `tm-sequent.h' if you are using a
                    306:           Sequent machine, or `tm-encore.h' for an Encore machine, or
1.1.1.8   root      307:           `tm-genix.h' if you are using Genix version 3; otherwise,
1.1.1.4   root      308:           perhaps `tm-ns32k.h' will work for you.
                    309: 
                    310:           Note that Genix has bugs in `alloca' and `malloc'; you must
                    311:           get the compiled versions of these from GNU Emacs and edit
                    312:           GNU CC's `Makefile' to use them.
1.1       root      313: 
1.1.1.2   root      314:           Note that Encore systems are supported only under BSD.
1.1       root      315: 
1.1.1.10  root      316:           For Sparc (Sun 4) machines, use `tm-sparc.h' with operating
                    317:           system version 4, and `tm-sun4os3.h' with system version 3.
                    318: 
1.1       root      319:         * Make a symbolic link named `md' to the machine description
1.1.1.11  root      320:           pattern file.  It should be in the `config' subdirectory
                    321:           and its name should be `MACHINE.md'; but MACHINE is often
                    322:           not the same as the name used in the `tm.h' file because
                    323:           the `md' files are more general.
1.1       root      324: 
                    325:         * Make a symbolic link named `aux-output.c' to the output
1.1.1.11  root      326:           subroutine file for your machine.  It should be in the
                    327:           `config' subdirectory and its name should be `out-MACHINE.c'.
1.1       root      328: 
1.1.1.4   root      329:   4. Make sure the Bison parser generator is installed.  (This is
                    330:      unnecessary if the Bison output files `c-parse.tab.c' and
                    331:      `cexp.c' are more recent than `c-parse.y' and `cexp.y' and you
                    332:      do not plan to change the `.y' files.)
                    333: 
1.1.1.5   root      334:      Bison versions older that Sept 8, 1988 will produce incorrect
                    335:      output for `c-parse.tab.c'.
1.1       root      336: 
1.1.1.12! root      337:   5. Build the compiler.  Just type `make' in the compiler directory.
1.1       root      338: 
1.1.1.7   root      339:      Ignore any warnings you may see about ``statement not reached''
                    340:      in the `insn-emit.c'; they are normal.  Any other compilation
                    341:      errors may represent bugs in the port to your machine or
                    342:      operating system, and should be investigated and reported (*note
                    343:      Bugs::.).
                    344: 
1.1.1.12! root      345:   6. Optionally, install the library functions for 64-bit integer
1.1.1.11  root      346:      arithmetic.  You do this with the command `make gnulib2'.  In
                    347:      the future this will happen automatically; for now, it is
                    348:      optional, until we are sure it works on all machines.
                    349: 
1.1.1.12! root      350:   7. If you are using COFF-encapsulation, you must convert `gnulib'
1.1.1.9   root      351:      to a GNU-format library at this point.  See the file
                    352:      `README-ENCAP' in the directory containing the GNU binary file
                    353:      utilities, for directions.
                    354: 
1.1.1.12! root      355:   8. Move the first-stage object files and executables into a
1.1.1.4   root      356:      subdirectory with this command:
1.1       root      357: 
                    358:           make stage1
                    359: 
                    360:      The files are moved into a subdirectory named `stage1'.  Once
1.1.1.4   root      361:      installation is complete, you may wish to delete these files
                    362:      with `rm -r stage1'.
1.1       root      363: 
1.1.1.12! root      364:   9. Recompile the compiler with itself, with this command:
1.1       root      365: 
                    366:           make CC=stage1/gcc CFLAGS="-g -O -Bstage1/"
                    367: 
1.1.1.4   root      368:      On a 68000 or 68020 system lacking floating point hardware,
                    369:      unless you have selected a `tm.h' file that expects by default
                    370:      that there is no such hardware, do this instead:
1.1       root      371: 
                    372:           make CC=stage1/gcc CFLAGS="-g -O -Bstage1/ -msoft-float"
                    373: 
1.1.1.12! root      374:  10. If you wish to test the compiler by compiling it with itself one
1.1.1.11  root      375:      more time, do this (in C shell):
1.1       root      376: 
                    377:           make stage2
1.1.1.6   root      378:           make CC=stage2/gcc CFLAGS="-g -O -Bstage2/"
1.1       root      379:           foreach file (*.o)
                    380:           cmp $file stage2/$file
                    381:           end
                    382: 
1.1.1.4   root      383:      Aside from the `-B' option, the options should be the same as
                    384:      when you made stage 2.
                    385: 
1.1.1.11  root      386:      The `foreach' command (written in C shell) will notify you if
                    387:      any of these stage 3 object files differs from those of stage 2.
                    388:      On BSD systems, any difference, no matter how innocuous,
                    389:      indicates that the stage 2 compiler has compiled GNU CC
                    390:      incorrectly, and is therefore a potentially serious bug which
                    391:      you should investigate and report (*note Bugs::.).
                    392: 
                    393:      On systems that use COFF object files, bytes 5 to 8 will always
                    394:      be different, since it is a timestamp.  On these systems, you
                    395:      can do the comparison as follows (in Bourne shell):
                    396: 
                    397:           for file in *.o; do
                    398:           echo $file
                    399:           tail +10 $file > foo1
                    400:           tail +10 stage2/$file > foo2
                    401:           cmp foo1 foo2
                    402:           done
                    403: 
1.1.1.12! root      404:  11. Install the compiler driver, the compiler's passes and run-time
1.1.1.4   root      405:      support.  You can use the following command:
1.1       root      406: 
                    407:           make install
                    408: 
1.1.1.4   root      409:      This copies the files `cc1', `cpp' and `gnulib' to files
                    410:      `gcc-cc1', `gcc-cpp' and `gcc-gnulib' in directory
                    411:      `/usr/local/lib', which is where the compiler driver program
                    412:      looks for them.  It also copies the driver program `gcc' into
1.1.1.10  root      413:      the directory `/usr/local/bin', so that it appears in typical
1.1.1.4   root      414:      execution search paths.
                    415: 
                    416:      *Warning: there is a bug in `alloca' in the Sun library.  To
                    417:      avoid this bug, install the binaries of GNU CC that were
                    418:      compiled by GNU CC.  They use `alloca' as a built-in function
                    419:      and never the one in the library.*
                    420: 
                    421:      *Warning: the GNU CPP may not work for `ioctl.h', `ttychars.h'
                    422:      and other system header files unless the `-traditional' option
                    423:      is used.*  The bug is in the header files: at least on some
                    424:      machines, they rely on behavior that is incompatible with ANSI
                    425:      C.  This behavior consists of substituting for macro argument
                    426:      names when they appear inside of character constants.  The
                    427:      `-traditional' option tells GNU CC to behave the way these
                    428:      headers expect.
1.1       root      429: 
1.1.1.4   root      430:      Because of this problem, you might prefer to configure GNU CC to
                    431:      use the system's own C preprocessor.  To do so, make the file
1.1       root      432:      `/usr/local/lib/gcc-cpp' a link to `/lib/cpp'.
                    433: 
1.1.1.4   root      434:      Alternatively, on Sun systems and 4.3BSD at least, you can
                    435:      correct the include files by running the shell script
                    436:      `fixincludes'.  This installs modified, corrected copies of the
                    437:      files `ioctl.h', `ttychars.h' and many others, in a special
1.1.1.7   root      438:      directory where only GNU CC will normally look for them.  This
1.1.1.10  root      439:      script will work on various systems because it chooses the files
1.1.1.7   root      440:      by searching all the system headers for the problem cases that
                    441:      we know about.
1.1       root      442: 
                    443: If you cannot install the compiler's passes and run-time support in
1.1.1.4   root      444: `/usr/local/lib', you can alternatively use the `-B' option to
                    445: specify a prefix by which they may be found.  The compiler
                    446: concatenates the prefix with the names  `cpp', `cc1' and `gnulib'. 
                    447: Thus, you can put the files in a directory `/usr/foo/gcc' and specify
                    448: `-B/usr/foo/gcc/' when you run GNU CC.
                    449: 
                    450: Also, you can specify an alternative default directory for these
                    451: files by setting the Make variable `libdir' when you make GNU CC.
1.1       root      452: 
1.1.1.2   root      453: 
1.1.1.11  root      454: 
1.1.1.12! root      455: File: gcc.info,  Node: Other Dir,  Next: Sun Install,  Prev: Installation,  Up: Installation
1.1.1.2   root      456: 
1.1.1.12! root      457: Compilation in a Separate Directory
        !           458: ===================================
1.1       root      459: 
1.1.1.12! root      460: If you wish to build the object files and executables in a directory
        !           461: other than the one containing the source files, here is what you must
        !           462: do differently:
1.1.1.8   root      463: 
1.1.1.12! root      464:   1. Go to that directory before running `config.gcc':
1.1.1.4   root      465: 
1.1.1.12! root      466:           mkdir gcc-sun3
        !           467:           cd gcc-sun3
1.1       root      468: 
1.1.1.12! root      469:      On systems that do not support symbolic links, this directory
        !           470:      must be on the same file system as the source code directory.
1.1.1.2   root      471: 
1.1.1.12! root      472:   2. Specify where to find `config.gcc' when you run it:
        !           473: 
        !           474:           ../gcc-1.36/config.gcc ...
        !           475: 
        !           476:   3. Specify where to find the sources, as an argument to `config.gcc':
        !           477: 
        !           478:           ../gcc-1.36/config.gcc -srcdir=../gcc-1.36 sun3
        !           479: 
        !           480:      The `-srcdir=DIR' option is not needed when the source directory
        !           481:      is the parent of the current directory, because `config.gcc'
        !           482:      detects that case automatically.
        !           483: 
        !           484: Now, you can run `make' in that directory.  You need not repeat the
        !           485: configuration steps shown above, when ordinary source files change. 
        !           486: You must, however, run `config.gcc' again when the configuration
        !           487: files change, if your system does not support symbolic links.
        !           488: 
        !           489: 
        !           490: 
        !           491: File: gcc.info,  Node: Sun Install,  Next: 3b1 Install,  Prev: Other Dir,  Up: Installation
        !           492: 
        !           493: Installing GNU CC on the Sun
        !           494: ============================
        !           495: 
        !           496: Make sure the environment variable `FLOAT_OPTION' is not set when you
        !           497: compile `gnulib'.  If this option were set to `f68881' when `gnulib'
        !           498: is compiled, the resulting code would demand to be linked with a
        !           499: special startup file and would not link properly without special
        !           500: pains.
        !           501: 
        !           502: There is a bug in `alloca' in certain versions of the Sun library. 
        !           503: To avoid this bug, install the binaries of GNU CC that were compiled
        !           504: by GNU CC.  They use `alloca' as a built-in function and never the
        !           505: one in the library.
        !           506: 
        !           507: Some versions of the Sun compiler crash when compiling GNU CC.  The
        !           508: problem is a segmentation fault in cpp.
        !           509: 
        !           510: This problem seems to be due to the bulk of data in the environment
        !           511: variables.  You may be able to avoid it by using the following
        !           512: command to compile GNU CC with Sun CC:
        !           513: 
        !           514:      make CC="TERMCAP=x OBJS=x LIBFUNCS=x STAGESTUFF=x cc"
        !           515: 
        !           516: 
        !           517: 
        !           518: File: gcc.info,  Node: 3b1 Install,  Next: VMS Install,  Prev: Sun Install,  Up: Installation
        !           519: 
        !           520: Installing GNU CC on the 3b1
        !           521: ============================
        !           522: 
        !           523: Installing GNU CC on the 3b1 is difficult if you do not already have
        !           524: GNU CC running, due to bugs in the installed C compiler.  However,
        !           525: the following procedure might work.  We are unable to test it.
        !           526: 
        !           527:   1. Comment out the `#include "config.h"' line on line 37 of
        !           528:      `cccp.c' and do `make cpp'.  This makes a preliminary version of
        !           529:      GNU cpp.
        !           530: 
        !           531:   2. Save the old `/lib/cpp' and copy the preliminary GNU cpp to that
        !           532:      file name.
        !           533: 
        !           534:   3. Undo your change in `cccp.c', or reinstall the original version,
        !           535:      and do `make cpp' again.
        !           536: 
        !           537:   4. Copy this final version of GNU cpp into `/lib/cpp'.
        !           538: 
        !           539:   5. Replace every occurance of `obstack_free' in `tree.c' with
        !           540:      `_obstack_free'.
        !           541: 
        !           542:   6. Run `make' to get the first-stage GNU CC.
        !           543: 
        !           544:   7. Reinstall the original version of `/lib/cpp'.
        !           545: 
        !           546:   8. Now you can compile GNU CC with itself and install it in the
        !           547:      normal fashion.
        !           548: 
        !           549: 
        !           550: 
        !           551: File: gcc.info,  Node: VMS Install,  Prev: 3B1 Install,  Up: Installation
        !           552: 
        !           553: Installing GNU CC on VMS
        !           554: ========================
1.1.1.9   root      555: 
1.1.1.12! root      556: The VMS version of GNU CC is distributed in a backup saveset
        !           557: containing both source code and precompiled binaries.
        !           558: 
        !           559: To install the `gcc' command so you can use the compiler easily, in
1.1.1.4   root      560: the same manner as you use the VMS C compiler, you must install the
                    561: VMS CLD file for GNU CC as follows:
                    562: 
                    563:   1. Define the VMS logical names `GNU_CC' and `GNU_CC_INCLUDE' to
                    564:      point to the directories where the GNU CC executables
                    565:      (`gcc-cpp', `gcc-cc1', etc.) and the C include files are kept. 
                    566:      This should be done with the commands:
1.1.1.2   root      567: 
1.1.1.12! root      568:           $ assign /super /system disk:[gcc.] gnu_cc
        !           569:           $ assign /super /system disk:[gcc.include.] gnu_cc_include
1.1.1.2   root      570: 
1.1.1.4   root      571:      with the appropriate disk and directory names.  These commands
                    572:      can be placed in your system startup file so they will be
1.1.1.12! root      573:      executed whenever the machine is rebooted.  You may, if you
        !           574:      choose, do this via the `GCC_INSTALL.COM' script in the `[GCC]'
        !           575:      directory.
1.1.1.2   root      576: 
                    577:   2. Install the `GCC' command with the command line:
                    578: 
1.1.1.12! root      579:           $ set command /table=sys$library:dcltables gnu_cc:[000000]gcc
1.1.1.2   root      580: 
1.1.1.11  root      581:   3. To install the help file, do the following:
                    582: 
                    583:           $ lib/help sys$library:helplib.hlb gcc.hlp
                    584: 
1.1.1.4   root      585:      Now you can invoke the compiler with a command like `gcc
                    586:      /verbose file.c', which is equivalent to the command `gcc -v -c
                    587:      file.c' in Unix.
1.1.1.9   root      588: 
1.1.1.12! root      589: We try to put corresponding binaries and sources on the VMS
        !           590: distribution tape.  But sometimes the binaries will be from an older
        !           591: version that the sources, because we don't always have time to update
        !           592: them.  (Use the `/verbose' option to determine the version number of
        !           593: the binaries and compare it with the source file `version.c' to tell
        !           594: whether this is so.)  In this case, you should use the binaries you
        !           595: get to recompile the sources.  If you must recompile, here is how:
        !           596: 
        !           597:   1. Copy the file `tm-vms.h' to `tm.h', `xm-vms.h' to `config.h',
        !           598:      `vax.md' to `md.' and `out-vax.c' to `aux-output.c'.  The files
        !           599:      to be copied are found in the subdirectory named `config'; they
        !           600:      should be copied to the main directory of GNU CC.
        !           601: 
        !           602:   2. Setup the logical names and command tables as defined above.  In
        !           603:      addition, define the vms logical name `GNU_BISON' to point at
        !           604:      the to the directories where the Bison executable is kept.  This
        !           605:      should be done with the command:
        !           606: 
        !           607:           $ assign /super /system disk:[bison.] gnu_bison
        !           608: 
        !           609:      You may, if you choose, use the `INSTALL_BISON.COM' script in
        !           610:      the `[BISON]' directory.
        !           611: 
        !           612:   3. Install the `BISON' command with the command line:
        !           613: 
        !           614:           $ set command /table=sys$library:dcltables gnu_bison:[000000]bison
        !           615: 
        !           616:   4. Type `@make' to do recompile everything.
        !           617: 
        !           618:      If you are compiling with a version of GNU CC older than 1.33,
        !           619:      specify `/DEFINE=("inline=")' as an option in all the
        !           620:      compilations.  This requires editing all the `gcc' commands in
        !           621:      `make-cc1.com'.  (The older versions had problems supporting
        !           622:      `inline'.)  Once you have a working 1.33 or newer GNU CC, you
        !           623:      can change this file back.
        !           624: 
1.1.1.9   root      625: There is a known problem on VMS: `const' global variables don't work
                    626: compatibly with the VMS C compiler; we don't know a way to get them
                    627: to the linker properly.
1.1.1.11  root      628: 
                    629: Note that GNU CC on VMS does not generate debugging information to
                    630: describe the program's symbols.  It is not straightforward to
                    631: implement this, and we have no time to spend on it, but we might
                    632: consent to install a very modular implementation if you write it. 
                    633: You will probably have to modify GAS as well as GNU CC.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.