]> gcc.gnu.org Git - gcc.git/blame - gcc/doc/install.texi
I'm the i386 maintainer.
[gcc.git] / gcc / doc / install.texi
CommitLineData
f42974dc
DW
1\input texinfo.tex @c -*-texinfo-*-
2@c @ifnothtml
3@c %**start of header
4@setfilename install.info
5@settitle Installing GCC
6@setchapternewpage odd
7@c %**end of header
8@c @end ifnothtml
9
10@c Specify title for specific html page
11@ifset indexhtml
12@settitle Installing GCC
13@end ifset
14@ifset specifichtml
15@settitle Host/Target specific installation notes for GCC
16@end ifset
17@ifset downloadhtml
18@settitle Downloading GCC
19@end ifset
20@ifset configurehtml
21@settitle Installing GCC: Configuration
22@end ifset
23@ifset buildhtml
24@settitle Installing GCC: Building
25@end ifset
26@ifset testhtml
27@settitle Installing GCC: Testing
28@end ifset
29@ifset finalinstallhtml
30@settitle Installing GCC: Final installation
31@end ifset
32@ifset binarieshtml
33@settitle Installing GCC: Binaries
34@end ifset
73e2155a
JM
35@ifset oldhtml
36@settitle Installing GCC: Old documentation
37@end ifset
aed5964b
JM
38@ifset gfdlhtml
39@settitle Installing GCC: GNU Free Documentation License
40@end ifset
f42974dc 41
aed5964b 42@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
4dd57c18 43@c 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
f42974dc
DW
44@c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com
45
46@c Include everything if we're not making html
47@ifnothtml
48@set indexhtml
49@set specifichtml
50@set downloadhtml
51@set configurehtml
52@set buildhtml
53@set testhtml
54@set finalinstallhtml
55@set binarieshtml
73e2155a 56@set oldhtml
aed5964b 57@set gfdlhtml
f42974dc
DW
58@end ifnothtml
59
60@c Part 2 Summary Description and Copyright
aed5964b
JM
61@macro copyrightnotice
62Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
4dd57c18 631999, 2000, 2001, 2002 Free Software Foundation, Inc.
aed5964b
JM
64@sp 1
65Permission is granted to copy, distribute and/or modify this document
66under the terms of the GNU Free Documentation License, Version 1.1 or
67any later version published by the Free Software Foundation; with no
68Invariant Sections, the Front-Cover texts being (a) (see below), and
69with the Back-Cover Texts being (b) (see below). A copy of the
70license is included in the section entitled ``@uref{./gfdl.html,,GNU
71Free Documentation License}''.
72
73(a) The FSF's Front-Cover Text is:
74
75 A GNU Manual
76
77(b) The FSF's Back-Cover Text is:
78
79 You have freedom to copy and modify this GNU Manual, like GNU
80 software. Copies published by the Free Software Foundation raise
81 funds for GNU development.
82@end macro
f42974dc 83@ifinfo
aed5964b 84@copyrightnotice{}
f42974dc
DW
85@end ifinfo
86
87@c Part 3 Titlepage and Copyright
88@titlepage
89@sp 10
90@comment The title is printed in a large font.
ef88b07d 91@center @titlefont{Installing GCC}
f42974dc
DW
92
93@c The following two commands start the copyright page.
94@page
ef88b07d 95@vskip 0pt plus 1filll
aed5964b 96@copyrightnotice{}
f42974dc
DW
97@end titlepage
98
99@c Part 4 Top node and Master Menu
100@ifinfo
101@node Top, , , (dir)
102@comment node-name, next, Previous, up
103
104@menu
105* Installing GCC:: This document describes the generic installation
106 procedure for GCC as well as detailing some target
f9047ed3 107 specific installation instructions.
f42974dc
DW
108
109* Specific:: Host/target specific installation notes for GCC.
110* Binaries:: Where to get pre-compiled binaries.
111
73e2155a
JM
112* Old:: Old installation documentation.
113
aed5964b 114* GNU Free Documentation License:: How you can copy and share this manual.
f42974dc
DW
115* Concept Index:: This index has two entries.
116@end menu
117@end ifinfo
118
119@c Part 5 The Body of the Document
120@c ***Installing GCC**********************************************************
6cfb3f16 121@ifnothtml
f42974dc
DW
122@comment node-name, next, previous, up
123@node Installing GCC, Binaries, , Top
6cfb3f16 124@end ifnothtml
f42974dc
DW
125@ifset indexhtml
126@html
127<h1 align="center">Installing GCC</h1>
128@end html
129@ifnothtml
130@chapter Installing GCC
131@end ifnothtml
132
133The latest version of this document is always available at
f9047ed3 134@uref{http://gcc.gnu.org/install/,,http://gcc.gnu.org/install/}.
f42974dc
DW
135
136This document describes the generic installation procedure for GCC as well
f9047ed3 137as detailing some target specific installation instructions.
f42974dc 138
f9047ed3
JM
139GCC includes several components that previously were separate distributions
140with their own installation instructions. This document supersedes all
eea81d3e 141package specific installation instructions.
f42974dc 142
f9047ed3 143@emph{Before} starting the build/install procedure please check the
f42974dc 144@ifnothtml
eea81d3e 145@ref{Specific, host/target specific installation notes}.
f42974dc 146@end ifnothtml
c009f01f 147@ifhtml
f9047ed3 148@uref{specific.html,,host/target specific installation notes}.
c009f01f 149@end ifhtml
f9047ed3 150We recommend you browse the entire generic installation instructions before
f42974dc
DW
151you proceed.
152
c009f01f
JJ
153Lists of successful builds for released versions of GCC are
154available at our web pages for
155@uref{http://gcc.gnu.org/gcc-3.0/buildstat.html,,3.0}
156and
157@uref{http://gcc.gnu.org/gcc-2.95/buildstat.html,,2.95}.
158These lists are updated as new information becomes available.
159
f9047ed3 160The installation procedure itself is broken into five steps.
f42974dc
DW
161
162@ifinfo
163@menu
164* Downloading the source::
165* Configuration::
166* Building::
167* Testing:: (optional)
168* Final install::
169@end menu
170@end ifinfo
c009f01f 171@ifhtml
f42974dc 172@enumerate
f9047ed3 173@item
f42974dc 174@uref{download.html,,Downloading the source}
f42974dc 175@item
f9047ed3
JM
176@uref{configure.html,,Configuration}
177@item
178@uref{build.html,,Building}
179@item
180@uref{test.html,,Testing} (optional)
f42974dc
DW
181@item
182@uref{finalinstall.html,,Final install}
183@end enumerate
c009f01f 184@end ifhtml
f42974dc 185
38209993 186Please note that GCC does not support @samp{make uninstall} and probably
f9047ed3 187won't do so in the near future as this would open a can of worms. Instead,
f42974dc 188we suggest that you install GCC into a directory of its own and simply
38209993 189remove that directory when you do not need that specific version of GCC
eea81d3e
RO
190any longer, and, if shared libraries are installed there as well, no
191more binaries exist that use them.
f42974dc 192
73e2155a
JM
193@ifhtml
194There are also some @uref{old.html,,old installation instructions},
195which are mostly obsolete but still contain some information which has
196not yet been merged into the main part of this manual.
197@end ifhtml
198
f42974dc
DW
199@html
200<hr>
201<p>
202@end html
203@ifhtml
204@uref{./index.html,,Return to the GCC Installation page}
aed5964b
JM
205
206@copyrightnotice{}
f42974dc
DW
207@end ifhtml
208@end ifset
209
210@c ***Downloading the source**************************************************
6cfb3f16 211@ifnothtml
f42974dc
DW
212@comment node-name, next, previous, up
213@node Downloading the source, Configuration, , Installing GCC
6cfb3f16 214@end ifnothtml
f42974dc
DW
215@ifset downloadhtml
216@html
217<h1 align="center">Downloading GCC</h1>
218@end html
219@ifnothtml
220@chapter Downloading GCC
221@end ifnothtml
222@cindex Downloading GCC
223@cindex Downloading the Source
224
eea81d3e
RO
225GCC is distributed via @uref{http://gcc.gnu.org/cvs.html,,CVS} and FTP
226tarballs compressed with @command{gzip} or
6cfb3f16 227@command{bzip2}. It is possible to download a full distribution or specific
f42974dc
DW
228components.
229
230Please refer to our @uref{http://gcc.gnu.org/releases.html,,releases web page}
161d7b59 231for information on how to obtain GCC@.
f42974dc
DW
232
233The full distribution includes the C, C++, Objective-C, Fortran, Java,
eea81d3e
RO
234and CHILL compilers. The full distribution also includes runtime libraries
235for C++, Objective-C, Fortran, Java and CHILL. (GCC 3.0 does not
236include CHILL.) In GCC 3.0 and later versions, GNU compiler testsuites
ecb7d6b3 237are also included in the full distribution.
f42974dc
DW
238
239If you choose to download specific components, you must download the core
eea81d3e 240GCC distribution plus any language specific distributions you wish to
6c0a4eab 241use. The core distribution includes the C language front end as well as the
767094dd 242shared components. Each language has a tarball which includes the language
6c0a4eab 243front end as well as the language runtime (when appropriate).
f42974dc
DW
244
245Unpack the core distribution as well as any language specific
246distributions in the same directory.
247
248If you also intend to build binutils (either to upgrade an existing
249installation or for use in place of the corresponding tools of your
250OS), unpack the binutils distribution either in the same directory or
251a separate one. In the latter case, add symbolic links to any
252components of the binutils you intend to build alongside the compiler
6cfb3f16
JM
253(@file{bfd}, @file{binutils}, @file{gas}, @file{gprof}, @file{ld},
254@file{opcodes}, @dots{}) to the directory containing the GCC sources.
f42974dc
DW
255
256@html
257<hr>
258<p>
259@end html
260@ifhtml
261@uref{./index.html,,Return to the GCC Installation page}
262@end ifhtml
263@end ifset
264
265@c ***Configuration***********************************************************
6cfb3f16 266@ifnothtml
f42974dc
DW
267@comment node-name, next, previous, up
268@node Configuration, Building, Downloading the source, Installing GCC
6cfb3f16 269@end ifnothtml
f42974dc
DW
270@ifset configurehtml
271@html
272<h1 align="center">Installing GCC: Configuration</h1>
273@end html
274@ifnothtml
275@chapter Installing GCC: Configuration
276@end ifnothtml
277@cindex Configuration
278@cindex Installing GCC: Configuration
279
280Like most GNU software, GCC must be configured before it can be built.
281This document describes the recommended configuration procedure
282for both native and cross targets.
283
38209993
LG
284We use @var{srcdir} to refer to the toplevel source directory for
285GCC; we use @var{objdir} to refer to the toplevel build/object directory.
286
287If you obtained the sources via CVS, @var{srcdir} must refer to the top
288@file{gcc} directory, the one where the @file{MAINTAINERS} can be found,
289and not its @file{gcc} subdirectory, otherwise the build will fail.
f42974dc
DW
290
291First, we @strong{highly} recommend that GCC be built into a
292separate directory than the sources which does @strong{not} reside
293within the source tree. This is how we generally build GCC; building
38209993
LG
294where @var{srcdir} == @var{objdir} should still work, but doesn't
295get extensive testing; building where @var{objdir} is a subdirectory
296of @var{srcdir} is unsupported.
f42974dc 297
eea81d3e 298If you have previously built GCC in the same directory for a
f85b8d1a
JM
299different target machine, do @samp{make distclean} to delete all files
300that might be invalid. One of the files this deletes is
301@file{Makefile}; if @samp{make distclean} complains that @file{Makefile}
302does not exist, it probably means that the directory is already suitably
303clean. However, with the recommended method of building in a separate
304@var{objdir}, you should simply use a different @var{objdir} for each
305target.
306
38209993
LG
307Second, when configuring a native system, either @command{cc} or
308@command{gcc} must be in your path or you must set @env{CC} in
df002c7d
DE
309your environment before running configure. Otherwise the configuration
310scripts may fail.
f42974dc 311
eea81d3e
RO
312Note that the bootstrap compiler and the resulting GCC must be link
313compatible, else the bootstrap will fail with linker errors about
314incompatible object file formats. Several multilibed targets are
e69aa433
GP
315affected by this requirement, see
316@ifnothtml
317@ref{Specific, host/target specific installation notes}.
318@end ifnothtml
c009f01f 319@ifhtml
e69aa433 320@uref{specific.html,,host/target specific installation notes}.
c009f01f 321@end ifhtml
eea81d3e 322
f42974dc
DW
323To configure GCC:
324
325@example
38209993
LG
326 % mkdir @var{objdir}
327 % cd @var{objdir}
eea81d3e 328 % @var{srcdir}/configure [@var{options}] [@var{target}]
f42974dc
DW
329@end example
330
331
ef88b07d 332@heading Target specification
f42974dc
DW
333@itemize @bullet
334@item
38209993 335GCC has code to correctly determine the correct value for @var{target}
f9047ed3 336for nearly all native systems. Therefore, we highly recommend you not
f42974dc
DW
337provide a configure target when configuring a native compiler.
338
339@item
6cfb3f16 340@var{target} must be specified as @option{--target=@var{target}}
f9047ed3 341when configuring a cross compiler; examples of valid targets would be
f42974dc
DW
342i960-rtems, m68k-coff, sh-elf, etc.
343
344@item
6cfb3f16 345Specifying just @var{target} instead of @option{--target=@var{target}}
38209993 346implies that the host defaults to @var{target}.
f42974dc
DW
347@end itemize
348
349
ef88b07d 350@heading Options specification
f42974dc 351
ef88b07d 352Use @var{options} to override several configure time options for
80f9249a
JM
353GCC@. A list of supported @var{options} follows; @command{configure
354--help} may list other options, but those not listed below may not
355work and should not normally be used.
f42974dc 356
ef88b07d
JM
357@table @code
358@item --prefix=@var{dirname}
359Specify the toplevel installation
f42974dc
DW
360directory. This is the recommended way to install the tools into a directory
361other than the default. The toplevel installation directory defaults to
6cfb3f16 362@file{/usr/local}.
f42974dc 363
38209993
LG
364We @strong{highly} recommend against @var{dirname} being the same or a
365subdirectory of @var{objdir} or vice versa.
f42974dc
DW
366
367These additional options control where certain parts of the distribution
368are installed. Normally you should not need to use these options.
ef88b07d 369@table @code
f42974dc 370
ab130aa5
JM
371@item --exec-prefix=@var{dirname}
372Specify the toplevel installation directory for architecture-dependent
373files. The default is @file{@var{prefix}}.
374
375@item --bindir=@var{dirname}
376Specify the installation directory for the executables called by users
377(such as @command{gcc} and @command{g++}). The default is
378@file{@var{exec-prefix}/bin}.
379
380@item --libdir=@var{dirname}
381Specify the installation directory for object code libraries and
161d7b59 382internal parts of GCC@. The default is @file{@var{exec-prefix}/lib}.
ab130aa5
JM
383
384@item --with-slibdir=@var{dirname}
385Specify the installation directory for the shared libgcc library. The
386default is @file{@var{libdir}}.
387
388@item --infodir=@var{dirname}
389Specify the installation directory for documentation in info format.
390The default is @file{@var{prefix}/info}.
391
392@item --mandir=@var{dirname}
393Specify the installation directory for manual pages. The default is
394@file{@var{prefix}/man}. (Note that the manual pages are only extracts from
395the full GCC manuals, which are provided in Texinfo format. The
396@command{g77} manpage is unmaintained and may be out of date; the others
397are derived by an automatic conversion process from parts of the full
398manual.)
399
ef88b07d
JM
400@item --with-gxx-include-dir=@var{dirname}
401Specify
eea81d3e 402the installation directory for G++ header files. The default is
ecb7d6b3
JM
403@file{@var{prefix}/include/g++-v3}.
404
ef88b07d 405@end table
f42974dc 406
b21d216c
AF
407@item --program-prefix=@var{prefix}
408GCC supports some transformations of the names of its programs when
409installing them. This option prepends @var{prefix} to the names of
410programs to install in @var{bindir} (see above). For example, specifying
411@option{--program-prefix=foo-} would result in @samp{gcc}
412being installed as @file{/usr/local/bin/foo-gcc}.
413
414@item --program-suffix=@var{suffix}
415Appends @var{suffix} to the names of programs to install in @var{bindir}
416(see above). For example, specifying @option{--program-suffix=-3.1}
417would result in @samp{gcc} being installed as
418@file{/usr/local/bin/gcc-3.1}.
419
420@item --program-transform-name=@var{pattern}
421Applies the @samp{sed} script @var{pattern} to be applied to the names
422of programs to install in @var{bindir} (see above). @var{pattern} has to
423consist of one or more basic @samp{sed} editing commands, separated by
424semicolons. For example, if you want the @samp{gcc} program name to be
425transformed to the installed program @file{/usr/local/bin/myowngcc} and
426the @samp{g++} program name to be transformed to
427@file{/usr/local/bin/gspecial++} without changing other program names,
428you could use the pattern
429@option{--program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/'}
430to achieve this effect.
431
432All three options can be combined and used together, resulting in more
433complex conversion patterns. As a basic rule, @var{prefix} (and
434@var{suffix}) are prepended (appended) before further transformations
435can happen with a special transformation script @var{pattern}.
436
437As currently implemented, this options only take effect for native
438builds; cross compiler binaries' names are not transformed even when a
439transformation is explicitly asked for by one of this options.
440
441For native builds, some of the installed programs are also installed
442with the target alias in front of their name, as in
443@samp{i686-pc-linux-gnu-gcc}. All of the above transformations happen
444before the target alias is prepended to the name - so, specifying
445@option{--program-prefix=foo-} and @option{program-suffix=-3.1}, the
446resulting binary would be installed as
447@file{/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1}.
448
449As a last shortcoming, none of the installed CHILL and Ada programs are
450transformed yet, which will be fixed in some time.
451
ef88b07d
JM
452@item --with-local-prefix=@var{dirname}
453Specify the
6ac48571
JM
454installation directory for local include files. The default is
455@file{/usr/local}. Specify this option if you want the compiler to
456search directory @file{@var{dirname}/include} for locally installed
457header files @emph{instead} of @file{/usr/local/include}.
458
459You should specify @option{--with-local-prefix} @strong{only} if your
460site has a different convention (not @file{/usr/local}) for where to put
461site-specific files.
462
463The default value for @option{--with-local-prefix} is @file{/usr/local}
464regardless of the value of @option{--prefix}. Specifying
465@option{--prefix} has no effect on which directory GCC searches for
466local header files. This may seem counterintuitive, but actually it is
467logical.
468
469The purpose of @option{--prefix} is to specify where to @emph{install
470GCC}. The local header files in @file{/usr/local/include}---if you put
161d7b59 471any in that directory---are not part of GCC@. They are part of other
6ac48571
JM
472programs---perhaps many others. (GCC installs its own header files in
473another directory which is based on the @option{--prefix} value.)
474
475@strong{Do not} specify @file{/usr} as the @option{--with-local-prefix}!
476The directory you use for @option{--with-local-prefix} @strong{must not}
477contain any of the system's standard header files. If it did contain
478them, certain programs would be miscompiled (including GNU Emacs, on
479certain targets), because this would override and nullify the header
480file corrections made by the @code{fixincludes} script.
481
482Indications are that people who use this option use it based on mistaken
483ideas of what it is for. People use it as if it specified where to
161d7b59 484install part of GCC@. Perhaps they make this assumption because
6ac48571
JM
485installing GCC creates the directory.
486
6cfb3f16 487@item --enable-shared[=@var{package}[,@dots{}]]
0cb98517
AO
488Build shared versions of libraries, if shared libraries are supported on
489the target platform. Unlike GCC 2.95.x and earlier, shared libraries
eea81d3e
RO
490are enabled by default on all platforms that support shared libraries,
491except for @samp{libobjc} which is built as a static library only by
492default.
0cb98517
AO
493
494If a list of packages is given as an argument, build shared libraries
495only for the listed packages. For other packages, only static libraries
496will be built. Package names currently recognized in the GCC tree are
497@samp{libgcc} (also known as @samp{gcc}), @samp{libstdc++} (not
498@samp{libstdc++-v3}), @samp{libffi}, @samp{zlib}, @samp{boehm-gc} and
499@samp{libjava}. Note that @samp{libobjc} does not recognize itself by
500any name, so, if you list package names in @option{--enable-shared},
eea81d3e 501you will only get static Objective-C libraries. @samp{libf2c} and
0cb98517
AO
502@samp{libiberty} do not support shared libraries at all.
503
504Use @option{--disable-shared} to build only static libraries. Note that
505@option{--disable-shared} does not accept a list of package names as
506argument, only @option{--enable-shared} does.
f42974dc 507
ef88b07d
JM
508@item @anchor{with-gnu-as}--with-gnu-as
509Specify that the compiler should assume that the
767094dd 510assembler it finds is the GNU assembler. However, this does not modify
38209993 511the rules to find an assembler and will result in confusion if found
8c26c999
JM
512assembler is not actually the GNU assembler. (Confusion will also
513result if the compiler finds the GNU assembler but has not been
514configured with @option{--with-gnu-as}.) If you have more than one
38209993 515assembler installed on your system, you may want to use this option in
eea81d3e 516connection with @option{--with-as=@var{pathname}}.
38209993 517
8c26c999
JM
518The systems where it makes a difference whether you use the GNU assembler are
519@samp{hppa1.0-@var{any}-@var{any}}, @samp{hppa1.1-@var{any}-@var{any}},
520@samp{i386-@var{any}-sysv}, @samp{i386-@var{any}-isc},
521@samp{i860-@var{any}-bsd}, @samp{m68k-bull-sysv},
522@samp{m68k-hp-hpux}, @samp{m68k-sony-bsd},
523@samp{m68k-altos-sysv}, @samp{m68000-hp-hpux},
524@samp{m68000-att-sysv}, @samp{@var{any}-lynx-lynxos},
525and @samp{mips-@var{any}}.
526On any other system, @option{--with-gnu-as} has no effect.
527
528On the systems listed above (except for the HP-PA, for ISC on the
529386, and for @samp{mips-sgi-irix5.*}), if you use the GNU assembler,
530you should also use the GNU linker (and specify @option{--with-gnu-ld}).
531
eea81d3e 532@item --with-as=@var{pathname}
ef88b07d 533Specify that the
38209993
LG
534compiler should use the assembler pointed to by @var{pathname}, rather
535than the one found by the standard rules to find an assembler, which
536are:
f42974dc
DW
537@itemize @bullet
538@item
38209993
LG
539Check the
540@file{@var{exec_prefix}/lib/gcc-lib/@var{target}/@var{version}}
541directory, where @var{exec_prefix} defaults to @var{prefix} which
542defaults to @file{/usr/local} unless overridden by the
eea81d3e 543@option{--prefix=@var{pathname}} switch described above. @var{target} is the
b953cc4b 544target system triple, such as @samp{sparc-sun-solaris2.7}, and
eea81d3e 545@var{version} denotes the GCC version, such as 3.0.
f42974dc 546@item
e979f9e8 547Check operating system specific directories (e.g.@: @file{/usr/ccs/bin} on
250d5688 548Sun Solaris 2).
f42974dc 549@end itemize
767094dd 550Note that these rules do not check for the value of @env{PATH}. You may
38209993
LG
551want to use @option{--with-as} if no assembler is installed in the
552directories listed above, or if you have multiple assemblers installed
553and want to choose one that is not found by the above rules.
f42974dc 554
ef88b07d
JM
555@item @anchor{with-gnu-ld}--with-gnu-ld
556Same as @uref{#with-gnu-as,,@option{--with-gnu-as}}
38209993 557but for linker.
20293b4c 558
f42974dc 559
eea81d3e 560@item --with-ld=@var{pathname}
ef88b07d 561Same as
38209993 562@option{--with-as}, but for the linker.
f42974dc 563
ef88b07d
JM
564@item --with-stabs
565Specify that stabs debugging
38209993
LG
566information should be used instead of whatever format the host normally
567uses. Normally GCC uses the same debug format as the host system.
f42974dc 568
8c26c999
JM
569On MIPS based systems and on Alphas, you must specify whether you want
570GCC to create the normal ECOFF debugging format, or to use BSD-style
571stabs passed through the ECOFF symbol table. The normal ECOFF debug
161d7b59
JM
572format cannot fully handle languages other than C@. BSD stabs format can
573handle other languages, but it only works with the GNU debugger GDB@.
8c26c999
JM
574
575Normally, GCC uses the ECOFF debugging format by default; if you
161d7b59 576prefer BSD stabs, specify @option{--with-stabs} when you configure GCC@.
8c26c999
JM
577
578No matter which default you choose when you configure GCC, the user
579can use the @option{-gcoff} and @option{-gstabs+} options to specify explicitly
580the debug format for a particular compilation.
581
582@option{--with-stabs} is meaningful on the ISC system on the 386, also, if
583@option{--with-gas} is used. It selects use of stabs debugging
584information embedded in COFF output. This kind of debugging information
585supports C++ well; ordinary COFF debugging information does not.
586
587@option{--with-stabs} is also meaningful on 386 systems running SVR4. It
588selects use of stabs debugging information embedded in ELF output. The
589C++ compiler currently (2.6.0) does not support the DWARF debugging
590information normally used on 386 SVR4 platforms; stabs provide a
591workable alternative. This requires gas and gdb, as the normal SVR4
592tools can not generate or interpret stabs.
593
eea81d3e 594@item --disable-multilib
ef88b07d 595Specify that multiple target
eea81d3e
RO
596libraries to support different target variants, calling
597conventions, etc should not be built. The default is to build a
598predefined set of them.
f42974dc 599
e8515283
DE
600Some targets provide finer-grained control over which multilibs are built
601(e.g., @option{--disable-softfloat}):
602@table @code
603
604@item arc-*-elf*
605biendian.
606
607@item arm-*-*
608fpu, 26bit, underscore, interwork, biendian, nofmult.
609
610@item m68*-*-*
611softfloat, m68881, m68000, m68020.
612
613@item mips*-*-*
614single-float, biendian, softfloat.
615
616@item powerpc*-*-*, rs6000*-*-*
617aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian,
618sysv, aix.
619
620@end table
621
ef88b07d
JM
622@item --enable-threads
623Specify that the target
38209993
LG
624supports threads. This affects the Objective-C compiler and runtime
625library, and exception handling for other languages like C++ and Java.
6ac48571 626On some systems, this is the default.
f42974dc 627
f6160ed5
LR
628In general, the best (and, in many cases, the only known) threading
629model available will be configured for use. Beware that on some
630systems, gcc has not been taught what threading models are generally
3c6bb1db
LR
631available for the system. In this case, @option{--enable-threads} is an
632alias for @option{--enable-threads=single}.
f6160ed5
LR
633
634@item --disable-threads
635Specify that threading support should be disabled for the system.
3c6bb1db 636This is an alias for @option{--enable-threads=single}.
f6160ed5 637
ef88b07d
JM
638@item --enable-threads=@var{lib}
639Specify that
38209993
LG
640@var{lib} is the thread support library. This affects the Objective-C
641compiler and runtime library, and exception handling for other languages
f85b8d1a
JM
642like C++ and Java. The possibilities for @var{lib} are:
643
644@table @code
645@item aix
646AIX thread support.
647@item dce
648DCE thread support.
f85b8d1a 649@item mach
eea81d3e 650Generic MACH thread support, known to work on NeXTSTEP@. (Please note
3c6bb1db 651that the file needed to support this configuration, @file{gthr-mach.h}, is
f6160ed5
LR
652missing and thus this setting will cause a known bootstrap failure.)
653@item no
654This is an alias for @samp{single}.
f85b8d1a 655@item posix
c771326b 656Generic POSIX thread support.
f85b8d1a 657@item pthreads
f6160ed5
LR
658Same as @samp{posix} on arm*-*-linux*, *-*-chorusos* and *-*-freebsd*
659only. A future release of gcc might remove this alias or extend it
660to all platforms.
661@item rtems
662RTEMS thread support.
f85b8d1a
JM
663@item single
664Disable thread support, should work for all platforms.
665@item solaris
eea81d3e 666Sun Solaris 2 thread support.
f85b8d1a
JM
667@item vxworks
668VxWorks thread support.
669@item win32
670Microsoft Win32 API thread support.
671@end table
f42974dc 672
ef88b07d
JM
673@item --with-cpu=@var{cpu}
674Specify which cpu variant the
f42974dc
DW
675compiler should generate code for by default. This is currently
676only supported on the some ports, specifically arm, powerpc, and
161d7b59 677SPARC@. If configure does not recognize the model name (e.g.@: arm700,
f42974dc
DW
678603e, or ultrasparc) you provide, please check the configure script
679for a complete list of supported models.
680
a004eb82
AH
681@item --enable-altivec
682Specify that the target supports AltiVec vector enhancements. This
683option will adjust the ABI for AltiVec enhancements, as well as generate
684AltiVec code when appropriate. This option is only available for
685PowerPC systems.
686
ef88b07d
JM
687@item --enable-target-optspace
688Specify that target
38209993
LG
689libraries should be optimized for code space instead of code speed.
690This is the default for the m32r platform.
f42974dc 691
ab130aa5
JM
692@item --disable-cpp
693Specify that a user visible @command{cpp} program should not be installed.
694
695@item --with-cpp-install-dir=@var{dirname}
696Specify that the user visible @command{cpp} program should be installed
697in @file{@var{prefix}/@var{dirname}/cpp}, in addition to @var{bindir}.
f42974dc 698
ef88b07d
JM
699@item --enable-maintainer-mode
700The build rules that
6cfb3f16 701regenerate the GCC master message catalog @file{gcc.pot} are normally
767094dd
JM
702disabled. This is because it can only be rebuilt if the complete source
703tree is present. If you have changed the sources and want to rebuild the
6ac48571 704catalog, configuring with @option{--enable-maintainer-mode} will enable
767094dd 705this. Note that you need a recent version of the @code{gettext} tools
6ac48571
JM
706to do so.
707
ef88b07d
JM
708@item --enable-version-specific-runtime-libs
709Specify
38209993
LG
710that runtime libraries should be installed in the compiler specific
711subdirectory (@file{@var{libsubdir}}) rather than the usual places. In
eea81d3e 712addition, @samp{libstdc++}'s include files will be installed in
38209993 713@file{@var{libsubdir}/include/g++} unless you overruled it by using
6cfb3f16 714@option{--with-gxx-include-dir=@var{dirname}}. Using this option is
38209993 715particularly useful if you intend to use several versions of GCC in
eea81d3e
RO
716parallel. This is currently supported by @samp{libf2c} and
717@samp{libstdc++}, and is the default for @samp{libobjc} which cannot be
718changed in this case.
38209993 719
ef88b07d
JM
720@item --enable-languages=@var{lang1},@var{lang2},@dots{}
721Specify that only a particular subset of compilers and
767094dd 722their runtime libraries should be built. For a list of valid values for
6cfb3f16 723@var{langN} you can issue the following command in the
eea81d3e
RO
724@file{gcc} directory of your GCC source tree:@*
725@example
726grep language= */config-lang.in
727@end example
728Currently, you can use any of the following:
e23381df 729@code{ada}, @code{c}, @code{c++}, @code{f77}, @code{java}, @code{objc}.
f42974dc 730@code{CHILL} is not currently maintained, and will almost
e23381df
GB
731certainly fail to compile. Building the Ada compiler has special
732requirements, see below.@*
38209993 733If you do not pass this flag, all languages available in the @file{gcc}
6cfb3f16 734sub-tree will be configured. Re-defining @code{LANGUAGES} when calling
ef88b07d 735@samp{make bootstrap} @strong{does not} work anymore, as those
38209993 736language sub-directories might not have been configured!
f42974dc 737
ef88b07d
JM
738@item --disable-libgcj
739Specify that the run-time libraries
f42974dc
DW
740used by GCJ should not be built. This is useful in case you intend
741to use GCJ with some other run-time, or you're going to install it
742separately, or it just happens not to build on your particular
6c0a4eab 743machine. In general, if the Java front end is enabled, the GCJ
f42974dc 744libraries will be enabled too, unless they're known to not work on
eea81d3e 745the target platform. If GCJ is enabled but @samp{libgcj} isn't built, you
f42974dc 746may need to port it; in this case, before modifying the top-level
eea81d3e 747@file{configure.in} so that @samp{libgcj} is enabled by default on this platform,
f42974dc
DW
748you may use @option{--enable-libgcj} to override the default.
749
ef88b07d
JM
750@item --with-dwarf2
751Specify that the compiler should
eea81d3e 752use DWARF 2 debugging information as the default.
f85b8d1a
JM
753
754@item --enable-win32-registry
eea81d3e 755@itemx --enable-win32-registry=@var{key}
f85b8d1a 756@itemx --disable-win32-registry
6cfb3f16 757The @option{--enable-win32-registry} option enables Windows-hosted GCC
f85b8d1a
JM
758to look up installations paths in the registry using the following key:
759
760@smallexample
eea81d3e 761@code{HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\@var{key}}
f85b8d1a
JM
762@end smallexample
763
eea81d3e
RO
764@var{key} defaults to GCC version number, and can be overridden by the
765@option{--enable-win32-registry=@var{key}} option. Vendors and distributors
f85b8d1a
JM
766who use custom installers are encouraged to provide a different key,
767perhaps one comprised of vendor name and GCC version number, to
767094dd 768avoid conflict with existing installations. This feature is enabled
6cfb3f16 769by default, and can be disabled by @option{--disable-win32-registry}
f85b8d1a
JM
770option. This option has no effect on the other hosts.
771
772@item --nfp
773Specify that the machine does not have a floating point unit. This
774option only applies to @samp{m68k-sun-sunos@var{n}} and
6cfb3f16 775@samp{m68k-isi-bsd}. On any other system, @option{--nfp} has no effect.
f85b8d1a
JM
776
777@item --enable-checking
778@itemx --enable-checking=@var{list}
779When you specify this option, the compiler is built to perform checking
780of tree node types when referencing fields of that node, and some other
781internal consistency checks. This does not change the generated code,
782but adds error checking within the compiler. This will slow down the
783compiler and may only work properly if you are building the compiler
161d7b59 784with GCC@. This is on by default when building from CVS or snapshots,
f85b8d1a
JM
785but off for releases. More control over the checks may be had by
786specifying @var{list}; the categories of checks available are
787@samp{misc}, @samp{tree}, @samp{gc}, @samp{rtl} and @samp{gcac}. The
788default when @var{list} is not specified is @samp{misc,tree,gc}; the
789checks @samp{rtl} and @samp{gcac} are very expensive.
790
791@item --enable-nls
792@itemx --disable-nls
6cfb3f16 793The @option{--enable-nls} option enables Native Language Support (NLS),
f85b8d1a 794which lets GCC output diagnostics in languages other than American
767094dd 795English. Native Language Support is enabled by default if not doing a
161d7b59 796canadian cross build. The @option{--disable-nls} option disables NLS@.
f85b8d1a
JM
797
798@item --with-included-gettext
c771326b 799If NLS is enabled, the @option{--with-included-gettext} option causes the build
021c4bfd 800procedure to prefer its copy of GNU @command{gettext}.
f85b8d1a
JM
801
802@item --with-catgets
803If NLS is enabled, and if the host lacks @code{gettext} but has the
804inferior @code{catgets} interface, the GCC build procedure normally
805ignores @code{catgets} and instead uses GCC's copy of the GNU
6cfb3f16 806@code{gettext} library. The @option{--with-catgets} option causes the
f85b8d1a 807build procedure to use the host's @code{catgets} in this situation.
80f9249a
JM
808
809@item --with-system-zlib
810Use installed zlib rather than that included with GCC@. This option
811only applies if the Java front end is being built.
ef88b07d 812@end table
f42974dc
DW
813
814Some options which only apply to building cross compilers:
ef88b07d
JM
815@table @code
816@item --with-headers=@var{dir}
817Specifies a directory
38209993 818which has target include files.
f42974dc 819@emph{This options is required} when building a cross
38209993
LG
820compiler, if @file{@var{prefix}/@var{target}/sys-include} doesn't pre-exist.
821These include files will be copied into the @file{gcc} install directory.
822Fixincludes will be run on these files to make them compatible with
eea81d3e 823GCC.
ef88b07d 824@item --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}''
38209993
LG
825Specifies a list of directories which contain the target runtime
826libraries. These libraries will be copied into the @file{gcc} install
827directory.
ef88b07d 828@item --with-newlib
eea81d3e 829Specifies that @samp{newlib} is
38209993 830being used as the target C library. This causes @code{__eprintf} to be
eea81d3e
RO
831omitted from @file{libgcc.a} on the assumption that it will be provided by
832@samp{newlib}.
ef88b07d 833@end table
f9047ed3 834
38209993
LG
835Note that each @option{--enable} option has a corresponding
836@option{--disable} option and that each @option{--with} option has a
837corresponding @option{--without} option.
f42974dc
DW
838
839@html
840<hr>
841<p>
842@end html
843@ifhtml
844@uref{./index.html,,Return to the GCC Installation page}
845@end ifhtml
846@end ifset
847
848@c ***Building****************************************************************
6cfb3f16 849@ifnothtml
f42974dc
DW
850@comment node-name, next, previous, up
851@node Building, Testing, Configuration, Installing GCC
6cfb3f16 852@end ifnothtml
f42974dc
DW
853@ifset buildhtml
854@html
855<h1 align="center">Installing GCC: Building</h1>
856@end html
857@ifnothtml
858@chapter Building
859@end ifnothtml
860@cindex Installing GCC: Building
861
862Now that GCC is configured, you are ready to build the compiler and
863runtime libraries.
864
865We @strong{highly} recommend that GCC be built using GNU make;
e23381df
GB
866other versions may work, then again they might not.
867GNU make is required for compiling GNAT, the Ada compiler.
f42974dc
DW
868
869(For example, many broken versions of make will fail if you use the
b8df899a
JM
870recommended setup where @var{objdir} is different from @var{srcdir}.
871Other broken versions may recompile parts of the compiler when
872installing the compiler.)
f42974dc 873
b8df899a 874Some commands executed when making the compiler may fail (return a
df2a54e9 875nonzero status) and be ignored by @code{make}. These failures, which
b8df899a
JM
876are often due to files that were not found, are expected, and can safely
877be ignored.
878
879It is normal to have compiler warnings when compiling certain files.
880Unless you are a GCC developer, you can generally ignore these warnings
881unless they cause compilation to fail.
882
883On certain old systems, defining certain environment variables such as
6cfb3f16 884@env{CC} can interfere with the functioning of @command{make}.
b8df899a
JM
885
886If you encounter seemingly strange errors when trying to build the
887compiler in a directory other than the source directory, it could be
888because you have previously configured the compiler in the source
889directory. Make sure you have done all the necessary preparations.
890
891If you build GCC on a BSD system using a directory stored in an old System
892V file system, problems may occur in running @code{fixincludes} if the
893System V file system doesn't support symbolic links. These problems
894result in a failure to fix the declaration of @code{size_t} in
895@file{sys/types.h}. If you find that @code{size_t} is a signed type and
896that type mismatches occur, this could be the cause.
897
161d7b59 898The solution is not to use such a directory for building GCC@.
f42974dc 899
f85b8d1a
JM
900When building from CVS or snapshots, or if you modify parser sources,
901you need the Bison parser generator installed. Any version 1.25 or
902later should work; older versions may also work. If you do not modify
903parser sources, releases contain the Bison-generated files and you do
904not need Bison installed to build them.
905
906When building from CVS or snapshots, or if you modify Texinfo
907documentation, you need version 4.0 or later of Texinfo installed if you
908want Info documentation to be regenerated. Releases contain Info
909documentation pre-built for the unmodified documentation in the release.
910
f42974dc
DW
911@section Building a native compiler
912
f9047ed3 913For a native build issue the command @samp{make bootstrap}. This
f42974dc
DW
914will build the entire GCC system, which includes the following steps:
915
916@itemize @bullet
917@item
918Build host tools necessary to build the compiler such as texinfo, bison,
919gperf.
920
921@item
922Build target tools for use by the compiler such as binutils (bfd,
eea81d3e
RO
923binutils, gas, gprof, ld, and opcodes)
924if they have been individually linked
f42974dc
DW
925or moved into the top level GCC source tree before configuring.
926
927@item
928Perform a 3-stage bootstrap of the compiler.
929
930@item
931Perform a comparison test of the stage2 and stage3 compilers.
932
933@item
934Build runtime libraries using the stage3 compiler from the previous step.
f9047ed3 935
f42974dc
DW
936@end itemize
937
38209993
LG
938If you are short on disk space you might consider @samp{make
939bootstrap-lean} instead. This is identical to @samp{make
940bootstrap} except that object files from the stage1 and
f42974dc
DW
941stage2 of the 3-stage bootstrap of the compiler are deleted as
942soon as they are no longer needed.
943
944
945If you want to save additional space during the bootstrap and in
946the final installation as well, you can build the compiler binaries
38209993
LG
947without debugging information with @samp{make CFLAGS='-O' LIBCFLAGS='-g
948-O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap}. This will save
f42974dc
DW
949roughly 40% of disk space both for the bootstrap and the final installation.
950(Libraries will still contain debugging information.)
951
eea81d3e
RO
952If you wish to use non-default GCC flags when compiling the stage2 and
953stage3 compilers, set @code{BOOT_CFLAGS} on the command line when doing
f85b8d1a
JM
954@samp{make bootstrap}. Non-default optimization flags are less well
955tested here than the default of @samp{-g -O2}, but should still work.
956In a few cases, you may find that you need to specify special flags such
957as @option{-msoft-float} here to complete the bootstrap; or, if the
958native compiler miscompiles the stage1 compiler, you may need to work
959around this, by choosing @code{BOOT_CFLAGS} to avoid the parts of the
960stage1 compiler that were miscompiled, or by using @samp{make
961bootstrap4} to increase the number of stages of bootstrap.
962
6cfb3f16 963If you used the flag @option{--enable-languages=@dots{}} to restrict
f42974dc 964the compilers to be built, only those you've actually enabled will be
767094dd 965built. This will of course only build those runtime libraries, for
f42974dc 966which the particular compiler has been built. Please note,
eea81d3e 967that re-defining @env{LANGUAGES} when calling @samp{make bootstrap}
ef88b07d 968@strong{does not} work anymore!
f42974dc 969
f85b8d1a 970If the comparison of stage2 and stage3 fails, this normally indicates
eea81d3e 971that the stage2 compiler has compiled GCC incorrectly, and is therefore
f85b8d1a
JM
972a potentially serious bug which you should investigate and report. (On
973a few systems, meaningful comparison of object files is impossible; they
974always appear ``different''. If you encounter this problem, you will
975need to disable comparison in the @file{Makefile}.)
f42974dc
DW
976
977@section Building a cross compiler
978
979We recommend reading the
980@uref{http://www.objsw.com/CrossGCC/,,crossgcc FAQ}
981for information about building cross compilers.
982
983When building a cross compiler, it is not generally possible to do a
9843-stage bootstrap of the compiler. This makes for an interesting problem
161d7b59 985as parts of GCC can only be built with GCC@.
f42974dc
DW
986
987To build a cross compiler, we first recommend building and installing a
988native compiler. You can then use the native GCC compiler to build the
635771af
JM
989cross compiler. The installed native compiler needs to be GCC version
9902.95 or later.
f42974dc
DW
991
992Assuming you have already installed a native copy of GCC and configured
6cfb3f16 993your cross compiler, issue the command @command{make}, which performs the
f42974dc
DW
994following steps:
995
996@itemize @bullet
997@item
998Build host tools necessary to build the compiler such as texinfo, bison,
999gperf.
1000
1001@item
1002Build target tools for use by the compiler such as binutils (bfd,
1003binutils, gas, gprof, ld, and opcodes)
1004if they have been individually linked or moved into the top level GCC source
1005tree before configuring.
1006
1007@item
1008Build the compiler (single stage only).
1009
1010@item
1011Build runtime libraries using the compiler from the previous step.
1012@end itemize
1013
1014Note that if an error occurs in any step the make process will exit.
1015
1016@section Building in parallel
1017
38209993
LG
1018If you have a multiprocessor system you can use @samp{make bootstrap
1019MAKE="make -j 2" -j 2} or just @samp{make -j 2 bootstrap}
1020for GNU Make 3.79 and above instead of just @samp{make bootstrap}
161d7b59 1021when building GCC@. You can use a bigger number instead of two if
f42974dc
DW
1022you like. In most cases, it won't help to use a number bigger than
1023the number of processors in your machine.
1024
e23381df
GB
1025@section Building the Ada compiler
1026
1027In order to build GNAT, the Ada compiler, you need a working GNAT
1028compiler, since the Ada front end is written in Ada (with some
1029GNAT-specific extensions), and GNU make.
1030
1031However, you do not need a full installation of GNAT, just the GNAT
1032binary @file{gnat1}, a copy of @file{gnatbind}, and a compiler driver
1033which can deal with Ada input (by invoking the @file{gnat1} binary).
1034You can specify this compiler driver by setting the @env{ADAC}
1035environment variable at the configure step. @command{configure} can
1036detect the driver automatically if it has got a common name such as
1037@command{gcc} or @command{gnatgcc}. Of course, you still need a working
1038C compiler (the compiler driver can be different or not).
1039
1040Additional build tools (such as @command{gnatmake}) or a working GNAT
1041run-time library installation are usually @emph{not} required. However,
1042if you want to boostrap the compiler using a minimal version of GNAT,
1043you have to issue the following commands before invoking @samp{make
1044boostrap} (this assumes that you start with an unmodified and consistent
1045source distribution):
1046
1047@example
1048 cd @var{srcdir}/gcc/ada
1049 touch treeprs.ads [es]info.h nmake.ad[bs]
1050@end example
1051
1052At the moment, the GNAT library and several tools for GNAT are not built
1053by @samp{make bootstrap}. You have to invoke
1054@samp{make gnatlib_and_tools} in the @file{@var{objdir}/gcc}
1055subdirectory before proceeding with the next steps.
1056
1057For example, you can build a native Ada compiler by issuing the
1058following commands (assuming @command{make} is GNU make):
1059
1060@example
1061 cd @var{objdir}
1062 @var{srcdir}/configure --enable-languages=c,ada
1063 cd @var{srcdir}/gcc/ada
1064 touch treeprs.ads [es]info.h nmake.ad[bs]
1065 cd @var{objdir}
1066 make bootstrap
1067 cd gcc
1068 make gnatlib_and_tools
1069 cd ..
1070@end example
1071
1072Currently, when compiling the Ada front end, you cannot use the parallel
1073build feature described in the previous section.
1074
f42974dc
DW
1075@html
1076<hr>
1077<p>
1078@end html
1079@ifhtml
1080@uref{./index.html,,Return to the GCC Installation page}
1081@end ifhtml
1082@end ifset
1083
1084@c ***Testing*****************************************************************
6cfb3f16 1085@ifnothtml
f42974dc
DW
1086@comment node-name, next, previous, up
1087@node Testing, Final install, Building, Installing GCC
6cfb3f16 1088@end ifnothtml
f42974dc
DW
1089@ifset testhtml
1090@html
1091<h1 align="center">Installing GCC: Testing</h1>
1092@end html
1093@ifnothtml
1094@chapter Installing GCC: Testing
1095@end ifnothtml
1096@cindex Testing
1097@cindex Installing GCC: Testing
1098@cindex Testsuite
1099
767094dd 1100Before you install GCC, you might wish to run the testsuite. This
f42974dc
DW
1101step is optional and may require you to download additional software.
1102
f9047ed3
JM
1103First, you must have @uref{download.html,,downloaded the testsuites}.
1104The full distribution contains testsuites; only if you downloaded the
f42974dc
DW
1105``core'' compiler plus any front ends, you do not have the testsuites.
1106
1107Second, you must have a @uref{http://www.gnu.org/software/dejagnu/,,current version of DejaGnu} installed;
1108dejagnu 1.3 is not sufficient.
1109
1110Now you may need specific preparations:
1111
1112@itemize @bullet
f42974dc
DW
1113
1114@item
ecb7d6b3 1115The following environment variables may need to be set appropriately, as in
f42974dc 1116the following example (which assumes that DejaGnu has been installed
6cfb3f16 1117under @file{/usr/local}):
f42974dc
DW
1118
1119@example
1120 TCL_LIBRARY = /usr/local/share/tcl8.0
1121 DEJAGNULIBS = /usr/local/share/dejagnu
1122@end example
1123
1124On systems such as Cygwin, these paths are required to be actual
1125paths, not mounts or links; presumably this is due to some lack of
1126portability in the DejaGnu code.
1127
ecb7d6b3
JM
1128If the directories where @command{runtest} and @command{expect} were
1129installed are in the @env{PATH}, it should not be necessary to set these
1130environment variables.
1131
f42974dc
DW
1132@end itemize
1133
1134Finally, you can run the testsuite (which may take a long time):
1135@example
ef88b07d 1136 cd @var{objdir}; make -k check
f42974dc
DW
1137@end example
1138
1139The testing process will try to test as many components in the GCC
2147b154 1140distribution as possible, including the C, C++, Objective-C and Fortran
ecb7d6b3 1141compilers as well as the C++ and Java runtime libraries.
f42974dc
DW
1142
1143@section How can I run the test suite on selected tests?
1144
1145As a first possibility to cut down the number of tests that are run it is
38209993 1146possible to use @samp{make check-gcc} or @samp{make check-g++}
eea81d3e 1147in the @file{gcc} subdirectory of the object directory. To further cut down the
f42974dc
DW
1148tests the following is possible:
1149
1150@example
6cfb3f16 1151 make check-gcc RUNTESTFLAGS="execute.exp @var{other-options}"
f42974dc
DW
1152@end example
1153
eea81d3e 1154This will run all @command{gcc} execute tests in the testsuite.
f42974dc
DW
1155
1156@example
6cfb3f16 1157 make check-g++ RUNTESTFLAGS="old-deja.exp=9805* @var{other-options}"
f42974dc
DW
1158@end example
1159
eea81d3e 1160This will run the @command{g++} ``old-deja'' tests in the testsuite where the filename
6cfb3f16 1161matches @samp{9805*}.
f42974dc 1162
6cfb3f16
JM
1163The @file{*.exp} files are located in the testsuite directories of the GCC
1164source, the most important ones being @file{compile.exp},
1165@file{execute.exp}, @file{dg.exp} and @file{old-deja.exp}.
1166To get a list of the possible @file{*.exp} files, pipe the
38209993 1167output of @samp{make check} into a file and look at the
6cfb3f16 1168@samp{Running @dots{} .exp} lines.
f42974dc
DW
1169
1170@section How to interpret test results
1171
6cfb3f16 1172After the testsuite has run you'll find various @file{*.sum} and @file{*.log}
767094dd 1173files in the testsuite subdirectories. The @file{*.log} files contain a
f42974dc 1174detailed log of the compiler invocations and the corresponding
767094dd 1175results, the @file{*.sum} files summarize the results. These summaries list
f42974dc
DW
1176all the tests that have been run with a corresponding status code:
1177
1178@itemize @bullet
1179@item
1180PASS: the test passed as expected
1181@item
1182XPASS: the test unexpectedly passed
1183@item
1184FAIL: the test unexpectedly failed
1185@item
1186XFAIL: the test failed as expected
1187@item
1188UNSUPPORTED: the test is not supported on this platform
1189@item
1190ERROR: the testsuite detected an error
1191@item
1192WARNING: the testsuite detected a possible problem
1193@end itemize
1194
38209993
LG
1195It is normal for some tests to report unexpected failures. At the
1196current time our testing harness does not allow fine grained control
1197over whether or not a test is expected to fail. We expect to fix this
1198problem in future releases.
f42974dc
DW
1199
1200
1201@section Submitting test results
1202
1203If you want to report the results to the GCC project, use the
767094dd 1204@file{contrib/test_summary} shell script. Start it in the @var{objdir} with
f42974dc
DW
1205
1206@example
6cfb3f16
JM
1207 @var{srcdir}/contrib/test_summary -p your_commentary.txt \
1208 -m gcc-testresults@@gcc.gnu.org |sh
f42974dc
DW
1209@end example
1210
6cfb3f16 1211This script uses the @command{Mail} program to send the results, so
767094dd 1212make sure it is in your @env{PATH}. The file @file{your_commentary.txt} is
f42974dc 1213prepended to the testsuite summary and should contain any special
767094dd 1214remarks you have on your results or your build environment. Please
f42974dc 1215do not edit the testsuite result block or the subject line, as these
f9047ed3 1216messages are automatically parsed and presented at the
f42974dc
DW
1217@uref{http://gcc.gnu.org/testresults/,,GCC testresults} web
1218page. Here you can also gather information on how specific tests
767094dd 1219behave on different platforms and compare them with your results. A
f42974dc
DW
1220few failing testcases are possible even on released versions and you
1221should look here first if you think your results are unreasonable.
1222
aed5964b
JM
1223@html
1224<hr>
1225<p>
1226@end html
1227@ifhtml
1228@uref{./index.html,,Return to the GCC Installation page}
1229@end ifhtml
f42974dc
DW
1230@end ifset
1231
1232@c ***Final install***********************************************************
6cfb3f16 1233@ifnothtml
f42974dc
DW
1234@comment node-name, next, previous, up
1235@node Final install, , Testing, Installing GCC
6cfb3f16 1236@end ifnothtml
f42974dc
DW
1237@ifset finalinstallhtml
1238@html
1239<h1 align="center">Installing GCC: Final installation</h1>
1240@end html
1241@ifnothtml
1242@chapter Installing GCC: Final installation
1243@end ifnothtml
1244
eea81d3e
RO
1245Now that GCC has been built (and optionally tested), you can install it with
1246@example
1247cd @var{objdir}; make install
1248@end example
f42974dc
DW
1249
1250That step completes the installation of GCC; user level binaries can
38209993
LG
1251be found in @file{@var{prefix}/bin} where @var{prefix} is the value you
1252specified with the @option{--prefix} to configure (or @file{/usr/local}
ab130aa5
JM
1253by default). (If you specified @option{--bindir}, that directory will
1254be used instead; otherwise, if you specified @option{--exec-prefix},
1255@file{@var{exec-prefix}/bin} will be used.) Headers for the C++ and
1256Java libraries are installed in @file{@var{prefix}/include}; libraries
1257in @file{@var{libdir}} (normally @file{@var{prefix}/lib}); internal
1258parts of the compiler in @file{@var{libdir}/gcc-lib}; documentation in
1259info format in @file{@var{infodir}} (normally @file{@var{prefix}/info}).
f42974dc 1260
c009f01f
JJ
1261If you built a released version of GCC then if you don't mind, please
1262quickly review the build status page for
1263@uref{http://gcc.gnu.org/gcc-3.0/buildstat.html,,3.0} or
1264@uref{http://gcc.gnu.org/gcc-2.95/buildstat.html,,2.95}.
c5997381
JJ
1265If your system is not listed for the version of GCC that you built,
1266send a note to
eea81d3e
RO
1267@email{gcc@@gcc.gnu.org} indicating
1268that you successfully built and installed GCC.
c5997381 1269Include the following information:
f42974dc 1270
c5997381
JJ
1271@itemize @bullet
1272@item
1273Output from running @file{@var{srcdir}/config.guess}. Do not send us
1274that file itself, just the one-line output from running it.
1275
1276@item
1277The output of @samp{gcc -v} for your newly installed gcc.
1278This tells us which version of GCC you built and the options you passed to
1279configure.
1280
1281@item
1282If the build was for GNU/Linux, also include:
1283@itemize @bullet
1284@item
1285The distribution name and version (e.g., Red Hat 7.1 or Debian 2.2.3);
1286this information should be available from @file{/etc/issue}.
1287
1288@item
1289The version of the Linux kernel, available from @samp{uname --version}
1290or @samp{uname -a}.
1291
1292@item
1293The version of glibc you used; for RPM-based systems like Red Hat,
b9da07da
JJ
1294Mandrake, and SuSE type @samp{rpm -q glibc} to get the glibc version,
1295and on systems like Debian and Progeny use @samp{dpkg -l libc6}.
c5997381
JJ
1296@end itemize
1297For other systems, you can include similar information if you think it is
1298relevant.
1299
1300@item
1301Any other information that you think would be useful to people building
1302GCC on the same configuration. The new entry in the build status list
1303will include a link to the archived copy of your message.
1304@end itemize
c009f01f
JJ
1305
1306We'd also like to know if the
1307@ifnothtml
1308@ref{Specific, host/target specific installation notes}
1309@end ifnothtml
1310@ifhtml
1311@uref{specific.html,,host/target specific installation notes}
1312@end ifhtml
1313didn't include your host/target information or if that information is
1314incomplete or out of date. Send a note to
1315@email{gcc@@gcc.gnu.org} telling us how the information should be changed.
f42974dc
DW
1316
1317If you find a bug, please report it following our
1318@uref{../bugs.html,,bug reporting guidelines}.
1319
ab130aa5
JM
1320If you want to print the GCC manuals, do @samp{cd @var{objdir}; make
1321dvi}. You will need to have @command{texi2dvi} (version at least 4.0)
1322and @TeX{} installed. This creates a number of @file{.dvi} files in
1323subdirectories of @file{@var{objdir}}; these may be converted for
1324printing with programs such as @command{dvips}. You can also
1325@uref{http://www.gnu.org/order/order.html,,buy printed manuals from the
1326Free Software Foundation}, though such manuals may not be for the most
161d7b59 1327recent version of GCC@.
ab130aa5 1328
f42974dc
DW
1329@html
1330<hr>
1331<p>
1332@end html
1333@ifhtml
1334@uref{./index.html,,Return to the GCC Installation page}
1335@end ifhtml
1336@end ifset
1337
1338@c ***Binaries****************************************************************
6cfb3f16 1339@ifnothtml
f42974dc
DW
1340@comment node-name, next, previous, up
1341@node Binaries, Specific, Installing GCC, Top
6cfb3f16 1342@end ifnothtml
f42974dc
DW
1343@ifset binarieshtml
1344@html
1345<h1 align="center">Installing GCC: Binaries</h1>
1346@end html
1347@ifnothtml
1348@chapter Installing GCC: Binaries
1349@end ifnothtml
1350@cindex Binaries
1351@cindex Installing GCC: Binaries
1352
161d7b59 1353We are often asked about pre-compiled versions of GCC@. While we cannot
f42974dc
DW
1354provide these for all platforms, below you'll find links to binaries for
1355various platforms where creating them by yourself is not easy due to various
1356reasons.
1357
1358Please note that we did not create these binaries, nor do we
1359support them. If you have any problems installing them, please
1360contact their makers.
1361
1362@itemize
1363@item
df002c7d
DE
1364AIX:
1365@itemize
1366@item
4b5eb038 1367@uref{http://freeware.bull.net,,Bull's Freeware and Shareware Archive for AIX};
df002c7d
DE
1368
1369@item
9da6e781 1370@uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX};
df002c7d 1371@end itemize
f42974dc
DW
1372
1373@item
6cfb3f16 1374DOS---@uref{http://www.delorie.com/djgpp/,,DJGPP};
f42974dc 1375
f404402c
MW
1376@item
1377HP-UX:
1378@itemize
f42974dc
DW
1379@item
1380@uref{http://hpux.cae.wisc.edu/,,HP-UX Porting Center};
1381
f404402c
MW
1382@item
1383@uref{ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/,,Binaries for HP-UX 11.00 at Aachen University of Technology}.
1384@end itemize
1385
f42974dc 1386@item
38209993
LG
1387@uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO
1388OpenServer/Unixware};
f42974dc
DW
1389
1390@item
250d5688 1391Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware};
f42974dc
DW
1392
1393@item
6cfb3f16 1394SGI---@uref{http://freeware.sgi.com/,,SGI Freeware};
f42974dc
DW
1395
1396@item
1397Windows 95, 98, and NT:
1398@itemize
1399@item
1400The @uref{http://sources.redhat.com/cygwin/,,Cygwin} project;
1401@item
1402@uref{http://www.xraylith.wisc.edu/~khan/software/gnu-win32/,,GNU Win32}
1403related projects by Mumit Khan.
1404@end itemize
1405
1406@item
61d47787 1407@uref{ftp://ftp.thewrittenword.com/packages/free/by-name/,,The
f42974dc
DW
1408Written Word} offers binaries for Solaris 2.5.1, 2.6, 2.7/SPARC, 2.7/Intel,
1409IRIX 6.2, 6.5, Digital UNIX 4.0D, HP-UX 10.20, and HP-UX 11.00.
1410
1411@item
6cfb3f16
JM
1412Hitachi H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU
1413Development Tools for the Hitachi H8/300[HS] Series}
f42974dc
DW
1414
1415@end itemize
1416
1417In addition to those specific offerings, you can get a binary
1418distribution CD-ROM from the
f9047ed3 1419@uref{http://www.fsf.org/order/order.html,,Free Software Foundation}.
f42974dc 1420It contains binaries for a number of platforms, and
767094dd 1421includes not only GCC, but other stuff as well. The current CD does
f42974dc 1422not contain the latest version of GCC, but it should allow
767094dd 1423bootstrapping the compiler. An updated version of that disk is in the
f42974dc
DW
1424works.
1425
1426@html
1427<hr>
1428<p>
1429@end html
1430@ifhtml
1431@uref{./index.html,,Return to the GCC Installation page}
1432@end ifhtml
1433@end ifset
1434
1435@c ***Specific****************************************************************
6cfb3f16 1436@ifnothtml
f42974dc 1437@comment node-name, next, previous, up
73e2155a 1438@node Specific, Old, Binaries, Top
6cfb3f16 1439@end ifnothtml
f42974dc
DW
1440@ifset specifichtml
1441@html
1442<h1 align="center">Host/target specific installation notes for GCC</h1>
1443@end html
1444@ifnothtml
1445@chapter Host/target specific installation notes for GCC
1446@end ifnothtml
1447@cindex Specific
1448@cindex Specific installation notes
1449@cindex Target specific installation
1450@cindex Host specific installation
1451@cindex Target specific installation notes
1452
1453Please read this document carefully @emph{before} installing the
1454GNU Compiler Collection on your machine.
1455
c009f01f
JJ
1456Lists of successful builds for released versions of GCC are
1457available at our web pages for
1458@uref{http://gcc.gnu.org/gcc-3.0/buildstat.html,,3.0}
1459and
1460@uref{http://gcc.gnu.org/gcc-2.95/buildstat.html,,2.95}.
1461These lists are updated as new information becomes available.
1462
ef88b07d 1463@ifhtml
f42974dc
DW
1464@itemize
1465@item
b8df899a
JM
1466@uref{#1750a-*-*,,1750a-*-*}
1467@item
1468@uref{#a29k,,a29k}
1469@item
1470@uref{#a29k-*-bsd,,a29k-*-bsd}
1471@item
333e14b0 1472@uref{#alpha*-*-*,,alpha*-*-*}
f42974dc
DW
1473@item
1474@uref{#alpha*-dec-osf*,,alpha*-dec-osf*}
1475@item
71b96724
RL
1476@uref{#alphaev5-cray-unicosmk*,,alphaev5-cray-unicosmk*}
1477@item
b8df899a
JM
1478@uref{#arc-*-elf,,arc-*-elf}
1479@item
1480@uref{#arm-*-aout,,arm-*-aout}
1481@item
1482@uref{#arm-*-elf,,arm-*-elf}
1483@item
476c334e
PB
1484@uref{#arm*-*-linux-gnu,,arm*-*-linux-gnu}
1485@item
b8df899a
JM
1486@uref{#arm-*-riscix,,arm-*-riscix}
1487@item
f42974dc
DW
1488@uref{#avr,,avr}
1489@item
0132e321
MH
1490@uref{#c4x,,c4x}
1491@item
f42974dc
DW
1492@uref{#dos,,DOS}
1493@item
b8df899a
JM
1494@uref{#dsp16xx,,dsp16xx}
1495@item
1496@uref{#elxsi-elxsi-bsd,,elxsi-elxsi-bsd}
1497@item
021c4bfd
RO
1498@uref{#*-*-freebsd*,,*-*-freebsd*}
1499@item
f42974dc
DW
1500@uref{#h8300-hms,,h8300-hms}
1501@item
1502@uref{#hppa*-hp-hpux*,,hppa*-hp-hpux*}
1503@item
1504@uref{#hppa*-hp-hpux9,,hppa*-hp-hpux9}
1505@item
1506@uref{#hppa*-hp-hpux10,,hppa*-hp-hpux10}
1507@item
1508@uref{#hppa*-hp-hpux11,,hppa*-hp-hpux11}
1509@item
b8df899a
JM
1510@uref{#i370-*-*,,i370-*-*}
1511@item
f42974dc
DW
1512@uref{#*-*-linux-gnu,,*-*-linux-gnu}
1513@item
b8df899a
JM
1514@uref{#ix86-*-linux*oldld,,i?86-*-linux*oldld}
1515@item
1516@uref{#ix86-*-linux*aout,,i?86-*-linux*aout}
1517@item
f42974dc
DW
1518@uref{#ix86-*-linux*,,i?86-*-linux*}
1519@item
b8df899a
JM
1520@uref{#ix86-*-sco,,i?86-*-sco}
1521@item
1522@uref{#ix86-*-sco3.2v4,,i?86-*-sco3.2v4}
1523@item
f42974dc
DW
1524@uref{#ix86-*-sco3.2v5*,,i?86-*-sco3.2v5*}
1525@item
f42974dc
DW
1526@uref{#ix86-*-udk,,i?86-*-udk}
1527@item
b8df899a
JM
1528@uref{#ix86-*-isc,,i?86-*-isc}
1529@item
1530@uref{#ix86-*-esix,,i?86-*-esix}
1531@item
1532@uref{#ix86-ibm-aix,,i?86-ibm-aix}
1533@item
1534@uref{#ix86-sequent-bsd,,i?86-sequent-bsd}
1535@item
1536@uref{#ix86-sequent-ptx1*,,i?86-sequent-ptx1*, i?86-sequent-ptx2*}
1537@item
1538@uref{#ix86-*-sysv3*,,i?86-*-sysv3*}
1539@item
1540@uref{#i860-intel-osf*,,i860-intel-osf*}
1541@item
b499d9ab
JJ
1542@uref{#ia64-*-linux,,ia64-*-linux}
1543@item
b8df899a
JM
1544@uref{#*-lynx-lynxos,,*-lynx-lynxos}
1545@item
f42974dc
DW
1546@uref{#*-ibm-aix*,,*-ibm-aix*}
1547@item
b8df899a
JM
1548@uref{#m32r-*-elf,,m32r-*-elf}
1549@item
1550@uref{#m68000-hp-bsd,,m68000-hp-bsd}
1551@item
1552@uref{#m6811-elf,,m6811-elf}
1553@item
1554@uref{#m6812-elf,,m6812-elf}
1555@item
1556@uref{#m68k-altos,,m68k-altos}
1557@item
1558@uref{#m68k-apple-aux,,m68k-apple-aux}
1559@item
1560@uref{#m68k-att-sysv,,m68k-att-sysv}
1561@item
1562@uref{#m68k-bull-sysv,,m68k-bull-sysv}
1563@item
1564@uref{#m68k-crds-unox,,m68k-crds-unox}
1565@item
1566@uref{#m68k-hp-hpux,,m68k-hp-hpux}
1567@item
f42974dc
DW
1568@uref{#m68k-*-nextstep*,,m68k-*-nextstep*}
1569@item
b8df899a
JM
1570@uref{#m68k-ncr-*,,m68k-ncr-*}
1571@item
1572@uref{#m68k-sun,,m68k-sun}
1573@item
f42974dc
DW
1574@uref{#m68k-sun-sunos4.1.1,,m68k-sun-sunos4.1.1}
1575@item
b8df899a
JM
1576@uref{#m88k-*-svr3,,m88k-*-svr3}
1577@item
1578@uref{#m88k-*-dgux,,m88k-*-dgux}
1579@item
1580@uref{#m88k-tektronix-sysv3,,m88k-tektronix-sysv3}
1581@item
1582@uref{#mips-*-*,,mips-*-*}
1583@item
021c4bfd
RO
1584@uref{#mips-dec-*,,mips-dec-*}
1585@item
b8df899a
JM
1586@uref{#mips-mips-bsd,,mips-mips-bsd}
1587@item
1588@uref{#mips-mips-riscos*,,mips-mips-riscos*}
1589@item
b953cc4b 1590@uref{#mips-sgi-irix4,,mips-sgi-irix4}
213ba345 1591@item
b953cc4b 1592@uref{#mips-sgi-irix5,,mips-sgi-irix5}
f42974dc 1593@item
b953cc4b 1594@uref{#mips-sgi-irix6,,mips-sgi-irix6}
f42974dc 1595@item
b8df899a
JM
1596@uref{#mips-sony-sysv,,mips-sony-sysv}
1597@item
1598@uref{#ns32k-encore,,ns32k-encore}
1599@item
1600@uref{#ns32k-*-genix,,ns32k-*-genix}
1601@item
1602@uref{#ns32k-sequent,,ns32k-sequent}
1603@item
1604@uref{#ns32k-utek,,ns32k-utek}
1605@item
021c4bfd
RO
1606@uref{#powerpc*-*-*,,powerpc*-*-*, powerpc-*-sysv4}
1607@item
4f2b1139
SS
1608@uref{#powerpc-*-darwin*,,powerpc-*-darwin*}
1609@item
b8df899a
JM
1610@uref{#powerpc-*-elf,,powerpc-*-elf, powerpc-*-sysv4}
1611@item
f42974dc
DW
1612@uref{#powerpc-*-linux-gnu*,,powerpc-*-linux-gnu*}
1613@item
edf1b3f3
AC
1614@uref{#powerpc-*-netbsd*,,powerpc-*-netbsd*}
1615@item
b8df899a
JM
1616@uref{#powerpc-*-eabiaix,,powerpc-*-eabiaix}
1617@item
1618@uref{#powerpc-*-eabisim,,powerpc-*-eabisim}
1619@item
1620@uref{#powerpc-*-eabi,,powerpc-*-eabi}
1621@item
1622@uref{#powerpcle-*-elf,,powerpcle-*-elf, powerpcle-*-sysv4}
1623@item
1624@uref{#powerpcle-*-eabisim,,powerpcle-*-eabisim}
1625@item
1626@uref{#powerpcle-*-eabi,,powerpcle-*-eabi}
1627@item
1628@uref{#powerpcle-*-winnt,,powerpcle-*-winnt, powerpcle-*-pe}
1629@item
1630@uref{#romp-*-aos,,romp-*-aos, romp-*-mach}
1631@item
91abf72d
HP
1632@uref{#s390-*-linux*}
1633@item
1634@uref{#s390x-*-linux*}
1635@item
250d5688 1636@uref{#*-*-solaris2*,,*-*-solaris2*}
f42974dc 1637@item
250d5688 1638@uref{#sparc-sun-solaris2*,,sparc-sun-solaris2*}
f42974dc
DW
1639@item
1640@uref{#sparc-sun-solaris2.7,,sparc-sun-solaris2.7}
1641@item
250d5688 1642@uref{#*-*-solaris2.8,,*-*-solaris2.8}
f42974dc 1643@item
250d5688 1644@uref{#sparc-sun-sunos4*,,sparc-sun-sunos4*}
f42974dc
DW
1645@item
1646@uref{#sparc-unknown-linux-gnulibc1,,sparc-unknown-linux-gnulibc1}
1647@item
c6fa9728
JS
1648@uref{#sparc-*-linux*,,sparc-*-linux*}
1649@item
f42974dc
DW
1650@uref{#sparc64-*-*,,sparc64-*-*}
1651@item
e403b4bc
CR
1652@uref{#sparcv9-*-solaris2*,,sparcv9-*-solaris2*}
1653@item
b8df899a
JM
1654@uref{#*-*-sysv*,,*-*-sysv*}
1655@item
1656@uref{#vax-dec-ultrix,,vax-dec-ultrix}
1657@item
1658@uref{#we32k-*-*,,we32k-*-*}
1659@item
fd29f6ea
BW
1660@uref{#xtensa-*-elf,,xtensa-*-elf}
1661@item
1662@uref{#xtensa-*-linux*,,xtensa-*-linux*}
1663@item
f42974dc
DW
1664@uref{#windows,,Microsoft Windows}
1665@item
1666@uref{#os2,,OS/2}
1667@item
1668@uref{#older,,Older systems}
1669@end itemize
1670
1671@itemize
1672@item
250d5688 1673@uref{#elf_targets,,all ELF targets} (SVR4, Solaris 2, etc.)
f42974dc 1674@end itemize
ef88b07d 1675@end ifhtml
f42974dc
DW
1676
1677
1678@html
1679<!-- -------- host/target specific issues start here ---------------- -->
1680<hr>
f42974dc 1681@end html
b8df899a
JM
1682@heading @anchor{1750a-*-*}1750a-*-*
1683MIL-STD-1750A processors.
1684
1685The MIL-STD-1750A cross configuration produces output for
021c4bfd 1686@code{as1750}, an assembler/linker available under the GNU General Public
161d7b59 1687License for the 1750A@. @code{as1750} can be obtained at
b8df899a
JM
1688@uref{ftp://ftp.fta-berlin.de/pub/crossgcc/1750gals/}.
1689A similarly licensed simulator for
1690the 1750A is available from same address.
1691
021c4bfd
RO
1692You should ignore a fatal error during the building of @samp{libgcc}
1693(@samp{libgcc} is not yet implemented for the 1750A@.)
b8df899a
JM
1694
1695The @code{as1750} assembler requires the file @file{ms1750.inc}, which is
021c4bfd 1696found in the directory @file{gcc/config/1750a}.
b8df899a 1697
f0523f02 1698GCC produced the same sections as the Fairchild F9450 C Compiler,
b8df899a
JM
1699namely:
1700
1701@table @code
1702@item Normal
1703The program code section.
1704
1705@item Static
1706The read/write (RAM) data section.
1707
1708@item Konst
1709The read-only (ROM) constants section.
1710
1711@item Init
161d7b59 1712Initialization section (code to copy KREL to SREL)@.
b8df899a
JM
1713@end table
1714
021c4bfd 1715The smallest addressable unit is 16 bits (@code{BITS_PER_UNIT} is 16). This
6cfb3f16
JM
1716means that type @code{char} is represented with a 16-bit word per character.
1717The 1750A's ``Load/Store Upper/Lower Byte'' instructions are not used by
161d7b59 1718GCC@.
b8df899a
JM
1719
1720@html
1721</p>
1722<hr>
1723@end html
1724@heading @anchor{a29k}a29k
1725AMD Am29k-family processors. These are normally used in embedded
1726applications. There are no standard Unix configurations.
1727This configuration
1728corresponds to AMD's standard calling sequence and binary interface
1729and is compatible with other 29k tools.
1730
1731You may need to make a variant of the file @file{a29k.h} for your
1732particular configuration.
1733
1734@html
1735</p>
1736<hr>
1737@end html
1738@heading @anchor{a29k-*-bsd}a29k-*-bsd
1739AMD Am29050 used in a system running a variant of BSD Unix.
1740
1741@html
1742</p>
1743<hr>
1744@end html
333e14b0
LR
1745@heading @anchor{alpha*-*-*}alpha*-*-*
1746
1747This section contains general configuration information for all
1748alpha-based platforms using ELF (in particular, ignore this section for
161d7b59 1749DEC OSF/1, Digital UNIX and Tru64 UNIX)@. In addition to reading this
f2541106 1750section, please read all other sections that match your target.
333e14b0 1751
021c4bfd
RO
1752We require binutils 2.11.2 or newer.
1753Previous binutils releases had a number of problems with DWARF 2
333e14b0
LR
1754debugging information, not the least of which is incorrect linking of
1755shared libraries.
1756
b8df899a
JM
1757@html
1758</p>
1759<hr>
1760@end html
f2541106 1761@heading @anchor{alpha*-dec-osf*}alpha*-dec-osf*
b8df899a 1762Systems using processors that implement the DEC Alpha architecture and
f2541106
RO
1763are running the DEC/Compaq Unix (DEC OSF/1, Digital UNIX, or Compaq
1764Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
1765
1766In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not
1767currently (2001-06-13) work with @command{mips-tfile}. As a workaround,
1768we need to use the old assembler, invoked via the barely documented
1769@option{-oldas} option. To bootstrap GCC, you either need to use the
1770Compaq C Compiler:
1771
1772@example
eea81d3e 1773 % CC=cc @var{srcdir}/configure [@var{options}] [@var{target}]
f2541106
RO
1774@end example
1775
1776or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX V4.0:
1777
1778@example
eea81d3e 1779 % CC=gcc -Wa,-oldas @var{srcdir}/configure [@var{options}] [@var{target}]
f2541106 1780@end example
b8df899a 1781
b953cc4b
RO
1782As of GNU binutils 2.11.2, neither GNU @command{as} nor GNU @command{ld}
1783are supported on Tru64 UNIX, so you must not configure GCC with
1784@option{--with-gnu-as} or @option{--with-gnu-ld}.
1785
1786The @option{--enable-threads} options isn't supported yet. A patch is
1787in preparation for a future release. The Java runtime library has been
1788reported to work on Tru64 UNIX V4.0F, V5.0, and V5.1, so you may try
1789@option{--enable-libgcj} and report your results.
1790
f0523f02 1791GCC writes a @samp{.verstamp} directive to the assembler output file
b8df899a
JM
1792unless it is built as a cross-compiler. It gets the version to use from
1793the system header file @file{/usr/include/stamp.h}. If you install a
1794new version of DEC Unix, you should rebuild GCC to pick up the new version
1795stamp.
1796
1797Note that since the Alpha is a 64-bit architecture, cross-compilers from
179832-bit machines will not generate code as efficient as that generated
1799when the compiler is running on a 64-bit machine because many
1800optimizations that depend on being able to represent a word on the
1801target in an integral value on the host cannot be performed. Building
1802cross-compilers on the Alpha for 32-bit machines has only been tested in
1803a few cases and may not work properly.
1804
1805@code{make compare} may fail on old versions of DEC Unix unless you add
6cfb3f16 1806@option{-save-temps} to @code{CFLAGS}. On these systems, the name of the
b8df899a
JM
1807assembler input file is stored in the object file, and that makes
1808comparison fail if it differs between the @code{stage1} and
6cfb3f16 1809@code{stage2} compilations. The option @option{-save-temps} forces a
b8df899a 1810fixed name to be used for the assembler input file, instead of a
6cfb3f16 1811randomly chosen name in @file{/tmp}. Do not add @option{-save-temps}
b8df899a 1812unless the comparisons fail without that option. If you add
6cfb3f16 1813@option{-save-temps}, you will have to manually delete the @samp{.i} and
b8df899a
JM
1814@samp{.s} files after each series of compilations.
1815
f0523f02 1816GCC now supports both the native (ECOFF) debugging format used by DBX
161d7b59 1817and GDB and an encapsulated STABS format for use only with GDB@. See the
6cfb3f16 1818discussion of the @option{--with-stabs} option of @file{configure} above
b8df899a
JM
1819for more information on these formats and how to select them.
1820
1821There is a bug in DEC's assembler that produces incorrect line numbers
1822for ECOFF format when the @samp{.align} directive is used. To work
f0523f02 1823around this problem, GCC will not emit such alignment directives
b8df899a
JM
1824while writing ECOFF format debugging information even if optimization is
1825being performed. Unfortunately, this has the very undesirable
6cfb3f16
JM
1826side-effect that code addresses when @option{-O} is specified are
1827different depending on whether or not @option{-g} is also specified.
b8df899a 1828
6cfb3f16 1829To avoid this behavior, specify @option{-gstabs+} and use GDB instead of
161d7b59 1830DBX@. DEC is now aware of this problem with the assembler and hopes to
b8df899a
JM
1831provide a fix shortly.
1832
71b96724
RL
1833@html
1834</p>
1835<hr>
1836@end html
1837@heading @anchor{alphaev5-cray-unicosmk*}alphaev5-cray-unicosmk*
1838Cray T3E systems running Unicos/Mk.
1839
1840This port is incomplete and has many known bugs. We hope to improve the
1841support for this target soon. Currently, only the C front end is supported,
1842and it is not possible to build parallel applications. Cray modules are not
1843supported; in particular, Craylibs are assumed to be in
1844@file{/opt/ctl/craylibs/craylibs}.
1845
1846You absolutely @strong{must} use GNU make on this platform. Also, you
1847need to tell GCC where to find the assembler and the linker. The
1848simplest way to do so is by providing @option{--with-as} and
1849@option{--with-ld} to @file{configure}, e.g.@:
1850
068e5714 1851@samp{configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld
71b96724
RL
1852--enable-languages=c}
1853
1854The comparison test during @samp{make bootstrap} fails on Unicos/Mk
1855because the assembler inserts timestamps into object files. You should
1856be able to work around this by doing @samp{make all} after getting this
1857failure.
1858
b8df899a
JM
1859@html
1860</p>
1861<hr>
1862@end html
1863@heading @anchor{arc-*-elf}arc-*-elf
1864Argonaut ARC processor.
1865This configuration is intended for embedded systems.
1866
1867@html
1868</p>
1869<hr>
1870@end html
1871@heading @anchor{arm-*-aout}arm-*-aout
1872Advanced RISC Machines ARM-family processors. These are often used in
1873embedded applications. There are no standard Unix configurations.
1874This configuration corresponds to the basic instruction sequences and will
1875produce @file{a.out} format object modules.
1876
1877You may need to make a variant of the file @file{arm.h} for your particular
1878configuration.
1879
1880@html
1881</p>
1882<hr>
1883@end html
1884@heading @anchor{arm-*-elf}arm-*-elf
1885This configuration is intended for embedded systems.
1886
476c334e
PB
1887@html
1888</p>
1889<hr>
476c334e 1890@end html
ef88b07d 1891@heading @anchor{arm*-*-linux-gnu}arm*-*-linux-gnu
476c334e
PB
1892
1893We require GNU binutils 2.10 or newer.
1894
b8df899a
JM
1895@html
1896</p>
1897<hr>
1898@end html
1899@heading @anchor{arm-*-riscix}arm-*-riscix
1900The ARM2 or ARM3 processor running RISC iX, Acorn's port of BSD Unix.
1901If you are running a version of RISC iX prior to 1.2 then you must
1902specify the version number during configuration. Note that the
1903assembler shipped with RISC iX does not support stabs debugging
1904information; a new version of the assembler, with stabs support
1905included, is now available from Acorn and via ftp
1906@uref{ftp://ftp.acorn.com/pub/riscix/as+xterm.tar.Z}. To enable stabs
6cfb3f16 1907debugging, pass @option{--with-gnu-as} to configure.
b8df899a 1908
6cfb3f16 1909You will need to install GNU @command{sed} before you can run configure.
b8df899a 1910
f42974dc
DW
1911@html
1912</p>
1913<hr>
f42974dc 1914@end html
ef88b07d 1915@heading @anchor{avr}avr
f42974dc 1916
b8df899a 1917ATMEL AVR-family micro controllers. These are used in embedded
ca52d046
GP
1918applications. There are no standard Unix configurations.
1919@ifnothtml
1920@xref{AVR Options,, AVR Options, gcc, Using and Porting the GNU Compiler
1921Collection (GCC)},
1922@end ifnothtml
98999d8b 1923@ifhtml
ca52d046 1924See ``AVR Options'' in the main manual
98999d8b 1925@end ifhtml
ca52d046 1926for the list of supported MCU types.
b8df899a 1927
161d7b59 1928Use @samp{configure --target=avr --enable-languages="c"} to configure GCC@.
f42974dc
DW
1929
1930Further installation notes and other useful information about AVR tools
1931can also be obtained from:
1932
1933@itemize @bullet
1934@item
1935@uref{http://home.overta.ru/users/denisc,,http://home.overta.ru/users/denisc}
1936@item
1937@uref{http://www.itnet.pl/amelektr/avr,,http://www.itnet.pl/amelektr/avr}
1938@end itemize
1939
20293b4c 1940We @emph{strongly} recommend using binutils 2.11 or newer.
f42974dc
DW
1941
1942The following error:
1943@example
1944 Error: register required
1945@end example
1946
1947indicates that you should upgrade to a newer version of the binutils.
1948
0132e321
MH
1949@html
1950</p>
1951<hr>
1952@end html
1953@heading @anchor{c4x}c4x
1954
1955Texas Instruments TMS320C3x and TMS320C4x Floating Point Digital Signal
1956Processors. These are used in embedded applications. There are no
d8393f64
GP
1957standard Unix configurations.
1958@ifnothtml
1959@xref{TMS320C3x/C4x Options,, TMS320C3x/C4x Options, gcc, Using and
1960Porting the GNU Compiler Collection (GCC)},
1961@end ifnothtml
98999d8b 1962@ifhtml
d8393f64 1963See ``TMS320C3x/C4x Options'' in the main manual
98999d8b 1964@end ifhtml
d8393f64 1965for the list of supported MCU types.
0132e321
MH
1966
1967GCC can be configured as a cross compiler for both the C3x and C4x
1968architectures on the same system. Use @samp{configure --target=c4x
1969--enable-languages="c,c++"} to configure.
1970
1971
1972Further installation notes and other useful information about C4x tools
1973can also be obtained from:
1974
1975@itemize @bullet
1976@item
d8393f64 1977@uref{http://www.elec.canterbury.ac.nz/c4x/,,http://www.elec.canterbury.ac.nz/c4x/}
0132e321
MH
1978@end itemize
1979
0b85d816
HPN
1980@html
1981</p>
1982<hr>
1983@end html
1984@heading @anchor{cris}CRIS
1985
1986CRIS is the CPU architecture in Axis Communications ETRAX system-on-a-chip
1987series. These are used in embedded applications.
1988
1989@ifnothtml
1990@xref{CRIS Options,, CRIS Options, gcc, Using and Porting the GNU Compiler
1991Collection (GCC)},
1992@end ifnothtml
1993@ifhtml
1994See ``CRIS Options'' in the main manual
1995@end ifhtml
1996for a list of CRIS-specific options.
1997
1998There are a few different CRIS targets:
1999@table @code
2000@item cris-axis-aout
2001Old target. Includes a multilib for the @samp{elinux} a.out-based
2002target. No multilibs for newer architecture variants.
2003@item cris-axis-elf
2004Mainly for monolithic embedded systems. Includes a multilib for the
2005@samp{v10} core used in @samp{ETRAX 100 LX}.
2006@item cris-axis-linux-gnu
2007A GNU/Linux port for the CRIS architecture, currently targeting
2008@samp{ETRAX 100 LX} by default.
2009@end table
2010
2011For @code{cris-axis-aout} and @code{cris-axis-elf} you need binutils 2.11
2012or newer. For @code{cris-axis-linux-gnu} you need binutils 2.12 or newer.
2013
2014Pre-packaged tools can be obtained from
2015@uref{ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/}. More
2016information about this platform is available at
2017@uref{http://developer.axis.com/}.
2018
f42974dc
DW
2019@html
2020</p>
2021<hr>
f42974dc 2022@end html
ef88b07d 2023@heading @anchor{dos}DOS
f42974dc
DW
2024
2025Please have a look at our @uref{binaries.html,,binaries page}.
2026
f0523f02 2027You cannot install GCC by itself on MSDOS; it will not compile under
f85b8d1a
JM
2028any MSDOS compiler except itself. You need to get the complete
2029compilation package DJGPP, which includes binaries as well as sources,
2030and includes all the necessary compilation tools and libraries.
2031
b8df899a
JM
2032@html
2033</p>
2034<hr>
2035@end html
2036@heading @anchor{dsp16xx}dsp16xx
2037A port to the AT&T DSP1610 family of processors.
2038
021c4bfd
RO
2039@html
2040</p>
2041<hr>
2042@end html
2043@heading @anchor{*-*-freebsd*}*-*-freebsd*
2044
2045The version of binutils installed in @file{/usr/bin} is known to work unless
2046otherwise specified in any per-architecture notes. However, binutils
20472.11 is known to improve overall testsuite results.
2048
2049For FreeBSD 1, FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All
2050configuration support and files as shipped with GCC 2.95 are still in
2051place. FreeBSD 2.2.7 has been known to bootstrap completely; however,
2052it is unknown which version of binutils was used (it is assumed that it
2053was the system copy in @file{/usr/bin}) and C++ EH failures were noted.
2054
2055For FreeBSD using the ELF file format: DWARF 2 debugging is now the
2056default for all CPU architectures. It had been the default on
2057FreeBSD/alpha since its inception. You may use @option{-gstabs} instead
2058of @option{-g}, if you really want the old debugging format. There are
2059no known issues with mixing object files and libraries with different
2060debugging formats. Otherwise, this release of GCC should now match more
2061of the configuration used in the stock FreeBSD configuration of GCC. In
2062particular, @option{--enable-threads} is now configured by default.
2063However, as a general user, do not attempt to replace the system
2064compiler with this release. Known to bootstrap and check with good
2065results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3 and 5-CURRENT@.
2066
2067At this time, @option{--enable-threads} is not compatible with
2068@option{--enable-libgcj} on FreeBSD@.
2069
b8df899a
JM
2070@html
2071</p>
2072<hr>
2073@end html
2074@heading @anchor{elxsi-elxsi-bsd}elxsi-elxsi-bsd
2075The Elxsi's C compiler has known limitations that prevent it from
f6df5bd2 2076compiling GCC@. Please contact @email{mrs@@wrs.com} for more details.
b8df899a 2077
f42974dc
DW
2078@html
2079</p>
2080<hr>
f42974dc 2081@end html
ef88b07d 2082@heading @anchor{h8300-hms}h8300-hms
b8df899a 2083Hitachi H8/300 series of processors.
f42974dc
DW
2084
2085Please have a look at our @uref{binaries.html,,binaries page}.
2086
b8df899a
JM
2087The calling convention and structure layout has changed in release 2.6.
2088All code must be recompiled. The calling convention now passes the
2089first three arguments in function calls in registers. Structures are no
2090longer a multiple of 2 bytes.
2091
f42974dc
DW
2092@html
2093</p>
2094<hr>
f42974dc 2095@end html
ef88b07d 2096@heading @anchor{hppa*-hp-hpux*}hppa*-hp-hpux*
f42974dc 2097
021c4bfd 2098We @emph{highly} recommend using gas/binutils 2.8 or newer on all hppa
f9047ed3 2099platforms; you may encounter a variety of problems when using the HP
f42974dc
DW
2100assembler.
2101
2102Specifically, @option{-g} does not work on HP-UX (since that system
2103uses a peculiar debugging format which GCC does not know about), unless you
38209993
LG
2104use GAS and GDB and configure GCC with the
2105@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}} and
6cfb3f16 2106@option{--with-as=@dots{}} options.
f42974dc
DW
2107
2108If you wish to use pa-risc 2.0 architecture support, you must use either
021c4bfd 2109the HP assembler, gas/binutils 2.11 or a recent
f42974dc
DW
2110@uref{ftp://sources.redhat.com/pub/binutils/snapshots,,snapshot of gas}.
2111
021c4bfd 2112More specific information to @samp{hppa*-hp-hpux*} targets follows.
f42974dc
DW
2113
2114@html
2115</p>
2116<hr>
f42974dc 2117@end html
ef88b07d 2118@heading @anchor{hppa*-hp-hpux9}hppa*-hp-hpux9
f42974dc
DW
2119
2120The HP assembler has major problems on this platform. We've tried to work
2121around the worst of the problems. However, those workarounds may be causing
2122linker crashes in some circumstances; the workarounds also probably prevent
2123shared libraries from working. Use the GNU assembler to avoid these problems.
2124
2125
2126The configuration scripts for GCC will also trigger a bug in the hpux9
38209993
LG
2127shell. To avoid this problem set @env{CONFIG_SHELL} to @file{/bin/ksh}
2128and @env{SHELL} to @file{/bin/ksh} in your environment.
f42974dc
DW
2129
2130
2131@html
2132</p>
2133<hr>
f42974dc 2134@end html
ef88b07d 2135@heading @anchor{hppa*-hp-hpux10}hppa*-hp-hpux10
f42974dc 2136
f9047ed3 2137For hpux10.20, we @emph{highly} recommend you pick up the latest sed patch
161d7b59 2138@code{PHCO_19798} from HP@. HP has two sites which provide patches free of
f42974dc
DW
2139charge:
2140
2141@itemize @bullet
2142@item
2143@html
2144<a href="http://us-support.external.hp.com">US, Canada, Asia-Pacific, and
2145Latin-America</a>
2146@end html
2147@ifnothtml
2148@uref{http://us-support.external.hp.com,,}US, Canada, Asia-Pacific, and
2149Latin-America
2150@end ifnothtml
2151@item
2152@uref{http://europe-support.external.hp.com,,Europe}
2153@end itemize
2154
2155The HP assembler on these systems is much better than the hpux9 assembler,
2156but still has some problems. Most notably the assembler inserts timestamps
2157into each object file it creates, causing the 3-stage comparison test to fail
f9047ed3
JM
2158during a @samp{make bootstrap}. You should be able to continue by
2159saying @samp{make all} after getting the failure from @samp{make
38209993 2160bootstrap}.
f42974dc
DW
2161
2162
2163@html
2164</p>
2165<hr>
f42974dc 2166@end html
ef88b07d 2167@heading @anchor{hppa*-hp-hpux11}hppa*-hp-hpux11
f42974dc 2168
25b5b465 2169GCC 3.0 supports HP-UX 11. You must use GNU binutils 2.11 or above on
751a1458
CR
2170this platform. Thread support is not currently implemented for this
2171platform, so @option{--enable-threads} does not work.
2172See @uref{http://gcc.gnu.org/ml/gcc-prs/2002-01/msg00551.html}
2173and @uref{http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00663.html}.
6f2a28d7
CR
2174GCC 2.95.x is not supported under HP-UX 11 and cannot be used to
2175compile GCC 3.0. Refer to @uref{binaries.html,,binaries} for information
2176about obtaining precompiled GCC binaries for HP-UX.
f42974dc 2177
b8df899a
JM
2178@html
2179</p>
2180<hr>
2181@end html
2182@heading @anchor{i370-*-*}i370-*-*
2183This port is very preliminary and has many known bugs. We hope to
2184have a higher-quality port for this machine soon.
2185
f42974dc
DW
2186@html
2187</p>
2188<hr>
f42974dc 2189@end html
ef88b07d 2190@heading @anchor{*-*-linux-gnu}*-*-linux-gnu
f42974dc
DW
2191
2192If you use glibc 2.2 (or 2.1.9x), GCC 2.95.2 won't install
021c4bfd 2193out-of-the-box. You'll get compile errors while building @samp{libstdc++}.
f42974dc
DW
2194The patch @uref{glibc-2.2.patch,,glibc-2.2.patch}, that is to be
2195applied in the GCC source tree, fixes the compatibility problems.
2196
e15ed790
AJ
2197@html
2198</p>
2199@end html
2200
2201@html
2202<p>
2203@end html
2204
2205Currently Glibc 2.2.3 (and older releases) and GCC 3.0 are out of sync
161d7b59 2206since the latest exception handling changes for GCC@. Compiling glibc
e15ed790
AJ
2207with GCC 3.0 will give a binary incompatible glibc and therefore cause
2208lots of problems and might make your system completly unusable. This
161d7b59 2209will definitly need fixes in glibc but might also need fixes in GCC@. We
e15ed790
AJ
2210strongly advise to wait for glibc 2.2.4 and to read the release notes of
2211glibc 2.2.4 whether patches for GCC 3.0 are needed. You can use glibc
22122.2.3 with GCC 3.0, just do not try to recompile it.
2213
b8df899a
JM
2214@html
2215</p>
2216<hr>
2217@end html
2218@heading @anchor{ix86-*-linux*oldld}i?86-*-linux*oldld
2219Use this configuration to generate @file{a.out} binaries on Linux-based
2220GNU systems if you do not have gas/binutils version 2.5.2 or later
767094dd 2221installed. This is an obsolete configuration.
b8df899a
JM
2222
2223@html
2224</p>
2225<hr>
2226@end html
2227@heading @anchor{ix86-*-linux*aout}i?86-*-linux*aout
2228Use this configuration to generate @file{a.out} binaries on Linux-based
767094dd 2229GNU systems. This configuration is being superseded. You must use
b8df899a
JM
2230gas/binutils version 2.5.2 or later.
2231
f42974dc
DW
2232@html
2233</p>
2234<hr>
f42974dc 2235@end html
ef88b07d 2236@heading @anchor{ix86-*-linux*}i?86-*-linux*
f42974dc 2237
021c4bfd 2238You will need binutils 2.9.1.0.15 or newer for exception handling to work.
f42974dc
DW
2239
2240If you receive Signal 11 errors when building on GNU/Linux, then it is
2241possible you have a hardware problem. Further information on this can be
2242found on @uref{http://www.bitwizard.nl/sig11/,,www.bitwizard.nl}.
2243
b8df899a
JM
2244@html
2245</p>
2246<hr>
2247@end html
2248@heading @anchor{ix86-*-sco}i?86-*-sco
2249Compilation with RCC is recommended. Also, it may be a good idea to
2250link with GNU malloc instead of the malloc that comes with the system.
2251
2252@html
2253</p>
2254<hr>
2255@end html
2256@heading @anchor{ix86-*-sco3.2v4}i?86-*-sco3.2v4
2257Use this configuration for SCO release 3.2 version 4.
2258
f42974dc
DW
2259@html
2260</p>
2261<hr>
f42974dc 2262@end html
ef88b07d 2263@heading @anchor{ix86-*-sco3.2v5*}i?86-*-sco3.2v5*
b8df899a 2264Use this for the SCO OpenServer Release 5 family of operating systems.
f42974dc
DW
2265
2266Unlike earlier versions of GCC, the ability to generate COFF with this
2267target is no longer provided.
2268
021c4bfd 2269Earlier versions of GCC emitted DWARF 1 when generating ELF to allow
f42974dc 2270the system debugger to be used. That support was too burdensome to
021c4bfd 2271maintain. GCC now emits only DWARF 2 for this target. This means you
f42974dc 2272may use either the UDK debugger or GDB to debug programs built by this
161d7b59 2273version of GCC@.
f42974dc 2274
021c4bfd 2275Use of the @option{-march=pentiumpro} flag can result in
f42974dc 2276unrecognized opcodes when using the native assembler on OS versions before
767094dd 22775.0.6. (Support for P6 opcodes was added to the native ELF assembler in
f9047ed3 2278that version.) While it's rather rare to see these emitted by GCC yet,
f42974dc
DW
2279errors of the basic form:
2280
2281@example
2282 /usr/tmp/ccaNlqBc.s:22:unknown instruction: fcomip
2283 /usr/tmp/ccaNlqBc.s:50:unknown instruction: fucomip
2284@end example
2285
2286are symptoms of this problem. You may work around this by not
2287building affected files with that flag, by using the GNU assembler, or
161d7b59 2288by using the assembler provided with the current version of the OS@.
f42974dc
DW
2289Users of GNU assembler should see the note below for hazards on doing
2290so.
2291
2292The native SCO assembler that is provided with the OS at no
2293charge is normally required. If, however, you must be able to use
2294the GNU assembler (perhaps you're compiling code with asms that
2295require GAS syntax) you may configure this package using the flags
38209993
LG
2296@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}}. You must
2297use a recent version of GNU binutils; versions past 2.9.1 seem to work
2298well.
f42974dc
DW
2299
2300In general, the @option{--with-gnu-as} option isn't as well tested
2301as the native assembler.
2302
6cfb3f16 2303Look in @file{gcc/config/i386/sco5.h} (search for ``messy'') for
f42974dc
DW
2304additional OpenServer-specific flags.
2305
38209993 2306Systems based on OpenServer before 5.0.4 (@samp{uname -X}
021c4bfd
RO
2307will tell you what you're running) require TLS597 from
2308@uref{ftp://ftp.sco.com/TLS/,,ftp://ftp.sco.com/TLS/}
f42974dc
DW
2309for C++ constructors and destructors to work right.
2310
2311The system linker in (at least) 5.0.4 and 5.0.5 will sometimes
2312do the wrong thing for a construct that GCC will emit for PIC
2313code. This can be seen as execution testsuite failures when using
6cfb3f16 2314@option{-fPIC} on @file{921215-1.c}, @file{931002-1.c}, @file{nestfunc-1.c}, and @file{gcov-1.c}.
f42974dc 2315For 5.0.5, an updated linker that will cure this problem is
f9047ed3 2316available. You must install both
38209993 2317@uref{ftp://ftp.sco.com/Supplements/rs505a/,,ftp://ftp.sco.com/Supplements/rs505a/}
f42974dc
DW
2318and @uref{ftp://ftp.sco.com/SLS/,,OSS499A}.
2319
2320The dynamic linker in OpenServer 5.0.5 (earlier versions may show
021c4bfd 2321the same problem) aborts on certain G77-compiled programs. It's particularly
f42974dc
DW
2322likely to be triggered by building Fortran code with the @option{-fPIC} flag.
2323Although it's conceivable that the error could be triggered by other
2324code, only G77-compiled code has been observed to cause this abort.
2325If you are getting core dumps immediately upon execution of your
021c4bfd
RO
2326G77 program---and especially if it's compiled with @option{-fPIC}---try applying
2327@uref{sco_osr5_g77.patch,,@file{sco_osr5_g77.patch}} to your @samp{libf2c} and
161d7b59 2328rebuilding GCC@.
f42974dc
DW
2329Affected faults, when analyzed in a debugger, will show a stack
2330backtrace with a fault occurring in @code{rtld()} and the program
f9047ed3 2331running as @file{/usr/lib/ld.so.1}. This problem has been reported to SCO
f42974dc
DW
2332engineering and will hopefully be addressed in later releases.
2333
2334
f42974dc
DW
2335@html
2336</p>
2337<hr>
f42974dc 2338@end html
ef88b07d 2339@heading @anchor{ix86-*-udk}i?86-*-udk
f42974dc
DW
2340
2341This target emulates the SCO Universal Development Kit and requires that
f9047ed3
JM
2342package be installed. (If it is installed, you will have a
2343@file{/udk/usr/ccs/bin/cc} file present.) It's very much like the
b953cc4b 2344@samp{i?86-*-unixware7*} target
f42974dc
DW
2345but is meant to be used when hosting on a system where UDK isn't the
2346default compiler such as OpenServer 5 or Unixware 2. This target will
f9047ed3 2347generate binaries that will run on OpenServer, Unixware 2, or Unixware 7,
161d7b59 2348with the same warnings and caveats as the SCO UDK@.
f42974dc 2349
f42974dc
DW
2350This target is a little tricky to build because we have to distinguish
2351it from the native tools (so it gets headers, startups, and libraries
f9047ed3 2352from the right place) while making the tools not think we're actually
f42974dc
DW
2353building a cross compiler. The easiest way to do this is with a configure
2354command like this:
2355
f9047ed3 2356@samp{CC=/udk/usr/ccs/bin/cc @var{/your/path/to}/gcc/configure
f42974dc
DW
2357--host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-}
2358
6cfb3f16 2359@emph{You should substitute @samp{i686} in the above command with the appropriate
f42974dc
DW
2360processor for your host.}
2361
021c4bfd
RO
2362After the usual @samp{make bootstrap} and
2363@samp{make install}, you can then access the UDK-targeted GCC
38209993
LG
2364tools by adding @command{udk-} before the commonly known name. For
2365example, to invoke the C compiler, you would use @command{udk-gcc}.
2366They will coexist peacefully with any native-target GCC tools you may
2367have installed.
f42974dc
DW
2368
2369
b8df899a
JM
2370@html
2371</p>
2372<hr>
2373@end html
2374@heading @anchor{ix86-*-isc}i?86-*-isc
2375It may be a good idea to link with GNU malloc instead of the malloc that
2376comes with the system.
2377
6cfb3f16
JM
2378In ISC version 4.1, @command{sed} core dumps when building
2379@file{deduced.h}. Use the version of @command{sed} from version 4.0.
b8df899a
JM
2380
2381@html
2382</p>
2383<hr>
2384@end html
2385@heading @anchor{ix86-*-esix}i?86-*-esix
2386It may be good idea to link with GNU malloc instead of the malloc that
2387comes with the system.
2388
2389@html
2390</p>
2391<hr>
2392@end html
2393@heading @anchor{ix86-ibm-aix}i?86-ibm-aix
2394You need to use GAS version 2.1 or later, and LD from
2395GNU binutils version 2.2 or later.
2396
2397@html
2398</p>
2399<hr>
2400@end html
2401@heading @anchor{ix86-sequent-bsd}i?86-sequent-bsd
2402Go to the Berkeley universe before compiling.
2403
2404@html
2405</p>
2406<hr>
2407@end html
2408@heading @anchor{ix86-sequent-ptx1*}i?86-sequent-ptx1*, i?86-sequent-ptx2*
021c4bfd 2409You must install GNU @command{sed} before running @command{configure}.
b8df899a
JM
2410
2411@html
2412</p>
2413<hr>
2414@end html
2415@heading @anchor{#ix86-*-sysv3*}i?86-*-sysv3*
2416The @code{fixproto} shell script may trigger a bug in the system shell.
2417If you encounter this problem, upgrade your operating system or
021c4bfd 2418use @command{bash} (the GNU shell) to run @code{fixproto}.
b8df899a
JM
2419
2420
2421@html
2422</p>
2423<hr>
2424@end html
2425@heading @anchor{i860-intel-osf*}i860-intel-osf*
2426On the Intel Paragon (an i860 machine), if you are using operating
2427system version 1.0, you will get warnings or errors about redefinition
161d7b59 2428of @code{va_arg} when you build GCC@.
b8df899a
JM
2429
2430If this happens, then you need to link most programs with the library
2431@file{iclib.a}. You must also modify @file{stdio.h} as follows: before
2432the lines
2433
2434@example
2435#if defined(__i860__) && !defined(_VA_LIST)
2436#include <va_list.h>
2437@end example
2438
2439@noindent
2440insert the line
2441
2442@example
2443#if __PGC__
2444@end example
2445
2446@noindent
2447and after the lines
2448
2449@example
2450extern int vprintf(const char *, va_list );
2451extern int vsprintf(char *, const char *, va_list );
2452#endif
2453@end example
2454
2455@noindent
2456insert the line
2457
2458@example
2459#endif /* __PGC__ */
2460@end example
2461
2462These problems don't exist in operating system version 1.1.
2463
b499d9ab
JJ
2464@html
2465</p>
2466<hr>
2467@end html
2468@heading @anchor{ia64-*-linux}ia64-*-linux
2469IA-64 processor (also known as IPF, or Itanium Processor Family)
2470running GNU/Linux.
2471
2472The toolchain is not completely finished, so requirements will continue
2473to change.
2474GCC 3.0.1 and later require glibc 2.2.4.
2475GCC 3.0.2 requires binutils from 2001-09-05 or later.
2476GCC 3.0.1 requires binutils 2.11.1 or later.
2477
2478None of the following versions of GCC has an ABI that is compatible
2479with any of the other versions in this list, with the exception that
2480Red Hat 2.96 and Trillian 000171 are compatible with each other:
24813.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717.
2482This primarily affects C++ programs and programs that create shared libraries.
2483Because of these ABI incompatibilities, GCC 3.0.2 is not recommended for
2484user programs on GNU/Linux systems built using earlier compiler releases.
2485GCC 3.0.2 is recommended for compiling linux, the kernel.
2486GCC 3.0.2 is believed to be fully ABI compliant, and hence no more major
2487ABI changes are expected.
2488
b8df899a
JM
2489@html
2490</p>
2491<hr>
2492@end html
2493@heading @anchor{*-lynx-lynxos}*-lynx-lynxos
f0523f02 2494LynxOS 2.2 and earlier comes with GCC 1.x already installed as
b8df899a 2495@file{/bin/gcc}. You should compile with this instead of @file{/bin/cc}.
f0523f02 2496You can tell GCC to use the GNU assembler and linker, by specifying
b8df899a 2497@samp{--with-gnu-as --with-gnu-ld} when configuring. These will produce
f0523f02 2498COFF format object files and executables; otherwise GCC will use the
b8df899a
JM
2499installed tools, which produce @file{a.out} format executables.
2500
f42974dc
DW
2501@html
2502</p>
2503<hr>
f42974dc
DW
2504<!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
2505@end html
ef88b07d 2506@heading @anchor{*-ibm-aix*}*-ibm-aix*
f42974dc
DW
2507
2508AIX Make frequently has problems with GCC makefiles. GNU Make 3.76 or
2509newer is recommended to build on this platform.
2510
6cfb3f16 2511Errors involving @code{alloca} when building GCC generally are due
021c4bfd 2512to an incorrect definition of @code{CC} in the Makefile or mixing files
161d7b59 2513compiled with the native C compiler and GCC@. During the stage1 phase of
6cfb3f16
JM
2514the build, the native AIX compiler @strong{must} be invoked as @command{cc}
2515(not @command{xlc}). Once @command{configure} has been informed of
2516@command{xlc}, one needs to use @samp{make distclean} to remove the
38209993 2517configure cache files and ensure that @env{CC} environment variable
f42974dc
DW
2518does not provide a definition that will confuse @command{configure}.
2519If this error occurs during stage2 or later, then the problem most likely
2520is the version of Make (see above).
2521
2705baf5
DE
2522The GNU Assembler incorrectly reports that it supports WEAK symbols on
2523AIX which causes GCC to try to utilize weak symbol functionality which
2524is not really supported on the platform. The native @command{as} and
2525@command{ld} still are recommended. The native AIX tools do
161d7b59 2526interoperate with GCC@.
df002c7d 2527
2705baf5
DE
2528Building @file{libstdc++.a} requires a fix for a AIX Assembler bug
2529APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1).
2530
df002c7d
DE
2531Linking executables and shared libraries may produce warnings of
2532duplicate symbols. The assembly files generated by GCC for AIX always
2533have included multiple symbol definitions for certain global variable
2534and function declarations in the original program. The warnings should
2535not prevent the linker from producing a correct library or runnable
2536executable.
2537
6cfb3f16 2538AIX 4.3 utilizes a ``large format'' archive to support both 32-bit and
df002c7d
DE
253964-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1
2540to parse archive libraries did not handle the new format correctly.
2541These routines are used by GCC and result in error messages during
6cfb3f16 2542linking such as ``not a COFF file''. The version of the routines shipped
df002c7d
DE
2543with AIX 4.3.1 should work for a 32-bit environment. The @option{-g}
2544option of the archive command may be used to create archives of 32-bit
6cfb3f16 2545objects using the original ``small format''. A correct version of the
d5d8d540 2546routines is shipped with AIX 4.3.2 and above.
df002c7d 2547
f42974dc
DW
2548Some versions of the AIX binder (linker) can fail with a relocation
2549overflow severe error when the @option{-bbigtoc} option is used to link
161d7b59 2550GCC-produced object files into an executable that overflows the TOC@. A fix
f42974dc
DW
2551for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is
2552available from IBM Customer Support and from its
d5d8d540 2553@uref{http://techsupport.services.ibm.com/,,techsupport.services.ibm.com}
f42974dc
DW
2554website as PTF U455193.
2555
df002c7d 2556The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core
161d7b59 2557with a segmentation fault when invoked by any version of GCC@. A fix for
df002c7d 2558APAR IX87327 is available from IBM Customer Support and from its
d5d8d540 2559@uref{http://techsupport.services.ibm.com/,,techsupport.services.ibm.com}
df002c7d 2560website as PTF U461879. This fix is incorporated in AIX 4.3.3 and above.
f42974dc
DW
2561
2562The initial assembler shipped with AIX 4.3.0 generates incorrect object
2563files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM COMPILER FAILS
2564TO ASSEMBLE/BIND) is available from IBM Customer Support and from its
d5d8d540 2565@uref{http://techsupport.services.ibm.com/,,techsupport.services.ibm.com}
f42974dc
DW
2566website as PTF U453956. This fix is incorporated in AIX 4.3.1 and above.
2567
161d7b59 2568AIX provides National Language Support (NLS)@. Compilers and assemblers
df002c7d 2569use NLS to support locale-specific representations of various data
6cfb3f16 2570formats including floating-point numbers (e.g., @samp{.} vs @samp{,} for
df002c7d
DE
2571separating decimal fractions). There have been problems reported where
2572GCC does not produce the same floating-point formats that the assembler
c771326b 2573expects. If one encounters this problem, set the @env{LANG}
6cfb3f16 2574environment variable to @samp{C} or @samp{En_US}.
f42974dc 2575
5791e6da
DE
2576By default, GCC for AIX 4.1 and above produces code that can be used on
2577both Power or PowerPC processors.
2578
d5d8d540
DE
2579A default can be specified with the @option{-mcpu=@var{cpu_type}}
2580switch and using the configure option @option{--with-cpu-@var{cpu_type}}.
f42974dc 2581
b8df899a
JM
2582@html
2583</p>
2584<hr>
2585@end html
2586@heading @anchor{m32r-*-elf}m32r-*-elf
2587Mitsubishi M32R processor.
2588This configuration is intended for embedded systems.
2589
2590@html
2591</p>
2592<hr>
2593@end html
2594@heading @anchor{m68000-hp-bsd}m68000-hp-bsd
161d7b59 2595HP 9000 series 200 running BSD@. Note that the C compiler that comes
f0523f02
JM
2596with this system cannot compile GCC; contact @email{law@@cygnus.com}
2597to get binaries of GCC for bootstrapping.
b8df899a
JM
2598
2599@html
2600</p>
2601<hr>
2602@end html
2603@heading @anchor{m6811-elf}m6811-elf
2604Motorola 68HC11 family micro controllers. These are used in embedded
2605applications. There are no standard Unix configurations.
2606
2607@html
2608</p>
2609<hr>
2610@end html
2611@heading @anchor{m6812-elf}m6812-elf
2612Motorola 68HC12 family micro controllers. These are used in embedded
2613applications. There are no standard Unix configurations.
2614
2615@html
2616</p>
2617<hr>
2618@end html
2619@heading @anchor{m68k-altos}m68k-altos
2620Altos 3068. You must use the GNU assembler, linker and debugger.
021c4bfd 2621Also, you must fix a kernel bug.
b8df899a
JM
2622
2623@html
2624</p>
2625<hr>
2626@end html
2627@heading @anchor{m68k-apple-aux}m68k-apple-aux
161d7b59 2628Apple Macintosh running A/UX@.
b8df899a
JM
2629You may configure GCC to use either the system assembler and
2630linker or the GNU assembler and linker. You should use the GNU configuration
021c4bfd
RO
2631if you can, especially if you also want to use G++. You enable
2632that configuration with the @option{--with-gnu-as} and @option{--with-gnu-ld}
b8df899a
JM
2633options to @code{configure}.
2634
2635Note the C compiler that comes
161d7b59 2636with this system cannot compile GCC@. You can find binaries of GCC
b8df899a
JM
2637for bootstrapping on @code{jagubox.gsfc.nasa.gov}.
2638You will also a patched version of @file{/bin/ld} there that
2639raises some of the arbitrary limits found in the original.
2640
2641@html
2642</p>
2643<hr>
2644@end html
2645@heading @anchor{m68k-att-sysv}m68k-att-sysv
161d7b59 2646AT&T 3b1, a.k.a.@: 7300 PC@. This version of GCC cannot
b8df899a
JM
2647be compiled with the system C compiler, which is too buggy.
2648You will need to get a previous version of GCC and use it to
2649bootstrap. Binaries are available from the OSU-CIS archive, at
2650@uref{ftp://archive.cis.ohio-state.edu/pub/att7300/}.
2651
2652@html
2653</p>
2654<hr>
2655@end html
2656@heading @anchor{m68k-bull-sysv}m68k-bull-sysv
767094dd
JM
2657Bull DPX/2 series 200 and 300 with BOS-2.00.45 up to BOS-2.01. GCC works
2658either with native assembler or GNU assembler. You can use
021c4bfd
RO
2659GNU assembler with native COFF generation by providing @option{--with-gnu-as} to
2660the configure script or use GNU assembler with stabs-in-COFF encapsulation
2661by providing @samp{--with-gnu-as --stabs}. For any problem with the native
b8df899a
JM
2662assembler or for availability of the DPX/2 port of GAS, contact
2663@email{F.Pierresteguy@@frcl.bull.fr}.
2664
2665@html
2666</p>
2667<hr>
2668@end html
2669@heading @anchor{m68k-crds-unox}m68k-crds-unox
2670Use @samp{configure unos} for building on Unos.
2671
2672The Unos assembler is named @code{casm} instead of @code{as}. For some
2673strange reason linking @file{/bin/as} to @file{/bin/casm} changes the
f0523f02 2674behavior, and does not work. So, when installing GCC, you should
b8df899a
JM
2675install the following script as @file{as} in the subdirectory where
2676the passes of GCC are installed:
2677
2678@example
2679#!/bin/sh
2680casm $*
2681@end example
2682
2683The default Unos library is named @file{libunos.a} instead of
f0523f02 2684@file{libc.a}. To allow GCC to function, either change all
6cfb3f16 2685references to @option{-lc} in @file{gcc.c} to @option{-lunos} or link
b8df899a
JM
2686@file{/lib/libc.a} to @file{/lib/libunos.a}.
2687
2688@cindex @code{alloca}, for Unos
f0523f02 2689When compiling GCC with the standard compiler, to overcome bugs in
6cfb3f16
JM
2690the support of @code{alloca}, do not use @option{-O} when making stage 2.
2691Then use the stage 2 compiler with @option{-O} to make the stage 3
b8df899a
JM
2692compiler. This compiler will have the same characteristics as the usual
2693stage 2 compiler on other systems. Use it to make a stage 4 compiler
2694and compare that with stage 3 to verify proper compilation.
2695
2696(Perhaps simply defining @code{ALLOCA} in @file{x-crds} as described in
2697the comments there will make the above paragraph superfluous. Please
2698inform us of whether this works.)
2699
2700Unos uses memory segmentation instead of demand paging, so you will need
2701a lot of memory. 5 Mb is barely enough if no other tasks are running.
2702If linking @file{cc1} fails, try putting the object files into a library
2703and linking from that library.
2704
2705@html
2706</p>
2707<hr>
2708@end html
2709@heading @anchor{m68k-hp-hpux}m68k-hp-hpux
161d7b59
JM
2710HP 9000 series 300 or 400 running HP-UX@. HP-UX version 8.0 has a bug in
2711the assembler that prevents compilation of GCC@. This
b8df899a
JM
2712bug manifests itself during the first stage of compilation, while
2713building @file{libgcc2.a}:
2714
2715@smallexample
2716_floatdisf
2717cc1: warning: `-g' option not supported on this version of GCC
2718cc1: warning: `-g1' option not supported on this version of GCC
2719./xgcc: Internal compiler error: program as got fatal signal 11
2720@end smallexample
2721
2722A patched version of the assembler is available as the file
2723@uref{ftp://altdorf.ai.mit.edu/archive/cph/hpux-8.0-assembler}. If you
2724have HP software support, the patch can also be obtained directly from
2725HP, as described in the following note:
2726
2727@quotation
2728This is the patched assembler, to patch SR#1653-010439, where the
2729assembler aborts on floating point constants.
2730
2731The bug is not really in the assembler, but in the shared library
2732version of the function ``cvtnum(3c)''. The bug on ``cvtnum(3c)'' is
2733SR#4701-078451. Anyway, the attached assembler uses the archive
2734library version of ``cvtnum(3c)'' and thus does not exhibit the bug.
2735@end quotation
2736
2737This patch is also known as PHCO_4484.
2738
021c4bfd 2739In addition, if you wish to use gas, you must use
b8df899a
JM
2740gas version 2.1 or later, and you must use the GNU linker version 2.1 or
2741later. Earlier versions of gas relied upon a program which converted the
2742gas output into the native HP-UX format, but that program has not been
2743kept up to date. gdb does not understand that native HP-UX format, so
2744you must use gas if you wish to use gdb.
2745
2746On HP-UX version 8.05, but not on 8.07 or more recent versions, the
2747@code{fixproto} shell script triggers a bug in the system shell. If you
2748encounter this problem, upgrade your operating system or use BASH (the
2749GNU shell) to run @code{fixproto}. This bug will cause the fixproto
2750program to report an error of the form:
2751
2752@example
2753./fixproto: sh internal 1K buffer overflow
2754@end example
2755
2756To fix this, you can also change the first line of the fixproto script
2757to look like:
2758
2759@example
2760#!/bin/ksh
2761@end example
2762
2763
f42974dc
DW
2764@html
2765</p>
2766<hr>
f42974dc 2767@end html
ef88b07d 2768@heading @anchor{m68k-*-nextstep*}m68k-*-nextstep*
f42974dc 2769
b8df899a
JM
2770Current GCC versions probably do not work on version 2 of the NeXT
2771operating system.
2772
2147b154 2773On NeXTStep 3.0, the Objective-C compiler does not work, due,
b8df899a
JM
2774apparently, to a kernel bug that it happens to trigger. This problem
2775does not happen on 3.1.
2776
f42974dc
DW
2777You absolutely @strong{must} use GNU sed and GNU make on this platform.
2778
2779
eea81d3e 2780On NeXTSTEP 3.x where x < 3 the build of GCC will abort during
f42974dc
DW
2781stage1 with an error message like this:
2782
2783@example
2784 _eh
2785 /usr/tmp/ccbbsZ0U.s:987:Unknown pseudo-op: .section
2786 /usr/tmp/ccbbsZ0U.s:987:Rest of line ignored. 1st junk character
2787 valued 95 (_).
2788@end example
2789
f9047ed3 2790The reason for this is the fact that NeXT's assembler for these
6cfb3f16 2791versions of the operating system does not support the @samp{.section}
f42974dc
DW
2792pseudo op that's needed for full C++ exception functionality.
2793
f9047ed3
JM
2794As NeXT's assembler is a derived work from GNU as, a free
2795replacement that does can be obtained at
f42974dc
DW
2796@uref{ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz,,ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz}.
2797
2798If you try to build the integrated C++ & C++ runtime libraries on this system
2799you will run into trouble with include files. The way to get around this is
2800to use the following sequence. Note you must have write permission to
38209993 2801the directory @var{prefix} you specified in the configuration process of GCC
f42974dc
DW
2802for this sequence to work.
2803
2804@example
2805 cd bld-gcc
2806 make all-texinfo all-bison all-byacc all-binutils all-gas all-ld
2807 cd gcc
2808 make bootstrap
2809 make install-headers-tar
2810 cd ..
2811 make bootstrap3
2812@end example
2813
b8df899a
JM
2814@html
2815</p>
2816<hr>
2817@end html
2818@heading @anchor{m68k-ncr-*}m68k-ncr-*
2819On the Tower models 4@var{n}0 and 6@var{n}0, by default a process is not
2820allowed to have more than one megabyte of memory. GCC cannot compile
6cfb3f16 2821itself (or many other programs) with @option{-O} in that much memory.
b8df899a
JM
2822
2823To solve this problem, reconfigure the kernel adding the following line
2824to the configuration file:
2825
2826@smallexample
2827MAXUMEM = 4096
2828@end smallexample
2829
2830
2831@html
2832</p>
2833<hr>
2834@end html
2835@heading @anchor{m68k-sun}m68k-sun
2836Sun 3. We do not provide a configuration file to use the Sun FPA by
2837default, because programs that establish signal handlers for floating
161d7b59 2838point traps inherently cannot work with the FPA@.
f42974dc
DW
2839
2840@html
2841</p>
2842<hr>
f42974dc 2843@end html
ef88b07d 2844@heading @anchor{m68k-sun-sunos4.1.1}m68k-sun-sunos4.1.1
f42974dc
DW
2845
2846It is reported that you may need the GNU assembler on this platform.
2847
2848
b8df899a
JM
2849@html
2850</p>
2851<hr>
2852@end html
2853@heading @anchor{m88k-*-svr3}m88k-*-svr3
2854Motorola m88k running the AT&T/Unisoft/Motorola V.3 reference port.
2855These systems tend to use the Green Hills C, revision 1.8.5, as the
2856standard C compiler. There are apparently bugs in this compiler that
2857result in object files differences between stage 2 and stage 3. If this
2858happens, make the stage 4 compiler and compare it to the stage 3
2859compiler. If the stage 3 and stage 4 object files are identical, this
2860suggests you encountered a problem with the standard C compiler; the
2861stage 3 and 4 compilers may be usable.
2862
f0523f02 2863It is best, however, to use an older version of GCC for bootstrapping
b8df899a
JM
2864if you have one.
2865
2866@html
2867</p>
2868<hr>
2869@end html
2870@heading @anchor{m88k-*-dgux}m88k-*-dgux
161d7b59 2871Motorola m88k running DG/UX@. To build 88open BCS native or cross
b8df899a
JM
2872compilers on DG/UX, specify the configuration name as
2873@samp{m88k-*-dguxbcs} and build in the 88open BCS software development
2874environment. To build ELF native or cross compilers on DG/UX, specify
2875@samp{m88k-*-dgux} and build in the DG/UX ELF development environment.
2876You set the software development environment by issuing
2877@samp{sde-target} command and specifying either @samp{m88kbcs} or
2878@samp{m88kdguxelf} as the operand.
2879
2880If you do not specify a configuration name, @file{configure} guesses the
2881configuration based on the current software development environment.
2882
2883@html
2884</p>
2885<hr>
2886@end html
2887@heading @anchor{m88k-tektronix-sysv3}m88k-tektronix-sysv3
2888Tektronix XD88 running UTekV 3.2e. Do not turn on
2889optimization while building stage1 if you bootstrap with
021c4bfd 2890the buggy Green Hills compiler. Also, the bundled LAI
b8df899a
JM
2891System V NFS is buggy so if you build in an NFS mounted
2892directory, start from a fresh reboot, or avoid NFS all together.
2893Otherwise you may have trouble getting clean comparisons
2894between stages.
2895
2896@html
2897</p>
2898<hr>
2899@end html
2900@heading @anchor{mips-*-*}mips-*-*
2901If you use the 1.31 version of the MIPS assembler (such as was shipped
6cfb3f16 2902with Ultrix 3.1), you will need to use the @option{-fno-delayed-branch} switch
b8df899a
JM
2903when optimizing floating point code. Otherwise, the assembler will
2904complain when the GCC compiler fills a branch delay slot with a
2905floating point instruction, such as @code{add.d}.
2906
2907If on a MIPS system you get an error message saying ``does not have gp
2908sections for all it's [sic] sectons [sic]'', don't worry about it. This
2909happens whenever you use GAS with the MIPS linker, but there is not
2910really anything wrong, and it is okay to use the output file. You can
2911stop such warnings by installing the GNU linker.
2912
2913It would be nice to extend GAS to produce the gp tables, but they are
2914optional, and there should not be a warning about their absence.
2915
2916Users have reported some problems with version 2.0 of the MIPS
2917compiler tools that were shipped with Ultrix 4.1. Version 2.10
2918which came with Ultrix 4.2 seems to work fine.
2919
2920Users have also reported some problems with version 2.20 of the
2921MIPS compiler tools that were shipped with RISC/os 4.x. The earlier
2922version 2.11 seems to work fine.
2923
2924Some versions of the MIPS linker will issue an assertion failure
2925when linking code that uses @code{alloca} against shared
2926libraries on RISC-OS 5.0, and DEC's OSF/1 systems. This is a bug
2927in the linker, that is supposed to be fixed in future revisions.
6cfb3f16
JM
2928To protect against this, GCC passes @option{-non_shared} to the
2929linker unless you pass an explicit @option{-shared} or
2930@option{-call_shared} switch.
b8df899a
JM
2931
2932@heading @anchor{mips-mips-bsd}mips-mips-bsd
2933MIPS machines running the MIPS operating system in BSD mode. It's
2934possible that some old versions of the system lack the functions
2935@code{memcpy}, @code{memmove}, @code{memcmp}, and @code{memset}. If your
2936system lacks these, you must remove or undo the definition of
2937@code{TARGET_MEM_FUNCTIONS} in @file{mips-bsd.h}.
2938
021c4bfd
RO
2939If you use the MIPS C compiler to bootstrap, it may be necessary
2940to increase its table size for switch statements with the
2941@option{-Wf,-XNg1500} option. If you use the @option{-O2}
2942optimization option, you also need to use @option{-Olimit 3000}.
2943Both of these options are automatically generated in the
2944@file{Makefile} that the shell script @file{configure} builds.
2945If you override the @code{CC} make variable and use the MIPS
2946compilers, you may need to add @option{-Wf,-XNg1500 -Olimit 3000}.
2947
2948@html
2949</p>
2950<hr>
2951@end html
2952@heading @anchor{mips-dec-*}mips-dec-*
2953MIPS-based DECstations can support three different personalities:
2954Ultrix, DEC OSF/1, and OSF/rose. (Alpha-based DECstation products have
2955a configuration name beginning with @samp{alpha*-dec}.) To configure GCC
2956for these platforms use the following configurations:
2957
2958@table @samp
2959@item mips-dec-ultrix
2960Ultrix configuration.
2961
2962@item mips-dec-osf1
2963DEC's version of OSF/1.
2964
2965@item mips-dec-osfrose
2966Open Software Foundation reference port of OSF/1 which uses the
2967OSF/rose object file format instead of ECOFF@. Normally, you
2968would not select this configuration.
2969@end table
2970
2971If you use the MIPS C compiler to bootstrap, it may be necessary
2972to increase its table size for switch statements with the
2973@option{-Wf,-XNg1500} option. If you use the @option{-O2}
6cfb3f16 2974optimization option, you also need to use @option{-Olimit 3000}.
b8df899a
JM
2975Both of these options are automatically generated in the
2976@file{Makefile} that the shell script @file{configure} builds.
2977If you override the @code{CC} make variable and use the MIPS
6cfb3f16 2978compilers, you may need to add @option{-Wf,-XNg1500 -Olimit 3000}.
b8df899a
JM
2979
2980@html
2981</p>
2982<hr>
2983@end html
2984@heading @anchor{mips-mips-riscos*}mips-mips-riscos*
021c4bfd
RO
2985If you use the MIPS C compiler to bootstrap, it may be necessary
2986to increase its table size for switch statements with the
2987@option{-Wf,-XNg1500} option. If you use the @option{-O2}
6cfb3f16 2988optimization option, you also need to use @option{-Olimit 3000}.
b8df899a
JM
2989Both of these options are automatically generated in the
2990@file{Makefile} that the shell script @file{configure} builds.
2991If you override the @code{CC} make variable and use the MIPS
2992compilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}.
2993
2994MIPS computers running RISC-OS can support four different
2995personalities: default, BSD 4.3, System V.3, and System V.4
2996(older versions of RISC-OS don't support V.4). To configure GCC
2997for these platforms use the following configurations:
2998
2999@table @samp
021c4bfd
RO
3000@item mips-mips-riscos@var{rev}
3001Default configuration for RISC-OS, revision @var{rev}.
b8df899a 3002
021c4bfd
RO
3003@item mips-mips-riscos@var{rev}bsd
3004BSD 4.3 configuration for RISC-OS, revision @var{rev}.
b8df899a 3005
021c4bfd
RO
3006@item mips-mips-riscos@var{rev}sysv4
3007System V.4 configuration for RISC-OS, revision @var{rev}.
b8df899a
JM
3008
3009@html
3010</p>
3011<hr>
3012@end html
021c4bfd
RO
3013@item mips-mips-riscos@var{rev}sysv
3014System V.3 configuration for RISC-OS, revision @var{rev}.
b8df899a
JM
3015@end table
3016
3017The revision @code{rev} mentioned above is the revision of
3018RISC-OS to use. You must reconfigure GCC when going from a
3019RISC-OS revision 4 to RISC-OS revision 5. This has the effect of
3020avoiding a linker bug.
3021
f42974dc
DW
3022@html
3023</p>
3024<hr>
f42974dc 3025@end html
b953cc4b 3026@heading @anchor{mips-sgi-irix4}mips-sgi-irix4
f42974dc 3027
6cfb3f16 3028In order to compile GCC on an SGI running IRIX 4, the ``c.hdr.lib''
b8df899a
JM
3029option must be installed from the CD-ROM supplied from Silicon Graphics.
3030This is found on the 2nd CD in release 4.0.1.
3031
213ba345 3032On IRIX version 4.0.5F, and perhaps on some other versions as well,
b8df899a
JM
3033there is an assembler bug that reorders instructions incorrectly. To
3034work around it, specify the target configuration
3035@samp{mips-sgi-irix4loser}. This configuration inhibits assembler
3036optimization.
3037
3038In a compiler configured with target @samp{mips-sgi-irix4}, you can turn
6cfb3f16
JM
3039off assembler optimization by using the @option{-noasmopt} option. This
3040compiler option passes the option @option{-O0} to the assembler, to
b8df899a
JM
3041inhibit reordering.
3042
6cfb3f16 3043The @option{-noasmopt} option can be useful for testing whether a problem
b8df899a 3044is due to erroneous assembler reordering. Even if a problem does not go
6cfb3f16 3045away with @option{-noasmopt}, it may still be due to assembler
f0523f02 3046reordering---perhaps GCC itself was miscompiled as a result.
b8df899a 3047
213ba345
RO
3048You may get the following warning on IRIX 4 platforms, it can be safely
3049ignored.
3050@example
3051 warning: foo.o does not have gp tables for all its sections.
3052@end example
b8df899a 3053
213ba345
RO
3054@html
3055</p>
3056<hr>
3057@end html
b953cc4b
RO
3058@heading @anchor{mips-sgi-irix5}mips-sgi-irix5
3059
3060This configuration has considerable problems, which will be fixed in a
3061future release.
f42974dc 3062
213ba345
RO
3063In order to compile GCC on an SGI running IRIX 5, the ``compiler_dev.hdr''
3064subsystem must be installed from the IDO CD-ROM supplied by Silicon
3065Graphics. It is also available for download from
3066@uref{http://www.sgi.com/developers/devtools/apis/ido.html,,http://www.sgi.com/developers/devtools/apis/ido.html}.
f42974dc 3067
213ba345
RO
3068@code{make compare} may fail on version 5 of IRIX unless you add
3069@option{-save-temps} to @code{CFLAGS}. On these systems, the name of the
3070assembler input file is stored in the object file, and that makes
3071comparison fail if it differs between the @code{stage1} and
3072@code{stage2} compilations. The option @option{-save-temps} forces a
3073fixed name to be used for the assembler input file, instead of a
3074randomly chosen name in @file{/tmp}. Do not add @option{-save-temps}
3075unless the comparisons fail without that option. If you do you
3076@option{-save-temps}, you will have to manually delete the @samp{.i} and
3077@samp{.s} files after each series of compilations.
f42974dc 3078
213ba345
RO
3079If you use the MIPS C compiler to bootstrap, it may be necessary
3080to increase its table size for switch statements with the
3081@option{-Wf,-XNg1500} option. If you use the @option{-O2}
3082optimization option, you also need to use @option{-Olimit 3000}.
f42974dc 3083
b953cc4b
RO
3084To enable debugging under IRIX 5, you must use GNU @command{as} 2.11.2
3085or later,
213ba345
RO
3086and use the @option{--with-gnu-as} configure option when configuring GCC.
3087GNU @command{as} is distributed as part of the binutils package.
b953cc4b
RO
3088When using release 2.11.2, you need to apply a patch
3089@uref{http://sources.redhat.com/ml/binutils/2001-07/msg00352.html,,http://sources.redhat.com/ml/binutils/2001-07/msg00352.html}
3090which will be included in the next release of binutils.
f42974dc 3091
213ba345
RO
3092When building GCC, the build process loops rebuilding @command{cc1} over
3093and over again. This happens on @samp{mips-sgi-irix5.2}, and possibly
3094other platforms. It has been reported that this is a known bug in the
3095@command{make} shipped with IRIX 5.2. We recommend you use GNU
3096@command{make} instead of the vendor supplied @command{make} program;
3097however, you may have success with @command{smake} on IRIX 5.2 if you do
3098not have GNU @command{make} available.
f42974dc
DW
3099
3100@html
3101</p>
3102<hr>
f42974dc 3103@end html
b953cc4b 3104@heading @anchor{mips-sgi-irix6}mips-sgi-irix6
f42974dc 3105
213ba345 3106If you are using IRIX @command{cc} as your bootstrap compiler, you must
f42974dc
DW
3107ensure that the N32 ABI is in use. To test this, compile a simple C
3108file with @command{cc} and then run @command{file} on the
3109resulting object file. The output should look like:
3110
3111@example
213ba345 3112test.o: ELF N32 MSB @dots{}
f42974dc
DW
3113@end example
3114
3115If you see:
213ba345
RO
3116
3117@example
3118test.o: ELF 32-bit MSB @dots{}
3119@end example
3120
3121or
3122
f42974dc 3123@example
213ba345 3124test.o: ELF 64-bit MSB @dots{}
f42974dc
DW
3125@end example
3126
213ba345 3127then your version of @command{cc} uses the O32 or N64 ABI by default. You
38209993 3128should set the environment variable @env{CC} to @samp{cc -n32}
161d7b59 3129before configuring GCC@.
f42974dc 3130
213ba345
RO
3131GCC on IRIX 6 is usually built to support both the N32 and N64 ABIs. If
3132you build GCC on a system that doesn't have the N64 libraries installed,
3133you need to configure with @option{--disable-multilib} so GCC doesn't
3134try to use them. Look for @file{/usr/lib64/libc.so.1} to see if you
3135have the 64-bit libraries installed.
3136
3137You must @emph{not} use GNU @command{as} (which isn't built anyway as of
3138binutils 2.11.2) on IRIX 6 platforms; doing so will only cause problems.
3139
f42974dc 3140GCC does not currently support generating O32 ABI binaries in the
b953cc4b 3141@samp{mips-sgi-irix6} configurations. It is possible to create a GCC
213ba345 3142with O32 ABI only support by configuring it for the @samp{mips-sgi-irix5}
b953cc4b
RO
3143target and using a patched GNU @command{as} 2.11.2 as documented in the
3144@uref{#mips-sgi-irix5,,@samp{mips-sgi-irix5}} section above. Using the
3145native assembler requires patches to GCC which will be included in a
3146future release. It is
213ba345 3147expected that O32 ABI support will be available again in a future release.
f42974dc 3148
b953cc4b
RO
3149The @option{--enable-threads} option doesn't currently work, a patch is
3150in preparation for a future release. The @option{--enable-libgcj}
3151option is disabled by default: IRIX 6 uses a very low default limit
3152(20480) for the command line length. Although libtool contains a
3153workaround for this problem, at least the N64 @samp{libgcj} is known not
3154to build despite this, running into an internal error of the native
3155@command{ld}. A sure fix is to increase this limit (@samp{ncargs}) to
3156its maximum of 262144 bytes. If you have root access, you can use the
3157@command{systune} command to do this.
3158
f42974dc 3159GCC does not correctly pass/return structures which are
767094dd
JM
3160smaller than 16 bytes and which are not 8 bytes. The problem is very
3161involved and difficult to fix. It affects a number of other targets also,
f42974dc 3162but IRIX 6 is affected the most, because it is a 64 bit target, and 4 byte
767094dd 3163structures are common. The exact problem is that structures are being padded
e979f9e8 3164at the wrong end, e.g.@: a 4 byte structure is loaded into the lower 4 bytes
f42974dc
DW
3165of the register when it should be loaded into the upper 4 bytes of the
3166register.
3167
3168GCC is consistent with itself, but not consistent with the SGI C compiler
3169(and the SGI supplied runtime libraries), so the only failures that can
3170happen are when there are library functions that take/return such
213ba345
RO
3171structures. There are very few such library functions. Currently this
3172is known to affect @code{inet_ntoa}, @code{inet_lnaof},
46d2e8d7
RO
3173@code{inet_netof}, @code{inet_makeaddr}, and @code{semctl}. Until the
3174bug is fixed, GCC contains workarounds for the known affected functions.
f42974dc 3175
3aa8219e
GP
3176See @uref{http://freeware.sgi.com/,,http://freeware.sgi.com/} for more
3177information about using GCC on IRIX platforms.
f42974dc 3178
b8df899a
JM
3179@html
3180</p>
3181<hr>
3182@end html
3183@heading @anchor{mips-sony-sysv}mips-sony-sysv
161d7b59
JM
3184Sony MIPS NEWS@. This works in NEWSOS 5.0.1, but not in 5.0.2 (which
3185uses ELF instead of COFF)@. Support for 5.0.2 will probably be provided
b8df899a
JM
3186soon by volunteers. In particular, the linker does not like the
3187code generated by GCC when shared libraries are linked in.
3188
3189
3190@html
3191</p>
3192<hr>
3193@end html
3194@heading @anchor{ns32k-encore}ns32k-encore
161d7b59 3195Encore ns32000 system. Encore systems are supported only under BSD@.
b8df899a
JM
3196
3197@html
3198</p>
3199<hr>
3200@end html
3201@heading @anchor{ns32k-*-genix}ns32k-*-genix
3202National Semiconductor ns32000 system. Genix has bugs in @code{alloca}
3203and @code{malloc}; you must get the compiled versions of these from GNU
3204Emacs.
3205
3206@html
3207</p>
3208<hr>
3209@end html
3210@heading @anchor{ns32k-sequent}ns32k-sequent
3211Go to the Berkeley universe before compiling.
3212
3213@html
3214</p>
3215<hr>
3216@end html
3217@heading @anchor{ns32k-utek}ns32k-utek
3218UTEK ns32000 system (``merlin''). The C compiler that comes with this
f0523f02
JM
3219system cannot compile GCC; contact @samp{tektronix!reed!mason} to get
3220binaries of GCC for bootstrapping.
b8df899a
JM
3221
3222
b8df899a
JM
3223@html
3224</p>
3225<hr>
3226@end html
021c4bfd 3227@heading @anchor{powerpc*-*-*}powerpc-*-*
b8df899a 3228
6cfb3f16
JM
3229You can specify a default version for the @option{-mcpu=@var{cpu_type}}
3230switch by using the configure option @option{--with-cpu-@var{cpu_type}}.
b8df899a 3231
4f2b1139
SS
3232@html
3233</p>
3234<hr>
3235@end html
3236@heading @anchor{powerpc-*-darwin*}powerpc-*-darwin*
3237PowerPC running Darwin (Mac OS X kernel).
3238
3239GCC 3.0 does not support Darwin, but 3.1 and later releases will work.
3240
3241Pre-installed versions of Mac OS X may not include any developer tools,
3242meaning that you will not be able to build GCC from source. Tool
3243binaries are available at
3244@uref{http://www.opensource.apple.com/projects/darwin} (free
3245registration required).
3246
3247Versions of the assembler prior to ``cctools-364'' cannot handle the
32484-argument form of rlwinm and related mask-using instructions. Darwin
32491.3 (Mac OS X 10.0) uses cctools-353 for instance. To get cctools-364,
3250check out @file{cctools} with tag @samp{Apple-364}, build it, and
3251install the assembler as @file{usr/bin/as}. See
3252@uref{http://www.opensource.apple.com/tools/cvs/docs.html} for details.
3253
3254Also, the default stack limit of 512K is too small, and a bootstrap will
3255typically fail when self-compiling @file{expr.c}. Set the stack to 800K
3256or more, for instance by doing @samp{limit stack 800}. It's also
3257convenient to use the GNU preprocessor instead of Apple's during the
3258first stage of bootstrapping; this is automatic when doing @samp{make
3259bootstrap}, but to do it from the toplevel objdir you will need to say
3260@samp{make CC='cc -no-cpp-precomp' bootstrap}.
3261
3262Note that the version of GCC shipped by Apple typically includes a
3263number of extensions not available in a standard GCC release. These
3264extensions are generally specific to Mac programming.
3265
021c4bfd
RO
3266@html
3267</p>
3268<hr>
3269@end html
3270@heading @anchor{powerpc-*-elf}powerpc-*-elf, powerpc-*-sysv4
3271PowerPC system in big endian mode, running System V.4.
3272
f42974dc
DW
3273@html
3274</p>
3275<hr>
f42974dc 3276@end html
ef88b07d 3277@heading @anchor{powerpc-*-linux-gnu*}powerpc-*-linux-gnu*
f42974dc 3278
f9047ed3 3279You will need
021c4bfd 3280@uref{ftp://ftp.varesearch.com/pub/support/hjl/binutils,,binutils 2.9.4.0.8}
161d7b59 3281or newer for a working GCC@. It is strongly recommended to recompile binutils
f42974dc
DW
3282if you initially built it with gcc-2.7.2.x.
3283
edf1b3f3
AC
3284@html
3285</p>
3286<hr>
3287@end html
3288@heading @anchor{powerpc-*-netbsd*}powerpc-*-netbsd*
3289PowerPC system in big endian mode running NetBSD@. To build the
3290documentation you will need Texinfo version 4.0 (NetBSD 1.5.1 included
3291Texinfo version 3.12).
3292
b8df899a
JM
3293@html
3294</p>
3295<hr>
3296@end html
3297@heading @anchor{powerpc-*-eabiaix}powerpc-*-eabiaix
6cfb3f16 3298Embedded PowerPC system in big endian mode with @option{-mcall-aix} selected as
b8df899a
JM
3299the default.
3300
b8df899a
JM
3301@html
3302</p>
3303<hr>
3304@end html
3305@heading @anchor{powerpc-*-eabisim}powerpc-*-eabisim
3306Embedded PowerPC system in big endian mode for use in running under the
3307PSIM simulator.
3308
b8df899a
JM
3309@html
3310</p>
3311<hr>
3312@end html
3313@heading @anchor{powerpc-*-eabi}powerpc-*-eabi
3314Embedded PowerPC system in big endian mode.
3315
b8df899a
JM
3316@html
3317</p>
3318<hr>
3319@end html
3320@heading @anchor{powerpcle-*-elf}powerpcle-*-elf, powerpcle-*-sysv4
3321PowerPC system in little endian mode, running System V.4.
3322
b8df899a
JM
3323@html
3324</p>
3325<hr>
3326@end html
3327@heading @anchor{powerpcle-*-eabisim}powerpcle-*-eabisim
3328Embedded PowerPC system in little endian mode for use in running under
3329the PSIM simulator.
3330
3331@html
3332</p>
3333<hr>
3334@end html
3335@heading @anchor{powerpcle-*-eabi}powerpcle-*-eabi
3336Embedded PowerPC system in little endian mode.
3337
b8df899a
JM
3338@html
3339</p>
3340<hr>
3341@end html
3342@heading @anchor{powerpcle-*-winnt}powerpcle-*-winnt, powerpcle-*-pe
161d7b59 3343PowerPC system in little endian mode running Windows NT@.
b8df899a 3344
b8df899a
JM
3345@html
3346</p>
3347<hr>
3348@end html
3349@heading @anchor{romp-*-aos}romp-*-aos, romp-*-mach
3350The only operating systems supported for the IBM RT PC are AOS and
161d7b59 3351MACH@. GCC does not support AIX running on the RT@. We recommend you
f0523f02 3352compile GCC with an earlier version of itself; if you compile GCC
021c4bfd 3353with @command{hc}, the Metaware compiler, it will work, but you will get
b8df899a
JM
3354mismatches between the stage 2 and stage 3 compilers in various files.
3355These errors are minor differences in some floating-point constants and
3356can be safely ignored; the stage 3 compiler is correct.
f42974dc 3357
91abf72d
HP
3358@html
3359</p>
3360<hr>
3361@end html
3362@heading @anchor{s390-*-linux*}s390-*-linux*
3363S/390 system running Linux for S/390@.
3364
3365@html
3366</p>
3367<hr>
3368@end html
3369@heading @anchor{s390x-*-linux*}s390x-*-linux*
3370zSeries system (64 Bit) running Linux for zSeries@.
3371
f42974dc
DW
3372@html
3373</p>
3374<hr>
f42974dc 3375@end html
250d5688
RO
3376@c Please use Solaris 2 to refer to all release of Solaris, starting
3377@c with 2.0 until 2.6, 7, and 8. Solaris 1 was a marketing name for
3378@c SunOS 4 releases which we don't use to avoid confusion. Solaris
3379@c alone is too unspecific and must be avoided.
3380@heading @anchor{*-*-solaris2*}*-*-solaris2*
f42974dc 3381
250d5688 3382Sun does not ship a C compiler with Solaris 2. To bootstrap and install
dbd210ef
KC
3383GCC you first have to install a pre-built compiler, see our
3384@uref{binaries.html,,binaries page} for details.
f42974dc 3385
250d5688
RO
3386The Solaris 2 @command{/bin/sh} will often fail to configure
3387@file{libstdc++-v3}, @file{boehm-gc} or
021c4bfd 3388@file{libjava}. If you encounter this problem, set @env{CONFIG_SHELL} to
250d5688 3389@command{/bin/ksh} in your environment and run @command{make bootstrap} again.
37324a54 3390Another possibility that sometimes helps is to remove
250d5688 3391@file{*-*-solaris2*/config.cache}.
e6855a2d 3392
b8df899a 3393Solaris 2 comes with a number of optional OS packages. Some of these
dbd210ef
KC
3394packages are needed to use GCC fully, namely @code{SUNWarc},
3395@code{SUNWbtool}, @code{SUNWesu}, @code{SUNWhea}, @code{SUNWlibm},
3396@code{SUNWsprot}, and @code{SUNWtoo}. If you did not install all
250d5688 3397optional packages when installing Solaris 2, you will need to verify that
b8df899a
JM
3398the packages that GCC needs are installed.
3399
3400To check whether an optional package is installed, use
dbd210ef 3401the @command{pkginfo} command. To add an optional package, use the
250d5688 3402@command{pkgadd} command. For further details, see the Solaris 2
b8df899a
JM
3403documentation.
3404
250d5688 3405Trying to use the linker and other tools in
b8df899a
JM
3406@file{/usr/ucb} to install GCC has been observed to cause trouble.
3407For example, the linker may hang indefinitely. The fix is to remove
250d5688 3408@file{/usr/ucb} from your @env{PATH}.
f42974dc 3409
021c4bfd
RO
3410All releases of GNU binutils prior to 2.11.2 have known bugs on this
3411platform. We recommend the use of GNU binutils 2.11.2 or the vendor
3412tools (Sun @command{as}, Sun @command{ld}).
f42974dc 3413
250d5688
RO
3414Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
3415newer: @command{g++} will complain that types are missing. These headers assume
3416that omitting the type means @code{int}; this assumption worked for C89 but
3417is wrong for C++, and is now wrong for C99 also.
3418
13ba36b4 3419@command{g++} accepts such (invalid) constructs with the option
250d5688
RO
3420@option{-fpermissive}; it
3421will assume that any missing type is @code{int} (as defined by C89).
3422
3423There are patches for Solaris 2.6 (105633-56 or newer for SPARC,
3424106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC,
3425108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
3426108653-22 for Intel) that fix this bug.
f42974dc 3427
dbd210ef
KC
3428@html
3429</p>
3430<hr>
3431@end html
250d5688 3432@heading @anchor{sparc-sun-solaris2*}sparc-sun-solaris2*
dbd210ef 3433
250d5688 3434Sun @command{as} 4.x is broken in that it cannot cope with long symbol names.
dbd210ef
KC
3435A typical error message might look similar to the following:
3436
3437@samp{/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041:
3438error: can't compute value of an expression involving an external symbol.}
3439
250d5688
RO
3440This is Sun bug 4237974. This is fixed with patch 108908-02 for Solaris
34412.6 and has been fixed in later (5.x) versions of the assembler,
3442starting with Solaris 7.
dbd210ef 3443
03b272d2 3444Starting with Solaris 7, the operating system is capable of executing
edf1c8df
DM
344564-bit SPARC V9 binaries. GCC 3.1 and later should properly support
3446this. GCC 3.0 lacks the infrastructure necessary to support this
3447configuration properly. However, if all you want is code tuned for
3448the UltraSPARC CPU, you should try the @option{-mtune=ultrasparc}
3449option instead, which should be safe from those bugs and produce code
3450that, unlike full 64-bit code, can still run on non-UltraSPARC
3451machines.
03b272d2 3452
f42974dc
DW
3453@html
3454</p>
3455<hr>
f42974dc 3456@end html
ef88b07d 3457@heading @anchor{sparc-sun-solaris2.7}sparc-sun-solaris2.7
f42974dc 3458
250d5688 3459Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in
f42974dc
DW
3460the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8
3461and later, including all EGCS releases. Sun formerly recommended
3462107058-01 for all Solaris 7 users, but around 1999-09-01 it started to
3463recommend it only for people who use Sun's compilers.
f9047ed3 3464
f42974dc
DW
3465Here are some workarounds to this problem:
3466@itemize @bullet
3467@item
3468Do not install Sun patch 107058-01 until after Sun releases a
3469complete patch for bug 4210064. This is the simplest course to take,
3470unless you must also use Sun's C compiler. Unfortunately 107058-01
250d5688 3471is preinstalled on some new Solaris 7-based hosts, so you may have to
f42974dc 3472back it out.
f9047ed3 3473
f42974dc
DW
3474@item
3475Copy the original, unpatched Solaris 7
3476@command{/usr/ccs/bin/as} into
021c4bfd 3477@command{/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/3.0/as},
f42974dc
DW
3478adjusting the latter name to fit your local conventions and software
3479version numbers.
3480
3481@item
3482Install Sun patch 106950-03 (1999-05-25) or later. Nobody with
3483both 107058-01 and 106950-03 installed has reported the bug with GCC
3484and Sun's dynamic linker. This last course of action is riskiest,
3485for two reasons. First, you must install 106950 on all hosts that
3486run code generated by GCC; it doesn't suffice to install it only on
3487the hosts that run GCC itself. Second, Sun says that 106950-03 is
3488only a partial fix for bug 4210064, but Sun doesn't know whether the
161d7b59 3489partial fix is adequate for GCC@. Revision -08 or later should fix
250d5688
RO
3490the bug. The current (as of 2001-09-24) revision is -14, and is included in
3491the Solaris 7 Recommended Patch Cluster.
f9047ed3 3492@end itemize
f42974dc
DW
3493
3494
3495@html
3496<p>
3497<hr>
f42974dc 3498@end html
250d5688 3499@heading @anchor{*-*-solaris2.8}*-*-solaris2.8
f42974dc 3500
250d5688 3501The Solaris 8 linker fails to link some @samp{libjava} programs if
0e96b203 3502previously-installed GCC java libraries already exist in the configured
021c4bfd 3503prefix. For this reason, @samp{libgcj} is disabled by default on Solaris 8.
250d5688 3504If you use GNU @command{ld}, or if you don't have a previously-installed @samp{libgcj} in
0e96b203
AO
3505the same prefix, use @option{--enable-libgcj} to build and install the
3506Java libraries.
f42974dc
DW
3507
3508@html
3509<p>
3510<hr>
f42974dc 3511@end html
250d5688 3512@heading @anchor{sparc-sun-sunos4*}sparc-sun-sunos4*
f42974dc 3513
021c4bfd 3514A bug in the SunOS 4 linker will cause it to crash when linking
6cfb3f16 3515@option{-fPIC} compiled objects (and will therefore not allow you to build
f42974dc
DW
3516shared libraries).
3517
3518To fix this problem you can either use the most recent version of
021c4bfd 3519binutils or get the latest SunOS 4 linker patch (patch ID 100170-10)
f42974dc
DW
3520from Sun's patch site.
3521
dbd210ef
KC
3522Sometimes on a Sun 4 you may observe a crash in the program
3523@command{genflags} or @command{genoutput} while building GCC. This is said to
3524be due to a bug in @command{sh}. You can probably get around it by running
3525@command{genflags} or @command{genoutput} manually and then retrying the
3526@command{make}.
f42974dc
DW
3527
3528@html
3529</p>
3530<hr>
f42974dc 3531@end html
ef88b07d 3532@heading @anchor{sparc-unknown-linux-gnulibc1}sparc-unknown-linux-gnulibc1
f42974dc 3533
f9047ed3 3534It has been reported that you might need
021c4bfd 3535@uref{ftp://ftp.yggdrasil.com/private/hjl,,binutils 2.8.1.0.23}
f42974dc
DW
3536for this platform, too.
3537
3538
c6fa9728
JS
3539@html
3540</p>
3541<hr>
3542@end html
3543@heading @anchor{sparc-*-linux*}sparc-*-linux*
3544
3545GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4
3546or newer on this platform. All earlier binutils and glibc
3547releases mishandled unaligned relocations on @code{sparc-*-*} targets.
3548
3549
f42974dc
DW
3550@html
3551</p>
3552<hr>
f42974dc 3553@end html
ef88b07d 3554@heading @anchor{sparc64-*-*}sparc64-*-*
f42974dc
DW
3555
3556GCC version 2.95 is not able to compile code correctly for
3557@code{sparc64} targets. Users of the Linux kernel, at least,
e9d21442 3558can use the @code{sparc32} program to start up a new shell
f42974dc 3559invocation with an environment that causes @command{configure} to
021c4bfd 3560recognize (via @samp{uname -a}) the system as @samp{sparc-*-*} instead.
f42974dc 3561
e403b4bc
CR
3562@html
3563</p>
3564<hr>
3565@end html
3566@heading @anchor{sparcv9-*-solaris2*}sparcv9-*-solaris2*
3567
3568The following compiler flags must be specified in the configure
3569step in order to bootstrap this target with the Sun compiler:
3570
3571@example
3572 % CC="cc -xildoff -xarch=v9" @var{srcdir}/configure [@var{options}] [@var{target}]
3573@end example
3574
3575@option{-xildoff} turns off the incremental linker, and @option{-xarch=v9}
3576specifies the v9 architecture to the Sun linker and assembler.
f42974dc 3577
b8df899a
JM
3578@html
3579</p>
3580<hr>
3581@end html
3582@heading @anchor{#*-*-sysv*}*-*-sysv*
3583On System V release 3, you may get this error message
3584while linking:
3585
3586@smallexample
3587ld fatal: failed to write symbol name @var{something}
3588 in strings table for file @var{whatever}
3589@end smallexample
3590
021c4bfd 3591This probably indicates that the disk is full or your ulimit won't allow
b8df899a
JM
3592the file to be as large as it needs to be.
3593
3594This problem can also result because the kernel parameter @code{MAXUMEM}
3595is too small. If so, you must regenerate the kernel and make the value
3596much larger. The default value is reported to be 1024; a value of 32768
3597is said to work. Smaller values may also work.
3598
3599On System V, if you get an error like this,
3600
3601@example
3602/usr/local/lib/bison.simple: In function `yyparse':
3603/usr/local/lib/bison.simple:625: virtual memory exhausted
3604@end example
3605
3606@noindent
021c4bfd 3607that too indicates a problem with disk space, ulimit, or @code{MAXUMEM}.
b8df899a 3608
f85b8d1a
JM
3609On a System V release 4 system, make sure @file{/usr/bin} precedes
3610@file{/usr/ucb} in @code{PATH}. The @code{cc} command in
3611@file{/usr/ucb} uses libraries which have bugs.
b8df899a
JM
3612
3613@html
3614</p>
3615<hr>
3616@end html
3617@heading @anchor{vax-dec-ultrix}vax-dec-ultrix
8aeea6e6 3618Don't try compiling with VAX C (@code{vcc}). It produces incorrect code
b8df899a
JM
3619in some cases (for example, when @code{alloca} is used).
3620
b8df899a
JM
3621@html
3622</p>
3623<hr>
3624@end html
3625@heading @anchor{we32k-*-*}we32k-*-*
3626These computers are also known as the 3b2, 3b5, 3b20 and other similar
3627names. (However, the 3b1 is actually a 68000.)
3628
6cfb3f16 3629Don't use @option{-g} when compiling with the system's compiler. The
b8df899a
JM
3630system's linker seems to be unable to handle such a large program with
3631debugging information.
3632
3633The system's compiler runs out of capacity when compiling @file{stmt.c}
161d7b59 3634in GCC@. You can work around this by building @file{cpp} in GCC
b8df899a
JM
3635first, then use that instead of the system's preprocessor with the
3636system's C compiler to compile @file{stmt.c}. Here is how:
3637
3638@smallexample
3639mv /lib/cpp /lib/cpp.att
3640cp cpp /lib/cpp.gnu
3641echo '/lib/cpp.gnu -traditional $@{1+"$@@"@}' > /lib/cpp
3642chmod +x /lib/cpp
3643@end smallexample
3644
f0523f02 3645The system's compiler produces bad code for some of the GCC
b8df899a
JM
3646optimization files. So you must build the stage 2 compiler without
3647optimization. Then build a stage 3 compiler with optimization.
3648That executable should work. Here are the necessary commands:
3649
3650@smallexample
3651make LANGUAGES=c CC=stage1/xgcc CFLAGS="-Bstage1/ -g"
3652make stage2
3653make CC=stage2/xgcc CFLAGS="-Bstage2/ -g -O"
3654@end smallexample
3655
3656You may need to raise the ULIMIT setting to build a C++ compiler,
3657as the file @file{cc1plus} is larger than one megabyte.
3658
fd29f6ea
BW
3659@html
3660</p>
3661<hr>
3662@end html
3663@heading @anchor{xtensa-*-elf}xtensa-*-elf
3664
3665This target is intended for embedded Xtensa systems using the
3666@samp{newlib} C library. It uses ELF but does not support shared
3667objects. Designed-defined instructions specified via the
3668Tensilica Instruction Extension (TIE) language are only supported
3669through inline assembly.
3670
3671The Xtensa configuration information must be specified prior to
3672building GCC@. The @file{gcc/config/xtensa/xtensa-config.h} header
3673file contains the configuration information. If you created your
3674own Xtensa configuration with the Xtensa Processor Generator, the
3675downloaded files include a customized copy of this header file,
3676which you can use to replace the default header file.
3677
3678@html
3679</p>
3680<hr>
3681@end html
3682@heading @anchor{xtensa-*-linux*}xtensa-*-linux*
3683
3684This target is for Xtensa systems running GNU/Linux. It supports ELF
3685shared objects and the GNU C library (glibc). It also generates
3686position-independent code (PIC) regardless of whether the
3687@option{-fpic} or @option{-fPIC} options are used. In other
3688respects, this target is the same as the
3689@uref{#xtensa-*-elf,,@samp{xtensa-*-elf}} target.
3690
f42974dc
DW
3691@html
3692</p>
3693<hr>
f42974dc 3694@end html
ef88b07d 3695@heading @anchor{windows}Microsoft Windows (32 bit)
f42974dc 3696
f9047ed3 3697A port of GCC 2.95.x is included with the
f42974dc
DW
3698@uref{http://www.cygwin.com/,,Cygwin environment}.
3699
3700Current (as of early 2001) snapshots of GCC will build under Cygwin
3701without modification.
3702
3703@html
3704</p>
3705<hr>
f42974dc 3706@end html
ef88b07d 3707@heading @anchor{os2}OS/2
f42974dc
DW
3708
3709GCC does not currently support OS/2. However, Andrew Zabolotny has been
14976c58 3710working on a generic OS/2 port with pgcc. The current code can be found
f42974dc
DW
3711at @uref{http://www.goof.com/pcg/os2/,,http://www.goof.com/pcg/os2/}.
3712
f9047ed3 3713An older copy of GCC 2.8.1 is included with the EMX tools available at
f42974dc
DW
3714@uref{ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/,,
3715ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/}.
3716
3717@html
3718</p>
3719<hr>
f42974dc 3720@end html
ef88b07d 3721@heading @anchor{older}Older systems
f9047ed3
JM
3722
3723GCC contains support files for many older (1980s and early
37241990s) Unix variants. For the most part, support for these systems
3725has not been deliberately removed, but it has not been maintained for
3726several years and may suffer from bitrot. Support from some systems
3727has been removed from GCC 3: fx80, ns32-ns-genix, pyramid, tahoe,
3728gmicro, spur; most of these targets had not been updated since GCC
f42974dc 3729version 1.
f9047ed3
JM
3730
3731Support for older systems as targets for cross-compilation is less
3732problematic than support for them as hosts for GCC; if an enthusiast
3733wishes to make such a target work again (including resurrecting any
3734of the targets that never worked with GCC 2, starting from the last
3735CVS version before they were removed), patches
3736@uref{../contribute.html,,following the usual requirements}
3737would be likely to be accepted, since they should not affect the
f42974dc 3738support for more modern targets.
f9047ed3
JM
3739
3740Support for old systems as hosts for GCC can cause problems if the
3741workarounds for compiler, library and operating system bugs affect the
161d7b59 3742cleanliness or maintainability of the rest of GCC@. In some cases, to
f9047ed3
JM
3743bring GCC up on such a system, if still possible with current GCC, may
3744require first installing an old version of GCC which did work on that
3745system, and using it to compile a more recent GCC, to avoid bugs in
3746the vendor compiler. Old releases of GCC 1 and GCC 2 are available in
021c4bfd 3747the @file{old-releases} directory on the
f9047ed3 3748@uref{../mirrors.html,,GCC mirror sites}. Header bugs may generally
38209993
LG
3749be avoided using @command{fixincludes}, but bugs or deficiencies in
3750libraries and the operating system may still cause problems.
f9047ed3
JM
3751
3752For some systems, old versions of GNU binutils may also be useful,
021c4bfd 3753and are available from @file{pub/binutils/old-releases} on
f42974dc 3754@uref{http://sources.redhat.com/mirrors.html,,sources.redhat.com mirror sites}.
f9047ed3
JM
3755
3756Some of the information on specific systems above relates to
3757such older systems, but much of the information
3758about GCC on such systems (which may no longer be applicable to
f42974dc 3759current GCC) is to be found in the GCC texinfo manual.
f9047ed3 3760
f42974dc
DW
3761@html
3762</p>
3763<hr>
f42974dc 3764@end html
250d5688 3765@heading @anchor{elf_targets}all ELF targets (SVR4, Solaris 2, etc.)
f42974dc 3766
38209993
LG
3767C++ support is significantly better on ELF targets if you use the
3768@uref{./configure.html#with-gnu-ld,,GNU linker}; duplicate copies of
3769inlines, vtables and template instantiations will be discarded
3770automatically.
f42974dc
DW
3771
3772
3773@html
3774</p>
3775<hr>
3776<p>
3777@end html
3778@ifhtml
3779@uref{./index.html,,Return to the GCC Installation page}
3780@end ifhtml
3781@end ifset
3782
73e2155a
JM
3783@c ***Old documentation******************************************************
3784@ifset oldhtml
3785@include install-old.texi
3786@html
3787</p>
3788<hr>
3789<p>
3790@end html
3791@ifhtml
3792@uref{./index.html,,Return to the GCC Installation page}
3793@end ifhtml
3794@end ifset
3795
aed5964b
JM
3796@c ***GFDL********************************************************************
3797@ifset gfdlhtml
3798@include fdl.texi
3799@html
3800</p>
3801<hr>
3802<p>
3803@end html
3804@ifhtml
3805@uref{./index.html,,Return to the GCC Installation page}
3806@end ifhtml
3807@end ifset
3808
f42974dc
DW
3809@c ***************************************************************************
3810@c Part 6 The End of the Document
3811@ifinfo
3812@comment node-name, next, previous, up
aed5964b 3813@node Concept Index, , GNU Free Documentation License, Top
f42974dc
DW
3814@end ifinfo
3815
3816@ifinfo
3817@unnumbered Concept Index
3818
3819@printindex cp
3820
3821@contents
3822@end ifinfo
3823@bye
This page took 0.66847 seconds and 5 git commands to generate.