Changeset 1391 for branches/GNU/src/gcc/INSTALL/old.html
- Timestamp:
- Apr 27, 2004, 8:39:34 PM (21 years ago)
- Location:
- branches/GNU/src/gcc
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GNU/src/gcc
- Property svn:ignore
-
old new 26 26 configure.vr 27 27 configure.vrs 28 dir.info 28 29 Makefile 29 dir.info30 30 lost+found 31 31 update.out
-
- Property svn:ignore
-
branches/GNU/src/gcc/INSTALL/old.html
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r1390 r1391 1 <html lang="en"><head> 1 <html lang="en"> 2 <head> 2 3 <title>Installing GCC: Old documentation</title> 3 4 <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 <!-- 8 Copyright © 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 9 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. 10 <br><p> 11 <p>Permission is granted to copy, distribute and/or modify this document 12 under the terms of the GNU Free Documentation License, Version 1.2 or 13 any later version published by the Free Software Foundation; with no 14 Invariant Sections, the Front-Cover texts being (a) (see below), and 15 with the Back-Cover Texts being (b) (see below). A copy of the 16 license 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> 9 39 <h1 align="center">Old installation documentation</h1> 10 40 11 <p>Note most of this information is out of date and superseded by the41 <p>Note most of this information is out of date and superseded by the 12 42 previous chapters of this manual. It is provided for historical 13 43 reference only, because of a lack of volunteers to merge it into the 14 44 main manual. 15 45 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. 17 47 See <a href="#VMS%20Install">VMS Install</a>, for VMS systems. 18 48 19 <ol type=1 start=1>20 < /p><li>If you have chosen a configuration for GNU CC which requires other GNU49 <ol type=1 start=1> 50 <li>If you have chosen a configuration for GNU CC which requires other GNU 21 51 tools (such as GAS or the GNU linker) instead of the standard system 22 52 tools, 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 28 56 <code>PATH</code> environment variable such that the necessary GNU tools come 29 57 before the standard system tools. 30 58 31 </p><li>Specify the host, build and target machine configurations. You do this59 </p><li>Specify the host, build and target machine configurations. You do this 32 60 when you run the <code>configure</code> script. 33 61 34 <p>The <dfn>build</dfn> machine is the system which you are using, the62 <p>The <dfn>build</dfn> machine is the system which you are using, the 35 63 <dfn>host</dfn> machine is the system where you want to run the resulting 36 64 compiler (normally the build machine), and the <dfn>target</dfn> machine is 37 65 the system for which you want the compiler to generate code. 38 66 39 <p>If you are building a compiler to produce code for the machine it runs67 <p>If you are building a compiler to produce code for the machine it runs 40 68 on (a native compiler), you normally do not need to specify any operands 41 69 to <code>configure</code>; it will try to guess the type of machine you are on … … 45 73 wrong. 46 74 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> 48 76 with the <code>--host</code> option; the host and target will default to be 49 77 the same as the host machine. (If you are building a cross-compiler, 50 78 see <a href="#Cross-Compiler">Cross-Compiler</a>.) 51 79 52 <p>Here is an example:53 54 <pre>./configure --host=sparc-sun-sunos4.155 </pre>56 57 <p>A configuration name may be canonical or it may be more or less80 <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 58 86 abbreviated. 59 87 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. 89 It looks like this: <code></code><var>cpu</var><code>-</code><var>company</var><code>-</code><var>system</var><code></code>. 62 90 (The three parts may themselves contain dashes; <code>configure</code> 63 91 can figure out which dashes serve which purpose.) For example, 64 92 <code>m68k-sun-sunos4.1</code> specifies a Sun 3. 65 93 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. 67 95 For example, <code>sun3</code> stands for <code>m68k-sun</code>, so 68 96 <code>sun3-sunos4.1</code> is another way to specify a Sun 3. 69 97 70 <p>You can specify a version number after any of the system types, and some98 <p>You can specify a version number after any of the system types, and some 71 99 of the CPU types. In most cases, the version is irrelevant, and will be 72 100 ignored. So you might as well specify the version if you know it. 73 101 74 <p>See <a href="#Configurations">Configurations</a>, for a list of supported configuration names and102 <p>See <a href="#Configurations">Configurations</a>, for a list of supported configuration names and 75 103 notes on many of the configurations. You should check the notes in that 76 104 section before proceeding any further with the installation of GNU CC. 77 105 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> 85 113 1750a, 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,114 hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, i960, ip2k, m32r, 87 115 m68000, m68k, m6811, m6812, m88k, mcore, mips, mipsel, mips64, mips64el, 88 116 mn10200, mn10300, ns32k, pdp11, powerpc, powerpcle, romp, rs6000, sh, sparc, … … 90 118 </blockquote> 91 119 92 <p>Here are the recognized company names. As you can see, customary120 <p>Here are the recognized company names. As you can see, customary 93 121 abbreviations are used rather than the longer official names. 94 122 95 <blockquote>123 <blockquote> 96 124 acorn, alliant, altos, apollo, apple, att, bull, 97 125 cbm, convergent, convex, crds, dec, dg, dolphin, … … 101 129 </blockquote> 102 130 103 <p>The company name is meaningful only to disambiguate when the rest of131 <p>The company name is meaningful only to disambiguate when the rest of 104 132 the 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,133 just <code></code><var>cpu</var><code>-</code><var>system</var><code></code>, if it is not needed. For example, 106 134 <code>vax-ultrix4.2</code> is equivalent to <code>vax-dec-ultrix4.2</code>. 107 135 108 <p>Here is a list of system types:109 110 <blockquote>136 <p>Here is a list of system types: 137 138 <blockquote> 111 139 386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux, 112 140 dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux, … … 120 148 operating system from the CPU and company. 121 149 122 <p>You can add a version number to the system type; this may or may not150 <p>You can add a version number to the system type; this may or may not 123 151 make a difference. For example, you can write <code>bsd4.3</code> or 124 152 <code>bsd4.4</code> to distinguish versions of BSD. In practice, the version … … 126 154 treated differently. 127 155 128 <p><code>linux-gnu</code> is the canonical name for the GNU/Linux target; however156 <p><code>linux-gnu</code> is the canonical name for the GNU/Linux target; however 129 157 GNU CC will also accept <code>linux</code>. The version of the kernel in use is 130 158 not relevant on these systems. A suffix such as <code>libc1</code> or <code>aout</code> … … 132 160 are obsolete. 133 161 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>, 135 163 then you may get an error message from <code>configure</code>, or it may 136 164 ignore part of the information and do the best it can with the rest. … … 138 166 that it used. GNU CC does not support all possible alternatives. 139 167 140 <p>Often a particular model of machine has a name. Many machine names are168 <p>Often a particular model of machine has a name. Many machine names are 141 169 recognized as aliases for CPU/company combinations. Thus, the machine 142 170 name <code>sun3</code>, mentioned above, is an alias for <code>m68k-sun</code>. … … 145 173 machine names: 146 174 147 <blockquote>175 <blockquote> 148 176 3300, 3b1, 3b<var>n</var>, 7300, altos3068, altos, 149 177 apollo68, att-7300, balance, … … 164 192 If you want to install your own homemade configuration files, you can 165 193 use <code>local</code> as the company name to access them. If you use 166 configuration <code>< var>cpu</var>-local</code>, the configuration name194 configuration <code></code><var>cpu</var><code>-local</code>, the configuration name 167 195 without the cpu prefix 168 196 is used to form the configuration file names. 169 197 170 <p>Thus, if you specify <code>m68k-local</code>, configuration uses198 <p>Thus, if you specify <code>m68k-local</code>, configuration uses 171 199 files <code>m68k.md</code>, <code>local.h</code>, <code>m68k.c</code>, 172 200 <code>xm-local.h</code>, <code>t-local</code>, and <code>x-local</code>, all in the 173 201 directory <code>config/m68k</code>. 174 202 175 <p>Here is a list of configurations that have special treatment or special203 <p>Here is a list of configurations that have special treatment or special 176 204 things you must know: 177 205 178 <dl>206 <dl> 179 207 <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. 181 209 </dl> 182 210 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> 188 216 <li>Cross-compilers for the Mips as target using the Mips assembler 189 217 currently do not work, because the auxiliary programs … … 192 220 if you use the GNU assembler and linker. 193 221 194 <li>Cross-compilers between machines with different floating point formats222 <li>Cross-compilers between machines with different floating point formats 195 223 have not all been made to work. GNU CC now has a floating point 196 224 emulator with which these can work, but each target machine description 197 225 needs to be updated to take advantage of it. 198 226 199 <li>Cross-compilation between machines of different word sizes is227 <li>Cross-compilation between machines of different word sizes is 200 228 somewhat problematic and sometimes does not work. 201 229 </ul> 202 230 203 <p>Since GNU CC generates assembler code, you probably need a231 <p>Since GNU CC generates assembler code, you probably need a 204 232 cross-assembler that GNU CC can run, in order to produce object files. 205 233 If you want to link on other than the target machine, you need a … … 207 235 for the target machine that you can install on the host machine. 208 236 209 <h2>Steps of Cross-Compilation</h2>210 211 <p>To compile and run a program using a cross-compiler involves several237 <h2>Steps of Cross-Compilation</h2> 238 239 <p>To compile and run a program using a cross-compiler involves several 212 240 steps: 213 241 214 <ul>242 <ul> 215 243 <li>Run the cross-compiler on the host machine to produce assembler files 216 244 for the target machine. This requires header files for the target 217 245 machine. 218 246 219 <li>Assemble the files produced by the cross-compiler. You can do this247 <li>Assemble the files produced by the cross-compiler. You can do this 220 248 either with an assembler on the target machine, or with a 221 249 cross-assembler on the host machine. 222 250 223 <li>Link those files to make an executable. You can do this either with a251 <li>Link those files to make an executable. You can do this either with a 224 252 linker on the target machine, or with a cross-linker on the host 225 253 machine. Whichever machine you use, you need libraries and certain 226 startup files (typically <code>crt <small>...</small>.o</code>) for the target machine.254 startup files (typically <code>crt....o</code>) for the target machine. 227 255 </ul> 228 256 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, 230 258 since then you can do it all with a single invocation of GNU CC. This 231 259 requires a suitable cross-assembler and cross-linker. For some targets, 232 260 the GNU assembler and linker are available. 233 261 234 <h2>Configuring a Cross-Compiler</h2>235 236 <p>To build GNU CC as a cross-compiler, you start out by running237 <code>configure</code>. Use the <code>--target=< var>target</var></code> to specify the262 <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 238 266 target 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>267 system you are running on, also specify the <code>--build=</code><var>build</var><code></code> 240 268 option. For example, here is how to configure for a cross-compiler that 241 269 produces code for an HP 68030 system running BSD on a system that 242 270 <code>configure</code> can correctly identify: 243 271 244 <pre >./configure --target=m68k-hp-bsd4.3245 </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 should272 <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 250 278 install them now. Put them in the directory 251 <code>/usr/local/< var>target</var>/bin</code>. Here is a table of the tools279 <code>/usr/local/</code><var>target</var><code>/bin</code>. Here is a table of the tools 252 280 you should put in this directory: 253 281 254 <dl>282 <dl> 255 283 <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 manipulate284 <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 263 291 archive files (linker libraries) in the target machine's format. 264 292 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. 267 295 </dl> 268 296 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, 270 298 and copy or link them to the proper place to for the cross-compiler to 271 299 find them when run later. 272 300 273 <p>The easiest way to provide these files is to build the Binutils package301 <p>The easiest way to provide these files is to build the Binutils package 274 302 and GAS. Configure them with the same <code>--host</code> and <code>--target</code> 275 303 options that you use for configuring GNU CC, then build and install … … 278 306 supports. 279 307 280 <p>If you want to install libraries to use with the cross-compiler, such as308 <p>If you want to install libraries to use with the cross-compiler, such as 281 309 a standard C library, put them in the directory 282 <code>/usr/local/< var>target</var>/lib</code>; installation of GNU CC copies310 <code>/usr/local/</code><var>target</var><code>/lib</code>; installation of GNU CC copies 283 311 all the files in that subdirectory into the proper place for GNU CC to 284 312 find them and link with them. Here's an example of copying some 285 313 libraries from a target machine: 286 314 287 <pre >ftp <var>target-machine</var>288 lcd /usr/local/<var>target</var>/lib289 cd /lib290 get libc.a291 cd /usr/lib292 get libg.a293 get libm.a294 quit295 </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> 296 324 297 325 <p>The precise set of libraries you'll need, and their locations on 298 326 the target machine, vary depending on its operating system. 299 327 300 <p>Many targets require "start files" such as <code>crt0.o</code> and328 <p>Many targets require "start files" such as <code>crt0.o</code> and 301 329 <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 several330 placed in <code>/usr/local/</code><var>target</var><code>/lib</code>. There may be several 303 331 alternatives for <code>crt0.o</code>, for use with profiling or other 304 332 compilation options. Check your target's definition of … … 306 334 Here's an example of copying these files from a target machine: 307 335 308 <pre >ftp <var>target-machine</var>309 lcd /usr/local/<var>target</var>/lib310 prompt311 cd /lib312 mget *crt*.o313 cd /usr/lib314 mget *crt*.o315 quit316 </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 an336 <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 321 349 embedded system, then you may not need any header files except the few 322 350 that are part of GNU CC (and those of your program). However, if you … … 325 353 that go with the library you use. 326 354 327 <p>The GNU C compiler does not come with these files, because (1) they are355 <p>The GNU C compiler does not come with these files, because (1) they are 328 356 system-specific, and (2) they belong in a C library, not in a compiler. 329 357 330 <p>If the GNU C library supports your target machine, then you can get the358 <p>If the GNU C library supports your target machine, then you can get the 331 359 header files from there (assuming you actually use the GNU library when 332 360 you link your program). 333 361 334 <p>If your target machine comes with a C compiler, it probably comes with362 <p>If your target machine comes with a C compiler, it probably comes with 335 363 suitable header files also. If you make these files accessible from the host 336 364 machine, the cross-compiler can use them also. 337 365 338 <p>Otherwise, you're on your own in finding header files to use when366 <p>Otherwise, you're on your own in finding header files to use when 339 367 cross-compiling. 340 368 341 <p>When you have found suitable header files, you should put them in the342 directory <code>/usr/local/< var>target</var>/include</code>, before building the369 <p>When you have found suitable header files, you should put them in the 370 directory <code>/usr/local/</code><var>target</var><code>/include</code>, before building the 343 371 cross compiler. Then installation will run fixincludes properly and 344 372 install the corrected versions of the header files where the compiler 345 373 will use them. 346 374 347 <p>Provide the header files before you build the cross-compiler, because375 <p>Provide the header files before you build the cross-compiler, because 348 376 the build stage actually runs the cross-compiler to produce parts of 349 377 <code>libgcc.a</code>. (These are the parts that <em>can</em> be compiled with 350 378 GNU CC.) Some of them need suitable header files. 351 379 352 <p>Here's an example showing how to copy the header files from a target380 <p>Here's an example showing how to copy the header files from a target 353 381 machine. On the target machine, do this: 354 382 355 <pre >(cd /usr/include; tar cf - .) > tarfile356 </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>/include362 get tarfile363 quit364 tar xf tarfile365 </pre>366 367 <h2>Actually Building the Cross-Compiler</h2>368 369 <p>Now you can proceed just as for compiling a single-machine compiler383 <pre class="example"> (cd /usr/include; tar cf - .) > 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 370 398 through the step of building stage 1. 371 399 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 383 401 rebuild GNU CC as a cross-compiler using the cross-compiler, because 384 402 that would produce a program that runs on the target machine, not on the … … 390 408 must specify a 68030 as the host when you configure it. 391 409 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 containing410 <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 397 415 both source code and precompiled binaries. 398 416 399 <p>To install the <code>gcc</code> command so you can use the compiler easily, in417 <p>To install the <code>gcc</code> command so you can use the compiler easily, in 400 418 the same manner as you use the VMS C compiler, you must install the VMS CLD 401 419 file for GNU CC as follows: 402 420 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> 405 423 to point to the directories where the GNU CC executables 406 424 (<code>gcc-cpp.exe</code>, <code>gcc-cc1.exe</code>, etc.) and the C include files are 407 425 kept respectively. This should be done with the commands: 408 426 409 <pre>$ assign /system /translation=concealed -410 disk:[gcc.] gnu_cc411 $ assign /system /translation=concealed -412 disk:[gcc.include.] gnu_cc_include413 </pre>414 415 <p>with the appropriate disk and directory names. These commands can be427 <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 416 434 placed in your system startup file so they will be executed whenever 417 435 the machine is rebooted. You may, if you choose, do this via the 418 436 <code>GCC_INSTALL.COM</code> script in the <code>[GCC]</code> directory. 419 437 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]gcc424 $ install replace sys$common:[syslib]dcltables425 </pre>426 427 <li>To install the help file, do the following:428 429 <pre>$ library/help sys$library:helplib.hlb gcc.hlp430 </pre>431 432 <p>Now you can invoke the compiler with a command like <code>gcc /verbose438 </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 433 451 file.c</code>, which is equivalent to the command <code>gcc -v -c file.c</code> in 434 452 Unix. 435 </ol>436 437 <p>If you wish to use GNU C++ you must first install GNU CC, and then453 </ol> 454 455 <p>If you wish to use GNU C++ you must first install GNU CC, and then 438 456 perform the following steps: 439 457 440 <ol type=1 start=1>441 < /p><li>Define the VMS logical name <code>GNU_GXX_INCLUDE</code> to point to the458 <ol type=1 start=1> 459 <li>Define the VMS logical name <code>GNU_GXX_INCLUDE</code> to point to the 442 460 directory where the preprocessor will search for the C++ header files. 443 461 This can be done with the command: 444 462 445 <pre>$ assign /system /translation=concealed -446 disk:[gcc.gxx_include.] gnu_gxx_include447 </pre>448 449 <p>with the appropriate disk and directory name. If you are going to be463 <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 450 468 using a C++ runtime library, this is where its install procedure will install 451 469 its header files. 452 470 453 </p><li>Obtain the file <code>gcc-cc1plus.exe</code>, and place this in the same471 </p><li>Obtain the file <code>gcc-cc1plus.exe</code>, and place this in the same 454 472 directory that <code>gcc-cc1.exe</code> is kept. 455 473 456 <p>The GNU C++ compiler can be invoked with a command like <code>gcc /plus474 <p>The GNU C++ compiler can be invoked with a command like <code>gcc /plus 457 475 /verbose file.cc</code>, which is equivalent to the command <code>g++ -v -c 458 476 file.cc</code> in Unix. 459 </ol>460 461 <p>We try to put corresponding binaries and sources on the VMS distribution477 </ol> 478 479 <p>We try to put corresponding binaries and sources on the VMS distribution 462 480 tape. But sometimes the binaries will be from an older version than the 463 481 sources, because we don't always have time to update them. (Use the … … 467 485 sources. If you must recompile, here is how: 468 486 469 <ol type=1 start=1>470 < /p><li>Execute the command procedure <code>vmsconfig.com</code> to set up the files487 <ol type=1 start=1> 488 <li>Execute the command procedure <code>vmsconfig.com</code> to set up the files 471 489 <code>tm.h</code>, <code>config.h</code>, <code>aux-output.c</code>, and <code>md.</code>, and 472 490 to create files <code>tconfig.h</code> and <code>hconfig.h</code>. This procedure … … 474 492 a data file used by <code>make-l2.com</code>. 475 493 476 <pre>$ @vmsconfig.com477 </pre>478 479 <li>Setup the logical names and command tables as defined above. In494 <pre class="smallexample"> $ @vmsconfig.com 495 </pre> 496 497 <li>Setup the logical names and command tables as defined above. In 480 498 addition, define the VMS logical name <code>GNU_BISON</code> to point at the 481 499 to the directories where the Bison executable is kept. This should be 482 500 done with the command: 483 501 484 <pre>$ assign /system /translation=concealed -485 disk:[bison.] gnu_bison486 </pre>487 488 <p>You may, if you choose, use the <code>INSTALL_BISON.COM</code> script in the502 <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 489 507 <code>[BISON]</code> directory. 490 508 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]bison496 $ install replace sys$common:[syslib]dcltables497 </pre>498 499 <li>Type <code>@make-gcc</code> to recompile everything, or submit the file509 </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 500 518 <code>make-gcc.com</code> to a batch queue. If you wish to build the GNU C++ 501 519 compiler as well as the GNU CC compiler, you must first edit … … 503 521 comments. 504 522 505 <li>In order to use GCC, you need a library of functions which GCC compiled code523 <li>In order to use GCC, you need a library of functions which GCC compiled code 506 524 will call to perform certain tasks, and these functions are defined in the 507 525 file <code>libgcc2.c</code>. To compile this you should use the command procedure … … 511 529 <code>make-gcc.com</code> will automatically do all of this for you. 512 530 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.obj518 $ library gnu_cc:[000000]gcclib libgcc2.obj519 </pre>520 521 <p>The first command simply removes old modules that will be replaced with531 <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 522 540 modules from <code>libgcc2</code> under different module names. The modules 523 541 <code>new</code> and <code>eprintf</code> may not actually be present in your … … 527 545 previous version of the library <code>libgcc2.c</code>. 528 546 529 <p>Whenever you update the compiler on your system, you should also update the547 <p>Whenever you update the compiler on your system, you should also update the 530 548 library with the above procedure. 531 549 532 </p><li>You may wish to build GCC in such a way that no files are written to the550 </p><li>You may wish to build GCC in such a way that no files are written to the 533 551 directory where the source files reside. An example would be the when 534 552 the source files are on a read-only disk. In these cases, execute the 535 553 following DCL commands (substituting your actual path names): 536 554 537 <pre>$ assign dua0:[gcc.build_dir.]/translation=concealed, -538 dua1:[gcc.source_dir.]/translation=concealed gcc_build539 $ set default gcc_build:[000000]540 </pre>541 542 <p>where the directory <code>dua1:[gcc.source_dir]</code> contains the source555 <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 543 561 code, and the directory <code>dua0:[gcc.build_dir]</code> is meant to contain 544 562 all of the generated object files and executables. Once you have done … … 548 566 device name rather than another rooted logical name). 549 567 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, 551 569 you also should check to see that you have the newest version of the 552 570 assembler</strong>. In particular, GNU CC version 2 treats global constant … … 558 576 messages are merely a nuisance, and can safely be ignored. 559 577 560 <li>If you want to build GNU CC with the VAX C compiler, you will need to578 <li>If you want to build GNU CC with the VAX C compiler, you will need to 561 579 make minor changes in <code>make-cccp.com</code> and <code>make-cc1.com</code> 562 580 to choose alternate definitions of <code>CC</code>, <code>CFLAGS</code>, and … … 569 587 <code>gnu_cc:[000000]gnu-as.exe</code>. 570 588 571 <p>To use GNU CC on VMS, you need the VMS driver programs589 <p>To use GNU CC on VMS, you need the VMS driver programs 572 590 <code>gcc.exe</code>, <code>gcc.com</code>, and <code>gcc.cld</code>. They are 573 591 distributed with the VMS binaries (<code>gcc-vms</code>) rather than the 574 592 GNU CC sources. GAS is also included in <code>gcc-vms</code>, as is Bison. 575 593 576 <p>Once you have successfully built GNU CC with VAX C, you should use the594 <p>Once you have successfully built GNU CC with VAX C, you should use the 577 595 resulting compiler to rebuild itself. Before doing this, be sure to 578 596 restore the <code>CC</code>, <code>CFLAGS</code>, and <code>LIBS</code> definitions in … … 580 598 compiler will be able to take advantage of many optimizations that must 581 599 be suppressed when building with other compilers. 582 </ol>583 584 <p>Under previous versions of GNU CC, the generated code would occasionally600 </ol> 601 602 <p>Under previous versions of GNU CC, the generated code would occasionally 585 603 give strange results when linked with the sharable <code>VAXCRTL</code> library. 586 604 Now this should work. 587 605 588 <p>Even with this version, however, GNU CC itself should not be linked with606 <p>Even with this version, however, GNU CC itself should not be linked with 589 607 the sharable <code>VAXCRTL</code>. The version of <code>qsort</code> in 590 608 <code>VAXCRTL</code> has a bug (known to be present in VMS versions V4.6 591 609 through V5.5) which causes the compiler to fail. 592 610 593 <p>The executables are generated by <code>make-cc1.com</code> and611 <p>The executables are generated by <code>make-cc1.com</code> and 594 612 <code>make-cccp.com</code> use the object library version of <code>VAXCRTL</code> in 595 613 order to make use of the <code>qsort</code> routine in <code>gcclib.olb</code>. If … … 598 616 by <code>vmsconfig.com</code>) to define the macro <code>QSORT_WORKAROUND</code>. 599 617 600 <p><code>QSORT_WORKAROUND</code> is always defined when GNU CC is compiled with618 <p><code>QSORT_WORKAROUND</code> is always defined when GNU CC is compiled with 601 619 VAX C, to avoid a problem in case <code>gcclib.olb</code> is not yet 602 620 available. … … 605 623 <a href="./index.html">Return to the GCC Installation page</a> 606 624 607 </body></html>608 625 </body></html> 626 -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.