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