Ignore:
Timestamp:
Apr 27, 2004, 8:39:34 PM (21 years ago)
Author:
bird
Message:

GCC v3.3.3 sources.

Location:
branches/GNU/src/gcc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/GNU/src/gcc

    • Property svn:ignore
      •  

        old new  
        2626configure.vr
        2727configure.vrs
         28dir.info
        2829Makefile
        29 dir.info
        3030lost+found
        3131update.out
  • branches/GNU/src/gcc/INSTALL/old.html

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r1390 r1391  
    1 <html lang="en"><head>
     1   <html lang="en">
     2<head>
    23<title>Installing GCC: Old documentation</title>
    34<meta http-equiv="Content-Type" content="text/html">
    4 <meta name=description content="Installing GCC: Old documentation">
    5 <meta name=generator content="makeinfo 4.0">
    6 <link href="http://texinfo.org/" rel=generator-home>
    7 </head><body>
    8 
     5<meta name="description" content="Installing GCC: Old documentation">
     6<meta name="generator" content="makeinfo 4.6">
     7<!--
     8Copyright &copy; 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
     91999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
     10<br><p>
     11   <p>Permission is granted to copy, distribute and/or modify this document
     12under the terms of the GNU Free Documentation License, Version 1.2 or
     13any later version published by the Free Software Foundation; with no
     14Invariant Sections, the Front-Cover texts being (a) (see below), and
     15with the Back-Cover Texts being (b) (see below).  A copy of the
     16license is included in the section entitled "<a href="./gfdl.html">GNU Free Documentation License</a>".
     17
     18   <p>(a) The FSF's Front-Cover Text is:
     19
     20   <p>A GNU Manual
     21
     22   <p>(b) The FSF's Back-Cover Text is:
     23
     24   <p>You have freedom to copy and modify this GNU Manual, like GNU
     25     software.  Copies published by the Free Software Foundation raise
     26     funds for GNU development.-->
     27<meta http-equiv="Content-Style-Type" content="text/css">
     28<style type="text/css"><!--
     29  pre.display { font-family:inherit }
     30  pre.format  { font-family:inherit }
     31  pre.smalldisplay { font-family:inherit; font-size:smaller }
     32  pre.smallformat  { font-family:inherit; font-size:smaller }
     33  pre.smallexample { font-size:smaller }
     34  pre.smalllisp    { font-size:smaller }
     35--></style>
     36</head>
     37<body>
     38<h1 class="settitle">Installing GCC: Old documentation</h1>
    939<h1 align="center">Old installation documentation</h1>
    1040
    11 <p>Note most of this information is out of date and superseded by the
     41   <p>Note most of this information is out of date and superseded by the
    1242previous chapters of this manual.  It is provided for historical
    1343reference only, because of a lack of volunteers to merge it into the
    1444main manual.
    1545
    16 <p>Here is the procedure for installing GNU CC on a GNU or Unix system.
     46   <p>Here is the procedure for installing GNU CC on a GNU or Unix system.
    1747See <a href="#VMS%20Install">VMS Install</a>, for VMS systems.
    1848
    19 <ol type=1 start=1>
    20 </p><li>If you have chosen a configuration for GNU CC which requires other GNU
     49     <ol type=1 start=1>
     50<li>If you have chosen a configuration for GNU CC which requires other GNU
    2151tools (such as GAS or the GNU linker) instead of the standard system
    2252tools, install the required tools in the build directory under the names
    23 <code>as</code>, <code>ld</code> or whatever is appropriate.  This will enable the
    24 compiler to find the proper tools for compilation of the program
    25 <code>enquire</code>.
    26 
    27 <p>Alternatively, you can do subsequent compilation using a value of the
     53<code>as</code>, <code>ld</code> or whatever is appropriate.
     54
     55     <p>Alternatively, you can do subsequent compilation using a value of the
    2856<code>PATH</code> environment variable such that the necessary GNU tools come
    2957before the standard system tools.
    3058
    31 </p><li>Specify the host, build and target machine configurations.  You do this
     59     </p><li>Specify the host, build and target machine configurations.  You do this
    3260when you run the <code>configure</code> script.
    3361
    34 <p>The <dfn>build</dfn> machine is the system which you are using, the
     62     <p>The <dfn>build</dfn> machine is the system which you are using, the
    3563<dfn>host</dfn> machine is the system where you want to run the resulting
    3664compiler (normally the build machine), and the <dfn>target</dfn> machine is
    3765the system for which you want the compiler to generate code.
    3866
    39 <p>If you are building a compiler to produce code for the machine it runs
     67     <p>If you are building a compiler to produce code for the machine it runs
    4068on (a native compiler), you normally do not need to specify any operands
    4169to <code>configure</code>; it will try to guess the type of machine you are on
     
    4573wrong.
    4674
    47 <p>In those cases, specify the build machine's <dfn>configuration name</dfn>
     75     <p>In those cases, specify the build machine's <dfn>configuration name</dfn>
    4876with the <code>--host</code> option; the host and target will default to be
    4977the same as the host machine.  (If you are building a cross-compiler,
    5078see <a href="#Cross-Compiler">Cross-Compiler</a>.)
    5179
    52 <p>Here is an example:
    53 
    54 <pre>./configure --host=sparc-sun-sunos4.1
    55 </pre>
    56 
    57 <p>A configuration name may be canonical or it may be more or less
     80     <p>Here is an example:
     81
     82     <pre class="smallexample">          ./configure --host=sparc-sun-sunos4.1
     83          </pre>
     84
     85     <p>A configuration name may be canonical or it may be more or less
    5886abbreviated.
    5987
    60 <p>A canonical configuration name has three parts, separated by dashes.
    61 It looks like this: <code><var>cpu</var>-<var>company</var>-<var>system</var></code>.
     88     <p>A canonical configuration name has three parts, separated by dashes.
     89It looks like this: <code></code><var>cpu</var><code>-</code><var>company</var><code>-</code><var>system</var><code></code>.
    6290(The three parts may themselves contain dashes; <code>configure</code>
    6391can figure out which dashes serve which purpose.)  For example,
    6492<code>m68k-sun-sunos4.1</code> specifies a Sun 3.
    6593
    66 <p>You can also replace parts of the configuration by nicknames or aliases.
     94     <p>You can also replace parts of the configuration by nicknames or aliases.
    6795For example, <code>sun3</code> stands for <code>m68k-sun</code>, so
    6896<code>sun3-sunos4.1</code> is another way to specify a Sun 3.
    6997
    70 <p>You can specify a version number after any of the system types, and some
     98     <p>You can specify a version number after any of the system types, and some
    7199of the CPU types.  In most cases, the version is irrelevant, and will be
    72100ignored.  So you might as well specify the version if you know it.
    73101
    74 <p>See <a href="#Configurations">Configurations</a>, for a list of supported configuration names and
     102     <p>See <a href="#Configurations">Configurations</a>, for a list of supported configuration names and
    75103notes on many of the configurations.  You should check the notes in that
    76104section before proceeding any further with the installation of GNU CC.
    77105
    78 </ol>
    79 
    80 <h2><a name="Configurations"></a>Configurations Supported by GNU CC</h2>
    81 
    82 <p>Here are the possible CPU types:
    83 
    84 <blockquote>
     106        </ol>
     107
     108   <h2><a name="Configurations"></a>Configurations Supported by GNU CC</h2>
     109
     110   <p>Here are the possible CPU types:
     111
     112   <blockquote>
    851131750a, a29k, alpha, arm, avr, c<var>n</var>, clipper, dsp16xx, elxsi, fr30, h8300,
    86 hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, i960, m32r,
     114hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, i960, ip2k, m32r,
    87115m68000, m68k, m6811, m6812, m88k, mcore, mips, mipsel, mips64, mips64el,
    88116mn10200, mn10300, ns32k, pdp11, powerpc, powerpcle, romp, rs6000, sh, sparc,
     
    90118</blockquote>
    91119
    92 <p>Here are the recognized company names.  As you can see, customary
     120   <p>Here are the recognized company names.  As you can see, customary
    93121abbreviations are used rather than the longer official names.
    94122
    95 <blockquote>
     123   <blockquote>
    96124acorn, alliant, altos, apollo, apple, att, bull,
    97125cbm, convergent, convex, crds, dec, dg, dolphin,
     
    101129</blockquote>
    102130
    103 <p>The company name is meaningful only to disambiguate when the rest of
     131   <p>The company name is meaningful only to disambiguate when the rest of
    104132the information supplied is insufficient.  You can omit it, writing
    105 just <code><var>cpu</var>-<var>system</var></code>, if it is not needed.  For example,
     133just <code></code><var>cpu</var><code>-</code><var>system</var><code></code>, if it is not needed.  For example,
    106134<code>vax-ultrix4.2</code> is equivalent to <code>vax-dec-ultrix4.2</code>.
    107135
    108 <p>Here is a list of system types:
    109 
    110 <blockquote>
     136   <p>Here is a list of system types:
     137
     138   <blockquote>
    111139386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux,
    112140dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux,
     
    120148operating system from the CPU and company.
    121149
    122 <p>You can add a version number to the system type; this may or may not
     150   <p>You can add a version number to the system type; this may or may not
    123151make a difference.  For example, you can write <code>bsd4.3</code> or
    124152<code>bsd4.4</code> to distinguish versions of BSD.  In practice, the version
     
    126154treated differently.
    127155
    128 <p><code>linux-gnu</code> is the canonical name for the GNU/Linux target; however
     156   <p><code>linux-gnu</code> is the canonical name for the GNU/Linux target; however
    129157GNU CC will also accept <code>linux</code>.  The version of the kernel in use is
    130158not relevant on these systems.  A suffix such as <code>libc1</code> or <code>aout</code>
     
    132160are obsolete.
    133161
    134 <p>If you specify an impossible combination such as <code>i860-dg-vms</code>,
     162   <p>If you specify an impossible combination such as <code>i860-dg-vms</code>,
    135163then you may get an error message from <code>configure</code>, or it may
    136164ignore part of the information and do the best it can with the rest.
     
    138166that it used.  GNU CC does not support all possible alternatives.
    139167
    140 <p>Often a particular model of machine has a name.  Many machine names are
     168   <p>Often a particular model of machine has a name.  Many machine names are
    141169recognized as aliases for CPU/company combinations.  Thus, the machine
    142170name <code>sun3</code>, mentioned above, is an alias for <code>m68k-sun</code>.
     
    145173machine names:
    146174
    147 <blockquote>
     175   <blockquote>
    1481763300, 3b1, 3b<var>n</var>, 7300, altos3068, altos,
    149177apollo68, att-7300, balance,
     
    164192If you want to install your own homemade configuration files, you can
    165193use <code>local</code> as the company name to access them.  If you use
    166 configuration <code><var>cpu</var>-local</code>, the configuration name
     194configuration <code></code><var>cpu</var><code>-local</code>, the configuration name
    167195without the cpu prefix
    168196is used to form the configuration file names.
    169197
    170 <p>Thus, if you specify <code>m68k-local</code>, configuration uses
     198   <p>Thus, if you specify <code>m68k-local</code>, configuration uses
    171199files <code>m68k.md</code>, <code>local.h</code>, <code>m68k.c</code>,
    172200<code>xm-local.h</code>, <code>t-local</code>, and <code>x-local</code>, all in the
    173201directory <code>config/m68k</code>.
    174202
    175 <p>Here is a list of configurations that have special treatment or special
     203   <p>Here is a list of configurations that have special treatment or special
    176204things you must know:
    177205
    178 <dl>
     206     <dl>
    179207<dt><code>vax-dec-vms</code>
    180 <dd>See <a href="#VMS%20Install">VMS Install</a>, for details on how to install GNU CC on VMS.
     208     <dd>See <a href="#VMS%20Install">VMS Install</a>, for details on how to install GNU CC on VMS.
    181209</dl>
    182210
    183 <h2><a name="Cross-Compiler"></a>Building and Installing a Cross-Compiler</h2>
    184 
    185 <p>GNU CC can function as a cross-compiler for many machines, but not all.
    186 
    187 <ul>
     211   <h2><a name="Cross-Compiler"></a>Building and Installing a Cross-Compiler</h2>
     212
     213   <p>GNU CC can function as a cross-compiler for many machines, but not all.
     214
     215     <ul>
    188216<li>Cross-compilers for the Mips as target using the Mips assembler
    189217currently do not work, because the auxiliary programs
     
    192220if you use the GNU assembler and linker.
    193221
    194 <li>Cross-compilers between machines with different floating point formats
     222     <li>Cross-compilers between machines with different floating point formats
    195223have not all been made to work.  GNU CC now has a floating point
    196224emulator with which these can work, but each target machine description
    197225needs to be updated to take advantage of it.
    198226
    199 <li>Cross-compilation between machines of different word sizes is
     227     <li>Cross-compilation between machines of different word sizes is
    200228somewhat problematic and sometimes does not work.
    201229</ul>
    202230
    203 <p>Since GNU CC generates assembler code, you probably need a
     231   <p>Since GNU CC generates assembler code, you probably need a
    204232cross-assembler that GNU CC can run, in order to produce object files.
    205233If you want to link on other than the target machine, you need a
     
    207235for the target machine that you can install on the host machine.
    208236
    209 <h2>Steps of Cross-Compilation</h2>
    210 
    211 <p>To compile and run a program using a cross-compiler involves several
     237   <h2>Steps of Cross-Compilation</h2>
     238
     239   <p>To compile and run a program using a cross-compiler involves several
    212240steps:
    213241
    214 <ul>
     242     <ul>
    215243<li>Run the cross-compiler on the host machine to produce assembler files
    216244for the target machine.  This requires header files for the target
    217245machine.
    218246
    219 <li>Assemble the files produced by the cross-compiler.  You can do this
     247     <li>Assemble the files produced by the cross-compiler.  You can do this
    220248either with an assembler on the target machine, or with a
    221249cross-assembler on the host machine.
    222250
    223 <li>Link those files to make an executable.  You can do this either with a
     251     <li>Link those files to make an executable.  You can do this either with a
    224252linker on the target machine, or with a cross-linker on the host
    225253machine.  Whichever machine you use, you need libraries and certain
    226 startup files (typically <code>crt<small>...</small>.o</code>) for the target machine.
     254startup files (typically <code>crt....o</code>) for the target machine.
    227255</ul>
    228256
    229 <p>It is most convenient to do all of these steps on the same host machine,
     257   <p>It is most convenient to do all of these steps on the same host machine,
    230258since then you can do it all with a single invocation of GNU CC.  This
    231259requires a suitable cross-assembler and cross-linker.  For some targets,
    232260the GNU assembler and linker are available.
    233261
    234 <h2>Configuring a Cross-Compiler</h2>
    235 
    236 <p>To build GNU CC as a cross-compiler, you start out by running
    237 <code>configure</code>.  Use the <code>--target=<var>target</var></code> to specify the
     262   <h2>Configuring a Cross-Compiler</h2>
     263
     264   <p>To build GNU CC as a cross-compiler, you start out by running
     265<code>configure</code>.  Use the <code>--target=</code><var>target</var><code></code> to specify the
    238266target type.  If <code>configure</code> was unable to correctly identify the
    239 system you are running on, also specify the <code>--build=<var>build</var></code>
     267system you are running on, also specify the <code>--build=</code><var>build</var><code></code>
    240268option.  For example, here is how to configure for a cross-compiler that
    241269produces code for an HP 68030 system running BSD on a system that
    242270<code>configure</code> can correctly identify:
    243271
    244 <pre>./configure --target=m68k-hp-bsd4.3
    245 </pre>
    246 
    247 <h2>Tools and Libraries for a Cross-Compiler</h2>
    248 
    249 <p>If you have a cross-assembler and cross-linker available, you should
     272<pre class="smallexample">     ./configure --target=m68k-hp-bsd4.3
     273     </pre>
     274
     275   <h2>Tools and Libraries for a Cross-Compiler</h2>
     276
     277   <p>If you have a cross-assembler and cross-linker available, you should
    250278install them now.  Put them in the directory
    251 <code>/usr/local/<var>target</var>/bin</code>.  Here is a table of the tools
     279<code>/usr/local/</code><var>target</var><code>/bin</code>.  Here is a table of the tools
    252280you should put in this directory:
    253281
    254 <dl>
     282     <dl>
    255283<dt><code>as</code>
    256 <dd>This should be the cross-assembler.
    257 
    258 <br><dt><code>ld</code>
    259 <dd>This should be the cross-linker.
    260 
    261 <br><dt><code>ar</code>
    262 <dd>This should be the cross-archiver: a program which can manipulate
     284     <dd>This should be the cross-assembler.
     285
     286     <br><dt><code>ld</code>
     287     <dd>This should be the cross-linker.
     288
     289     <br><dt><code>ar</code>
     290     <dd>This should be the cross-archiver: a program which can manipulate
    263291archive files (linker libraries) in the target machine's format.
    264292
    265 <br><dt><code>ranlib</code>
    266 <dd>This should be a program to construct a symbol table in an archive file.
     293     <br><dt><code>ranlib</code>
     294     <dd>This should be a program to construct a symbol table in an archive file.
    267295</dl>
    268296
    269 <p>The installation of GNU CC will find these programs in that directory,
     297   <p>The installation of GNU CC will find these programs in that directory,
    270298and copy or link them to the proper place to for the cross-compiler to
    271299find them when run later.
    272300
    273 <p>The easiest way to provide these files is to build the Binutils package
     301   <p>The easiest way to provide these files is to build the Binutils package
    274302and GAS.  Configure them with the same <code>--host</code> and <code>--target</code>
    275303options that you use for configuring GNU CC, then build and install
     
    278306supports.
    279307
    280 <p>If you want to install libraries to use with the cross-compiler, such as
     308   <p>If you want to install libraries to use with the cross-compiler, such as
    281309a standard C library, put them in the directory
    282 <code>/usr/local/<var>target</var>/lib</code>; installation of GNU CC copies
     310<code>/usr/local/</code><var>target</var><code>/lib</code>; installation of GNU CC copies
    283311all the files in that subdirectory into the proper place for GNU CC to
    284312find them and link with them.  Here's an example of copying some
    285313libraries from a target machine:
    286314
    287 <pre>ftp <var>target-machine</var>
    288 lcd /usr/local/<var>target</var>/lib
    289 cd /lib
    290 get libc.a
    291 cd /usr/lib
    292 get libg.a
    293 get libm.a
    294 quit
    295 </pre>
     315<pre class="example">     ftp <var>target-machine</var>
     316     lcd /usr/local/<var>target</var>/lib
     317     cd /lib
     318     get libc.a
     319     cd /usr/lib
     320     get libg.a
     321     get libm.a
     322     quit
     323     </pre>
    296324
    297325<p>The precise set of libraries you'll need, and their locations on
    298326the target machine, vary depending on its operating system.
    299327
    300 <p>Many targets require "start files" such as <code>crt0.o</code> and
     328   <p>Many targets require "start files" such as <code>crt0.o</code> and
    301329<code>crtn.o</code> which are linked into each executable; these too should be
    302 placed in <code>/usr/local/<var>target</var>/lib</code>.  There may be several
     330placed in <code>/usr/local/</code><var>target</var><code>/lib</code>.  There may be several
    303331alternatives for <code>crt0.o</code>, for use with profiling or other
    304332compilation options.  Check your target's definition of
     
    306334Here's an example of copying these files from a target machine:
    307335
    308 <pre>ftp <var>target-machine</var>
    309 lcd /usr/local/<var>target</var>/lib
    310 prompt
    311 cd /lib
    312 mget *crt*.o
    313 cd /usr/lib
    314 mget *crt*.o
    315 quit
    316 </pre>
    317 
    318 <h2>Cross-Compilers and Header Files</h2>
    319 
    320 <p>If you are cross-compiling a standalone program or a program for an
     336<pre class="example">     ftp <var>target-machine</var>
     337     lcd /usr/local/<var>target</var>/lib
     338     prompt
     339     cd /lib
     340     mget *crt*.o
     341     cd /usr/lib
     342     mget *crt*.o
     343     quit
     344     </pre>
     345
     346   <h2>Cross-Compilers and Header Files</h2>
     347
     348   <p>If you are cross-compiling a standalone program or a program for an
    321349embedded system, then you may not need any header files except the few
    322350that are part of GNU CC (and those of your program).  However, if you
     
    325353that go with the library you use.
    326354
    327 <p>The GNU C compiler does not come with these files, because (1) they are
     355   <p>The GNU C compiler does not come with these files, because (1) they are
    328356system-specific, and (2) they belong in a C library, not in a compiler.
    329357
    330 <p>If the GNU C library supports your target machine, then you can get the
     358   <p>If the GNU C library supports your target machine, then you can get the
    331359header files from there (assuming you actually use the GNU library when
    332360you link your program).
    333361
    334 <p>If your target machine comes with a C compiler, it probably comes with
     362   <p>If your target machine comes with a C compiler, it probably comes with
    335363suitable header files also.  If you make these files accessible from the host
    336364machine, the cross-compiler can use them also.
    337365
    338 <p>Otherwise, you're on your own in finding header files to use when
     366   <p>Otherwise, you're on your own in finding header files to use when
    339367cross-compiling.
    340368
    341 <p>When you have found suitable header files, you should put them in the
    342 directory <code>/usr/local/<var>target</var>/include</code>, before building the
     369   <p>When you have found suitable header files, you should put them in the
     370directory <code>/usr/local/</code><var>target</var><code>/include</code>, before building the
    343371cross compiler.  Then installation will run fixincludes properly and
    344372install the corrected versions of the header files where the compiler
    345373will use them.
    346374
    347 <p>Provide the header files before you build the cross-compiler, because
     375   <p>Provide the header files before you build the cross-compiler, because
    348376the build stage actually runs the cross-compiler to produce parts of
    349377<code>libgcc.a</code>.  (These are the parts that <em>can</em> be compiled with
    350378GNU CC.)  Some of them need suitable header files.
    351379
    352 <p>Here's an example showing how to copy the header files from a target
     380   <p>Here's an example showing how to copy the header files from a target
    353381machine.  On the target machine, do this:
    354382
    355 <pre>(cd /usr/include; tar cf - .) &gt; tarfile
    356 </pre>
    357 
    358 <p>Then, on the host machine, do this:
    359 
    360 <pre>ftp <var>target-machine</var>
    361 lcd /usr/local/<var>target</var>/include
    362 get tarfile
    363 quit
    364 tar xf tarfile
    365 </pre>
    366 
    367 <h2>Actually Building the Cross-Compiler</h2>
    368 
    369 <p>Now you can proceed just as for compiling a single-machine compiler
     383<pre class="example">     (cd /usr/include; tar cf - .) &gt; tarfile
     384     </pre>
     385
     386   <p>Then, on the host machine, do this:
     387
     388<pre class="example">     ftp <var>target-machine</var>
     389     lcd /usr/local/<var>target</var>/include
     390     get tarfile
     391     quit
     392     tar xf tarfile
     393     </pre>
     394
     395   <h2>Actually Building the Cross-Compiler</h2>
     396
     397   <p>Now you can proceed just as for compiling a single-machine compiler
    370398through the step of building stage 1.
    371399
    372 <p>If your target is exotic, you may need to provide the header file
    373 <code>float.h</code>.One way to do this is to compile <code>enquire</code> and run
    374 it on your target machine.  The job of <code>enquire</code> is to run on the
    375 target machine and figure out by experiment the nature of its floating
    376 point representation.  <code>enquire</code> records its findings in the header
    377 file <code>float.h</code>.  If you can't produce this file by running
    378 <code>enquire</code> on the target machine, then you will need to come up with
    379 a suitable <code>float.h</code> in some other way (or else, avoid using it in
    380 your programs).
    381 
    382 <p>Do not try to build stage 2 for a cross-compiler.  It doesn't work to
     400   <p>Do not try to build stage 2 for a cross-compiler.  It doesn't work to
    383401rebuild GNU CC as a cross-compiler using the cross-compiler, because
    384402that would produce a program that runs on the target machine, not on the
     
    390408must specify a 68030 as the host when you configure it.
    391409
    392 <p>To install the cross-compiler, use <code>make install</code>, as usual.
    393 
    394 <h2><a name="VMS%20Install"></a>Installing GNU CC on VMS</h2>
    395 
    396 <p>The VMS version of GNU CC is distributed in a backup saveset containing
     410   <p>To install the cross-compiler, use <code>make install</code>, as usual.
     411
     412   <h2><a name="VMS%20Install"></a>Installing GNU CC on VMS</h2>
     413
     414   <p>The VMS version of GNU CC is distributed in a backup saveset containing
    397415both source code and precompiled binaries.
    398416
    399 <p>To install the <code>gcc</code> command so you can use the compiler easily, in
     417   <p>To install the <code>gcc</code> command so you can use the compiler easily, in
    400418the same manner as you use the VMS C compiler, you must install the VMS CLD
    401419file for GNU CC as follows:
    402420
    403 <ol type=1 start=1>
    404 </p><li>Define the VMS logical names <code>GNU_CC</code> and <code>GNU_CC_INCLUDE</code>
     421     <ol type=1 start=1>
     422<li>Define the VMS logical names <code>GNU_CC</code> and <code>GNU_CC_INCLUDE</code>
    405423to point to the directories where the GNU CC executables
    406424(<code>gcc-cpp.exe</code>, <code>gcc-cc1.exe</code>, etc.) and the C include files are
    407425kept respectively.  This should be done with the commands:
    408426
    409 <pre>$ assign /system /translation=concealed -
    410   disk:[gcc.] gnu_cc
    411 $ assign /system /translation=concealed -
    412   disk:[gcc.include.] gnu_cc_include
    413 </pre>
    414 
    415 <p>with the appropriate disk and directory names.  These commands can be
     427     <pre class="smallexample">          $ assign /system /translation=concealed -
     428            disk:[gcc.] gnu_cc
     429          $ assign /system /translation=concealed -
     430            disk:[gcc.include.] gnu_cc_include
     431          </pre>
     432
     433     <p>with the appropriate disk and directory names.  These commands can be
    416434placed in your system startup file so they will be executed whenever
    417435the machine is rebooted.  You may, if you choose, do this via the
    418436<code>GCC_INSTALL.COM</code> script in the <code>[GCC]</code> directory.
    419437
    420 </p><li>Install the <code>GCC</code> command with the command line:
    421 
    422 <pre>$ set command /table=sys$common:[syslib]dcltables -
    423   /output=sys$common:[syslib]dcltables gnu_cc:[000000]gcc
    424 $ install replace sys$common:[syslib]dcltables
    425 </pre>
    426 
    427 <li>To install the help file, do the following:
    428 
    429 <pre>$ library/help sys$library:helplib.hlb gcc.hlp
    430 </pre>
    431 
    432 <p>Now you can invoke the compiler with a command like <code>gcc /verbose
     438     </p><li>Install the <code>GCC</code> command with the command line:
     439
     440     <pre class="smallexample">          $ set command /table=sys$common:[syslib]dcltables -
     441            /output=sys$common:[syslib]dcltables gnu_cc:[000000]gcc
     442          $ install replace sys$common:[syslib]dcltables
     443          </pre>
     444
     445     <li>To install the help file, do the following:
     446
     447     <pre class="smallexample">          $ library/help sys$library:helplib.hlb gcc.hlp
     448          </pre>
     449
     450     <p>Now you can invoke the compiler with a command like <code>gcc /verbose
    433451file.c</code>, which is equivalent to the command <code>gcc -v -c file.c</code> in
    434452Unix.
    435 </ol>
    436 
    437 <p>If you wish to use GNU C++ you must first install GNU CC, and then
     453        </ol>
     454
     455   <p>If you wish to use GNU C++ you must first install GNU CC, and then
    438456perform the following steps:
    439457
    440 <ol type=1 start=1>
    441 </p><li>Define the VMS logical name <code>GNU_GXX_INCLUDE</code> to point to the
     458     <ol type=1 start=1>
     459<li>Define the VMS logical name <code>GNU_GXX_INCLUDE</code> to point to the
    442460directory where the preprocessor will search for the C++ header files.
    443461This can be done with the command:
    444462
    445 <pre>$ assign /system /translation=concealed -
    446   disk:[gcc.gxx_include.] gnu_gxx_include
    447 </pre>
    448 
    449 <p>with the appropriate disk and directory name.  If you are going to be
     463     <pre class="smallexample">          $ assign /system /translation=concealed -
     464            disk:[gcc.gxx_include.] gnu_gxx_include
     465          </pre>
     466
     467     <p>with the appropriate disk and directory name.  If you are going to be
    450468using a C++ runtime library, this is where its install procedure will install
    451469its header files.
    452470
    453 </p><li>Obtain the file <code>gcc-cc1plus.exe</code>, and place this in the same
     471     </p><li>Obtain the file <code>gcc-cc1plus.exe</code>, and place this in the same
    454472directory that <code>gcc-cc1.exe</code> is kept.
    455473
    456 <p>The GNU C++ compiler can be invoked with a command like <code>gcc /plus
     474     <p>The GNU C++ compiler can be invoked with a command like <code>gcc /plus
    457475/verbose file.cc</code>, which is equivalent to the command <code>g++ -v -c
    458476file.cc</code> in Unix.
    459 </ol>
    460 
    461 <p>We try to put corresponding binaries and sources on the VMS distribution
     477        </ol>
     478
     479   <p>We try to put corresponding binaries and sources on the VMS distribution
    462480tape.  But sometimes the binaries will be from an older version than the
    463481sources, because we don't always have time to update them.  (Use the
     
    467485sources.  If you must recompile, here is how:
    468486
    469 <ol type=1 start=1>
    470 </p><li>Execute the command procedure <code>vmsconfig.com</code> to set up the files
     487     <ol type=1 start=1>
     488<li>Execute the command procedure <code>vmsconfig.com</code> to set up the files
    471489<code>tm.h</code>, <code>config.h</code>, <code>aux-output.c</code>, and <code>md.</code>, and
    472490to create files <code>tconfig.h</code> and <code>hconfig.h</code>.  This procedure
     
    474492a data file used by <code>make-l2.com</code>.
    475493
    476 <pre>$ @vmsconfig.com
    477 </pre>
    478 
    479 <li>Setup the logical names and command tables as defined above.  In
     494     <pre class="smallexample">          $ @vmsconfig.com
     495          </pre>
     496
     497     <li>Setup the logical names and command tables as defined above.  In
    480498addition, define the VMS logical name <code>GNU_BISON</code> to point at the
    481499to the directories where the Bison executable is kept.  This should be
    482500done with the command:
    483501
    484 <pre>$ assign /system /translation=concealed -
    485   disk:[bison.] gnu_bison
    486 </pre>
    487 
    488 <p>You may, if you choose, use the <code>INSTALL_BISON.COM</code> script in the
     502     <pre class="smallexample">          $ assign /system /translation=concealed -
     503            disk:[bison.] gnu_bison
     504          </pre>
     505
     506     <p>You may, if you choose, use the <code>INSTALL_BISON.COM</code> script in the
    489507<code>[BISON]</code> directory.
    490508
    491 </p><li>Install the <code>BISON</code> command with the command line:
    492 
    493 <pre>$ set command /table=sys$common:[syslib]dcltables -
    494   /output=sys$common:[syslib]dcltables -
    495   gnu_bison:[000000]bison
    496 $ install replace sys$common:[syslib]dcltables
    497 </pre>
    498 
    499 <li>Type <code>@make-gcc</code> to recompile everything, or submit the file
     509     </p><li>Install the <code>BISON</code> command with the command line:
     510
     511     <pre class="smallexample">          $ set command /table=sys$common:[syslib]dcltables -
     512            /output=sys$common:[syslib]dcltables -
     513            gnu_bison:[000000]bison
     514          $ install replace sys$common:[syslib]dcltables
     515          </pre>
     516
     517     <li>Type <code>@make-gcc</code> to recompile everything, or submit the file
    500518<code>make-gcc.com</code> to a batch queue.  If you wish to build the GNU C++
    501519compiler as well as the GNU CC compiler, you must first edit
     
    503521comments.
    504522
    505 <li>In order to use GCC, you need a library of functions which GCC compiled code
     523     <li>In order to use GCC, you need a library of functions which GCC compiled code
    506524will call to perform certain tasks, and these functions are defined in the
    507525file <code>libgcc2.c</code>.  To compile this you should use the command procedure
     
    511529<code>make-gcc.com</code> will automatically do all of this for you.
    512530
    513 <p>To install the library, use the following commands:
    514 
    515 <pre>$ library gnu_cc:[000000]gcclib/delete=(new,eprintf)
    516 $ library gnu_cc:[000000]gcclib/delete=L_*
    517 $ library libgcc2/extract=*/output=libgcc2.obj
    518 $ library gnu_cc:[000000]gcclib libgcc2.obj
    519 </pre>
    520 
    521 <p>The first command simply removes old modules that will be replaced with
     531     <p>To install the library, use the following commands:
     532
     533     <pre class="smallexample">          $ library gnu_cc:[000000]gcclib/delete=(new,eprintf)
     534          $ library gnu_cc:[000000]gcclib/delete=L_*
     535          $ library libgcc2/extract=*/output=libgcc2.obj
     536          $ library gnu_cc:[000000]gcclib libgcc2.obj
     537          </pre>
     538
     539     <p>The first command simply removes old modules that will be replaced with
    522540modules from <code>libgcc2</code> under different module names.  The modules
    523541<code>new</code> and <code>eprintf</code> may not actually be present in your
     
    527545previous version of the library <code>libgcc2.c</code>.
    528546
    529 <p>Whenever you update the compiler on your system, you should also update the
     547     <p>Whenever you update the compiler on your system, you should also update the
    530548library with the above procedure.
    531549
    532 </p><li>You may wish to build GCC in such a way that no files are written to the
     550     </p><li>You may wish to build GCC in such a way that no files are written to the
    533551directory where the source files reside.  An example would be the when
    534552the source files are on a read-only disk.  In these cases, execute the
    535553following DCL commands (substituting your actual path names):
    536554
    537 <pre>$ assign dua0:[gcc.build_dir.]/translation=concealed, -
    538          dua1:[gcc.source_dir.]/translation=concealed  gcc_build
    539 $ set default gcc_build:[000000]
    540 </pre>
    541 
    542 <p>where the directory <code>dua1:[gcc.source_dir]</code> contains the source
     555     <pre class="smallexample">          $ assign dua0:[gcc.build_dir.]/translation=concealed, -
     556                   dua1:[gcc.source_dir.]/translation=concealed  gcc_build
     557          $ set default gcc_build:[000000]
     558          </pre>
     559
     560     <p>where the directory <code>dua1:[gcc.source_dir]</code> contains the source
    543561code, and the directory <code>dua0:[gcc.build_dir]</code> is meant to contain
    544562all of the generated object files and executables.  Once you have done
     
    548566device name rather than another rooted logical name).
    549567
    550 </p><li><strong>If you are building GNU CC with a previous version of GNU CC,
     568     </p><li><strong>If you are building GNU CC with a previous version of GNU CC,
    551569you also should check to see that you have the newest version of the
    552570assembler</strong>.  In particular, GNU CC version 2 treats global constant
     
    558576messages are merely a nuisance, and can safely be ignored.
    559577
    560 <li>If you want to build GNU CC with the VAX C compiler, you will need to
     578     <li>If you want to build GNU CC with the VAX C compiler, you will need to
    561579make minor changes in <code>make-cccp.com</code> and <code>make-cc1.com</code>
    562580to choose alternate definitions of <code>CC</code>, <code>CFLAGS</code>, and
     
    569587<code>gnu_cc:[000000]gnu-as.exe</code>.
    570588
    571 <p>To use GNU CC on VMS, you need the VMS driver programs
     589     <p>To use GNU CC on VMS, you need the VMS driver programs
    572590<code>gcc.exe</code>, <code>gcc.com</code>, and <code>gcc.cld</code>.  They are
    573591distributed with the VMS binaries (<code>gcc-vms</code>) rather than the
    574592GNU CC sources.  GAS is also included in <code>gcc-vms</code>, as is Bison.
    575593
    576 <p>Once you have successfully built GNU CC with VAX C, you should use the
     594     <p>Once you have successfully built GNU CC with VAX C, you should use the
    577595resulting compiler to rebuild itself.  Before doing this, be sure to
    578596restore the <code>CC</code>, <code>CFLAGS</code>, and <code>LIBS</code> definitions in
     
    580598compiler will be able to take advantage of many optimizations that must
    581599be suppressed when building with other compilers.
    582 </ol>
    583 
    584 <p>Under previous versions of GNU CC, the generated code would occasionally
     600        </ol>
     601
     602   <p>Under previous versions of GNU CC, the generated code would occasionally
    585603give strange results when linked with the sharable <code>VAXCRTL</code> library.
    586604Now this should work.
    587605
    588 <p>Even with this version, however, GNU CC itself should not be linked with
     606   <p>Even with this version, however, GNU CC itself should not be linked with
    589607the sharable <code>VAXCRTL</code>.  The version of <code>qsort</code> in
    590608<code>VAXCRTL</code> has a bug (known to be present in VMS versions V4.6
    591609through V5.5) which causes the compiler to fail.
    592610
    593 <p>The executables are generated by <code>make-cc1.com</code> and
     611   <p>The executables are generated by <code>make-cc1.com</code> and
    594612<code>make-cccp.com</code> use the object library version of <code>VAXCRTL</code> in
    595613order to make use of the <code>qsort</code> routine in <code>gcclib.olb</code>.  If
     
    598616by <code>vmsconfig.com</code>) to define the macro <code>QSORT_WORKAROUND</code>.
    599617
    600 <p><code>QSORT_WORKAROUND</code> is always defined when GNU CC is compiled with
     618   <p><code>QSORT_WORKAROUND</code> is always defined when GNU CC is compiled with
    601619VAX C, to avoid a problem in case <code>gcclib.olb</code> is not yet
    602620available.
     
    605623<a href="./index.html">Return to the GCC Installation page</a>
    606624
    607 </body></html>
    608 
     625   </body></html>
     626
Note: See TracChangeset for help on using the changeset viewer.