1@c Copyright (C) 1988-2019 Free Software Foundation, Inc. 2@c This is part of the GCC manual. 3@c For copying conditions, see the file install.texi. 4 5@ifnothtml 6@comment node-name, next, previous, up 7@node Old, GNU Free Documentation License, Specific, Top 8@end ifnothtml 9@html 10<h1 align="center">Old installation documentation</h1> 11@end html 12@ifnothtml 13@chapter Old installation documentation 14@end ifnothtml 15 16Note most of this information is out of date and superseded by the 17previous chapters of this manual. It is provided for historical 18reference only, because of a lack of volunteers to merge it into the 19main manual. 20 21@ifnothtml 22@menu 23* Configurations:: Configurations Supported by GCC. 24@end menu 25@end ifnothtml 26 27Here is the procedure for installing GCC on a GNU or Unix system. 28 29@enumerate 30@item 31If you have chosen a configuration for GCC which requires other GNU 32tools (such as GAS or the GNU linker) instead of the standard system 33tools, install the required tools in the build directory under the names 34@file{as}, @file{ld} or whatever is appropriate. 35 36Alternatively, you can do subsequent compilation using a value of the 37@code{PATH} environment variable such that the necessary GNU tools come 38before the standard system tools. 39 40@item 41Specify the host, build and target machine configurations. You do this 42when you run the @file{configure} script. 43 44The @dfn{build} machine is the system which you are using, the 45@dfn{host} machine is the system where you want to run the resulting 46compiler (normally the build machine), and the @dfn{target} machine is 47the system for which you want the compiler to generate code. 48 49If you are building a compiler to produce code for the machine it runs 50on (a native compiler), you normally do not need to specify any operands 51to @file{configure}; it will try to guess the type of machine you are on 52and use that as the build, host and target machines. So you don't need 53to specify a configuration when building a native compiler unless 54@file{configure} cannot figure out what your configuration is or guesses 55wrong. 56 57In those cases, specify the build machine's @dfn{configuration name} 58with the @option{--host} option; the host and target will default to be 59the same as the host machine. 60 61Here is an example: 62 63@smallexample 64./configure --host=sparc-sun-sunos4.1 65@end smallexample 66 67A configuration name may be canonical or it may be more or less 68abbreviated. 69 70A canonical configuration name has three parts, separated by dashes. 71It looks like this: @samp{@var{cpu}-@var{company}-@var{system}}. 72(The three parts may themselves contain dashes; @file{configure} 73can figure out which dashes serve which purpose.) For example, 74@samp{m68k-sun-sunos4.1} specifies a Sun 3. 75 76You can also replace parts of the configuration by nicknames or aliases. 77For example, @samp{sun3} stands for @samp{m68k-sun}, so 78@samp{sun3-sunos4.1} is another way to specify a Sun 3. 79 80You can specify a version number after any of the system types, and some 81of the CPU types. In most cases, the version is irrelevant, and will be 82ignored. So you might as well specify the version if you know it. 83 84See @ref{Configurations}, for a list of supported configuration names and 85notes on many of the configurations. You should check the notes in that 86section before proceeding any further with the installation of GCC@. 87 88@end enumerate 89 90@ifnothtml 91@node Configurations, , , Old 92@section Configurations Supported by GCC 93@end ifnothtml 94@html 95<h2>@anchor{Configurations}Configurations Supported by GCC</h2> 96@end html 97@cindex configurations supported by GCC 98 99Here are the possible CPU types: 100 101@quotation 102@c gmicro, fx80, spur and tahoe omitted since they don't work. 1031750a, a29k, alpha, arm, avr, c@var{n}, clipper, dsp16xx, elxsi, fr30, h8300, 104hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, i960, ip2k, m32r, 105m68000, m68k, m88k, mcore, mips, mipsel, mips64, mips64el, 106mn10200, mn10300, ns32k, pdp11, powerpc, powerpcle, romp, rs6000, sh, sparc, 107sparclite, sparc64, v850, vax, we32k. 108@end quotation 109 110Here are the recognized company names. As you can see, customary 111abbreviations are used rather than the longer official names. 112 113@c What should be done about merlin, tek*, dolphin? 114@quotation 115acorn, alliant, altos, apollo, apple, att, bull, 116cbm, convergent, convex, crds, dec, dg, dolphin, 117elxsi, encore, harris, hitachi, hp, ibm, intergraph, isi, 118mips, motorola, ncr, next, ns, omron, plexus, 119sequent, sgi, sony, sun, tti, unicom, wrs. 120@end quotation 121 122The company name is meaningful only to disambiguate when the rest of 123the information supplied is insufficient. You can omit it, writing 124just @samp{@var{cpu}-@var{system}}, if it is not needed. For example, 125@samp{vax-ultrix4.2} is equivalent to @samp{vax-dec-ultrix4.2}. 126 127Here is a list of system types: 128 129@quotation 130386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux, 131dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux, 132linux-gnu, hiux, hpux, iris, irix, isc, luna, lynxos, mach, minix, msdos, mvs, 133netbsd, newsos, nindy, ns, osf, osfrose, ptx, riscix, riscos, rtu, sco, sim, 134solaris, sunos, sym, sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta, 135vxworks, winnt, xenix. 136@end quotation 137 138@noindent 139You can omit the system type; then @file{configure} guesses the 140operating system from the CPU and company. 141 142You can add a version number to the system type; this may or may not 143make a difference. For example, you can write @samp{bsd4.3} or 144@samp{bsd4.4} to distinguish versions of BSD@. In practice, the version 145number is most needed for @samp{sysv3} and @samp{sysv4}, which are often 146treated differently. 147 148@samp{linux-gnu} is the canonical name for the GNU/Linux target; however 149GCC will also accept @samp{linux}. The version of the kernel in use is 150not relevant on these systems. A suffix such as @samp{libc1} or @samp{aout} 151distinguishes major versions of the C library; all of the suffixed versions 152are obsolete. 153 154If you specify an impossible combination such as @samp{i860-dg-vms}, 155then you may get an error message from @file{configure}, or it may 156ignore part of the information and do the best it can with the rest. 157@file{configure} always prints the canonical name for the alternative 158that it used. GCC does not support all possible alternatives. 159 160Often a particular model of machine has a name. Many machine names are 161recognized as aliases for CPU/company combinations. Thus, the machine 162name @samp{sun3}, mentioned above, is an alias for @samp{m68k-sun}. 163Sometimes we accept a company name as a machine name, when the name is 164popularly used for a particular machine. Here is a table of the known 165machine names: 166 167@quotation 1683300, 3b1, 3b@var{n}, 7300, altos3068, altos, 169apollo68, att-7300, balance, 170convex-c@var{n}, crds, decstation-3100, 171decstation, delta, encore, 172fx2800, gmicro, hp7@var{nn}, hp8@var{nn}, 173hp9k2@var{nn}, hp9k3@var{nn}, hp9k7@var{nn}, 174hp9k8@var{nn}, iris4d, iris, isi68, 175m3230, magnum, merlin, miniframe, 176mmax, news-3600, news800, news, next, 177pbd, pc532, pmax, powerpc, powerpcle, ps2, risc-news, 178rtpc, sun2, sun386i, sun386, sun3, 179sun4, symmetry, tower-32, tower. 180@end quotation 181 182@noindent 183Remember that a machine name specifies both the cpu type and the company 184name. 185