source: trunk/src/gcc/INSTALL/configure.html@ 1567

Last change on this file since 1567 was 1392, checked in by bird, 21 years ago

This commit was generated by cvs2svn to compensate for changes in r1391,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 35.8 KB
Line 
1 <html lang="en">
2<head>
3<title>Installing GCC: Configuration</title>
4<meta http-equiv="Content-Type" content="text/html">
5<meta name="description" content="Installing GCC: Configuration">
6<meta name="generator" content="makeinfo 4.6">
7<!--
8Copyright &copy; 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
91999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
10<br><p>
11 <p>Permission is granted to copy, distribute and/or modify this document
12under the terms of the GNU Free Documentation License, Version 1.2 or
13any later version published by the Free Software Foundation; with no
14Invariant Sections, the Front-Cover texts being (a) (see below), and
15with the Back-Cover Texts being (b) (see below). A copy of the
16license is included in the section entitled "<a href="./gfdl.html">GNU Free Documentation License</a>".
17
18 <p>(a) The FSF's Front-Cover Text is:
19
20 <p>A GNU Manual
21
22 <p>(b) The FSF's Back-Cover Text is:
23
24 <p>You have freedom to copy and modify this GNU Manual, like GNU
25 software. Copies published by the Free Software Foundation raise
26 funds for GNU development.-->
27<meta http-equiv="Content-Style-Type" content="text/css">
28<style type="text/css"><!--
29 pre.display { font-family:inherit }
30 pre.format { font-family:inherit }
31 pre.smalldisplay { font-family:inherit; font-size:smaller }
32 pre.smallformat { font-family:inherit; font-size:smaller }
33 pre.smallexample { font-size:smaller }
34 pre.smalllisp { font-size:smaller }
35--></style>
36</head>
37<body>
38<h1 class="settitle">Installing GCC: Configuration</h1>
39Like most GNU software, GCC must be configured before it can be built.
40This document describes the recommended configuration procedure
41for both native and cross targets.
42
43 <p>We use <var>srcdir</var> to refer to the toplevel source directory for
44GCC; we use <var>objdir</var> to refer to the toplevel build/object directory.
45
46 <p>If you obtained the sources via CVS, <var>srcdir</var> must refer to the top
47<code>gcc</code> directory, the one where the <code>MAINTAINERS</code> can be found,
48and not its <code>gcc</code> subdirectory, otherwise the build will fail.
49
50 <p>If either <var>srcdir</var> or <var>objdir</var> is located on an automounted NFS
51file system, the shell's built-in <code>pwd</code> command will return
52temporary pathnames. Using these can lead to various sorts of build
53problems. To avoid this issue, set the <code>PWDCMD</code> environment
54variable to an automounter-aware <code>pwd</code> command, e.g.,
55<code>pawd</code> or <code>amq -w</code>, during the configuration and build
56phases.
57
58 <p>First, we <strong>highly</strong> recommend that GCC be built into a
59separate directory than the sources which does <strong>not</strong> reside
60within the source tree. This is how we generally build GCC; building
61where <var>srcdir</var> == <var>objdir</var> should still work, but doesn't
62get extensive testing; building where <var>objdir</var> is a subdirectory
63of <var>srcdir</var> is unsupported.
64
65 <p>If you have previously built GCC in the same directory for a
66different target machine, do <code>make distclean</code> to delete all files
67that might be invalid. One of the files this deletes is <code>Makefile</code>;
68if <code>make distclean</code> complains that <code>Makefile</code> does not exist
69or issues a message like "don't know how to make distclean" it probably
70means that the directory is already suitably clean. However, with the
71recommended method of building in a separate <var>objdir</var>, you should
72simply use a different <var>objdir</var> for each target.
73
74 <p>Second, when configuring a native system, either <code>cc</code> or
75<code>gcc</code> must be in your path or you must set <code>CC</code> in
76your environment before running configure. Otherwise the configuration
77scripts may fail.
78
79 <p>Note that the bootstrap compiler and the resulting GCC must be link
80compatible, else the bootstrap will fail with linker errors about
81incompatible object file formats. Several multilibed targets are
82affected by this requirement, see
83<a href="specific.html">host/target specific installation notes</a>.
84
85 <p>To configure GCC:
86
87<pre class="example"> % mkdir <var>objdir</var>
88 % cd <var>objdir</var>
89 % <var>srcdir</var>/configure [<var>options</var>] [<var>target</var>]
90 </pre>
91
92<h3 class="heading"><a name="TOC0"></a>Target specification</h3>
93
94 <ul>
95<li>GCC has code to correctly determine the correct value for <var>target</var>
96for nearly all native systems. Therefore, we highly recommend you not
97provide a configure target when configuring a native compiler.
98
99 <li><var>target</var> must be specified as <code>--target=</code><var>target</var><code></code>
100when configuring a cross compiler; examples of valid targets would be
101i960-rtems, m68k-coff, sh-elf, etc.
102
103 <li>Specifying just <var>target</var> instead of <code>--target=</code><var>target</var><code></code>
104implies that the host defaults to <var>target</var>.
105</ul>
106
107<h3 class="heading"><a name="TOC1"></a>Options specification</h3>
108
109<p>Use <var>options</var> to override several configure time options for
110GCC. A list of supported <var>options</var> follows; <code>configure
111--help</code> may list other options, but those not listed below may not
112work and should not normally be used.
113
114 <dl>
115<dt><code>--prefix=</code><var>dirname</var><code></code>
116 <dd>Specify the toplevel installation
117directory. This is the recommended way to install the tools into a directory
118other than the default. The toplevel installation directory defaults to
119<code>/usr/local</code>.
120
121 <p>We <strong>highly</strong> recommend against <var>dirname</var> being the same or a
122subdirectory of <var>objdir</var> or vice versa. If specifying a directory
123beneath a user's home directory tree, some shells will not expand
124<var>dirname</var> correctly if it contains the <code>~</code> metacharacter; use
125<code>$HOME</code> instead.
126
127 <p>These additional options control where certain parts of the distribution
128are installed. Normally you should not need to use these options.
129 <dl>
130<dt><code>--exec-prefix=</code><var>dirname</var><code></code>
131 <dd>Specify the toplevel installation directory for architecture-dependent
132files. The default is <code></code><var>prefix</var><code></code>.
133
134 <br><dt><code>--bindir=</code><var>dirname</var><code></code>
135 <dd>Specify the installation directory for the executables called by users
136(such as <code>gcc</code> and <code>g++</code>). The default is
137<code></code><var>exec-prefix</var><code>/bin</code>.
138
139 <br><dt><code>--libdir=</code><var>dirname</var><code></code>
140 <dd>Specify the installation directory for object code libraries and
141internal parts of GCC. The default is <code></code><var>exec-prefix</var><code>/lib</code>.
142
143 <br><dt><code>--with-slibdir=</code><var>dirname</var><code></code>
144 <dd>Specify the installation directory for the shared libgcc library. The
145default is <code></code><var>libdir</var><code></code>.
146
147 <br><dt><code>--infodir=</code><var>dirname</var><code></code>
148 <dd>Specify the installation directory for documentation in info format.
149The default is <code></code><var>prefix</var><code>/info</code>.
150
151 <br><dt><code>--datadir=</code><var>dirname</var><code></code>
152 <dd>Specify the installation directory for some architecture-independent
153data files referenced by GCC. The default is <code></code><var>prefix</var><code>/share</code>.
154
155 <br><dt><code>--mandir=</code><var>dirname</var><code></code>
156 <dd>Specify the installation directory for manual pages. The default is
157<code></code><var>prefix</var><code>/man</code>. (Note that the manual pages are only extracts from
158the full GCC manuals, which are provided in Texinfo format. The manpages
159are derived by an automatic conversion process from parts of the full
160manual.)
161
162 <br><dt><code>--with-gxx-include-dir=</code><var>dirname</var><code></code>
163 <dd>Specify
164the installation directory for G++ header files. The default is
165<code></code><var>prefix</var><code>/include/g++-v3</code>.
166
167 </dl>
168
169 <br><dt><code>--program-prefix=</code><var>prefix</var><code></code>
170 <dd>GCC supports some transformations of the names of its programs when
171installing them. This option prepends <var>prefix</var> to the names of
172programs to install in <var>bindir</var> (see above). For example, specifying
173<code>--program-prefix=foo-</code> would result in <code>gcc</code>
174being installed as <code>/usr/local/bin/foo-gcc</code>.
175
176 <br><dt><code>--program-suffix=</code><var>suffix</var><code></code>
177 <dd>Appends <var>suffix</var> to the names of programs to install in <var>bindir</var>
178(see above). For example, specifying <code>--program-suffix=-3.1</code>
179would result in <code>gcc</code> being installed as
180<code>/usr/local/bin/gcc-3.1</code>.
181
182 <br><dt><code>--program-transform-name=</code><var>pattern</var><code></code>
183 <dd>Applies the <code>sed</code> script <var>pattern</var> to be applied to the names
184of programs to install in <var>bindir</var> (see above). <var>pattern</var> has to
185consist of one or more basic <code>sed</code> editing commands, separated by
186semicolons. For example, if you want the <code>gcc</code> program name to be
187transformed to the installed program <code>/usr/local/bin/myowngcc</code> and
188the <code>g++</code> program name to be transformed to
189<code>/usr/local/bin/gspecial++</code> without changing other program names,
190you could use the pattern
191<code>--program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/'</code>
192to achieve this effect.
193
194 <p>All three options can be combined and used together, resulting in more
195complex conversion patterns. As a basic rule, <var>prefix</var> (and
196<var>suffix</var>) are prepended (appended) before further transformations
197can happen with a special transformation script <var>pattern</var>.
198
199 <p>As currently implemented, this option only takes effect for native
200builds; cross compiler binaries' names are not transformed even when a
201transformation is explicitly asked for by one of these options.
202
203 <p>For native builds, some of the installed programs are also installed
204with the target alias in front of their name, as in
205<code>i686-pc-linux-gnu-gcc</code>. All of the above transformations happen
206before the target alias is prepended to the name - so, specifying
207<code>--program-prefix=foo-</code> and <code>program-suffix=-3.1</code>, the
208resulting binary would be installed as
209<code>/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1</code>.
210
211 <p>As a last shortcoming, none of the installed Ada programs are
212transformed yet, which will be fixed in some time.
213
214 <br><dt><code>--with-local-prefix=</code><var>dirname</var><code></code>
215 <dd>Specify the
216installation directory for local include files. The default is
217<code>/usr/local</code>. Specify this option if you want the compiler to
218search directory <code></code><var>dirname</var><code>/include</code> for locally installed
219header files <em>instead</em> of <code>/usr/local/include</code>.
220
221 <p>You should specify <code>--with-local-prefix</code> <strong>only</strong> if your
222site has a different convention (not <code>/usr/local</code>) for where to put
223site-specific files.
224
225 <p>The default value for <code>--with-local-prefix</code> is <code>/usr/local</code>
226regardless of the value of <code>--prefix</code>. Specifying
227<code>--prefix</code> has no effect on which directory GCC searches for
228local header files. This may seem counterintuitive, but actually it is
229logical.
230
231 <p>The purpose of <code>--prefix</code> is to specify where to <em>install
232GCC</em>. The local header files in <code>/usr/local/include</code>--if you put
233any in that directory--are not part of GCC. They are part of other
234programs--perhaps many others. (GCC installs its own header files in
235another directory which is based on the <code>--prefix</code> value.)
236
237 <p>Both the local-prefix include directory and the GCC-prefix include
238directory are part of GCC's "system include" directories. Although these
239two directories are not fixed, they need to be searched in the proper
240order for the correct processing of the include_next directive. The
241local-prefix include directory is searched before the GCC-prefix
242include directory. Another characteristic of system include directories
243is that pedantic warnings are turned off for headers in these directories.
244
245 <p>Some autoconf macros add <code>-I </code><var>directory</var><code></code> options to the
246compiler command line, to ensure that directories containing installed
247packages' headers are searched. When <var>directory</var> is one of GCC's
248system include directories, GCC will ignore the option so that system
249directories continue to be processed in the correct order. This
250may result in a search order different from what was specified but the
251directory will still be searched.
252
253 <p>GCC automatically searches for ordinary libraries using
254<code>GCC_EXEC_PREFIX</code>. Thus, when the same installation prefix is
255used for both GCC and packages, GCC will automatically search for
256both headers and libraries. This provides a configuration that is
257easy to use. GCC behaves in a manner similar to that when it is
258installed as a system compiler in <code>/usr</code>.
259
260 <p>Sites that need to install multiple versions of GCC may not want to
261use the above simple configuration. It is possible to use the
262<code>--program-prefix</code>, <code>--program-suffix</code> and
263<code>--program-transform-name</code> options to install multiple versions
264into a single directory, but it may be simpler to use different prefixes
265and the <code>--with-local-prefix</code> option to specify the location of the
266site-specific files for each version. It will then be necessary for
267users to specify explicitly the location of local site libraries
268(e.g., with <code>LIBRARY_PATH</code>).
269
270 <p>The same value can be used for both <code>--with-local-prefix</code> and
271<code>--prefix</code> provided it is not <code>/usr</code>. This can be used
272to avoid the default search of <code>/usr/local/include</code>.
273
274 <p><strong>Do not</strong> specify <code>/usr</code> as the <code>--with-local-prefix</code>!
275The directory you use for <code>--with-local-prefix</code> <strong>must not</strong>
276contain any of the system's standard header files. If it did contain
277them, certain programs would be miscompiled (including GNU Emacs, on
278certain targets), because this would override and nullify the header
279file corrections made by the <code>fixincludes</code> script.
280
281 <p>Indications are that people who use this option use it based on mistaken
282ideas of what it is for. People use it as if it specified where to
283install part of GCC. Perhaps they make this assumption because
284installing GCC creates the directory.
285
286 <br><dt><code>--enable-shared[=</code><var>package</var><code>[,...]]</code>
287 <dd>Build shared versions of libraries, if shared libraries are supported on
288the target platform. Unlike GCC 2.95.x and earlier, shared libraries
289are enabled by default on all platforms that support shared libraries,
290except for <code>libobjc</code> which is built as a static library only by
291default.
292
293 <p>If a list of packages is given as an argument, build shared libraries
294only for the listed packages. For other packages, only static libraries
295will be built. Package names currently recognized in the GCC tree are
296<code>libgcc</code> (also known as <code>gcc</code>), <code>libstdc++</code> (not
297<code>libstdc++-v3</code>), <code>libffi</code>, <code>zlib</code>, <code>boehm-gc</code> and
298<code>libjava</code>. Note that <code>libobjc</code> does not recognize itself by
299any name, so, if you list package names in <code>--enable-shared</code>,
300you will only get static Objective-C libraries. <code>libf2c</code> and
301<code>libiberty</code> do not support shared libraries at all.
302
303 <p>Use <code>--disable-shared</code> to build only static libraries. Note that
304<code>--disable-shared</code> does not accept a list of package names as
305argument, only <code>--enable-shared</code> does.
306
307 <br><dt><code><a name="with-gnu-as"></a>--with-gnu-as</code>
308 <dd>Specify that the compiler should assume that the
309assembler it finds is the GNU assembler. However, this does not modify
310the rules to find an assembler and will result in confusion if the
311assembler found is not actually the GNU assembler. (Confusion may also
312result if the compiler finds the GNU assembler but has not been
313configured with <code>--with-gnu-as</code>.) If you have more than one
314assembler installed on your system, you may want to use this option in
315connection with <code>--with-as=</code><var>pathname</var><code></code>.
316
317 <p>The following systems are the only ones where it makes a difference
318whether you use the GNU assembler. On any other system,
319<code>--with-gnu-as</code> has no effect.
320
321 <ul>
322<li><code>hppa1.0-</code><var>any</var><code>-</code><var>any</var><code></code>
323<li><code>hppa1.1-</code><var>any</var><code>-</code><var>any</var><code></code>
324<li><code>i386-</code><var>any</var><code>-sysv</code>
325<li><code>m68k-bull-sysv</code>
326<li><code>m68k-hp-hpux</code>
327<li><code>m68000-hp-hpux</code>
328<li><code>m68000-att-sysv</code>
329<li><code></code><var>any</var><code>-lynx-lynxos</code>
330<li><code>mips-</code><var>any</var><code></code>
331<li><code>sparc-sun-solaris2.</code><var>any</var><code></code>
332<li><code>sparc64-</code><var>any</var><code>-solaris2.</code><var>any</var><code></code>
333</ul>
334
335 <p>On the systems listed above (except for the HP-PA, the SPARC, for ISC on
336the 386, and for <code>mips-sgi-irix5.*</code>), if you use the GNU assembler,
337you should also use the GNU linker (and specify <code>--with-gnu-ld</code>).
338
339 <br><dt><code><a name="with-as"></a>--with-as=</code><var>pathname</var><code></code>
340 <dd>Specify that the
341compiler should use the assembler pointed to by <var>pathname</var>, rather
342than the one found by the standard rules to find an assembler, which
343are:
344 <ul>
345<li>Check the
346<code></code><var>exec_prefix</var><code>/lib/gcc-lib/</code><var>target</var><code>/</code><var>version</var><code></code>
347directory, where <var>exec_prefix</var> defaults to <var>prefix</var> which
348defaults to <code>/usr/local</code> unless overridden by the
349<code>--prefix=</code><var>pathname</var><code></code> switch described above. <var>target</var> is the
350target system triple, such as <code>sparc-sun-solaris2.7</code>, and
351<var>version</var> denotes the GCC version, such as 3.0.
352<li>Check operating system specific directories (e.g. <code>/usr/ccs/bin</code> on
353Sun Solaris 2).
354</ul>
355 Note that these rules do not check for the value of <code>PATH</code>. You may
356want to use <code>--with-as</code> if no assembler is installed in the
357directories listed above, or if you have multiple assemblers installed
358and want to choose one that is not found by the above rules.
359
360 <br><dt><code><a name="with-gnu-ld"></a>--with-gnu-ld</code>
361 <dd>Same as <a href="#with-gnu-as"><code>--with-gnu-as</code></a>
362but for the linker.
363
364 <br><dt><code>--with-ld=</code><var>pathname</var><code></code>
365 <dd>Same as <a href="#with-as"><code>--with-as</code></a>
366but for the linker.
367
368 <br><dt><code>--with-stabs</code>
369 <dd>Specify that stabs debugging
370information should be used instead of whatever format the host normally
371uses. Normally GCC uses the same debug format as the host system.
372
373 <p>On MIPS based systems and on Alphas, you must specify whether you want
374GCC to create the normal ECOFF debugging format, or to use BSD-style
375stabs passed through the ECOFF symbol table. The normal ECOFF debug
376format cannot fully handle languages other than C. BSD stabs format can
377handle other languages, but it only works with the GNU debugger GDB.
378
379 <p>Normally, GCC uses the ECOFF debugging format by default; if you
380prefer BSD stabs, specify <code>--with-stabs</code> when you configure GCC.
381
382 <p>No matter which default you choose when you configure GCC, the user
383can use the <code>-gcoff</code> and <code>-gstabs+</code> options to specify explicitly
384the debug format for a particular compilation.
385
386 <p><code>--with-stabs</code> is meaningful on the ISC system on the 386, also, if
387<code>--with-gas</code> is used. It selects use of stabs debugging
388information embedded in COFF output. This kind of debugging information
389supports C++ well; ordinary COFF debugging information does not.
390
391 <p><code>--with-stabs</code> is also meaningful on 386 systems running SVR4. It
392selects use of stabs debugging information embedded in ELF output. The
393C++ compiler currently (2.6.0) does not support the DWARF debugging
394information normally used on 386 SVR4 platforms; stabs provide a
395workable alternative. This requires gas and gdb, as the normal SVR4
396tools can not generate or interpret stabs.
397
398 <br><dt><code>--disable-multilib</code>
399 <dd>Specify that multiple target
400libraries to support different target variants, calling
401conventions, etc should not be built. The default is to build a
402predefined set of them.
403
404 <p>Some targets provide finer-grained control over which multilibs are built
405(e.g., <code>--disable-softfloat</code>):
406 <dl>
407<dt><code>arc-*-elf*</code>
408 <dd>biendian.
409
410 <br><dt><code>arm-*-*</code>
411 <dd>fpu, 26bit, underscore, interwork, biendian, nofmult.
412
413 <br><dt><code>m68*-*-*</code>
414 <dd>softfloat, m68881, m68000, m68020.
415
416 <br><dt><code>mips*-*-*</code>
417 <dd>single-float, biendian, softfloat.
418
419 <br><dt><code>powerpc*-*-*, rs6000*-*-*</code>
420 <dd>aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian,
421sysv, aix.
422
423 </dl>
424
425 <br><dt><code>--enable-threads</code>
426 <dd>Specify that the target
427supports threads. This affects the Objective-C compiler and runtime
428library, and exception handling for other languages like C++ and Java.
429On some systems, this is the default.
430
431 <p>In general, the best (and, in many cases, the only known) threading
432model available will be configured for use. Beware that on some
433systems, gcc has not been taught what threading models are generally
434available for the system. In this case, <code>--enable-threads</code> is an
435alias for <code>--enable-threads=single</code>.
436
437 <br><dt><code>--disable-threads</code>
438 <dd>Specify that threading support should be disabled for the system.
439This is an alias for <code>--enable-threads=single</code>.
440
441 <br><dt><code>--enable-threads=</code><var>lib</var><code></code>
442 <dd>Specify that
443<var>lib</var> is the thread support library. This affects the Objective-C
444compiler and runtime library, and exception handling for other languages
445like C++ and Java. The possibilities for <var>lib</var> are:
446
447 <dl>
448<dt><code>aix</code>
449 <dd>AIX thread support.
450<br><dt><code>dce</code>
451 <dd>DCE thread support.
452<br><dt><code>mach</code>
453 <dd>Generic MACH thread support, known to work on NeXTSTEP. (Please note
454that the file needed to support this configuration, <code>gthr-mach.h</code>, is
455missing and thus this setting will cause a known bootstrap failure.)
456<br><dt><code>no</code>
457 <dd>This is an alias for <code>single</code>.
458<br><dt><code>posix</code>
459 <dd>Generic POSIX thread support.
460<br><dt><code>pthreads</code>
461 <dd>Same as <code>posix</code> on arm*-*-linux*, *-*-chorusos* and *-*-freebsd*
462only. A future release of gcc might remove this alias or extend it
463to all platforms.
464<br><dt><code>rtems</code>
465 <dd>RTEMS thread support.
466<br><dt><code>single</code>
467 <dd>Disable thread support, should work for all platforms.
468<br><dt><code>solaris</code>
469 <dd>Sun Solaris 2 thread support.
470<br><dt><code>vxworks</code>
471 <dd>VxWorks thread support.
472<br><dt><code>win32</code>
473 <dd>Microsoft Win32 API thread support.
474</dl>
475
476 <br><dt><code>--with-cpu=</code><var>cpu</var><code></code>
477 <dd>Specify which cpu variant the
478compiler should generate code for by default. This is currently
479only supported on some ports, specifically arm, powerpc, and
480SPARC. If configure does not recognize the model name (e.g. arm700,
481603e, or ultrasparc) you provide, please check the
482<code>gcc/config.gcc</code> script for a complete list of supported models.
483
484 <br><dt><code>--enable-altivec</code>
485 <dd>Specify that the target supports AltiVec vector enhancements. This
486option will adjust the ABI for AltiVec enhancements, as well as generate
487AltiVec code when appropriate. This option is only available for
488PowerPC systems.
489
490 <br><dt><code>--enable-target-optspace</code>
491 <dd>Specify that target
492libraries should be optimized for code space instead of code speed.
493This is the default for the m32r platform.
494
495 <br><dt><code>--disable-cpp</code>
496 <dd>Specify that a user visible <code>cpp</code> program should not be installed.
497
498 <br><dt><code>--with-cpp-install-dir=</code><var>dirname</var><code></code>
499 <dd>Specify that the user visible <code>cpp</code> program should be installed
500in <code></code><var>prefix</var><code>/</code><var>dirname</var><code>/cpp</code>, in addition to <var>bindir</var>.
501
502 <br><dt><code>--enable-initfini-array</code>
503 <dd>Force the use of sections <code>.init_array</code> and <code>.fini_array</code>
504(instead of <code>.init</code> and <code>.fini</code>) for constructors and
505destructors. Option <code>--disable-initfini-array</code> has the
506opposite effect. If neither option is specified, the configure script
507will try to guess whether the <code>.init_array</code> and
508<code>.fini_array</code> sections are supported and, if they are, use them.
509
510 <br><dt><code>--enable-maintainer-mode</code>
511 <dd>The build rules that
512regenerate the GCC master message catalog <code>gcc.pot</code> are normally
513disabled. This is because it can only be rebuilt if the complete source
514tree is present. If you have changed the sources and want to rebuild the
515catalog, configuring with <code>--enable-maintainer-mode</code> will enable
516this. Note that you need a recent version of the <code>gettext</code> tools
517to do so.
518
519 <br><dt><code>--enable-version-specific-runtime-libs</code>
520 <dd>Specify
521that runtime libraries should be installed in the compiler specific
522subdirectory (<code></code><var>libsubdir</var><code></code>) rather than the usual places. In
523addition, <code>libstdc++</code>'s include files will be installed in
524<code></code><var>libsubdir</var><code>/include/g++</code> unless you overruled it by using
525<code>--with-gxx-include-dir=</code><var>dirname</var><code></code>. Using this option is
526particularly useful if you intend to use several versions of GCC in
527parallel. This is currently supported by <code>libf2c</code> and
528<code>libstdc++</code>, and is the default for <code>libobjc</code> which cannot be
529changed in this case.
530
531 <br><dt><code>--enable-languages=</code><var>lang1</var><code>,</code><var>lang2</var><code>,...</code>
532 <dd>Specify that only a particular subset of compilers and
533their runtime libraries should be built. For a list of valid values for
534<var>langN</var> you can issue the following command in the
535<code>gcc</code> directory of your GCC source tree:<br>
536 <pre class="example"> grep language= */config-lang.in
537 </pre>
538 Currently, you can use any of the following:
539<code>ada</code>, <code>c</code>, <code>c++</code>, <code>f77</code>, <code>java</code>, <code>objc</code>.
540Building the Ada compiler has special requirements, see below.<br>
541If you do not pass this flag, all languages available in the <code>gcc</code>
542sub-tree will be configured. Re-defining <code>LANGUAGES</code> when calling
543<code>make bootstrap</code> <strong>does not</strong> work anymore, as those
544language sub-directories might not have been configured!
545
546 <br><dt><code>--disable-libgcj</code>
547 <dd>Specify that the run-time libraries
548used by GCJ should not be built. This is useful in case you intend
549to use GCJ with some other run-time, or you're going to install it
550separately, or it just happens not to build on your particular
551machine. In general, if the Java front end is enabled, the GCJ
552libraries will be enabled too, unless they're known to not work on
553the target platform. If GCJ is enabled but <code>libgcj</code> isn't built, you
554may need to port it; in this case, before modifying the top-level
555<code>configure.in</code> so that <code>libgcj</code> is enabled by default on this platform,
556you may use <code>--enable-libgcj</code> to override the default.
557
558 <br><dt><code>--with-dwarf2</code>
559 <dd>Specify that the compiler should
560use DWARF 2 debugging information as the default.
561
562 <br><dt><code>--enable-win32-registry</code>
563 <dd><dt><code>--enable-win32-registry=</code><var>key</var><code></code>
564 <dd><dt><code>--disable-win32-registry</code>
565 <dd>The <code>--enable-win32-registry</code> option enables Windows-hosted GCC
566to look up installations paths in the registry using the following key:
567
568 <pre class="smallexample"> <code>HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\</code><var>key</var><code></code>
569 </pre>
570
571 <p><var>key</var> defaults to GCC version number, and can be overridden by the
572<code>--enable-win32-registry=</code><var>key</var><code></code> option. Vendors and distributors
573who use custom installers are encouraged to provide a different key,
574perhaps one comprised of vendor name and GCC version number, to
575avoid conflict with existing installations. This feature is enabled
576by default, and can be disabled by <code>--disable-win32-registry</code>
577option. This option has no effect on the other hosts.
578
579 <br><dt><code>--nfp</code>
580 <dd>Specify that the machine does not have a floating point unit. This
581option only applies to <code>m68k-sun-sunos</code><var>n</var><code></code>. On any other
582system, <code>--nfp</code> has no effect.
583
584 <br><dt><code>--enable-checking</code>
585 <dd><dt><code>--enable-checking=</code><var>list</var><code></code>
586 <dd>When you specify this option, the compiler is built to perform checking
587of tree node types when referencing fields of that node, and some other
588internal consistency checks. This does not change the generated code,
589but adds error checking within the compiler. This will slow down the
590compiler and may only work properly if you are building the compiler
591with GCC. This is on by default when building from CVS or snapshots,
592but off for releases. More control over the checks may be had by
593specifying <var>list</var>; the categories of checks available are
594<code>misc</code>, <code>tree</code>, <code>gc</code>, <code>rtl</code>, <code>rtlflag</code>,
595<code>gcac</code> and <code>valgrind</code>. The check <code>valgrind</code> requires the
596external <code>valgrind</code> simulator, available from
597<a href="http://developer.kde.org/~sewardj/">http://developer.kde.org/~sewardj/</a>. The default when <var>list</var> is
598not specified is <code>misc,tree,gc,rtlflag</code>; the checks <code>rtl</code>,
599<code>gcac</code> and <code>valgrind</code> are very expensive.
600
601 <br><dt><code>--enable-coverage</code>
602 <dd><dt><code>--enable-coverage=</code><var>level</var><code></code>
603 <dd>With this option, the compiler is built to collect self coverage
604information, every time it is run. This is for internal development
605purposes, and only works when the compiler is being built with gcc. The
606<var>level</var> argument controls whether the compiler is built optimized or
607not, values are <code>opt</code> and <code>noopt</code>. For coverage analysis you
608want to disable optimization, for performance analysis you want to
609enable optimization. When coverage is enabled, the default level is
610without optimization.
611
612 <br><dt><code>--enable-nls</code>
613 <dd><dt><code>--disable-nls</code>
614 <dd>The <code>--enable-nls</code> option enables Native Language Support (NLS),
615which lets GCC output diagnostics in languages other than American
616English. Native Language Support is enabled by default if not doing a
617canadian cross build. The <code>--disable-nls</code> option disables NLS.
618
619 <br><dt><code>--with-included-gettext</code>
620 <dd>If NLS is enabled, the <code>--with-included-gettext</code> option causes the build
621procedure to prefer its copy of GNU <code>gettext</code>.
622
623 <br><dt><code>--with-catgets</code>
624 <dd>If NLS is enabled, and if the host lacks <code>gettext</code> but has the
625inferior <code>catgets</code> interface, the GCC build procedure normally
626ignores <code>catgets</code> and instead uses GCC's copy of the GNU
627<code>gettext</code> library. The <code>--with-catgets</code> option causes the
628build procedure to use the host's <code>catgets</code> in this situation.
629
630 <br><dt><code>--with-libiconv-prefix=</code><var>dir</var><code></code>
631 <dd>Search for libiconv header files in <code></code><var>dir</var><code>/include</code> and
632libiconv library files in <code></code><var>dir</var><code>/lib</code>.
633
634 <br><dt><code>--with-system-zlib</code>
635 <dd>Use installed zlib rather than that included with GCC. This option
636only applies if the Java front end is being built.
637
638 <br><dt><code>--enable-obsolete</code>
639 <dd>Enable configuration for an obsoleted system. If you attempt to
640configure GCC for a system (build, host, or target) which has been
641obsoleted, and you do not specify this flag, configure will halt with an
642error message.
643
644 <p>All support for systems which have been obsoleted in one release of GCC
645is removed entirely in the next major release, unless someone steps
646forward to maintain the port.
647</dl>
648
649 <p>Some options which only apply to building cross compilers:
650 <dl>
651<dt><code>--with-sysroot</code>
652 <dd><dt><code>--with-sysroot=</code><var>dir</var><code></code>
653 <dd>Tells GCC to consider <var>dir</var> as the root of a tree that contains a
654(subset of) the root filesystem of the target operating system.
655Target system headers, libraries and run-time object files will be
656searched in there. The specified directory is not copied into the
657install tree, unlike the options <code>--with-headers</code> and
658<code>--with-libs</code> that this option obsoletes. The default value,
659in case <code>--with-sysroot</code> is not given an argument, is
660<code>${gcc_tooldir}/sys-root</code>. If the specified directory is a
661subdirectory of <code>${exec_prefix}</code>, then it will be found relative to
662the GCC binaries if the installation tree is moved.
663
664 <br><dt><code>--with-headers</code>
665 <dd><dt><code>--with-headers=</code><var>dir</var><code></code>
666 <dd>Deprecated in favor of <code>--with-sysroot</code>.
667Specifies that target headers are available when building a cross compiler.
668The <var>dir</var> argument specifies a directory which has the target include
669files. These include files will be copied into the <code>gcc</code> install
670directory. <em>This option with the </em><var>dir</var><em> argument is required</em> when
671building a cross compiler, if <code></code><var>prefix</var><code>/</code><var>target</var><code>/sys-include</code>
672doesn't pre-exist. If <code></code><var>prefix</var><code>/</code><var>target</var><code>/sys-include</code> does
673pre-exist, the <var>dir</var> argument may be omitted. <code>fixincludes</code>
674will be run on these files to make them compatible with GCC.
675<br><dt><code>--with-libs</code>
676 <dd><dt><code>--with-libs=``</code><var>dir1</var><code> </code><var>dir2</var><code> ... </code><var>dirN</var><code>''</code>
677 <dd>Deprecated in favor of <code>--with-sysroot</code>.
678Specifies a list of directories which contain the target runtime
679libraries. These libraries will be copied into the <code>gcc</code> install
680directory. If the directory list is omitted, this option has no
681effect.
682<br><dt><code>--with-newlib</code>
683 <dd>Specifies that <code>newlib</code> is
684being used as the target C library. This causes <code>__eprintf</code> to be
685omitted from <code>libgcc.a</code> on the assumption that it will be provided by
686<code>newlib</code>.
687</dl>
688
689 <p>Note that each <code>--enable</code> option has a corresponding
690<code>--disable</code> option and that each <code>--with</code> option has a
691corresponding <code>--without</code> option.
692
693 <hr />
694<p>
695<a href="./index.html">Return to the GCC Installation page</a>
696
697 </body></html>
698
Note: See TracBrowser for help on using the repository browser.