1*ec02198aSmrg@c Copyright (C) 1988-2020 Free Software Foundation, Inc.
210d565efSmrg@c This is part of the GCC manual.
310d565efSmrg@c For copying conditions, see the file install.texi.
410d565efSmrg
510d565efSmrg@ifnothtml
610d565efSmrg@comment node-name,     next,          previous, up
710d565efSmrg@node    Old, GNU Free Documentation License, Specific, Top
810d565efSmrg@end ifnothtml
910d565efSmrg@html
1010d565efSmrg<h1 align="center">Old installation documentation</h1>
1110d565efSmrg@end html
1210d565efSmrg@ifnothtml
1310d565efSmrg@chapter Old installation documentation
1410d565efSmrg@end ifnothtml
1510d565efSmrg
1610d565efSmrgNote most of this information is out of date and superseded by the
1710d565efSmrgprevious chapters of this manual.  It is provided for historical
1810d565efSmrgreference only, because of a lack of volunteers to merge it into the
1910d565efSmrgmain manual.
2010d565efSmrg
2110d565efSmrg@ifnothtml
2210d565efSmrg@menu
2310d565efSmrg* Configurations::    Configurations Supported by GCC.
2410d565efSmrg@end menu
2510d565efSmrg@end ifnothtml
2610d565efSmrg
2710d565efSmrgHere is the procedure for installing GCC on a GNU or Unix system.
2810d565efSmrg
2910d565efSmrg@enumerate
3010d565efSmrg@item
3110d565efSmrgIf you have chosen a configuration for GCC which requires other GNU
3210d565efSmrgtools (such as GAS or the GNU linker) instead of the standard system
3310d565efSmrgtools, install the required tools in the build directory under the names
3410d565efSmrg@file{as}, @file{ld} or whatever is appropriate.
3510d565efSmrg
3610d565efSmrgAlternatively, you can do subsequent compilation using a value of the
3710d565efSmrg@code{PATH} environment variable such that the necessary GNU tools come
3810d565efSmrgbefore the standard system tools.
3910d565efSmrg
4010d565efSmrg@item
4110d565efSmrgSpecify the host, build and target machine configurations.  You do this
4210d565efSmrgwhen you run the @file{configure} script.
4310d565efSmrg
4410d565efSmrgThe @dfn{build} machine is the system which you are using, the
4510d565efSmrg@dfn{host} machine is the system where you want to run the resulting
4610d565efSmrgcompiler (normally the build machine), and the @dfn{target} machine is
4710d565efSmrgthe system for which you want the compiler to generate code.
4810d565efSmrg
4910d565efSmrgIf you are building a compiler to produce code for the machine it runs
5010d565efSmrgon (a native compiler), you normally do not need to specify any operands
5110d565efSmrgto @file{configure}; it will try to guess the type of machine you are on
5210d565efSmrgand use that as the build, host and target machines.  So you don't need
5310d565efSmrgto specify a configuration when building a native compiler unless
5410d565efSmrg@file{configure} cannot figure out what your configuration is or guesses
5510d565efSmrgwrong.
5610d565efSmrg
5710d565efSmrgIn those cases, specify the build machine's @dfn{configuration name}
5810d565efSmrgwith the @option{--host} option; the host and target will default to be
5910d565efSmrgthe same as the host machine.
6010d565efSmrg
6110d565efSmrgHere is an example:
6210d565efSmrg
6310d565efSmrg@smallexample
6410d565efSmrg./configure --host=sparc-sun-sunos4.1
6510d565efSmrg@end smallexample
6610d565efSmrg
6710d565efSmrgA configuration name may be canonical or it may be more or less
6810d565efSmrgabbreviated.
6910d565efSmrg
7010d565efSmrgA canonical configuration name has three parts, separated by dashes.
7110d565efSmrgIt looks like this: @samp{@var{cpu}-@var{company}-@var{system}}.
7210d565efSmrg(The three parts may themselves contain dashes; @file{configure}
7310d565efSmrgcan figure out which dashes serve which purpose.)  For example,
7410d565efSmrg@samp{m68k-sun-sunos4.1} specifies a Sun 3.
7510d565efSmrg
7610d565efSmrgYou can also replace parts of the configuration by nicknames or aliases.
7710d565efSmrgFor example, @samp{sun3} stands for @samp{m68k-sun}, so
7810d565efSmrg@samp{sun3-sunos4.1} is another way to specify a Sun 3.
7910d565efSmrg
8010d565efSmrgYou can specify a version number after any of the system types, and some
8110d565efSmrgof the CPU types.  In most cases, the version is irrelevant, and will be
8210d565efSmrgignored.  So you might as well specify the version if you know it.
8310d565efSmrg
8410d565efSmrgSee @ref{Configurations}, for a list of supported configuration names and
8510d565efSmrgnotes on many of the configurations.  You should check the notes in that
8610d565efSmrgsection before proceeding any further with the installation of GCC@.
8710d565efSmrg
8810d565efSmrg@end enumerate
8910d565efSmrg
9010d565efSmrg@ifnothtml
9110d565efSmrg@node Configurations, , , Old
9210d565efSmrg@section Configurations Supported by GCC
9310d565efSmrg@end ifnothtml
9410d565efSmrg@html
9510d565efSmrg<h2>@anchor{Configurations}Configurations Supported by GCC</h2>
9610d565efSmrg@end html
9710d565efSmrg@cindex configurations supported by GCC
9810d565efSmrg
9910d565efSmrgHere are the possible CPU types:
10010d565efSmrg
10110d565efSmrg@quotation
10210d565efSmrg@c gmicro, fx80, spur and tahoe omitted since they don't work.
10310d565efSmrg1750a, a29k, alpha, arm, avr, c@var{n}, clipper, dsp16xx, elxsi, fr30, h8300,
10410d565efSmrghppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, i960, ip2k, m32r,
10510d565efSmrgm68000, m68k, m88k, mcore, mips, mipsel, mips64, mips64el,
10610d565efSmrgmn10200, mn10300, ns32k, pdp11, powerpc, powerpcle, romp, rs6000, sh, sparc,
10710d565efSmrgsparclite, sparc64, v850, vax, we32k.
10810d565efSmrg@end quotation
10910d565efSmrg
11010d565efSmrgHere are the recognized company names.  As you can see, customary
11110d565efSmrgabbreviations are used rather than the longer official names.
11210d565efSmrg
11310d565efSmrg@c What should be done about merlin, tek*, dolphin?
11410d565efSmrg@quotation
11510d565efSmrgacorn, alliant, altos, apollo, apple, att, bull,
11610d565efSmrgcbm, convergent, convex, crds, dec, dg, dolphin,
11710d565efSmrgelxsi, encore, harris, hitachi, hp, ibm, intergraph, isi,
11810d565efSmrgmips, motorola, ncr, next, ns, omron, plexus,
11910d565efSmrgsequent, sgi, sony, sun, tti, unicom, wrs.
12010d565efSmrg@end quotation
12110d565efSmrg
12210d565efSmrgThe company name is meaningful only to disambiguate when the rest of
12310d565efSmrgthe information supplied is insufficient.  You can omit it, writing
12410d565efSmrgjust @samp{@var{cpu}-@var{system}}, if it is not needed.  For example,
12510d565efSmrg@samp{vax-ultrix4.2} is equivalent to @samp{vax-dec-ultrix4.2}.
12610d565efSmrg
12710d565efSmrgHere is a list of system types:
12810d565efSmrg
12910d565efSmrg@quotation
13010d565efSmrg386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux,
13110d565efSmrgdgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux,
13210d565efSmrglinux-gnu, hiux, hpux, iris, irix, isc, luna, lynxos, mach, minix, msdos, mvs,
13310d565efSmrgnetbsd, newsos, nindy, ns, osf, osfrose, ptx, riscix, riscos, rtu, sco, sim,
13410d565efSmrgsolaris, sunos, sym, sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta,
13510d565efSmrgvxworks, winnt, xenix.
13610d565efSmrg@end quotation
13710d565efSmrg
13810d565efSmrg@noindent
13910d565efSmrgYou can omit the system type; then @file{configure} guesses the
14010d565efSmrgoperating system from the CPU and company.
14110d565efSmrg
14210d565efSmrgYou can add a version number to the system type; this may or may not
14310d565efSmrgmake a difference.  For example, you can write @samp{bsd4.3} or
14410d565efSmrg@samp{bsd4.4} to distinguish versions of BSD@.  In practice, the version
14510d565efSmrgnumber is most needed for @samp{sysv3} and @samp{sysv4}, which are often
14610d565efSmrgtreated differently.
14710d565efSmrg
14810d565efSmrg@samp{linux-gnu} is the canonical name for the GNU/Linux target; however
14910d565efSmrgGCC will also accept @samp{linux}.  The version of the kernel in use is
15010d565efSmrgnot relevant on these systems.  A suffix such as @samp{libc1} or @samp{aout}
15110d565efSmrgdistinguishes major versions of the C library; all of the suffixed versions
15210d565efSmrgare obsolete.
15310d565efSmrg
15410d565efSmrgIf you specify an impossible combination such as @samp{i860-dg-vms},
15510d565efSmrgthen you may get an error message from @file{configure}, or it may
15610d565efSmrgignore part of the information and do the best it can with the rest.
15710d565efSmrg@file{configure} always prints the canonical name for the alternative
15810d565efSmrgthat it used.  GCC does not support all possible alternatives.
15910d565efSmrg
16010d565efSmrgOften a particular model of machine has a name.  Many machine names are
16110d565efSmrgrecognized as aliases for CPU/company combinations.  Thus, the machine
16210d565efSmrgname @samp{sun3}, mentioned above, is an alias for @samp{m68k-sun}.
16310d565efSmrgSometimes we accept a company name as a machine name, when the name is
16410d565efSmrgpopularly used for a particular machine.  Here is a table of the known
16510d565efSmrgmachine names:
16610d565efSmrg
16710d565efSmrg@quotation
16810d565efSmrg3300, 3b1, 3b@var{n}, 7300, altos3068, altos,
16910d565efSmrgapollo68, att-7300, balance,
17010d565efSmrgconvex-c@var{n}, crds, decstation-3100,
17110d565efSmrgdecstation, delta, encore,
17210d565efSmrgfx2800, gmicro, hp7@var{nn}, hp8@var{nn},
17310d565efSmrghp9k2@var{nn}, hp9k3@var{nn}, hp9k7@var{nn},
17410d565efSmrghp9k8@var{nn}, iris4d, iris, isi68,
17510d565efSmrgm3230, magnum, merlin, miniframe,
17610d565efSmrgmmax, news-3600, news800, news, next,
17710d565efSmrgpbd, pc532, pmax, powerpc, powerpcle, ps2, risc-news,
17810d565efSmrgrtpc, sun2, sun386i, sun386, sun3,
17910d565efSmrgsun4, symmetry, tower-32, tower.
18010d565efSmrg@end quotation
18110d565efSmrg
18210d565efSmrg@noindent
18310d565efSmrgRemember that a machine name specifies both the cpu type and the company
18410d565efSmrgname.
185