Ignore:
Timestamp:
Apr 27, 2004, 8:39:34 PM (21 years ago)
Author:
bird
Message:

GCC v3.3.3 sources.

Location:
branches/GNU/src/gcc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/GNU/src/gcc

    • Property svn:ignore
      •  

        old new  
        2626configure.vr
        2727configure.vrs
         28dir.info
        2829Makefile
        29 dir.info
        3030lost+found
        3131update.out
  • branches/GNU/src/gcc/INSTALL/specific.html

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r1390 r1391  
    1 <html lang="en"><head>
     1   <html lang="en">
     2<head>
    23<title>Host/Target specific installation notes for GCC</title>
    34<meta http-equiv="Content-Type" content="text/html">
    4 <meta name=description content="Host/Target specific installation notes for GCC">
    5 <meta name=generator content="makeinfo 4.0">
    6 <link href="http://texinfo.org/" rel=generator-home>
    7 </head><body>
    8 
    9 <p>P<p>lease read this document carefully <em>before</em> installing the
     5<meta name="description" content="Host/Target specific installation notes for GCC">
     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">Host/Target specific installation notes for GCC</h1>
     39Please read this document carefully <em>before</em> installing the
    1040GNU Compiler Collection on your machine.
    1141
    12 <ul>
    13 <li><a href="#1750a-*-*">1750a-*-*</a>
    14 <li><a href="#a29k">a29k</a>
    15 <li><a href="#a29k-*-bsd">a29k-*-bsd</a>
     42     <ul>
    1643<li><a href="#alpha*-*-*">alpha*-*-*</a>
    1744<li><a href="#alpha*-dec-osf*">alpha*-dec-osf*</a>
     
    2148<li><a href="#arm-*-elf">arm-*-elf</a>
    2249<li><a href="#arm*-*-linux-gnu">arm*-*-linux-gnu</a>
    23 <li><a href="#arm-*-riscix">arm-*-riscix</a>
    2450<li><a href="#avr">avr</a>
    2551<li><a href="#c4x">c4x</a>
    2652<li><a href="#dos">DOS</a>
    2753<li><a href="#dsp16xx">dsp16xx</a>
    28 <li><a href="#elxsi-elxsi-bsd">elxsi-elxsi-bsd</a>
    2954<li><a href="#*-*-freebsd*">*-*-freebsd*</a>
    3055<li><a href="#h8300-hms">h8300-hms</a>
     
    3560<li><a href="#i370-*-*">i370-*-*</a>
    3661<li><a href="#*-*-linux-gnu">*-*-linux-gnu</a>
    37 <li><a href="#ix86-*-linux*oldld">i?86-*-linux*oldld</a>
    3862<li><a href="#ix86-*-linux*aout">i?86-*-linux*aout</a>
    3963<li><a href="#ix86-*-linux*">i?86-*-linux*</a>
     
    4266<li><a href="#ix86-*-sco3.2v5*">i?86-*-sco3.2v5*</a>
    4367<li><a href="#ix86-*-udk">i?86-*-udk</a>
    44 <li><a href="#ix86-*-isc">i?86-*-isc</a>
    4568<li><a href="#ix86-*-esix">i?86-*-esix</a>
    46 <li><a href="#ix86-ibm-aix">i?86-ibm-aix</a>
    47 <li><a href="#ix86-sequent-bsd">i?86-sequent-bsd</a>
    48 <li><a href="#ix86-sequent-ptx1*">i?86-sequent-ptx1*</a> i?86-sequent-ptx2*, i?86-sequent-sysv3*
    49 <li><a href="#i860-intel-osf*">i860-intel-osf*</a>
    5069<li><a href="#ia64-*-linux">ia64-*-linux</a>
     70<li><a href="#ia64-*-hpux*">ia64-*-hpux*</a>
    5171<li><a href="#*-lynx-lynxos">*-lynx-lynxos</a>
    5272<li><a href="#*-ibm-aix*">*-ibm-aix*</a>
     73<li><a href="#ip2k-*-elf">ip2k-*-elf</a>
    5374<li><a href="#m32r-*-elf">m32r-*-elf</a>
    5475<li><a href="#m68000-hp-bsd">m68000-hp-bsd</a>
    5576<li><a href="#m6811-elf">m6811-elf</a>
    5677<li><a href="#m6812-elf">m6812-elf</a>
    57 <li><a href="#m68k-altos">m68k-altos</a>
    58 <li><a href="#m68k-apple-aux">m68k-apple-aux</a>
    5978<li><a href="#m68k-att-sysv">m68k-att-sysv</a>
    60 <li><a href="#m68k-bull-sysv">m68k-bull-sysv</a>
    6179<li><a href="#m68k-crds-unos">m68k-crds-unos</a>
    6280<li><a href="#m68k-hp-hpux">m68k-hp-hpux</a>
    63 <li><a href="#m68k-*-nextstep*">m68k-*-nextstep*</a>
    6481<li><a href="#m68k-ncr-*">m68k-ncr-*</a>
    6582<li><a href="#m68k-sun">m68k-sun</a>
    6683<li><a href="#m68k-sun-sunos4.1.1">m68k-sun-sunos4.1.1</a>
    67 <li><a href="#m88k-*-svr3">m88k-*-svr3</a>
    68 <li><a href="#m88k-*-dgux">m88k-*-dgux</a>
    69 <li><a href="#m88k-tektronix-sysv3">m88k-tektronix-sysv3</a>
    7084<li><a href="#mips-*-*">mips-*-*</a>
    71 <li><a href="#mips-dec-*">mips-dec-*</a>
    72 <li><a href="#mips-mips-bsd">mips-mips-bsd</a>
    73 <li><a href="#mips-mips-riscos*">mips-mips-riscos*</a>
    74 <li><a href="#mips-sgi-irix4">mips-sgi-irix4</a>
    7585<li><a href="#mips-sgi-irix5">mips-sgi-irix5</a>
    7686<li><a href="#mips-sgi-irix6">mips-sgi-irix6</a>
    77 <li><a href="#mips-sony-sysv">mips-sony-sysv</a>
    78 <li><a href="#ns32k-encore">ns32k-encore</a>
    79 <li><a href="#ns32k-*-genix">ns32k-*-genix</a>
    80 <li><a href="#ns32k-sequent">ns32k-sequent</a>
    81 <li><a href="#ns32k-utek">ns32k-utek</a>
    8287<li><a href="#powerpc*-*-*">powerpc*-*-*</a> powerpc-*-sysv4
    8388<li><a href="#powerpc-*-darwin*">powerpc-*-darwin*</a>
     
    9196<li><a href="#powerpcle-*-eabisim">powerpcle-*-eabisim</a>
    9297<li><a href="#powerpcle-*-eabi">powerpcle-*-eabi</a>
    93 <li><a href="#powerpcle-*-winnt">powerpcle-*-winnt</a> powerpcle-*-pe
    94 <li><a href="#romp-*-aos">romp-*-aos</a> romp-*-mach
    95 <li><a href="#s390-*-linux*">#s390-*-linux*</a>
    96 <li><a href="#s390x-*-linux*">#s390x-*-linux*</a>
     98<li><a href="#s390-*-linux*">s390-*-linux*</a>
     99<li><a href="#s390x-*-linux*">s390x-*-linux*</a>
    97100<li><a href="#*-*-solaris2*">*-*-solaris2*</a>
    98101<li><a href="#sparc-sun-solaris2*">sparc-sun-solaris2*</a>
     
    101104<li><a href="#sparc-unknown-linux-gnulibc1">sparc-unknown-linux-gnulibc1</a>
    102105<li><a href="#sparc-*-linux*">sparc-*-linux*</a>
    103 <li><a href="#sparc64-*-*">sparc64-*-*</a>
     106<li><a href="#sparc64-*-solaris2*">sparc64-*-solaris2*</a>
    104107<li><a href="#sparcv9-*-solaris2*">sparcv9-*-solaris2*</a>
    105108<li><a href="#*-*-sysv*">*-*-sysv*</a>
    106109<li><a href="#vax-dec-ultrix">vax-dec-ultrix</a>
    107 <li><a href="#we32k-*-*">we32k-*-*</a>
     110<li><a href="#x86_64-*-*">x86_64-*-*</a> amd64-*-*
    108111<li><a href="#xtensa-*-elf">xtensa-*-elf</a>
    109112<li><a href="#xtensa-*-linux*">xtensa-*-linux*</a>
     
    113116</ul>
    114117
    115 <ul>
     118     <ul>
    116119<li><a href="#elf_targets">all ELF targets</a> (SVR4, Solaris 2, etc.)
    117120</ul>
    118121
    119 <!- ------- host/target specific issues start here --------------- ->
     122   <!- ------- host/target specific issues start here --------------- ->
    120123<hr />
    121124
    122 <h2><a name="TOC0"><a name="1750a-*-*"></a>1750a-*-*</h2>
    123 
    124 <p>MIL-STD-1750A processors.  This target is obsoleted in GCC 3.1.
    125 
    126 <p>The MIL-STD-1750A cross configuration produces output for
    127 <code>as1750</code>, an assembler/linker available under the GNU General Public
    128 License for the 1750A.  <code>as1750</code> can be obtained at
    129 <a href="ftp://ftp.fta-berlin.de/pub/crossgcc/1750gals/">ftp://ftp.fta-berlin.de/pub/crossgcc/1750gals/</a>.
    130 A similarly licensed simulator for
    131 the 1750A is available from same address.
    132 
    133 <p>You should ignore a fatal error during the building of <code>libgcc</code>
    134 (<code>libgcc</code> is not yet implemented for the 1750A.)
    135 
    136 <p>The <code>as1750</code> assembler requires the file <code>ms1750.inc</code>, which is
    137 found in the directory <code>gcc/config/1750a</code>.
    138 
    139 <p>GCC produced the same sections as the Fairchild F9450 C Compiler,
    140 namely:
    141 
    142 <dl>
    143 <dt><code>Normal</code>
    144 <dd>The program code section.
    145 
    146 <br><dt><code>Static</code>
    147 <dd>The read/write (RAM) data section.
    148 
    149 <br><dt><code>Konst</code>
    150 <dd>The read-only (ROM) constants section.
    151 
    152 <br><dt><code>Init</code>
    153 <dd>Initialization section (code to copy KREL to SREL).
    154 </dl>
    155 
    156 <p>The smallest addressable unit is 16 bits (<code>BITS_PER_UNIT</code> is 16).  This
    157 means that type <code>char</code> is represented with a 16-bit word per character.
    158 The 1750A's "Load/Store Upper/Lower Byte" instructions are not used by
    159 GCC.
    160 
    161 <hr />
    162 
    163 <h2><a name="TOC1"><a name="a29k"></a>a29k</h2>
    164 
    165 <p>AMD Am29k-family processors.  These are normally used in embedded
    166 applications.  This configuration corresponds to AMD's standard calling
    167 sequence and binary interface and is compatible with other 29k tools.
    168 
    169 <p>AMD has abandoned this processor.  All existing a29k targets are obsoleted
    170 in GCC 3.1.
    171 
    172 <p>You may need to make a variant of the file <code>a29k.h</code> for your
    173 particular configuration.
    174 
    175 <hr />
    176 
    177 <h2><a name="TOC2"><a name="a29k-*-bsd"></a>a29k-*-bsd</h2>
    178 
    179 <p>AMD Am29050 used in a system running a variant of BSD Unix.
    180 
    181 <hr />
    182 
    183 <h2><a name="TOC3"><a name="alpha*-*-*"></a>alpha*-*-*</h2>
     125<h3 class="heading"><a name="TOC0"></a><a name="alpha*-*-*"></a>alpha*-*-*</h3>
    184126
    185127<p>This section contains general configuration information for all
     
    188130section, please read all other sections that match your target.
    189131
    190 <p>We require binutils 2.11.2 or newer.
     132   <p>We require binutils 2.11.2 or newer.
    191133Previous binutils releases had a number of problems with DWARF 2
    192134debugging information, not the least of which is incorrect linking of
    193135shared libraries.
    194136
    195 <hr />
    196 
    197 <h2><a name="TOC4"><a name="alpha*-dec-osf*"></a>alpha*-dec-osf*</h2>
     137   <hr />
     138
     139<h3 class="heading"><a name="TOC1"></a><a name="alpha*-dec-osf*"></a>alpha*-dec-osf*</h3>
    198140
    199141<p>Systems using processors that implement the DEC Alpha architecture and
     
    201143Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
    202144
    203 <p>Support for versions before <code>alpha*-dec-osf4</code> is obsoleted in GCC
    204 3.1.  (These are the versions which identify themselves as DEC OSF/1.)
    205 
    206 <p>In Digital Unix V4.0, virtual memory exhausted bootstrap failures
     145   <p>As of GCC 3.2, versions before <code>alpha*-dec-osf4</code> are no longer
     146supported.  (These are the versions which identify themselves as DEC
     147OSF/1.)
     148
     149   <p>In Digital Unix V4.0, virtual memory exhausted bootstrap failures
    207150may be fixed by configuring with <code>--with-gc=simple</code>,
    208151reconfiguring Kernel Virtual Memory and Swap parameters
     
    211154<a href="http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html">http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html</a>.
    212155
    213 <p>In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not
     156   <p>In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not
    214157currently (2001-06-13) work with <code>mips-tfile</code>.  As a workaround,
    215158we need to use the old assembler, invoked via the barely documented
     
    217160Compaq C Compiler:
    218161
    219 <pre>   % CC=cc <var>srcdir</var>/configure [<var>options</var>] [<var>target</var>]
    220 </pre>
    221 
    222 <p>or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX V4.0:
    223 
    224 <pre>   % CC=gcc -Wa,-oldas <var>srcdir</var>/configure [<var>options</var>] [<var>target</var>]
    225 </pre>
    226 
    227 <p>As of GNU binutils 2.11.2, neither GNU <code>as</code> nor GNU <code>ld</code>
     162<pre class="example">        % CC=cc <var>srcdir</var>/configure [<var>options</var>] [<var>target</var>]
     163     </pre>
     164
     165   <p>or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX V4.0:
     166
     167<pre class="example">        % CC=gcc -Wa,-oldas <var>srcdir</var>/configure [<var>options</var>] [<var>target</var>]
     168     </pre>
     169
     170   <p>As of GNU binutils 2.11.2, neither GNU <code>as</code> nor GNU <code>ld</code>
    228171are supported on Tru64 UNIX, so you must not configure GCC with
    229172<code>--with-gnu-as</code> or <code>--with-gnu-ld</code>.
    230173
    231 <p>The <code>--enable-threads</code> options isn't supported yet.  A patch is
     174   <p>The <code>--enable-threads</code> options isn't supported yet.  A patch is
    232175in preparation for a future release.
    233176
    234 <p>GCC writes a <code>.verstamp</code> directive to the assembler output file
     177   <p>GCC writes a <code>.verstamp</code> directive to the assembler output file
    235178unless it is built as a cross-compiler.  It gets the version to use from
    236179the system header file <code>/usr/include/stamp.h</code>.  If you install a
     
    238181stamp.
    239182
    240 <p>Note that since the Alpha is a 64-bit architecture, cross-compilers from
     183   <p>Note that since the Alpha is a 64-bit architecture, cross-compilers from
    24118432-bit machines will not generate code as efficient as that generated
    242185when the compiler is running on a 64-bit machine because many
     
    246189a few cases and may not work properly.
    247190
    248 <p><code>make compare</code> may fail on old versions of DEC Unix unless you add
     191   <p><code>make compare</code> may fail on old versions of DEC Unix unless you add
    249192<code>-save-temps</code> to <code>CFLAGS</code>.  On these systems, the name of the
    250193assembler input file is stored in the object file, and that makes
     
    257200<code>.s</code> files after each series of compilations.
    258201
    259 <p>GCC now supports both the native (ECOFF) debugging format used by DBX
     202   <p>GCC now supports both the native (ECOFF) debugging format used by DBX
    260203and GDB and an encapsulated STABS format for use only with GDB.  See the
    261204discussion of the <code>--with-stabs</code> option of <code>configure</code> above
    262205for more information on these formats and how to select them.
    263206
    264 <p>There is a bug in DEC's assembler that produces incorrect line numbers
     207   <p>There is a bug in DEC's assembler that produces incorrect line numbers
    265208for ECOFF format when the <code>.align</code> directive is used.  To work
    266209around this problem, GCC will not emit such alignment directives
     
    270213different depending on whether or not <code>-g</code> is also specified.
    271214
    272 <p>To avoid this behavior, specify <code>-gstabs+</code> and use GDB instead of
     215   <p>To avoid this behavior, specify <code>-gstabs+</code> and use GDB instead of
    273216DBX.  DEC is now aware of this problem with the assembler and hopes to
    274217provide a fix shortly.
    275218
    276 <hr />
    277 
    278 <h2><a name="TOC5"><a name="alphaev5-cray-unicosmk*"></a>alphaev5-cray-unicosmk*</h2>
     219   <hr />
     220
     221<h3 class="heading"><a name="TOC2"></a><a name="alphaev5-cray-unicosmk*"></a>alphaev5-cray-unicosmk*</h3>
    279222
    280223<p>Cray T3E systems running Unicos/Mk.
    281224
    282 <p>This port is incomplete and has many known bugs.  We hope to improve the
     225   <p>This port is incomplete and has many known bugs.  We hope to improve the
    283226support for this target soon.  Currently, only the C front end is supported,
    284227and it is not possible to build parallel applications.  Cray modules are not
     
    286229<code>/opt/ctl/craylibs/craylibs</code>.
    287230
    288 <p>You absolutely <strong>must</strong> use GNU make on this platform.  Also, you
     231   <p>You absolutely <strong>must</strong> use GNU make on this platform.  Also, you
    289232need to tell GCC where to find the assembler and the linker.  The
    290233simplest way to do so is by providing <code>--with-as</code> and
    291234<code>--with-ld</code> to <code>configure</code>, e.g.
    292235
    293 <pre>    configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \
    294       --enable-languages=c
    295 </pre>
    296 
    297 <p>The comparison test during <code>make bootstrap</code> fails on Unicos/Mk
     236<pre class="example">         configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \
     237           --enable-languages=c
     238     </pre>
     239
     240   <p>The comparison test during <code>make bootstrap</code> fails on Unicos/Mk
    298241because the assembler inserts timestamps into object files.  You should
    299242be able to work around this by doing <code>make all</code> after getting this
    300243failure.
    301244
    302 <hr />
    303 
    304 <h2><a name="TOC6"><a name="arc-*-elf"></a>arc-*-elf</h2>
     245   <hr />
     246
     247<h3 class="heading"><a name="TOC3"></a><a name="arc-*-elf"></a>arc-*-elf</h3>
    305248
    306249<p>Argonaut ARC processor.
    307250This configuration is intended for embedded systems.
    308251
    309 <hr />
    310 
    311 <h2><a name="TOC7"><a name="arm-*-aout"></a>arm-*-aout</h2>
    312 
    313 <p>Advanced RISC Machines ARM-family processors.  These are often used in
     252   <hr />
     253
     254<h3 class="heading"><a name="TOC4"></a><a name="arm-*-aout"></a>arm-*-aout</h3>
     255
     256<p>This configuration is obsoleted in GCC 3.3.
     257
     258   <p>Advanced RISC Machines ARM-family processors.  These are often used in
    314259embedded applications.  There are no standard Unix configurations.
    315260This configuration corresponds to the basic instruction sequences and will
    316261produce <code>a.out</code> format object modules.
    317262
    318 <p>You may need to make a variant of the file <code>arm.h</code> for your particular
     263   <p>You may need to make a variant of the file <code>arm.h</code> for your particular
    319264configuration.
    320265
    321 <hr />
    322 
    323 <h2><a name="TOC8"><a name="arm-*-elf"></a>arm-*-elf</h2>
     266   <hr />
     267
     268<h3 class="heading"><a name="TOC5"></a><a name="arm-*-elf"></a>arm-*-elf</h3>
    324269
    325270<p>This configuration is intended for embedded systems.
    326271
    327 <hr />
    328 
    329 <h2><a name="TOC9"><a name="arm*-*-linux-gnu"></a>arm*-*-linux-gnu</h2>
     272   <hr />
     273
     274<h3 class="heading"><a name="TOC6"></a><a name="arm*-*-linux-gnu"></a>arm*-*-linux-gnu</h3>
    330275
    331276<p>We require GNU binutils 2.10 or newer.
    332277
    333 <hr />
    334 
    335 <h2><a name="TOC10"><a name="arm-*-riscix"></a>arm-*-riscix</h2>
    336 
    337 <p>The ARM2 or ARM3 processor running RISC iX, Acorn's port of BSD Unix.
    338 This configuration is obsoleted in GCC 3.1.
    339 
    340 <p>If you are running a version of RISC iX prior to 1.2 then you must
    341 specify the version number during configuration.  Note that the
    342 assembler shipped with RISC iX does not support stabs debugging
    343 information; a new version of the assembler, with stabs support
    344 included, is now available from Acorn and via ftp
    345 <a href="ftp://ftp.acorn.com/pub/riscix/as+xterm.tar.Z">ftp://ftp.acorn.com/pub/riscix/as+xterm.tar.Z</a>.  To enable stabs
    346 debugging, pass <code>--with-gnu-as</code> to configure.
    347 
    348 <p>You will need to install GNU <code>sed</code> before you can run configure.
    349 
    350 <hr />
    351 
    352 <h2><a name="TOC11"><a name="avr"></a>avr</h2>
     278   <hr />
     279
     280<h3 class="heading"><a name="TOC7"></a><a name="avr"></a>avr</h3>
    353281
    354282<p>ATMEL AVR-family micro controllers.  These are used in embedded
     
    357285for the list of supported MCU types.
    358286
    359 <p>Use <code>configure --target=avr --enable-languages="c"</code> to configure GCC.
    360 
    361 <p>Further installation notes and other useful information about AVR tools
     287   <p>Use <code>configure --target=avr --enable-languages="c"</code> to configure GCC.
     288
     289   <p>Further installation notes and other useful information about AVR tools
    362290can also be obtained from:
    363291
    364 <ul>
    365 <li><a href="http://home.overta.ru/users/denisc">http://home.overta.ru/users/denisc</a>
    366 <li><a href="http://www.amelek.gda.pl/avr">http://www.amelek.gda.pl/avr</a>
     292     <ul>
     293<li><a href="http://www.openavr.org">http://www.openavr.org</a>
     294<li><a href="http://home.overta.ru/users/denisc/">http://home.overta.ru/users/denisc/</a>
     295<li><a href="http://www.amelek.gda.pl/avr/">http://www.amelek.gda.pl/avr/</a>
    367296</ul>
    368297
    369 <p>We <em>strongly</em> recommend using binutils 2.11 or newer.
    370 
    371 <p>The following error:
    372 <pre>  Error: register required
    373 </pre>
    374 
    375 <p>indicates that you should upgrade to a newer version of the binutils.
    376 
    377 <hr />
    378 
    379 <h2><a name="TOC12"><a name="c4x"></a>c4x</h2>
     298   <p>We <em>strongly</em> recommend using binutils 2.13 or newer.
     299
     300   <p>The following error:
     301<pre class="example">       Error: register required
     302     </pre>
     303
     304   <p>indicates that you should upgrade to a newer version of the binutils.
     305
     306   <hr />
     307
     308<h3 class="heading"><a name="TOC8"></a><a name="c4x"></a>c4x</h3>
    380309
    381310<p>Texas Instruments TMS320C3x and TMS320C4x Floating Point Digital Signal
     
    385314for the list of supported MCU types.
    386315
    387 <p>GCC can be configured as a cross compiler for both the C3x and C4x
     316   <p>GCC can be configured as a cross compiler for both the C3x and C4x
    388317architectures on the same system.  Use <code>configure --target=c4x
    389318--enable-languages="c,c++"</code> to configure.
    390319
    391 <p>Further installation notes and other useful information about C4x tools
     320   <p>Further installation notes and other useful information about C4x tools
    392321can also be obtained from:
    393322
    394 <ul>
     323     <ul>
    395324<li><a href="http://www.elec.canterbury.ac.nz/c4x/">http://www.elec.canterbury.ac.nz/c4x/</a>
    396325</ul>
    397326
    398 <hr />
    399 
    400 <h2><a name="TOC13"><a name="cris"></a>CRIS</h2>
     327   <hr />
     328
     329<h3 class="heading"><a name="TOC9"></a><a name="cris"></a>CRIS</h3>
    401330
    402331<p>CRIS is the CPU architecture in Axis Communications ETRAX system-on-a-chip
    403332series.  These are used in embedded applications.
    404333
    405 <p>See "CRIS Options" in the main manual
     334   <p>See "CRIS Options" in the main manual
    406335for a list of CRIS-specific options.
    407336
    408 <p>There are a few different CRIS targets:
    409 <dl>
     337   <p>There are a few different CRIS targets:
     338     <dl>
    410339<dt><code>cris-axis-aout</code>
    411 <dd>Old target.  Includes a multilib for the <code>elinux</code> a.out-based
     340     <dd>Old target.  Includes a multilib for the <code>elinux</code> a.out-based
    412341target.  No multilibs for newer architecture variants.
    413342<br><dt><code>cris-axis-elf</code>
    414 <dd>Mainly for monolithic embedded systems.  Includes a multilib for the
     343     <dd>Mainly for monolithic embedded systems.  Includes a multilib for the
    415344<code>v10</code> core used in <code>ETRAX 100 LX</code>.
    416345<br><dt><code>cris-axis-linux-gnu</code>
    417 <dd>A GNU/Linux port for the CRIS architecture, currently targeting
     346     <dd>A GNU/Linux port for the CRIS architecture, currently targeting
    418347<code>ETRAX 100 LX</code> by default.
    419348</dl>
    420349
    421 <p>For <code>cris-axis-aout</code> and <code>cris-axis-elf</code> you need binutils 2.11
     350   <p>For <code>cris-axis-aout</code> and <code>cris-axis-elf</code> you need binutils 2.11
    422351or newer.  For <code>cris-axis-linux-gnu</code> you need binutils 2.12 or newer.
    423352
    424 <p>Pre-packaged tools can be obtained from
     353   <p>Pre-packaged tools can be obtained from
    425354<a href="ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/">ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/</a>.  More
    426355information about this platform is available at
    427356<a href="http://developer.axis.com/">http://developer.axis.com/</a>.
    428357
    429 <hr />
    430 
    431 <h2><a name="TOC14"><a name="dos"></a>DOS</h2>
     358   <hr />
     359
     360<h3 class="heading"><a name="TOC10"></a><a name="dos"></a>DOS</h3>
    432361
    433362<p>Please have a look at our <a href="binaries.html">binaries page</a>.
    434363
    435 <p>You cannot install GCC by itself on MSDOS; it will not compile under
     364   <p>You cannot install GCC by itself on MSDOS; it will not compile under
    436365any MSDOS compiler except itself.  You need to get the complete
    437366compilation package DJGPP, which includes binaries as well as sources,
    438367and includes all the necessary compilation tools and libraries.
    439368
    440 <hr />
    441 
    442 <h2><a name="TOC15"><a name="dsp16xx"></a>dsp16xx</h2>
     369   <hr />
     370
     371<h3 class="heading"><a name="TOC11"></a><a name="dsp16xx"></a>dsp16xx</h3>
    443372
    444373<p>A port to the AT&amp;T DSP1610 family of processors.
    445374
    446 <hr />
    447 
    448 <h2><a name="TOC16"><a name="*-*-freebsd*"></a>*-*-freebsd*</h2>
     375   <hr />
     376
     377<h3 class="heading"><a name="TOC12"></a><a name="*-*-freebsd*"></a>*-*-freebsd*</h3>
    449378
    450379<p>The version of binutils installed in <code>/usr/bin</code> is known to work unless
     
    4523812.12.1 or greater is known to improve overall testsuite results.
    453382
    454 <p>For FreeBSD 1, FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All
     383   <p>Support for FreeBSD 1 was discontinued in GCC 3.2.
     384
     385   <p>For FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All
    455386configuration support and files as shipped with GCC 2.95 are still in
    456387place.  FreeBSD 2.2.7 has been known to bootstrap completely; however,
     
    458389was the system copy in <code>/usr/bin</code>) and C++ EH failures were noted.
    459390
    460 <p>Support for FreeBSD 1 is obsoleted in GCC 3.1.
    461 
    462 <p>For FreeBSD using the ELF file format: DWARF 2 debugging is now the
     391   <p>For FreeBSD using the ELF file format: DWARF 2 debugging is now the
    463392default for all CPU architectures.  It had been the default on
    464393FreeBSD/alpha since its inception.  You may use <code>-gstabs</code> instead
     
    470399However, as a general user, do not attempt to replace the system
    471400compiler with this release.  Known to bootstrap and check with good
    472 results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5-STABLE and 5-CURRENT.
    473 
    474 <p>In principle, <code>--enable-threads</code> is now compatible with
     401results on FreeBSD 4.8-STABLE and 5-CURRENT.  In the past, known to
     402bootstrap and check with good results on FreeBSD 3.0, 3.4, 4.0, 4.2,
     4034.3, 4.4, 4.5-STABLE.
     404
     405   <p>In principle, <code>--enable-threads</code> is now compatible with
    475406<code>--enable-libgcj</code> on FreeBSD.  However, it has only been built
    476 and tested on <code>i386-*-freebsd4.5</code> and <code>alpha-*-freebsd5.0</code>.
     407and tested on <code>i386-*-freebsd[45]</code> and <code>alpha-*-freebsd[45]</code>.
    477408The static
    478409library may be incorrectly built (symbols are missing at link time).
    479410There is a rare timing-based startup hang (probably involves an
    480 assupmtion about the thread library).  Multi-threaded boehm-gc (required for
     411assumption about the thread library).  Multi-threaded boehm-gc (required for
    481412libjava) exposes severe threaded signal-handling bugs on FreeBSD before
    482 4.5-RELEASE.  The alpha port may not fully bootstrap without some manual
    483 intervention: <code>gcjh</code> will crash with a floating-point exception while
    484 generating <code>java/lang/Double.h</code> (just copy the version built on
    485 <code>i386-*-freebsd*</code> and rerun the top-level <code>gmake</code> with no
    486 arguments and it
    487 should properly complete the bootstrap).  Other CPU architectures
     4134.5-RELEASE.  Other CPU architectures
    488414supported by FreeBSD will require additional configuration tuning in, at
    489415the very least, both boehm-gc and libffi.
    490416
    491 <p>Shared <code>libgcc_s.so</code> is now built and installed by default.
    492 
    493 <hr />
    494 
    495 <h2><a name="TOC17"><a name="elxsi-elxsi-bsd"></a>elxsi-elxsi-bsd</h2>
    496 
    497 <p>The Elxsi's C compiler has known limitations that prevent it from
    498 compiling GCC.  Please contact <a href="mailto:mrs@wrs.com">mrs@wrs.com</a> for more details.
    499 
    500 <p>Support for this processor is obsoleted in GCC 3.1.
    501 
    502 <hr />
    503 
    504 <h2><a name="TOC18"><a name="h8300-hms"></a>h8300-hms</h2>
    505 
    506 <p>Hitachi H8/300 series of processors.
    507 
    508 <p>Please have a look at our <a href="binaries.html">binaries page</a>.
    509 
    510 <p>The calling convention and structure layout has changed in release 2.6.
     417   <p>Shared <code>libgcc_s.so</code> is now built and installed by default.
     418
     419   <hr />
     420
     421<h3 class="heading"><a name="TOC13"></a><a name="h8300-hms"></a>h8300-hms</h3>
     422
     423<p>Renesas H8/300 series of processors.
     424
     425   <p>Please have a look at our <a href="binaries.html">binaries page</a>.
     426
     427   <p>The calling convention and structure layout has changed in release 2.6.
    511428All code must be recompiled.  The calling convention now passes the
    512429first three arguments in function calls in registers.  Structures are no
    513430longer a multiple of 2 bytes.
    514431
    515 <hr />
    516 
    517 <h2><a name="TOC19"><a name="hppa*-hp-hpux*"></a>hppa*-hp-hpux*</h2>
    518 
    519 <p>We <em>highly</em> recommend using gas/binutils 2.8 or newer on all hppa
     432   <hr />
     433
     434<h3 class="heading"><a name="TOC14"></a><a name="hppa*-hp-hpux*"></a>hppa*-hp-hpux*</h3>
     435
     436<p>Support for HP-UX versions 7, 8, and 9 is obsoleted in GCC 3.3.
     437
     438   <p>We <em>highly</em> recommend using gas/binutils 2.8 or newer on all hppa
    520439platforms; you may encounter a variety of problems when using the HP
    521 assembler.  The HP assembler does not work with the <code>hppa64-hp-hpux11*</code>
    522 port.
    523 
    524 <p>Specifically, <code>-g</code> does not work on HP-UX (since that system
     440assembler.
     441
     442   <p>Specifically, <code>-g</code> does not work on HP-UX (since that system
    525443uses a peculiar debugging format which GCC does not know about), unless you
    526444use GAS and GDB and configure GCC with the
    527445<a href="./configure.html#with-gnu-as"><code>--with-gnu-as</code></a> and
    528 <code>--with-as=<small>...</small></code> options.
    529 
    530 <p>If you wish to use the pa-risc 2.0 architecture support with a 32-bit
     446<code>--with-as=...</code> options.
     447
     448   <p>If you wish to use the pa-risc 2.0 architecture support with a 32-bit
    531449runtime, you must use either the HP assembler, gas/binutils 2.11 or newer,
    532450or a recent
    533451<a href="ftp://sources.redhat.com/pub/binutils/snapshots">snapshot of gas</a>.
    534452
    535 <p>More specific information to <code>hppa*-hp-hpux*</code> targets follows.
    536 
    537 <hr />
    538 
    539 <h2><a name="TOC20"><a name="hppa*-hp-hpux9"></a>hppa*-hp-hpux9</h2>
    540 
    541 <p>The HP assembler has major problems on this platform.  We've tried to work
     453   <p>There are two default scheduling models for instructions.  These are
     454PROCESSOR_7100LC and PROCESSOR_8000.  They are selected from the pa-risc
     455architecture specified for the target machine when configuring.
     456PROCESSOR_8000 is the default.  PROCESSOR_7100LC is selected when
     457the target is a <code>hppa1*</code> machine.
     458
     459   <p>The PROCESSOR_8000 model is not well suited to older processors.  Thus,
     460it is important to completely specify the machine architecture when
     461configuring if you want a model other than PROCESSOR_8000.  The macro
     462TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different
     463default scheduling model is desired.
     464
     465   <p>More specific information to <code>hppa*-hp-hpux*</code> targets follows.
     466
     467   <hr />
     468
     469<h3 class="heading"><a name="TOC15"></a><a name="hppa*-hp-hpux9"></a>hppa*-hp-hpux9</h3>
     470
     471<p>Support for this system is obsoleted in GCC 3.3.
     472
     473   <p>The HP assembler has major problems on this platform.  We've tried to work
    542474around the worst of the problems.  However, those workarounds may be causing
    543475linker crashes in some circumstances; the workarounds also probably prevent
    544476shared libraries from working.  Use the GNU assembler to avoid these problems.
    545477
    546 <p>The configuration scripts for GCC will also trigger a bug in the hpux9
     478   <p>The configuration scripts for GCC will also trigger a bug in the hpux9
    547479shell.  To avoid this problem set <code>CONFIG_SHELL</code> to <code>/bin/ksh</code>
    548480and <code>SHELL</code> to <code>/bin/ksh</code> in your environment.
    549481
    550 <hr />
    551 
    552 <h2><a name="TOC21"><a name="hppa*-hp-hpux10"></a>hppa*-hp-hpux10</h2>
     482   <hr />
     483
     484<h3 class="heading"><a name="TOC16"></a><a name="hppa*-hp-hpux10"></a>hppa*-hp-hpux10</h3>
    553485
    554486<p>For hpux10.20, we <em>highly</em> recommend you pick up the latest sed patch
     
    556488charge:
    557489
    558 <ul>
    559 <li><a href="http://us-support.external.hp.com">US, Canada, Asia-Pacific, and
     490     <ul>
     491<li><a href="http://us.itrc.hp.com/service/home/home.do">US, Canada, Asia-Pacific, and
    560492Latin-America</a>
    561 <li><a href="http://europe-support.external.hp.com">Europe</a>
     493<li><a href="http://europe.itrc.hp.com/service/home/home.do">http://europe.itrc.hp.com/service/home/home.do</a> Europe.
    562494</ul>
    563495
    564 <p>The HP assembler on these systems is much better than the hpux9 assembler,
     496   <p>The HP assembler on these systems is much better than the hpux9 assembler,
    565497but still has some problems.  Most notably the assembler inserts timestamps
    566498into each object file it creates, causing the 3-stage comparison test to fail
     
    569501bootstrap</code>.
    570502
    571 <hr />
    572 
    573 <h2><a name="TOC22"><a name="hppa*-hp-hpux11"></a>hppa*-hp-hpux11</h2>
     503   <hr />
     504
     505<h3 class="heading"><a name="TOC17"></a><a name="hppa*-hp-hpux11"></a>hppa*-hp-hpux11</h3>
    574506
    575507<p>GCC 3.0 and up support HP-UX 11.  On 64-bit capable systems, there
    576508are two distinct ports.  The <code>hppa2.0w-hp-hpux11*</code> port generates
    577509code for the 32-bit pa-risc runtime architecture.  It uses the HP
    578 linker and is currently the default selected by config.guess.  The
    579 optional <code>hppa64-hp-hpux11*</code> port generates 64-bit code for the
    580 pa-risc 2.0 architecture.  It must be explicitly selected using the
    581 <code>--host=hppa64-hp-hpux11*</code> configure option.  Different prefixes
    582 must be used if both ports are to be installed on the same system.
    583 
    584 <p>You must use GNU binutils 2.11 or above with the 32-bit port.  Thread
     510linker.  The <code>hppa64-hp-hpux11*</code> port generates 64-bit code for the
     511pa-risc 2.0 architecture.  The script config.guess now selects the port
     512type based on the type compiler detected during configuration.  You must
     513set your <code>PATH</code> or define <code>CC</code> so that configure finds an appropriate
     514compiler for the initial bootstrap.  Different prefixes must be used if
     515both ports are to be installed on the same system.
     516
     517   <p>It is best to explicitly configure the <code>hppa64-hp-hpux11*</code> target
     518with the <code>--with-ld=...</code> option.  We support both the HP
     519and GNU linkers for this target.  The two linkers require different
     520link commands.  Thus, it's not possible to switch linkers during a
     521GCC build.  This has been been reported to occur in a unified build
     522of binutils and GCC.
     523
     524   <p>GCC 2.95.x is not supported under HP-UX 11 and cannot be used to
     525compile GCC 3.0 and up.  Refer to <a href="binaries.html">binaries</a> for
     526information about obtaining precompiled GCC binaries for HP-UX.
     527
     528   <p>You must use GNU binutils 2.11 or above with the 32-bit port.  Thread
    585529support is not currently implemented, so <code>--enable-threads</code> does
    586530not work.  See:
    587531
    588 <ul>
     532     <ul>
    589533<li><a href="http://gcc.gnu.org/ml/gcc-prs/2002-01/msg00551.html">http://gcc.gnu.org/ml/gcc-prs/2002-01/msg00551.html</a>
    590 <li><a href="http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00663.html">http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00663.html</a>.
     534<li><a href="http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00663.html">http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00663.html</a>
    591535</ul>
    592536
    593 <p>GCC 2.95.x is not supported under HP-UX 11 and cannot be used to
    594 compile GCC 3.0 and up.  Refer to <a href="binaries.html">binaries</a> for
    595 information about obtaining precompiled GCC binaries for HP-UX.
    596 
    597 <p>GNU binutils 2.13 or later is recommended with the 64-bit port.
    598 The HP assembler is not supported.  It is <em>highly</em> recommended
    599 that the GNU linker be used as well.  Either binutils must be built
    600 prior to gcc, or a binary distribution of gcc or binutils must be
    601 obtained for the initial builds.  When starting with a HP compiler,
    602 it is preferable to use the ANSI compiler as the bundled compiler
    603 only supports traditional C.  Bootstrapping with the bundled compiler
    604 is tested infrequently and problems often arise because of the subtle
    605 differences in semantics between traditional and ISO C.  There also
    606 have been problems reported with various binary distributions.  This
    607 port still is undergoing significant development.
    608 
    609 <hr />
    610 
    611 <h2><a name="TOC23"><a name="i370-*-*"></a>i370-*-*</h2>
     537   <p>GCC 3.3 and later support weak symbols on the 32-bit port using SOM
     538secondary definition symbols.  This feature is not enabled for earlier
     539versions of HP-UX since there have been bugs in the linker support for
     540secondary symbols.  The HP linker patches <code>PHSS_26559</code> and
     541<code>PHSS_24304</code> for HP-UX 11.00 and 11.11, respectively, correct the
     542problem of linker core dumps creating C++ libraries.  Earlier patches
     543may work but they have not been tested.
     544
     545   <p>GCC 3.3 nows uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capability
     546to run initializers and finalizers on the 64-bit port.  The feature
     547requires CVS binutils as of January 2, 2003, or a subsequent release
     548to correct a problem arising from HP's non-standard use of the .init
     549and .fini sections.  The 32-bit port uses the linker <code>+init</code>
     550and <code>+fini</code> options.  As with the support for secondary symbols,
     551there have been bugs in the order in which these options are executed
     552by the HP linker.  So, again a recent linker patch is recommended.
     553
     554   <p>The HP assembler has many limitations and is not recommended for either
     555the 32 or 64-bit ports.  For example, it does not support weak symbols
     556or alias definitions.  As a result, explicit template instantiations
     557are required when using C++.  This will make it difficult if not
     558impossible to build many C++ applications.  You also can't generate
     559debugging information when using the HP assembler with GCC.
     560
     561   <p>There are a number of issues to consider in selecting which linker to
     562use with the 64-bit port.  The  GNU 64-bit linker can only create dynamic
     563binaries.  The <code>-static</code> option causes linking with archive
     564libraries but doesn't produce a truly static binary.  Dynamic binaries
     565still require final binding by the dynamic loader to resolve a set of
     566dynamic-loader-defined symbols.  The default behavior of the HP linker
     567is the same as the GNU linker.  However, it can generate true 64-bit
     568static binaries using the <code>+compat</code> option.
     569
     570   <p>The HP 64-bit linker doesn't support linkonce semantics.  As a
     571result, C++ programs have many more sections than they should.
     572
     573   <p>The GNU 64-bit linker has some issues with shared library support
     574and exceptions.  As a result, we only support libgcc in archive
     575format.  For similar reasons, dwarf2 unwind and exception support
     576are disabled.  The GNU linker also has problems creating binaries
     577with <code>-static</code>.  It doesn't provide stubs for internal
     578calls to global functions in shared libraries, so these calls
     579can't be overloaded.
     580
     581   <p>There are several possible approaches to building the distribution.
     582Binutils can be built first using the HP tools.  Then, the GCC
     583distribution can be built.  The second approach is to build GCC
     584first using the HP tools, then build binutils, then rebuild GCC.
     585There have been problems with various binary distributions, so
     586it is best not to start from a binary distribution.
     587
     588   <p>When starting with a HP compiler, it is preferable to use the ANSI
     589compiler as the bundled compiler only supports traditional C.
     590Bootstrapping with the bundled compiler is tested infrequently and
     591problems often arise because of the subtle differences in semantics
     592between traditional and ISO C.
     593
     594   <p>This port still is undergoing significant development.
     595
     596   <hr />
     597
     598<h3 class="heading"><a name="TOC18"></a><a name="i370-*-*"></a>i370-*-*</h3>
    612599
    613600<p>This port is very preliminary and has many known bugs.  We hope to
    614601have a higher-quality port for this machine soon.
    615602
    616 <hr />
    617 
    618 <h2><a name="TOC24"><a name="*-*-linux-gnu"></a>*-*-linux-gnu</h2>
    619 
    620 <p>If you use glibc 2.2 (or 2.1.9x), GCC 2.95.2 won't install
     603   <hr />
     604
     605<h3 class="heading"><a name="TOC19"></a><a name="*-*-linux-gnu"></a>*-*-linux-gnu</h3>
     606
     607<p>Versions of libstdc++-v3 starting with 3.2.1 require bugfixes present
     608in glibc 2.2.5 and later.  More information is available in the
     609libstdc++-v3 documentation.
     610
     611   <p>If you use glibc 2.2 (or 2.1.9x), GCC 2.95.2 won't install
    621612out-of-the-box.  You'll get compile errors while building <code>libstdc++</code>.
    622613The patch <a href="glibc-2.2.patch">glibc-2.2.patch</a>, that is to be
    623614applied in the GCC source tree, fixes the compatibility problems.
    624615
    625 <p>
    626 
    627 <p>Currently Glibc 2.2.3 (and older releases) and GCC 3.0 are out of sync
     616   <p>Currently Glibc 2.2.3 (and older releases) and GCC 3.0 are out of sync
    628617since the latest exception handling changes for GCC.  Compiling glibc
    629618with GCC 3.0 will give a binary incompatible glibc and therefore cause
    630 lots of problems and might make your system completly unusable.  This
    631 will definitly need fixes in glibc but might also need fixes in GCC.  We
     619lots of problems and might make your system completely unusable.  This
     620will definitely need fixes in glibc but might also need fixes in GCC.  We
    632621strongly advise to wait for glibc 2.2.4 and to read the release notes of
    633622glibc 2.2.4 whether patches for GCC 3.0 are needed.  You can use glibc
    6346232.2.3 with GCC 3.0, just do not try to recompile it.
    635624
    636 <hr />
    637 
    638 <h2><a name="TOC25"><a name="ix86-*-linux*oldld"></a>i?86-*-linux*oldld</h2>
    639 
    640 <p>Use this configuration to generate <code>a.out</code> binaries on Linux-based
    641 GNU systems if you do not have gas/binutils version 2.5.2 or later
    642 installed.
    643 
    644 <p>This configuration is obsoleted in GCC 3.1.
    645 
    646 <hr />
    647 
    648 <h2><a name="TOC26"><a name="ix86-*-linux*aout"></a>i?86-*-linux*aout</h2>
     625   <hr />
     626
     627<h3 class="heading"><a name="TOC20"></a><a name="ix86-*-linux*aout"></a>i?86-*-linux*aout</h3>
    649628
    650629<p>Use this configuration to generate <code>a.out</code> binaries on Linux-based
     
    652631gas/binutils version 2.5.2 or later.
    653632
    654 <hr />
    655 
    656 <h2><a name="TOC27"><a name="ix86-*-linux*"></a>i?86-*-linux*</h2>
    657 
    658 <p>You will need binutils 2.9.1.0.15 or newer for exception handling to work.
    659 
    660 <p>If you receive Signal 11 errors when building on GNU/Linux, then it is
     633   <hr />
     634
     635<h3 class="heading"><a name="TOC21"></a><a name="ix86-*-linux*"></a>i?86-*-linux*</h3>
     636
     637<p>As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
     638See <a href="http://gcc.gnu.org/PR10877">bug 10877</a> for more information.
     639
     640   <p>If you receive Signal 11 errors when building on GNU/Linux, then it is
    661641possible you have a hardware problem.  Further information on this can be
    662642found on <a href="http://www.bitwizard.nl/sig11/">www.bitwizard.nl</a>.
    663643
    664 <hr />
    665 
    666 <h2><a name="TOC28"><a name="ix86-*-sco"></a>i?86-*-sco</h2>
     644   <hr />
     645
     646<h3 class="heading"><a name="TOC22"></a><a name="ix86-*-sco"></a>i?86-*-sco</h3>
    667647
    668648<p>Compilation with RCC is recommended.  Also, it may be a good idea to
    669649link with GNU malloc instead of the malloc that comes with the system.
    670650
    671 <hr />
    672 
    673 <h2><a name="TOC29"><a name="ix86-*-sco3.2v4"></a>i?86-*-sco3.2v4</h2>
    674 
    675 <p>Use this configuration for SCO release 3.2 version 4.
    676 
    677 <hr />
    678 
    679 <h2><a name="TOC30"><a name="ix86-*-sco3.2v5*"></a>i?86-*-sco3.2v5*</h2>
     651   <hr />
     652
     653<h3 class="heading"><a name="TOC23"></a><a name="ix86-*-sco3.2v5*"></a>i?86-*-sco3.2v5*</h3>
    680654
    681655<p>Use this for the SCO OpenServer Release 5 family of operating systems.
    682656
    683 <p>Unlike earlier versions of GCC, the ability to generate COFF with this
     657   <p>Unlike earlier versions of GCC, the ability to generate COFF with this
    684658target is no longer provided.
    685659
    686 <p>Earlier versions of GCC emitted DWARF 1 when generating ELF to allow
     660   <p>Earlier versions of GCC emitted DWARF 1 when generating ELF to allow
    687661the system debugger to be used.  That support was too burdensome to
    688662maintain.  GCC now emits only DWARF 2 for this target.  This means you
     
    690664version of GCC.
    691665
    692 <p>Use of the <code>-march=pentiumpro</code> flag can result in
    693 unrecognized opcodes when using the native assembler on OS versions before
    694 5.0.6.  (Support for P6 opcodes was added to the native ELF assembler in
    695 that version.)  While it's rather rare to see these emitted by GCC yet,
    696 errors of the basic form:
    697 
    698 <pre>  /usr/tmp/ccaNlqBc.s:22:unknown instruction: fcomip
    699   /usr/tmp/ccaNlqBc.s:50:unknown instruction: fucomip
    700 </pre>
    701 
    702 <p>are symptoms of this problem.  You may work around this by not
    703 building affected files with that flag, by using the GNU assembler, or
    704 by using the assembler provided with the current version of the OS.
    705 Users of GNU assembler should see the note below for hazards on doing
    706 so.
    707 
    708 <p>The native SCO assembler that is provided with the OS at no
    709 charge is normally required.  If, however, you must be able to use
    710 the GNU assembler (perhaps you're compiling code with asms that
    711 require GAS syntax) you may configure this package using the flags
    712 <a href="./configure.html#with-gnu-as"><code>--with-gnu-as</code></a>.  You must
    713 use a recent version of GNU binutils; versions past 2.9.1 seem to work
    714 well.
    715 
    716 <p>In general, the <code>--with-gnu-as</code> option isn't as well tested
    717 as the native assembler.
    718 
    719 <p>Look in <code>gcc/config/i386/sco5.h</code> (search for "messy") for
    720 additional OpenServer-specific flags.
    721 
    722 <p>Systems based on OpenServer before 5.0.4 (<code>uname -X</code>
    723 will tell you what you're running) require TLS597 from
    724 <a href="ftp://ftp.sco.com/TLS/">ftp://ftp.sco.com/TLS/</a>
    725 for C++ constructors and destructors to work right.
    726 
    727 <p>The system linker in (at least) 5.0.4 and 5.0.5 will sometimes
    728 do the wrong thing for a construct that GCC will emit for PIC
    729 code.  This can be seen as execution testsuite failures when using
    730 <code>-fPIC</code> on <code>921215-1.c</code>, <code>931002-1.c</code>, <code>nestfunc-1.c</code>, and <code>gcov-1.c</code>.
    731 For 5.0.5, an updated linker that will cure this problem is
    732 available.  You must install both
    733 <a href="ftp://ftp.sco.com/Supplements/rs505a/">ftp://ftp.sco.com/Supplements/rs505a/</a>
    734 and <a href="ftp://ftp.sco.com/SLS/">OSS499A</a>.
    735 
    736 <p>The dynamic linker in OpenServer 5.0.5 (earlier versions may show
    737 the same problem) aborts on certain G77-compiled programs.  It's particularly
    738 likely to be triggered by building Fortran code with the <code>-fPIC</code> flag.
    739 Although it's conceivable that the error could be triggered by other
    740 code, only G77-compiled code has been observed to cause this abort.
    741 If you are getting core dumps immediately upon execution of your
    742 G77 program--and especially if it's compiled with <code>-fPIC</code>--try applying
    743 <a href="sco_osr5_g77.patch"><code>sco_osr5_g77.patch</code></a> to your <code>libf2c</code> and
    744 rebuilding GCC.
    745 Affected faults, when analyzed in a debugger, will show a stack
    746 backtrace with a fault occurring in <code>rtld()</code> and the program
    747 running as <code>/usr/lib/ld.so.1</code>.  This problem has been reported to SCO
    748 engineering and will hopefully be addressed in later releases.
    749 
    750 <hr />
    751 
    752 <h2><a name="TOC31"><a name="ix86-*-udk"></a>i?86-*-udk</h2>
     666   <p>GCC is now only supported on releases 5.0.4 and later, and requires that
     667you install Support Level Supplement OSS646B or later, and the latest
     668version of the Supplement Graphics, Web and X11 Libraries (GWXLIBS)
     669package.  If you are using release 5.0.7 of OpenServer, you must have at
     670least the first maintenance pack installed (this includes the relevant
     671portions of OSS646 and GWXLIBS).  OSS646, also known as the "Execution
     672Environment Update", provides updated link editors and assemblers, as well
     673as updated standard C and math libraries.  The C startup modules are also
     674updated to support the System V gABI draft, and GCC relies on that
     675behavior.  GWXLIBS provides a collection of commonly used open source
     676libraries, some of which GCC depends on (such as GNU gettext and zlib).
     677SCO OpenServer Release 5.0.7 has all of this built in by default, but
     678GWXLIBS is significantly updated in Maintenance Pack 1.  Please visit
     679<a href="ftp://ftp.sco.com/pub/openserver5">ftp://ftp.sco.com/pub/openserver5</a>
     680and
     681<a href="ftp://ftp.sco.com/pub/openserver5/opensrc">ftp://ftp.sco.com/pub/openserver5/opensrc</a>
     682for the latest versions of these (and other potentially useful) supplements.
     683
     684   <p>Although there is support for using the native assembler, it is recommended
     685that you configure GCC to use the GNU assembler.  You do this by using the
     686flags <a href="./configure.html#with-gnu-as"><code>--with-gnu-as</code></a>.  You
     687should use a modern version of GNU binutils.  Version 2.14 was used for all
     688testing.  In general, only the <code>--with-gnu-as</code> option is tested.  A
     689modern bintuils (as well as a plethora of other development related GNU
     690utilities) can be found in the GNU Development Tools package.  See the
     691SCO web and ftp sites for details.  That package also contains the
     692currently "officially supported" version of GCC, version 2.95.3.  It is
     693useful for bootstrapping this version.
     694
     695   <hr />
     696
     697<h3 class="heading"><a name="TOC24"></a><a name="ix86-*-udk"></a>i?86-*-udk</h3>
    753698
    754699<p>This target emulates the SCO Universal Development Kit and requires that
     
    761706with the same warnings and caveats as the SCO UDK.
    762707
    763 <p>This target is a little tricky to build because we have to distinguish
     708   <p>This target is a little tricky to build because we have to distinguish
    764709it from the native tools (so it gets headers, startups, and libraries
    765710from the right place) while making the tools not think we're actually
     
    767712command like this:
    768713
    769 <pre>    CC=/udk/usr/ccs/bin/cc <var>/your/path/to</var>/gcc/configure \
    770       --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-
    771 </pre>
    772 
    773 <p><em>You should substitute <code>i686</code> in the above command with the appropriate
     714<pre class="example">         CC=/udk/usr/ccs/bin/cc <var>/your/path/to</var>/gcc/configure \
     715           --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-
     716     </pre>
     717
     718   <p><em>You should substitute </em><code>i686</code><em> in the above command with the appropriate
    774719processor for your host.</em>
    775720
    776 <p>After the usual <code>make bootstrap</code> and
     721   <p>After the usual <code>make bootstrap</code> and
    777722<code>make install</code>, you can then access the UDK-targeted GCC
    778723tools by adding <code>udk-</code> before the commonly known name.  For
     
    781726have installed.
    782727
    783 <hr />
    784 
    785 <h2><a name="TOC32"><a name="ix86-*-isc"></a>i?86-*-isc</h2>
    786 
    787 <p>This configuration is obsoleted in GCC 3.1.
    788 
    789 <p>It may be a good idea to link with GNU malloc instead of the malloc that
    790 comes with the system.
    791 
    792 <p>In ISC version 4.1, <code>sed</code> core dumps when building
    793 <code>deduced.h</code>.  Use the version of <code>sed</code> from version 4.0.
    794 
    795 <hr />
    796 
    797 <h2><a name="TOC33"><a name="ix86-ibm-aix"></a>i?86-ibm-aix</h2>
    798 
    799 <p>This configuration is obsoleted in GCC 3.1.
    800 
    801 <p>You need to use GAS version 2.1 or later, and LD from
    802 GNU binutils version 2.2 or later.
    803 
    804 <hr />
    805 
    806 <h2><a name="TOC34"><a name="ix86-sequent-bsd"></a>i?86-sequent-bsd</h2>
    807 
    808 <p>This configuration is obsoleted in GCC 3.1.
    809 
    810 <p>Go to the Berkeley universe before compiling.
    811 
    812 <hr />
    813 
    814 <h2><a name="TOC35"><a name="ix86-sequent-ptx1*"></a>i?86-sequent-ptx1*, i?86-sequent-ptx2*, i?86-sequent-sysv3*</h2>
    815 
    816 <p>This configuration is obsoleted in GCC 3.1.
    817 
    818 <p>You must install GNU <code>sed</code> before running <code>configure</code>.
    819 
    820 <p>The <code>fixproto</code> shell script may trigger a bug in the system shell.
    821 If you encounter this problem, upgrade your operating system or
    822 use <code>bash</code> (the GNU shell) to run <code>fixproto</code>.
    823 
    824 <hr />
    825 
    826 <h2><a name="TOC36"><a name="i860-intel-osf*"></a>i860-intel-osf*</h2>
    827 
    828 <p>All support for the i860 processor is obsoleted in GCC 3.1.
    829 
    830 <p>On the Intel Paragon (an i860 machine), if you are using operating
    831 system version 1.0, you will get warnings or errors about redefinition
    832 of <code>va_arg</code> when you build GCC.
    833 
    834 <p>If this happens, then you need to link most programs with the library
    835 <code>iclib.a</code>.  You must also modify <code>stdio.h</code> as follows: before
    836 the lines
    837 
    838 <pre>#if     defined(__i860__) &amp;&amp; !defined(_VA_LIST)
    839 #include &lt;va_list.h&gt;
    840 </pre>
    841 
    842 <p>insert the line
    843 
    844 <pre>#if __PGC__
    845 </pre>
    846 
    847 <p>and after the lines
    848 
    849 <pre>extern int  vprintf(const char *, va_list );
    850 extern int  vsprintf(char *, const char *, va_list );
    851 #endif
    852 </pre>
    853 
    854 <p>insert the line
    855 
    856 <pre>#endif /* __PGC__ */
    857 </pre>
    858 
    859 <p>These problems don't exist in operating system version 1.1.
    860 
    861 <hr />
    862 
    863 <h2><a name="TOC37"><a name="ia64-*-linux"></a>ia64-*-linux</h2>
     728   <hr />
     729
     730<h3 class="heading"><a name="TOC25"></a><a name="ia64-*-linux"></a>ia64-*-linux</h3>
    864731
    865732<p>IA-64 processor (also known as IPF, or Itanium Processor Family)
    866733running GNU/Linux.
    867734
    868 <p>The toolchain is not completely finished, so requirements will continue
     735   <p>The toolchain is not completely finished, so requirements will continue
    869736to change.
    870737GCC 3.0.1 and later require glibc 2.2.4.
     
    872739GCC 3.0.1 requires binutils 2.11.1 or later.
    873740
    874 <p>None of the following versions of GCC has an ABI that is compatible
     741   <p>None of the following versions of GCC has an ABI that is compatible
    875742with any of the other versions in this list, with the exception that
    876743Red Hat 2.96 and Trillian 000171 are compatible with each other:
     
    883750ABI changes are expected.
    884751
    885 <hr />
    886 
    887 <h2><a name="TOC38"><a name="*-lynx-lynxos"></a>*-lynx-lynxos</h2>
    888 
    889 <p>LynxOS 2.2 and earlier comes with GCC 1.x already installed as
     752   <hr />
     753
     754<h3 class="heading"><a name="TOC26"></a><a name="ia64-*-hpux*"></a>ia64-*-hpux*</h3>
     755
     756<p>Building GCC on this target requires the GNU Assembler. The bundled HP
     757assembler will not work. To prevent GCC from using the wrong assembler,
     758the option <code>--with-gnu-as</code> may be necessary.
     759
     760   <p>The GCC libunwind library has not been ported to HPUX. This means that for
     761GCC versions 3.2.3 and earlier, <code>--enable-libunwind-exceptions</code>
     762is required to build GCC. For GCC 3.3 and later, this is the default.
     763
     764   <hr />
     765
     766<h3 class="heading"><a name="TOC27"></a><a name="*-lynx-lynxos"></a>*-lynx-lynxos</h3>
     767
     768<p>Support for SPARC LynxOS is obsoleted in GCC 3.3.
     769
     770   <p>LynxOS 2.2 and earlier comes with GCC 1.x already installed as
    890771<code>/bin/gcc</code>.  You should compile with this instead of <code>/bin/cc</code>.
    891772You can tell GCC to use the GNU assembler and linker, by specifying
     
    894775installed tools, which produce <code>a.out</code> format executables.
    895776
    896 <hr />
     777   <hr />
    897778<!- rs6000-ibm-aix*, powerpc-ibm-aix* ->
    898779
    899 <h2><a name="TOC39"><a name="*-ibm-aix*"></a>*-ibm-aix*</h2>
    900 
    901 <p>AIX Make frequently has problems with GCC makefiles.  GNU Make 3.76 or
     780<h3 class="heading"><a name="TOC28"></a><a name="*-ibm-aix*"></a>*-ibm-aix*</h3>
     781
     782<p>Support for AIX versions 1, 2, and 3 is obsoleted in GCC 3.3.
     783
     784   <p>AIX Make frequently has problems with GCC makefiles.  GNU Make 3.76 or
    902785newer is recommended to build on this platform.
    903786
    904 <p>Errors involving <code>alloca</code> when building GCC generally are due
     787   <p>Errors involving <code>alloca</code> when building GCC generally are due
    905788to an incorrect definition of <code>CC</code> in the Makefile or mixing files
    906789compiled with the native C compiler and GCC.  During the stage1 phase of
     
    913796is the version of Make (see above).
    914797
    915 <p>The GNU Assembler incorrectly reports that it supports WEAK symbols on
    916 AIX which causes GCC to try to utilize weak symbol functionality which
    917 is not really supported on the platform.  The native <code>as</code> and
    918 <code>ld</code> still are recommended.  The native AIX tools do
    919 interoperate with GCC.
    920 
    921 <p>Building <code>libstdc++.a</code> requires a fix for a AIX Assembler bug
     798   <p>The native <code>as</code> and <code>ld</code> are recommended for bootstrapping
     799on AIX 4 and required for bootstrapping on AIX 5L.  The GNU Assembler
     800reports that it supports WEAK symbols on AIX 4, which causes GCC to try to
     801utilize weak symbol functionality although it is not supported.  The GNU
     802Assembler and Linker do not support AIX 5L sufficiently to bootstrap GCC.
     803The native AIX tools do interoperate with GCC.
     804
     805   <p>Building <code>libstdc++.a</code> requires a fix for an AIX Assembler bug
    922806APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1).
    923807
    924 <p><code>libstdc++</code> in GCC 3.2 increments the major version number of the
     808   <p><code>libstdc++</code> in GCC 3.2 increments the major version number of the
    925809shared object and GCC installation places the <code>libstdc++.a</code>
    926810shared library in a common location which will overwrite the GCC 3.1
     
    933817multilib <code>libstdc++.a</code> installed:
    934818
    935 <p>Extract the shared object from each the GCC 3.1 <code>libstdc++.a</code>
     819   <p>Extract the shared object from each the GCC 3.1 <code>libstdc++.a</code>
    936820archive:
    937 <pre>   % ar -x libstdc++.a libstdc++.so.4
    938 </pre>
    939 
    940 <p>Enable the <code>F_LOADONLY</code> flag so that the shared object will be
     821<pre class="example">        % ar -x libstdc++.a libstdc++.so.4
     822     </pre>
     823
     824   <p>Enable the <code>F_LOADONLY</code> flag so that the shared object will be
    941825available for runtime dynamic loading, but not linking:
    942 <pre>   % strip -e libstdc++.so.4
    943 </pre>
    944 
    945 <p>Archive the runtime-only shared object in the GCC 3.2
     826<pre class="example">        % strip -e libstdc++.so.4
     827     </pre>
     828
     829   <p>Archive the runtime-only shared object in the GCC 3.2
    946830<code>libstdc++.a</code> archive:
    947 <pre>   % ar -q libstdc++.a libstdc++.so.4
    948 </pre>
    949 
    950 <p>Linking executables and shared libraries may produce warnings of
     831<pre class="example">        % ar -q libstdc++.a libstdc++.so.4
     832     </pre>
     833
     834   <p>Linking executables and shared libraries may produce warnings of
    951835duplicate symbols.  The assembly files generated by GCC for AIX always
    952836have included multiple symbol definitions for certain global variable
     
    955839executable.
    956840
    957 <p>AIX 4.3 utilizes a "large format" archive to support both 32-bit and
     841   <p>AIX 4.3 utilizes a "large format" archive to support both 32-bit and
    95884264-bit object modules.  The routines provided in AIX 4.3.0 and AIX 4.3.1
    959843to parse archive libraries did not handle the new format correctly.
     
    965849routines is shipped with AIX 4.3.2 and above.
    966850
    967 <p>Some versions of the AIX binder (linker) can fail with a relocation
     851   <p>Some versions of the AIX binder (linker) can fail with a relocation
    968852overflow severe error when the <code>-bbigtoc</code> option is used to link
    969853GCC-produced object files into an executable that overflows the TOC.  A fix
     
    973857website as PTF U455193.
    974858
    975 <p>The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core
     859   <p>The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core
    976860with a segmentation fault when invoked by any version of GCC.  A fix for
    977861APAR IX87327 is available from IBM Customer Support and from its
     
    979863website as PTF U461879.  This fix is incorporated in AIX 4.3.3 and above.
    980864
    981 <p>The initial assembler shipped with AIX 4.3.0 generates incorrect object
     865   <p>The initial assembler shipped with AIX 4.3.0 generates incorrect object
    982866files.  A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM COMPILER FAILS
    983867TO ASSEMBLE/BIND) is available from IBM Customer Support and from its
     
    985869website as PTF U453956.  This fix is incorporated in AIX 4.3.1 and above.
    986870
    987 <p>AIX provides National Language Support (NLS).  Compilers and assemblers
     871   <p>AIX provides National Language Support (NLS).  Compilers and assemblers
    988872use NLS to support locale-specific representations of various data
    989873formats including floating-point numbers (e.g., <code>.</code>  vs <code>,</code> for
     
    993877environment variable to <code>C</code> or <code>En_US</code>.
    994878
    995 <p>By default, GCC for AIX 4.1 and above produces code that can be used on
     879   <p>By default, GCC for AIX 4.1 and above produces code that can be used on
    996880both Power or PowerPC processors.
    997881
    998 <p>A default can be specified with the <code>-mcpu=<var>cpu_type</var></code>
    999 switch and using the configure option <code>--with-cpu-<var>cpu_type</var></code>.
    1000 
    1001 <hr />
    1002 
    1003 <h2><a name="TOC40"><a name="m32r-*-elf"></a>m32r-*-elf</h2>
    1004 
    1005 <p>Mitsubishi M32R processor.
     882   <p>A default can be specified with the <code>-mcpu=</code><var>cpu_type</var><code></code>
     883switch and using the configure option <code>--with-cpu-</code><var>cpu_type</var><code></code>.
     884
     885   <hr />
     886
     887<h3 class="heading"><a name="TOC29"></a><a name="ip2k-*-elf"></a>ip2k-*-elf</h3>
     888
     889<p>Ubicom IP2022 micro controller.
     890This configuration is intended for embedded systems.
     891There are no standard Unix configurations.
     892
     893   <p>Use <code>configure --target=ip2k-elf --enable-languages=c</code> to configure GCC.
     894
     895   <hr />
     896
     897<h3 class="heading"><a name="TOC30"></a><a name="m32r-*-elf"></a>m32r-*-elf</h3>
     898
     899<p>Renesas M32R processor.
    1006900This configuration is intended for embedded systems.
    1007901
    1008 <hr />
    1009 
    1010 <h2><a name="TOC41"><a name="m68000-hp-bsd"></a>m68000-hp-bsd</h2>
    1011 
    1012 <p>HP 9000 series 200 running BSD.  Note that the C compiler that comes
     902   <hr />
     903
     904<h3 class="heading"><a name="TOC31"></a><a name="m68000-hp-bsd"></a>m68000-hp-bsd</h3>
     905
     906<p>Support for this system is obsoleted in GCC 3.3.
     907
     908   <p>HP 9000 series 200 running BSD.  Note that the C compiler that comes
    1013909with this system cannot compile GCC; contact <a href="mailto:law@cygnus.com">law@cygnus.com</a>
    1014910to get binaries of GCC for bootstrapping.
    1015911
    1016 <hr />
    1017 
    1018 <h2><a name="TOC42"><a name="m6811-elf"></a>m6811-elf</h2>
     912   <hr />
     913
     914<h3 class="heading"><a name="TOC32"></a><a name="m6811-elf"></a>m6811-elf</h3>
    1019915
    1020916<p>Motorola 68HC11 family micro controllers.  These are used in embedded
    1021917applications.  There are no standard Unix configurations.
    1022918
    1023 <hr />
    1024 
    1025 <h2><a name="TOC43"><a name="m6812-elf"></a>m6812-elf</h2>
     919   <hr />
     920
     921<h3 class="heading"><a name="TOC33"></a><a name="m6812-elf"></a>m6812-elf</h3>
    1026922
    1027923<p>Motorola 68HC12 family micro controllers.  These are used in embedded
    1028924applications.  There are no standard Unix configurations.
    1029925
    1030 <hr />
    1031 
    1032 <h2><a name="TOC44"><a name="m68k-altos"></a>m68k-altos</h2>
    1033 
    1034 <p>Altos 3068.  This configuration is obsoleted in GCC 3.1.
    1035 
    1036 <p>You must use the GNU assembler, linker and debugger.
    1037 Also, you must fix a kernel bug.
    1038 
    1039 <hr />
    1040 
    1041 <h2><a name="TOC45"><a name="m68k-apple-aux"></a>m68k-apple-aux</h2>
    1042 
    1043 <p>Apple Macintosh running A/UX.
    1044 This configuration is obsoleted in GCC 3.1.
    1045 
    1046 <p>You may configure GCC  to use either the system assembler and
    1047 linker or the GNU assembler and linker.  You should use the GNU configuration
    1048 if you can, especially if you also want to use G++.  You enable
    1049 that configuration with the <code>--with-gnu-as</code> and <code>--with-gnu-ld</code>
    1050 options to <code>configure</code>.
    1051 
    1052 <p>Note the C compiler that comes
    1053 with this system cannot compile GCC.  You can find binaries of GCC
    1054 for bootstrapping on <code>jagubox.gsfc.nasa.gov</code>.
    1055 You will also a patched version of <code>/bin/ld</code> there that
    1056 raises some of the arbitrary limits found in the original.
    1057 
    1058 <hr />
    1059 
    1060 <h2><a name="TOC46"><a name="m68k-att-sysv"></a>m68k-att-sysv</h2>
    1061 
    1062 <p>AT&amp;T 3b1, a.k.a. 7300 PC.  This version of GCC cannot
     926   <hr />
     927
     928<h3 class="heading"><a name="TOC34"></a><a name="m68k-att-sysv"></a>m68k-att-sysv</h3>
     929
     930<p>Support for this system is obsoleted in GCC 3.3.
     931
     932   <p>AT&amp;T 3b1, a.k.a. 7300 PC.  This version of GCC cannot
    1063933be compiled with the system C compiler, which is too buggy.
    1064934You will need to get a previous version of GCC and use it to
    1065935bootstrap.  Binaries are available from the OSU-CIS archive, at
    1066 <a href="ftp://archive.cis.ohio-state.edu/pub/att7300/">ftp://archive.cis.ohio-state.edu/pub/att7300/</a>.
    1067 
    1068 <hr />
    1069 
    1070 <h2><a name="TOC47"><a name="m68k-bull-sysv"></a>m68k-bull-sysv</h2>
    1071 
    1072 <p>Bull DPX/2 series 200 and 300 with BOS-2.00.45 up to BOS-2.01.
    1073 This configuration is obsoleted in GCC 3.1.
    1074 
    1075 <p>GCC works
    1076 either with native assembler or GNU assembler.  You can use
    1077 GNU assembler with native COFF generation by providing <code>--with-gnu-as</code> to
    1078 the configure script or use GNU assembler with stabs-in-COFF encapsulation
    1079 by providing <code>--with-gnu-as --stabs</code>.  For any problem with the native
    1080 assembler or for availability of the DPX/2 port of GAS, contact
    1081 <a href="mailto:F.Pierresteguy@frcl.bull.fr">F.Pierresteguy@frcl.bull.fr</a>.
    1082 
    1083 <hr />
    1084 
    1085 <h2><a name="TOC48"><a name="m68k-crds-unos"></a>m68k-crds-unos</h2>
    1086 
    1087 <p>Use <code>configure unos</code> for building on Unos.
    1088 
    1089 <p>The Unos assembler is named <code>casm</code> instead of <code>as</code>.  For some
     936<a href="ftp://ftp.uu.net/systems/att7300/">ftp://ftp.uu.net/systems/att7300/</a>.
     937
     938   <hr />
     939
     940<h3 class="heading"><a name="TOC35"></a><a name="m68k-crds-unos"></a>m68k-crds-unos</h3>
     941
     942<p>Support for this system is obsoleted in GCC 3.3.
     943
     944   <p>Use <code>configure unos</code> for building on Unos.
     945
     946   <p>The Unos assembler is named <code>casm</code> instead of <code>as</code>.  For some
    1090947strange reason linking <code>/bin/as</code> to <code>/bin/casm</code> changes the
    1091948behavior, and does not work.  So, when installing GCC, you should
     
    1093950the passes of GCC are installed:
    1094951
    1095 <pre>#!/bin/sh
    1096 casm $*
    1097 </pre>
    1098 
    1099 <p>The default Unos library is named <code>libunos.a</code> instead of
     952<pre class="example">     #!/bin/sh
     953     casm $*
     954     </pre>
     955
     956   <p>The default Unos library is named <code>libunos.a</code> instead of
    1100957<code>libc.a</code>.  To allow GCC to function, either change all
    1101958references to <code>-lc</code> in <code>gcc.c</code> to <code>-lunos</code> or link
    1102959<code>/lib/libc.a</code> to <code>/lib/libunos.a</code>.
    1103960
    1104 <p>When compiling GCC with the standard compiler, to overcome bugs in
     961   <p>When compiling GCC with the standard compiler, to overcome bugs in
    1105962the support of <code>alloca</code>, do not use <code>-O</code> when making stage 2.
    1106963Then use the stage 2 compiler with <code>-O</code> to make the stage 3
     
    1109966and compare that with stage 3 to verify proper compilation.
    1110967
    1111 <p>(Perhaps simply defining <code>ALLOCA</code> in <code>x-crds</code> as described in
     968   <p>(Perhaps simply defining <code>ALLOCA</code> in <code>x-crds</code> as described in
    1112969the comments there will make the above paragraph superfluous.  Please
    1113970inform us of whether this works.)
    1114971
    1115 <p>Unos uses memory segmentation instead of demand paging, so you will need
     972   <p>Unos uses memory segmentation instead of demand paging, so you will need
    1116973a lot of memory.  5 Mb is barely enough if no other tasks are running.
    1117974If linking <code>cc1</code> fails, try putting the object files into a library
    1118975and linking from that library.
    1119976
    1120 <hr />
    1121 
    1122 <h2><a name="TOC49"><a name="m68k-hp-hpux"></a>m68k-hp-hpux</h2>
     977   <hr />
     978
     979<h3 class="heading"><a name="TOC36"></a><a name="m68k-hp-hpux"></a>m68k-hp-hpux</h3>
    1123980
    1124981<p>HP 9000 series 300 or 400 running HP-UX.  HP-UX version 8.0 has a bug in
     
    1127984building <code>libgcc2.a</code>:
    1128985
    1129 <pre>_floatdisf
    1130 cc1: warning: `-g' option not supported on this version of GCC
    1131 cc1: warning: `-g1' option not supported on this version of GCC
    1132 ./xgcc: Internal compiler error: program as got fatal signal 11
    1133 </pre>
    1134 
    1135 <p>A patched version of the assembler is available as the file
     986<pre class="smallexample">     _floatdisf
     987     cc1: warning: `-g' option not supported on this version of GCC
     988     cc1: warning: `-g1' option not supported on this version of GCC
     989     ./xgcc: Internal compiler error: program as got fatal signal 11
     990     </pre>
     991
     992   <p>A patched version of the assembler is available as the file
    1136993<a href="ftp://altdorf.ai.mit.edu/archive/cph/hpux-8.0-assembler">ftp://altdorf.ai.mit.edu/archive/cph/hpux-8.0-assembler</a>.  If you
    1137994have HP software support, the patch can also be obtained directly from
    1138995HP, as described in the following note:
    1139996
    1140 <blockquote>
     997   <blockquote>
    1141998This is the patched assembler, to patch SR#1653-010439, where the
    1142999assembler aborts on floating point constants.
    11431000
    1144 <p>The bug is not really in the assembler, but in the shared library
     1001        <p>The bug is not really in the assembler, but in the shared library
    11451002version of the function "cvtnum(3c)".  The bug on "cvtnum(3c)" is
    11461003SR#4701-078451.  Anyway, the attached assembler uses the archive
     
    11481005</blockquote>
    11491006
    1150 <p>This patch is also known as PHCO_4484.
    1151 
    1152 <p>In addition, if you wish to use gas, you must use
     1007   <p>This patch is also known as PHCO_4484.
     1008
     1009   <p>In addition, if you wish to use gas, you must use
    11531010gas version 2.1 or later, and you must use the GNU linker version 2.1 or
    11541011later.  Earlier versions of gas relied upon a program which converted the
     
    11571014you must use gas if you wish to use gdb.
    11581015
    1159 <p>On HP-UX version 8.05, but not on 8.07 or more recent versions, the
     1016   <p>On HP-UX version 8.05, but not on 8.07 or more recent versions, the
    11601017<code>fixproto</code> shell script triggers a bug in the system shell.  If you
    11611018encounter this problem, upgrade your operating system or use BASH (the
     
    11631020program to report an error of the form:
    11641021
    1165 <pre>./fixproto: sh internal 1K buffer overflow
    1166 </pre>
    1167 
    1168 <p>To fix this, you can also change the first line of the fixproto script
     1022<pre class="example">     ./fixproto: sh internal 1K buffer overflow
     1023     </pre>
     1024
     1025   <p>To fix this, you can also change the first line of the fixproto script
    11691026to look like:
    11701027
    1171 <pre>#!/bin/ksh
    1172 </pre>
    1173 
    1174 <hr />
    1175 
    1176 <h2><a name="TOC50"><a name="m68k-*-nextstep*"></a>m68k-*-nextstep*</h2>
    1177 
    1178 <p>These configurations are obsoleted in GCC 3.1.
    1179 
    1180 <p>Current GCC versions probably do not work on version 2 of the NeXT
    1181 operating system.
    1182 
    1183 <p>On NeXTStep 3.0, the Objective-C compiler does not work, due,
    1184 apparently, to a kernel bug that it happens to trigger.  This problem
    1185 does not happen on 3.1.
    1186 
    1187 <p>You absolutely <strong>must</strong> use GNU sed and GNU make on this platform.
    1188 
    1189 <p>On NeXTSTEP 3.x where x &lt; 3 the build of GCC will abort during
    1190 stage1 with an error message like this:
    1191 
    1192 <pre>  _eh
    1193   /usr/tmp/ccbbsZ0U.s:987:Unknown pseudo-op: .section
    1194   /usr/tmp/ccbbsZ0U.s:987:Rest of line ignored. 1st junk character
    1195   valued 95 (_).
    1196 </pre>
    1197 
    1198 <p>The reason for this is the fact that NeXT's assembler for these
    1199 versions of the operating system does not support the <code>.section</code>
    1200 pseudo op that's needed for full C++ exception functionality.
    1201 
    1202 <p>As NeXT's assembler is a derived work from GNU as, a free
    1203 replacement that does can be obtained at
    1204 <a href="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</a>.
    1205 
    1206 <p>If you try to build the integrated C++ &amp; C++ runtime libraries on this system
    1207 you will run into trouble with include files.  The way to get around this is
    1208 to use the following sequence.  Note you must have write permission to
    1209 the directory <var>prefix</var> you specified in the configuration process of GCC
    1210 for this sequence to work.
    1211 
    1212 <pre>  cd bld-gcc
    1213   make all-texinfo all-bison all-byacc all-binutils all-gas all-ld
    1214   cd gcc
    1215   make bootstrap
    1216   make install-headers-tar
    1217   cd ..
    1218   make bootstrap3
    1219 </pre>
    1220 
    1221 <hr />
    1222 
    1223 <h2><a name="TOC51"><a name="m68k-ncr-*"></a>m68k-ncr-*</h2>
    1224 
    1225 <p>On the Tower models 4<var>n</var>0 and 6<var>n</var>0, by default a process is not
     1028<pre class="example">     #!/bin/ksh
     1029     </pre>
     1030
     1031   <hr />
     1032
     1033<h3 class="heading"><a name="TOC37"></a><a name="m68k-ncr-*"></a>m68k-ncr-*</h3>
     1034
     1035<p>Support for this system is obsoleted in GCC 3.3.
     1036
     1037   <p>On the Tower models 4<var>n</var>0 and 6<var>n</var>0, by default a process is not
    12261038allowed to have more than one megabyte of memory.  GCC cannot compile
    12271039itself (or many other programs) with <code>-O</code> in that much memory.
    12281040
    1229 <p>To solve this problem, reconfigure the kernel adding the following line
     1041   <p>To solve this problem, reconfigure the kernel adding the following line
    12301042to the configuration file:
    12311043
    1232 <pre>MAXUMEM = 4096
    1233 </pre>
    1234 
    1235 <hr />
    1236 
    1237 <h2><a name="TOC52"><a name="m68k-sun"></a>m68k-sun</h2>
    1238 
    1239 <p>Sun 3.  We do not provide a configuration file to use the Sun FPA by
     1044<pre class="smallexample">     MAXUMEM = 4096
     1045     </pre>
     1046
     1047   <hr />
     1048
     1049<h3 class="heading"><a name="TOC38"></a><a name="m68k-sun"></a>m68k-sun</h3>
     1050
     1051<p>Support for this system is obsoleted in GCC 3.3.
     1052
     1053   <p>Sun 3.  We do not provide a configuration file to use the Sun FPA by
    12401054default, because programs that establish signal handlers for floating
    12411055point traps inherently cannot work with the FPA.
    12421056
    1243 <hr />
    1244 
    1245 <h2><a name="TOC53"><a name="m68k-sun-sunos4.1.1"></a>m68k-sun-sunos4.1.1</h2>
    1246 
    1247 <p>It is reported that you may need the GNU assembler on this platform.
    1248 
    1249 <hr />
    1250 
    1251 <h2><a name="TOC54"><a name="m88k-*-svr3"></a>m88k-*-svr3</h2>
    1252 
    1253 <p>Motorola m88k running the AT&amp;T/Unisoft/Motorola V.3 reference port.
    1254 These configurations are obsoleted in GCC 3.1.
    1255 
    1256 <p>These systems tend to use the Green Hills C, revision 1.8.5, as the
    1257 standard C compiler.  There are apparently bugs in this compiler that
    1258 result in object files differences between stage 2 and stage 3.  If this
    1259 happens, make the stage 4 compiler and compare it to the stage 3
    1260 compiler.  If the stage 3 and stage 4 object files are identical, this
    1261 suggests you encountered a problem with the standard C compiler; the
    1262 stage 3 and 4 compilers may be usable.
    1263 
    1264 <p>It is best, however, to use an older version of GCC for bootstrapping
    1265 if you have one.
    1266 
    1267 <hr />
    1268 
    1269 <h2><a name="TOC55"><a name="m88k-*-dgux"></a>m88k-*-dgux</h2>
    1270 
    1271 <p>Motorola m88k running DG/UX.
    1272 These configurations are obsoleted in GCC 3.1.
    1273 
    1274 <p>To build 88open BCS native or cross
    1275 compilers on DG/UX, specify the configuration name as
    1276 <code>m88k-*-dguxbcs</code> and build in the 88open BCS software development
    1277 environment.  To build ELF native or cross compilers on DG/UX, specify
    1278 <code>m88k-*-dgux</code> and build in the DG/UX ELF development environment.
    1279 You set the software development environment by issuing
    1280 <code>sde-target</code> command and specifying either <code>m88kbcs</code> or
    1281 <code>m88kdguxelf</code> as the operand.
    1282 
    1283 <p>If you do not specify a configuration name, <code>configure</code> guesses the
    1284 configuration based on the current software development environment.
    1285 
    1286 <hr />
    1287 
    1288 <h2><a name="TOC56"><a name="m88k-tektronix-sysv3"></a>m88k-tektronix-sysv3</h2>
    1289 
    1290 <p>Tektronix XD88 running UTekV 3.2e.
    1291 These configurations are obsoleted in GCC 3.1.
    1292 
    1293 <p>Do not turn on
    1294 optimization while building stage1 if you bootstrap with
    1295 the buggy Green Hills compiler.  Also, the bundled LAI
    1296 System V NFS is buggy so if you build in an NFS mounted
    1297 directory, start from a fresh reboot, or avoid NFS all together.
    1298 Otherwise you may have trouble getting clean comparisons
    1299 between stages.
    1300 
    1301 <hr />
    1302 
    1303 <h2><a name="TOC57"><a name="mips-*-*"></a>mips-*-*</h2>
    1304 
    1305 <p>If you use the 1.31 version of the MIPS assembler (such as was shipped
    1306 with Ultrix 3.1), you will need to use the <code>-fno-delayed-branch</code> switch
    1307 when optimizing floating point code.  Otherwise, the assembler will
    1308 complain when the GCC compiler fills a branch delay slot with a
    1309 floating point instruction, such as <code>add.d</code>.
     1057   <hr />
     1058
     1059<h3 class="heading"><a name="TOC39"></a><a name="m68k-sun-sunos4.1.1"></a>m68k-sun-sunos4.1.1</h3>
     1060
     1061<p>Support for this system is obsoleted in GCC 3.3.
     1062
     1063   <p>It is reported that you may need the GNU assembler on this platform.
     1064
     1065   <hr />
     1066
     1067<h3 class="heading"><a name="TOC40"></a><a name="mips-*-*"></a>mips-*-*</h3>
    13101068
    13111069<p>If on a MIPS system you get an error message saying "does not have gp
     
    13151073stop such warnings by installing the GNU linker.
    13161074
    1317 <p>It would be nice to extend GAS to produce the gp tables, but they are
     1075   <p>It would be nice to extend GAS to produce the gp tables, but they are
    13181076optional, and there should not be a warning about their absence.
    13191077
    1320 <p>Users have reported some problems with version 2.0 of the MIPS
    1321 compiler tools that were shipped with Ultrix 4.1.  Version 2.10
    1322 which came with Ultrix 4.2 seems to work fine.
    1323 
    1324 <p>Users have also reported some problems with version 2.20 of the
    1325 MIPS compiler tools that were shipped with RISC/os 4.x.  The earlier
    1326 version 2.11 seems to work fine.
    1327 
    1328 <p>Some versions of the MIPS linker will issue an assertion failure
    1329 when linking code that uses <code>alloca</code> against shared
    1330 libraries on RISC-OS 5.0, and DEC's OSF/1 systems.  This is a bug
    1331 in the linker, that is supposed to be fixed in future revisions.
    1332 To protect against this, GCC passes <code>-non_shared</code> to the
    1333 linker unless you pass an explicit <code>-shared</code> or
    1334 <code>-call_shared</code> switch.
    1335 
    1336 <h2><a name="TOC58"><a name="mips-mips-bsd"></a>mips-mips-bsd</h2>
    1337 
    1338 <p>MIPS machines running the MIPS operating system in BSD mode.
    1339 These configurations are obsoleted in GCC 3.1.
    1340 
    1341 <p>It's possible that some old versions of the system lack the functions
    1342 <code>memcpy</code>, <code>memmove</code>, <code>memcmp</code>, and <code>memset</code>.  If your
    1343 system lacks these, you must remove or undo the definition of
    1344 <code>TARGET_MEM_FUNCTIONS</code> in <code>mips-bsd.h</code>.
    1345 
    1346 <p>If you use the MIPS C compiler to bootstrap, it may be necessary
    1347 to increase its table size for switch statements with the
    1348 <code>-Wf,-XNg1500</code> option.  If you use the <code>-O2</code>
    1349 optimization option, you also need to use <code>-Olimit 3000</code>.
    1350 Both of these options are automatically generated in the
    1351 <code>Makefile</code> that the shell script <code>configure</code> builds.
    1352 If you override the <code>CC</code> make variable and use the MIPS
    1353 compilers, you may need to add <code>-Wf,-XNg1500 -Olimit 3000</code>.
    1354 
    1355 <hr />
    1356 
    1357 <h2><a name="TOC59"><a name="mips-dec-*"></a>mips-dec-*</h2>
    1358 
    1359 <p>These configurations are obsoleted in GCC 3.1.
    1360 
    1361 <p>MIPS-based DECstations can support three different personalities:
    1362 Ultrix, DEC OSF/1, and OSF/rose.  (Alpha-based DECstation products have
    1363 a configuration name beginning with <code>alpha*-dec</code>.)  To configure GCC
    1364 for these platforms use the following configurations:
    1365 
    1366 <dl>
    1367 <dt><code>mips-dec-ultrix</code>
    1368 <dd>Ultrix configuration.
    1369 
    1370 <br><dt><code>mips-dec-osf1</code>
    1371 <dd>DEC's version of OSF/1.
    1372 
    1373 <br><dt><code>mips-dec-osfrose</code>
    1374 <dd>Open Software Foundation reference port of OSF/1 which uses the
    1375 OSF/rose object file format instead of ECOFF.  Normally, you
    1376 would not select this configuration.
    1377 </dl>
    1378 
    1379 <p>If you use the MIPS C compiler to bootstrap, it may be necessary
    1380 to increase its table size for switch statements with the
    1381 <code>-Wf,-XNg1500</code> option.  If you use the <code>-O2</code>
    1382 optimization option, you also need to use <code>-Olimit 3000</code>.
    1383 Both of these options are automatically generated in the
    1384 <code>Makefile</code> that the shell script <code>configure</code> builds.
    1385 If you override the <code>CC</code> make variable and use the MIPS
    1386 compilers, you may need to add <code>-Wf,-XNg1500 -Olimit 3000</code>.
    1387 
    1388 <hr />
    1389 
    1390 <h2><a name="TOC60"><a name="mips-mips-riscos*"></a>mips-mips-riscos*</h2>
    1391 
    1392 <p>These configurations are obsoleted in GCC 3.1.
    1393 
    1394 <p>If you use the MIPS C compiler to bootstrap, it may be necessary
    1395 to increase its table size for switch statements with the
    1396 <code>-Wf,-XNg1500</code> option.  If you use the <code>-O2</code>
    1397 optimization option, you also need to use <code>-Olimit 3000</code>.
    1398 Both of these options are automatically generated in the
    1399 <code>Makefile</code> that the shell script <code>configure</code> builds.
    1400 If you override the <code>CC</code> make variable and use the MIPS
    1401 compilers, you may need to add <code>-Wf,-XNg1500 -Olimit 3000</code>.
    1402 
    1403 <p>MIPS computers running RISC-OS can support four different
    1404 personalities: default, BSD 4.3, System V.3, and System V.4
    1405 (older versions of RISC-OS don't support V.4).  To configure GCC
    1406 for these platforms use the following configurations:
    1407 
    1408 <dl>
    1409 <dt><code>mips-mips-riscos<var>rev</var></code>
    1410 <dd>Default configuration for RISC-OS, revision <var>rev</var>.
    1411 
    1412 <br><dt><code>mips-mips-riscos<var>rev</var>bsd</code>
    1413 <dd>BSD 4.3 configuration for RISC-OS, revision <var>rev</var>.
    1414 
    1415 <br><dt><code>mips-mips-riscos<var>rev</var>sysv4</code>
    1416 <dd>System V.4 configuration for RISC-OS, revision <var>rev</var>.
    1417 
    1418 <hr />
    1419 <br><dt><code>mips-mips-riscos<var>rev</var>sysv</code>
    1420 <dd>System V.3 configuration for RISC-OS, revision <var>rev</var>.
    1421 </dl>
    1422 
    1423 <p>The revision <code>rev</code> mentioned above is the revision of
    1424 RISC-OS to use.  You must reconfigure GCC when going from a
    1425 RISC-OS revision 4 to RISC-OS revision 5.  This has the effect of
    1426 avoiding a linker bug.
    1427 
    1428 <hr />
    1429 
    1430 <h2><a name="TOC61"><a name="mips-sgi-irix4"></a>mips-sgi-irix4</h2>
    1431 
    1432 <p>This configuration is obsoleted in GCC 3.1.
    1433 
    1434 <p>In order to compile GCC on an SGI running IRIX 4, the "c.hdr.lib"
    1435 option must be installed from the CD-ROM supplied from Silicon Graphics.
    1436 This is found on the 2nd CD in release 4.0.1.
    1437 
    1438 <p>On IRIX version 4.0.5F, and perhaps on some other versions as well,
    1439 there is an assembler bug that reorders instructions incorrectly.  To
    1440 work around it, specify the target configuration
    1441 <code>mips-sgi-irix4loser</code>.  This configuration inhibits assembler
    1442 optimization.
    1443 
    1444 <p>In a compiler configured with target <code>mips-sgi-irix4</code>, you can turn
    1445 off assembler optimization by using the <code>-noasmopt</code> option.  This
    1446 compiler option passes the option <code>-O0</code> to the assembler, to
    1447 inhibit reordering.
    1448 
    1449 <p>The <code>-noasmopt</code> option can be useful for testing whether a problem
    1450 is due to erroneous assembler reordering.  Even if a problem does not go
    1451 away with <code>-noasmopt</code>, it may still be due to assembler
    1452 reordering--perhaps GCC itself was miscompiled as a result.
    1453 
    1454 <p>You may get the following warning on IRIX 4 platforms, it can be safely
    1455 ignored.
    1456 <pre>  warning: foo.o does not have gp tables for all its sections.
    1457 </pre>
    1458 
    1459 <hr />
    1460 
    1461 <h2><a name="TOC62"><a name="mips-sgi-irix5"></a>mips-sgi-irix5</h2>
     1078   <p>The libstdc++ atomic locking routines for MIPS targets requires MIPS II
     1079and later.  A patch went in just after the GCC 3.3 release to
     1080make <code>mips*-*-*</code> use the generic implementation instead.  You can also
     1081configure for <code>mipsel-elf</code> as a workaround.  The
     1082<code>mips*-*-linux*</code> target continues to use the MIPS II routines.  More
     1083work on this is expected in future releases.
     1084
     1085   <hr />
     1086
     1087<h3 class="heading"><a name="TOC41"></a><a name="mips-sgi-irix5"></a>mips-sgi-irix5</h3>
    14621088
    14631089<p>This configuration has considerable problems, which will be fixed in a
    14641090future release.
    14651091
    1466 <p>In order to compile GCC on an SGI running IRIX 5, the "compiler_dev.hdr"
     1092   <p>In order to compile GCC on an SGI running IRIX 5, the "compiler_dev.hdr"
    14671093subsystem must be installed from the IDO CD-ROM supplied by Silicon
    14681094Graphics.  It is also available for download from
    14691095<a href="http://www.sgi.com/developers/devtools/apis/ido.html">http://www.sgi.com/developers/devtools/apis/ido.html</a>.
    14701096
    1471 <p><code>make compare</code> may fail on version 5 of IRIX unless you add
     1097   <p><code>make compare</code> may fail on version 5 of IRIX unless you add
    14721098<code>-save-temps</code> to <code>CFLAGS</code>.  On these systems, the name of the
    14731099assembler input file is stored in the object file, and that makes
     
    14801106<code>.s</code> files after each series of compilations.
    14811107
    1482 <p>If you use the MIPS C compiler to bootstrap, it may be necessary
     1108   <p>If you use the MIPS C compiler to bootstrap, it may be necessary
    14831109to increase its table size for switch statements with the
    14841110<code>-Wf,-XNg1500</code> option.  If you use the <code>-O2</code>
    14851111optimization option, you also need to use <code>-Olimit 3000</code>.
    14861112
    1487 <p>To enable debugging under IRIX 5, you must use GNU <code>as</code> 2.11.2
     1113   <p>To enable debugging under IRIX 5, you must use GNU <code>as</code> 2.11.2
    14881114or later,
    14891115and use the <code>--with-gnu-as</code> configure option when configuring GCC.
     
    14931119which will be included in the next release of binutils.
    14941120
    1495 <p>When building GCC, the build process loops rebuilding <code>cc1</code> over
     1121   <p>When building GCC, the build process loops rebuilding <code>cc1</code> over
    14961122and over again.  This happens on <code>mips-sgi-irix5.2</code>, and possibly
    14971123other platforms.  It has been reported that this is a known bug in the
     
    15011127not have GNU <code>make</code> available.
    15021128
    1503 <hr />
    1504 
    1505 <h2><a name="TOC63"><a name="mips-sgi-irix6"></a>mips-sgi-irix6</h2>
     1129   <hr />
     1130
     1131<h3 class="heading"><a name="TOC42"></a><a name="mips-sgi-irix6"></a>mips-sgi-irix6</h3>
    15061132
    15071133<p>If you are using IRIX <code>cc</code> as your bootstrap compiler, you must
     
    15101136resulting object file.  The output should look like:
    15111137
    1512 <pre>test.o: ELF N32 MSB <small>...</small>
    1513 </pre>
    1514 
    1515 <p>If you see:
    1516 
    1517 <pre>test.o: ELF 32-bit MSB <small>...</small>
    1518 </pre>
    1519 
    1520 <p>or
    1521 
    1522 <pre>test.o: ELF 64-bit MSB <small>...</small>
    1523 </pre>
    1524 
    1525 <p>then your version of <code>cc</code> uses the O32 or N64 ABI by default.  You
     1138<pre class="example">     test.o: ELF N32 MSB ...
     1139     </pre>
     1140
     1141   <p>If you see:
     1142
     1143<pre class="example">     test.o: ELF 32-bit MSB ...
     1144     </pre>
     1145
     1146   <p>or
     1147
     1148<pre class="example">     test.o: ELF 64-bit MSB ...
     1149     </pre>
     1150
     1151   <p>then your version of <code>cc</code> uses the O32 or N64 ABI by default.  You
    15261152should set the environment variable <code>CC</code> to <code>cc -n32</code>
    15271153before configuring GCC.
    15281154
    1529 <p>If you want the resulting <code>gcc</code> to run on old 32-bit systems
     1155   <p>If you want the resulting <code>gcc</code> to run on old 32-bit systems
    15301156with the MIPS R4400 CPU, you need to ensure that only code for the mips3
    15311157instruction set architecture (ISA) is generated.  While GCC 3.x does
     
    15351161all on mips3-only systems.  For the test program above, you should see:
    15361162
    1537 <pre>test.o: ELF N32 MSB mips-3 <small>...</small>
    1538 </pre>
    1539 
    1540 <p>If you get:
    1541 
    1542 <pre>test.o: ELF N32 MSB mips-4 <small>...</small>
    1543 </pre>
    1544 
    1545 <p>instead, you should set the environment variable <code>CC</code> to <code>cc
     1163<pre class="example">     test.o: ELF N32 MSB mips-3 ...
     1164     </pre>
     1165
     1166   <p>If you get:
     1167
     1168<pre class="example">     test.o: ELF N32 MSB mips-4 ...
     1169     </pre>
     1170
     1171   <p>instead, you should set the environment variable <code>CC</code> to <code>cc
    15461172-n32 -mips3</code> or <code>gcc -mips3</code> respectively before configuring GCC.
    15471173
    1548 <p>GCC on IRIX 6 is usually built to support both the N32 and N64 ABIs.  If
     1174   <p>GCC on IRIX 6 is usually built to support both the N32 and N64 ABIs.  If
    15491175you build GCC on a system that doesn't have the N64 libraries installed,
    15501176you need to configure with <code>--disable-multilib</code> so GCC doesn't
     
    15521178have the 64-bit libraries installed.
    15531179
    1554 <p>You must <em>not</em> use GNU <code>as</code> (which isn't built anyway as of
     1180   <p>You must <em>not</em> use GNU <code>as</code> (which isn't built anyway as of
    15551181binutils 2.11.2) on IRIX 6 platforms; doing so will only cause problems.
    15561182
    1557 <p>GCC does not currently support generating O32 ABI binaries in the
     1183   <p>GCC does not currently support generating O32 ABI binaries in the
    15581184<code>mips-sgi-irix6</code> configurations.  It is possible to create a GCC
    15591185with O32 ABI only support by configuring it for the <code>mips-sgi-irix5</code>
     
    15641190expected that O32 ABI support will be available again in a future release.
    15651191
    1566 <p>The <code>--enable-threads</code> option doesn't currently work, a patch is
     1192   <p>The <code>--enable-threads</code> option doesn't currently work, a patch is
    15671193in preparation for a future release.  The <code>--enable-libgcj</code>
    15681194option is disabled by default: IRIX 6 uses a very low default limit
     
    15741200<code>systune</code> command to do this.
    15751201
    1576 <p>GCC does not correctly pass/return structures which are
     1202   <p>GCC does not correctly pass/return structures which are
    15771203smaller than 16 bytes and which are not 8 bytes.  The problem is very
    15781204involved and difficult to fix.  It affects a number of other targets also,
     
    15831209register.
    15841210
    1585 <p>GCC is consistent with itself, but not consistent with the SGI C compiler
     1211   <p>GCC is consistent with itself, but not consistent with the SGI C compiler
    15861212(and the SGI supplied runtime libraries), so the only failures that can
    15871213happen are when there are library functions that take/return such
     
    15911217bug is fixed, GCC contains workarounds for the known affected functions.
    15921218
    1593 <p>See <a href="http://freeware.sgi.com/">http://freeware.sgi.com/</a> for more
     1219   <p>See <a href="http://freeware.sgi.com/">http://freeware.sgi.com/</a> for more
    15941220information about using GCC on IRIX platforms.
    15951221
    1596 <hr />
    1597 
    1598 <h2><a name="TOC64"><a name="mips-sony-sysv"></a>mips-sony-sysv</h2>
    1599 
    1600 <p>Sony MIPS NEWS.  This configuration is obsoleted in GCC 3.1.
    1601 
    1602 <p>This works in NEWSOS 5.0.1, but not in 5.0.2 (which uses ELF instead of
    1603 COFF).  In particular, the linker does not like the code generated by
    1604 GCC when shared libraries are linked in.
    1605 
    1606 <hr />
    1607 
    1608 <h2><a name="TOC65"><a name="ns32k-encore"></a>ns32k-encore</h2>
    1609 
    1610 <p>This configuration is obsoleted in GCC 3.1.
    1611 
    1612 <p>Encore ns32000 system.  Encore systems are supported only under BSD.
    1613 
    1614 <hr />
    1615 
    1616 <h2><a name="TOC66"><a name="ns32k-*-genix"></a>ns32k-*-genix</h2>
    1617 
    1618 <p>National Semiconductor ns32000 system. This configuration is obsoleted
    1619 in GCC 3.1.
    1620 
    1621 <p>Genix has bugs in <code>alloca</code> and <code>malloc</code>; you must get the
    1622 compiled versions of these from GNU Emacs.
    1623 
    1624 <hr />
    1625 
    1626 <h2><a name="TOC67"><a name="ns32k-sequent"></a>ns32k-sequent</h2>
    1627 
    1628 <p>This configuration is obsoleted in GCC 3.1.
    1629 
    1630 <p>Go to the Berkeley universe before compiling.
    1631 
    1632 <hr />
    1633 
    1634 <h2><a name="TOC68"><a name="ns32k-utek"></a>ns32k-utek</h2>
    1635 
    1636 <p>UTEK ns32000 system ("merlin").  This configuration is obsoleted in
    1637 GCC 3.1.
    1638 
    1639 <p>The C compiler that comes with this system cannot compile GCC; contact
    1640 <code>tektronix!reed!mason</code> to get binaries of GCC for bootstrapping.
    1641 
    1642 <hr />
    1643 
    1644 <h2><a name="TOC69"><a name="powerpc*-*-*"></a>powerpc-*-*</h2>
    1645 
    1646 <p>You can specify a default version for the <code>-mcpu=<var>cpu_type</var></code>
    1647 switch by using the configure option <code>--with-cpu-<var>cpu_type</var></code>.
    1648 
    1649 <hr />
    1650 
    1651 <h2><a name="TOC70"><a name="powerpc-*-darwin*"></a>powerpc-*-darwin*</h2>
     1222   <hr />
     1223
     1224<h3 class="heading"><a name="TOC43"></a><a name="powerpc*-*-*"></a>powerpc-*-*</h3>
     1225
     1226<p>You can specify a default version for the <code>-mcpu=</code><var>cpu_type</var><code></code>
     1227switch by using the configure option <code>--with-cpu-</code><var>cpu_type</var><code></code>.
     1228
     1229   <hr />
     1230
     1231<h3 class="heading"><a name="TOC44"></a><a name="powerpc-*-darwin*"></a>powerpc-*-darwin*</h3>
    16521232
    16531233<p>PowerPC running Darwin (Mac OS X kernel).
    16541234
    1655 <p>GCC 3.0 does not support Darwin, but 3.1 and later releases will work.
    1656 
    1657 <p>Pre-installed versions of Mac OS X may not include any developer tools,
     1235   <p>Pre-installed versions of Mac OS X may not include any developer tools,
    16581236meaning that you will not be able to build GCC from source.  Tool
    16591237binaries are available at
    1660 <a href="http://www.opensource.apple.com/projects/darwin">http://www.opensource.apple.com/projects/darwin</a> (free
     1238<a href="http://developer.apple.com/tools/compilers.html">http://developer.apple.com/tools/compilers.html</a> (free
    16611239registration required).
    16621240
    1663 <p>Versions of the assembler prior to "cctools-364" cannot handle the
    1664 4-argument form of <code>rlwinm</code> and related mask-using instructions.  Darwin
    1665 1.3 (Mac OS X 10.0) uses cctools-353 for instance.  To get cctools-364,
    1666 check out <code>cctools</code> with tag <code>Apple-364</code>, build it, and
    1667 install the assembler as <code>usr/bin/as</code>.  See
    1668 <a href="http://www.opensource.apple.com/tools/cvs/docs.html">http://www.opensource.apple.com/tools/cvs/docs.html</a> for details.
    1669 
    1670 <p>Also, the default stack limit of 512K is too small, and a bootstrap will
    1671 typically fail when self-compiling <code>expr.c</code>.  Set the stack to 800K
    1672 or more, for instance by doing <code>limit stack 800</code>.  It's also
    1673 convenient to use the GNU preprocessor instead of Apple's during the
    1674 first stage of bootstrapping; this is automatic when doing <code>make
    1675 bootstrap</code>, but to do it from the toplevel objdir you will need to say
    1676 <code>make CC='cc -no-cpp-precomp' bootstrap</code>.
    1677 
    1678 <p>Note that the version of GCC shipped by Apple typically includes a
    1679 number of extensions not available in a standard GCC release.  These
    1680 extensions are generally specific to Mac programming.
    1681 
    1682 <hr />
    1683 
    1684 <h2><a name="TOC71"><a name="powerpc-*-elf"></a>powerpc-*-elf, powerpc-*-sysv4</h2>
     1241   <p>The default stack limit of 512K is too small, which may cause compiles
     1242to fail with 'Bus error'.  Set the stack larger, for instance
     1243by doing <code>limit stack 800</code>.  It's a good idea to use the GNU
     1244preprocessor instead of Apple's <code>cpp-precomp</code> during the first stage of
     1245bootstrapping; this is automatic when doing <code>make bootstrap</code>, but
     1246to do it from the toplevel objdir you will need to say <code>make
     1247CC='cc -no-cpp-precomp' bootstrap</code>.
     1248
     1249   <p>The version of GCC shipped by Apple typically includes a number of
     1250extensions not available in a standard GCC release.  These extensions
     1251are generally specific to Mac programming.
     1252
     1253   <hr />
     1254
     1255<h3 class="heading"><a name="TOC45"></a><a name="powerpc-*-elf"></a>powerpc-*-elf, powerpc-*-sysv4</h3>
    16851256
    16861257<p>PowerPC system in big endian mode, running System V.4.
    16871258
    1688 <hr />
    1689 
    1690 <h2><a name="TOC72"><a name="powerpc-*-linux-gnu*"></a>powerpc-*-linux-gnu*</h2>
     1259   <hr />
     1260
     1261<h3 class="heading"><a name="TOC46"></a><a name="powerpc-*-linux-gnu*"></a>powerpc-*-linux-gnu*</h3>
    16911262
    16921263<p>You will need
     
    16941265or newer for a working GCC.
    16951266
    1696 <hr />
    1697 
    1698 <h2><a name="TOC73"><a name="powerpc-*-netbsd*"></a>powerpc-*-netbsd*</h2>
     1267   <hr />
     1268
     1269<h3 class="heading"><a name="TOC47"></a><a name="powerpc-*-netbsd*"></a>powerpc-*-netbsd*</h3>
    16991270
    17001271<p>PowerPC system in big endian mode running NetBSD.  To build the
    1701 documentation you will need Texinfo version 4.1 (NetBSD 1.5.1 included
     1272documentation you will need Texinfo version 4.2 (NetBSD 1.5.1 included
    17021273Texinfo version 3.12).
    17031274
    1704 <hr />
    1705 
    1706 <h2><a name="TOC74"><a name="powerpc-*-eabiaix"></a>powerpc-*-eabiaix</h2>
     1275   <hr />
     1276
     1277<h3 class="heading"><a name="TOC48"></a><a name="powerpc-*-eabiaix"></a>powerpc-*-eabiaix</h3>
    17071278
    17081279<p>Embedded PowerPC system in big endian mode with <code>-mcall-aix</code> selected as
    17091280the default.
    17101281
    1711 <hr />
    1712 
    1713 <h2><a name="TOC75"><a name="powerpc-*-eabisim"></a>powerpc-*-eabisim</h2>
     1282   <hr />
     1283
     1284<h3 class="heading"><a name="TOC49"></a><a name="powerpc-*-eabisim"></a>powerpc-*-eabisim</h3>
    17141285
    17151286<p>Embedded PowerPC system in big endian mode for use in running under the
    17161287PSIM simulator.
    17171288
    1718 <hr />
    1719 
    1720 <h2><a name="TOC76"><a name="powerpc-*-eabi"></a>powerpc-*-eabi</h2>
     1289   <hr />
     1290
     1291<h3 class="heading"><a name="TOC50"></a><a name="powerpc-*-eabi"></a>powerpc-*-eabi</h3>
    17211292
    17221293<p>Embedded PowerPC system in big endian mode.
    17231294
    1724 <hr />
    1725 
    1726 <h2><a name="TOC77"><a name="powerpcle-*-elf"></a>powerpcle-*-elf, powerpcle-*-sysv4</h2>
     1295   <hr />
     1296
     1297<h3 class="heading"><a name="TOC51"></a><a name="powerpcle-*-elf"></a>powerpcle-*-elf, powerpcle-*-sysv4</h3>
    17271298
    17281299<p>PowerPC system in little endian mode, running System V.4.
    17291300
    1730 <hr />
    1731 
    1732 <h2><a name="TOC78"><a name="powerpcle-*-eabisim"></a>powerpcle-*-eabisim</h2>
     1301   <hr />
     1302
     1303<h3 class="heading"><a name="TOC52"></a><a name="powerpcle-*-eabisim"></a>powerpcle-*-eabisim</h3>
    17331304
    17341305<p>Embedded PowerPC system in little endian mode for use in running under
    17351306the PSIM simulator.
    17361307
    1737 <hr />
    1738 
    1739 <h2><a name="TOC79"><a name="powerpcle-*-eabi"></a>powerpcle-*-eabi</h2>
     1308   <hr />
     1309
     1310<h3 class="heading"><a name="TOC53"></a><a name="powerpcle-*-eabi"></a>powerpcle-*-eabi</h3>
    17401311
    17411312<p>Embedded PowerPC system in little endian mode.
    17421313
    1743 <hr />
    1744 
    1745 <h2><a name="TOC80"><a name="powerpcle-*-winnt"></a>powerpcle-*-winnt, powerpcle-*-pe</h2>
    1746 
    1747 <p>PowerPC system in little endian mode running Windows NT.
    1748 
    1749 <hr />
    1750 
    1751 <h2><a name="TOC81"><a name="romp-*-aos"></a>romp-*-aos, romp-*-mach</h2>
    1752 
    1753 <p>These configurations are obsoleted in GCC 3.1.
    1754 
    1755 <p>We recommend you compile GCC with an earlier version of itself; if you
    1756 compile GCC with <code>hc</code>, the Metaware compiler, it will work, but
    1757 you will get mismatches between the stage 2 and stage 3 compilers in
    1758 various files.  These errors are minor differences in some
    1759 floating-point constants and can be safely ignored; the stage 3 compiler
    1760 is correct.
    1761 
    1762 <hr />
    1763 
    1764 <h2><a name="TOC82"><a name="s390-*-linux*"></a>s390-*-linux*</h2>
     1314   <hr />
     1315
     1316<h3 class="heading"><a name="TOC54"></a><a name="s390-*-linux*"></a>s390-*-linux*</h3>
    17651317
    17661318<p>S/390 system running Linux for S/390.
    17671319
    1768 <hr />
    1769 
    1770 <h2><a name="TOC83"><a name="s390x-*-linux*"></a>s390x-*-linux*</h2>
     1320   <hr />
     1321
     1322<h3 class="heading"><a name="TOC55"></a><a name="s390x-*-linux*"></a>s390x-*-linux*</h3>
    17711323
    17721324<p>zSeries system (64-bit) running Linux for zSeries.
    17731325
    1774 <hr />
    1775 
    1776 <h2><a name="TOC84"><a name="*-*-solaris2*"></a>*-*-solaris2*</h2>
     1326   <hr />
     1327
     1328<h3 class="heading"><a name="TOC56"></a><a name="*-*-solaris2*"></a>*-*-solaris2*</h3>
    17771329
    17781330<p>Sun does not ship a C compiler with Solaris 2.  To bootstrap and install
     
    17801332<a href="binaries.html">binaries page</a> for details.
    17811333
    1782 <p>The Solaris 2 <code>/bin/sh</code> will often fail to configure
    1783 <code>libstdc++-v3</code>, <code>boehm-gc</code> or
    1784 <code>libjava</code>.  If you encounter this problem, set <code>CONFIG_SHELL</code> to
    1785 <code>/bin/ksh</code> in your environment before running <code>configure</code>.
    1786 
    1787 <p>Solaris 2 comes with a number of optional OS packages.  Some of these
    1788 packages are needed to use GCC fully, namely <code>SUNWarc</code>,
     1334   <p>The Solaris 2 <code>/bin/sh</code> will often fail to configure
     1335<code>libstdc++-v3</code>, <code>boehm-gc</code> or <code>libjava</code>.  We therefore
     1336recommend to use the following sequence of commands to bootstrap and
     1337install GCC:
     1338
     1339<pre class="smallexample">        % CONFIG_SHELL=/bin/ksh
     1340        % export CONFIG_SHELL
     1341        % <var>srcdir</var>/configure [<var>options</var>] [<var>target</var>]
     1342        % gmake bootstrap
     1343        % gmake install
     1344     </pre>
     1345
     1346   <p>As explained in the <a href="build.html">build</a> instructions, we recommend
     1347to use GNU make, which we call <code>gmake</code> here to distinguish it
     1348from Sun make.
     1349
     1350   <p>Solaris 2 comes with a number of optional OS packages.  Some of these
     1351are needed to use GCC fully, namely <code>SUNWarc</code>,
    17891352<code>SUNWbtool</code>, <code>SUNWesu</code>, <code>SUNWhea</code>, <code>SUNWlibm</code>,
    17901353<code>SUNWsprot</code>, and <code>SUNWtoo</code>.  If you did not install all
     
    17921355the packages that GCC needs are installed.
    17931356
    1794 <p>To check whether an optional package is installed, use
     1357   <p>To check whether an optional package is installed, use
    17951358the <code>pkginfo</code> command.  To add an optional package, use the
    17961359<code>pkgadd</code> command.  For further details, see the Solaris 2
    17971360documentation.
    17981361
    1799 <p>Trying to use the linker and other tools in
     1362   <p>Trying to use the linker and other tools in
    18001363<code>/usr/ucb</code> to install GCC has been observed to cause trouble.
    18011364For example, the linker may hang indefinitely.  The fix is to remove
    18021365<code>/usr/ucb</code> from your <code>PATH</code>.
    18031366
    1804 <p>All releases of GNU binutils prior to 2.11.2 have known bugs on this
     1367   <p>The build process works more smoothly with the legacy Sun tools so, if you
     1368have <code>/usr/xpg4/bin</code> in your <code>PATH</code>, we recommend that you place
     1369<code>/usr/bin</code> before <code>/usr/xpg4/bin</code> for the duration of the build.
     1370
     1371   <p>All releases of GNU binutils prior to 2.11.2 have known bugs on this
    18051372platform.  We recommend the use of GNU binutils 2.11.2 or the vendor
    18061373tools (Sun <code>as</code>, Sun <code>ld</code>).
    18071374
    1808 <p>Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
     1375   <p>Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
    18091376newer: <code>g++</code> will complain that types are missing.  These headers assume
    18101377that omitting the type means <code>int</code>; this assumption worked for C89 but
    18111378is wrong for C++, and is now wrong for C99 also.
    18121379
    1813 <p><code>g++</code> accepts such (invalid) constructs with the option
     1380   <p><code>g++</code> accepts such (invalid) constructs with the option
    18141381<code>-fpermissive</code>; it
    18151382will assume that any missing type is <code>int</code> (as defined by C89).
    18161383
    1817 <p>There are patches for Solaris 2.6 (105633-56 or newer for SPARC,
     1384   <p>There are patches for Solaris 2.6 (105633-56 or newer for SPARC,
    18181385106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC,
    18191386108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
    18201387108653-22 for Intel) that fix this bug.
    18211388
    1822 <hr />
    1823 
    1824 <h2><a name="TOC85"><a name="sparc-sun-solaris2*"></a>sparc-sun-solaris2*</h2>
     1389   <hr />
     1390
     1391<h3 class="heading"><a name="TOC57"></a><a name="sparc-sun-solaris2*"></a>sparc-sun-solaris2*</h3>
    18251392
    18261393<p>When GCC is configured to use binutils 2.11.2 or later the binaries
     
    18291396information.
    18301397
    1831 <p>Sun <code>as</code> 4.x is broken in that it cannot cope with long symbol names.
     1398   <p>Sun <code>as</code> 4.x is broken in that it cannot cope with long symbol names.
    18321399A typical error message might look similar to the following:
    18331400
    1834 <pre>/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error:
    1835   can't compute value of an expression involving an external symbol.
    1836 </pre>
    1837 
    1838 <p>This is Sun bug 4237974.  This is fixed with patch 108908-02 for Solaris
     1401<pre class="smallexample">     /usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error:
     1402       can't compute value of an expression involving an external symbol.
     1403     </pre>
     1404
     1405   <p>This is Sun bug 4237974.  This is fixed with patch 108908-02 for Solaris
    183914062.6 and has been fixed in later (5.x) versions of the assembler,
    18401407starting with Solaris 7.
    18411408
    1842 <p>Starting with Solaris 7, the operating system is capable of executing
     1409   <p>Starting with Solaris 7, the operating system is capable of executing
    1843141064-bit SPARC V9 binaries.  GCC 3.1 and later properly supports
    18441411this; the <code>-m64</code> option enables 64-bit code generation.
     
    18481415machines.
    18491416
    1850 <p>When configuring on a Solaris 7 or later system that is running a kernel
     1417   <p>When configuring on a Solaris 7 or later system that is running a kernel
    18511418that supports only 32-bit binaries, one must configure with
    18521419<code>--disable-multilib</code>, since we will not be able to build the
    1853142064-bit target libraries.
    18541421
    1855 <hr />
    1856 
    1857 <h2><a name="TOC86"><a name="sparc-sun-solaris2.7"></a>sparc-sun-solaris2.7</h2>
     1422   <hr />
     1423
     1424<h3 class="heading"><a name="TOC58"></a><a name="sparc-sun-solaris2.7"></a>sparc-sun-solaris2.7</h3>
    18581425
    18591426<p>Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in
     
    18631430recommend it only for people who use Sun's compilers.
    18641431
    1865 <p>Here are some workarounds to this problem:
    1866 <ul>
     1432   <p>Here are some workarounds to this problem:
     1433     <ul>
    18671434<li>Do not install Sun patch 107058-01 until after Sun releases a
    18681435complete patch for bug 4210064.  This is the simplest course to take,
     
    18711438back it out.
    18721439
    1873 <li>Copy the original, unpatched Solaris 7
     1440     <li>Copy the original, unpatched Solaris 7
    18741441<code>/usr/ccs/bin/as</code> into
    18751442<code>/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/3.1/as</code>,
     
    18771444version numbers.
    18781445
    1879 <li>Install Sun patch 106950-03 (1999-05-25) or later.  Nobody with
     1446     <li>Install Sun patch 106950-03 (1999-05-25) or later.  Nobody with
    18801447both 107058-01 and 106950-03 installed has reported the bug with GCC
    18811448and Sun's dynamic linker.  This last course of action is riskiest,
     
    18891456</ul>
    18901457
    1891 <p>
     1458   <p>GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun assembler,
     1459which causes a bootstrap failure when linking the 64-bit shared version of
     1460libgcc. A typical error message is:
     1461
     1462<pre class="smallexample">     ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
     1463       symbol &lt;unknown&gt;:  offset 0xffffffff7ec133e7 is non-aligned.
     1464     </pre>
     1465
     1466   <p>This bug has been fixed in the final 5.0 version of the assembler.
     1467
     1468   <p>
    18921469<hr />
    18931470
    1894 <h2><a name="TOC87"><a name="sparc-sun-sunos4*"></a>sparc-sun-sunos4*</h2>
    1895 
    1896 <p>A bug in the SunOS 4 linker will cause it to crash when linking
     1471<h3 class="heading"><a name="TOC59"></a><a name="sparc-sun-sunos4*"></a>sparc-sun-sunos4*</h3>
     1472
     1473<p>Support for this system is obsoleted in GCC 3.3.
     1474
     1475   <p>A bug in the SunOS 4 linker will cause it to crash when linking
    18971476<code>-fPIC</code> compiled objects (and will therefore not allow you to build
    18981477shared libraries).
    18991478
    1900 <p>To fix this problem you can either use the most recent version of
     1479   <p>To fix this problem you can either use the most recent version of
    19011480binutils or get the latest SunOS 4 linker patch (patch ID 100170-10)
    19021481from Sun's patch site.
    19031482
    1904 <p>Sometimes on a Sun 4 you may observe a crash in the program
     1483   <p>Sometimes on a Sun 4 you may observe a crash in the program
    19051484<code>genflags</code> or <code>genoutput</code> while building GCC.  This is said to
    19061485be due to a bug in <code>sh</code>.  You can probably get around it by running
     
    19081487<code>make</code>.
    19091488
    1910 <hr />
    1911 
    1912 <h2><a name="TOC88"><a name="sparc-unknown-linux-gnulibc1"></a>sparc-unknown-linux-gnulibc1</h2>
    1913 
    1914 <p>It has been reported that you might need
     1489   <hr />
     1490
     1491<h3 class="heading"><a name="TOC60"></a><a name="sparc-unknown-linux-gnulibc1"></a>sparc-unknown-linux-gnulibc1</h3>
     1492
     1493<p>Support for this system is obsoleted in GCC 3.3.
     1494
     1495   <p>It has been reported that you might need
    19151496<a href="ftp://ftp.yggdrasil.com/private/hjl">binutils 2.8.1.0.23</a>
    19161497for this platform, too.
    19171498
    1918 <hr />
    1919 
    1920 <h2><a name="TOC89"><a name="sparc-*-linux*"></a>sparc-*-linux*</h2>
     1499   <hr />
     1500
     1501<h3 class="heading"><a name="TOC61"></a><a name="sparc-*-linux*"></a>sparc-*-linux*</h3>
    19211502
    19221503<p>GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4
     
    19241505releases mishandled unaligned relocations on <code>sparc-*-*</code> targets.
    19251506
    1926 <hr />
    1927 
    1928 <h2><a name="TOC90"><a name="sparc64-*-*"></a>sparc64-*-*</h2>
    1929 
    1930 <p>GCC version 2.95 is not able to compile code correctly for
    1931 <code>sparc64</code> targets.  Users of the Linux kernel, at least,
    1932 can use the <code>sparc32</code> program to start up a new shell
    1933 invocation with an environment that causes <code>configure</code> to
    1934 recognize (via <code>uname -a</code>) the system as <code>sparc-*-*</code> instead.
    1935 
    1936 <hr />
    1937 
    1938 <h2><a name="TOC91"><a name="sparcv9-*-solaris2*"></a>sparcv9-*-solaris2*</h2>
     1507   <hr />
     1508
     1509<h3 class="heading"><a name="TOC62"></a><a name="sparc64-*-solaris2*"></a>sparc64-*-solaris2*</h3>
    19391510
    19401511<p>The following compiler flags must be specified in the configure
    19411512step in order to bootstrap this target with the Sun compiler:
    19421513
    1943 <pre>   % CC="cc -xildoff -xarch=v9" <var>srcdir</var>/configure [<var>options</var>] [<var>target</var>]
    1944 </pre>
    1945 
    1946 <p><code>-xildoff</code> turns off the incremental linker, and <code>-xarch=v9</code>
    1947 specifies the v9 architecture to the Sun linker and assembler.
    1948 
    1949 <hr />
    1950 
    1951 <h2><a name="TOC92"><a name="%23*-*-sysv*"></a>*-*-sysv*</h2>
     1514<pre class="example">        % CC="cc -xildoff -xarch=v9" <var>srcdir</var>/configure [<var>options</var>] [<var>target</var>]
     1515     </pre>
     1516
     1517   <p><code>-xildoff</code> turns off the incremental linker, and <code>-xarch=v9</code>
     1518specifies the SPARC-V9 architecture to the Sun linker and assembler.
     1519
     1520   <hr />
     1521
     1522<h3 class="heading"><a name="TOC63"></a><a name="sparcv9-*-solaris2*"></a>sparcv9-*-solaris2*</h3>
     1523
     1524<p>This is a synonym for sparc64-*-solaris2*.
     1525
     1526   <hr />
     1527
     1528<h3 class="heading"><a name="TOC64"></a><a name="%23*-*-sysv*"></a>*-*-sysv*</h3>
    19521529
    19531530<p>On System V release 3, you may get this error message
    19541531while linking:
    19551532
    1956 <pre>ld fatal: failed to write symbol name <var>something</var>
    1957  in strings table for file <var>whatever</var>
    1958 </pre>
    1959 
    1960 <p>This probably indicates that the disk is full or your ulimit won't allow
     1533<pre class="smallexample">     ld fatal: failed to write symbol name <var>something</var>
     1534      in strings table for file <var>whatever</var>
     1535     </pre>
     1536
     1537   <p>This probably indicates that the disk is full or your ulimit won't allow
    19611538the file to be as large as it needs to be.
    19621539
    1963 <p>This problem can also result because the kernel parameter <code>MAXUMEM</code>
     1540   <p>This problem can also result because the kernel parameter <code>MAXUMEM</code>
    19641541is too small.  If so, you must regenerate the kernel and make the value
    19651542much larger.  The default value is reported to be 1024; a value of 32768
    19661543is said to work.  Smaller values may also work.
    19671544
    1968 <p>On System V, if you get an error like this,
    1969 
    1970 <pre>/usr/local/lib/bison.simple: In function `yyparse':
    1971 /usr/local/lib/bison.simple:625: virtual memory exhausted
    1972 </pre>
     1545   <p>On System V, if you get an error like this,
     1546
     1547<pre class="example">     /usr/local/lib/bison.simple: In function `yyparse':
     1548     /usr/local/lib/bison.simple:625: virtual memory exhausted
     1549     </pre>
    19731550
    19741551<p>that too indicates a problem with disk space, ulimit, or <code>MAXUMEM</code>.
    19751552
    1976 <p>On a System V release 4 system, make sure <code>/usr/bin</code> precedes
     1553   <p>On a System V release 4 system, make sure <code>/usr/bin</code> precedes
    19771554<code>/usr/ucb</code> in <code>PATH</code>.  The <code>cc</code> command in
    19781555<code>/usr/ucb</code> uses libraries which have bugs.
    19791556
    1980 <hr />
    1981 
    1982 <h2><a name="TOC93"><a name="vax-dec-ultrix"></a>vax-dec-ultrix</h2>
     1557   <hr />
     1558
     1559<h3 class="heading"><a name="TOC65"></a><a name="vax-dec-ultrix"></a>vax-dec-ultrix</h3>
    19831560
    19841561<p>Don't try compiling with VAX C (<code>vcc</code>).  It produces incorrect code
    19851562in some cases (for example, when <code>alloca</code> is used).
    19861563
    1987 <hr />
    1988 
    1989 <h2><a name="TOC94"><a name="we32k-*-*"></a>we32k-*-*</h2>
    1990 
    1991 <p>These computers are also known as the 3b2, 3b5, 3b20 and other similar
    1992 names.  (However, the 3b1 is actually a 68000.)
    1993 These configurations are obsoleted in GCC 3.1.
    1994 
    1995 <p>Don't use <code>-g</code> when compiling with the system's compiler.  The
    1996 system's linker seems to be unable to handle such a large program with
    1997 debugging information.
    1998 
    1999 <p>The system's compiler runs out of capacity when compiling <code>stmt.c</code>
    2000 in GCC.  You can work around this by building <code>cpp</code> in GCC
    2001 first, then use that instead of the system's preprocessor with the
    2002 system's C compiler to compile <code>stmt.c</code>.  Here is how:
    2003 
    2004 <pre>mv /lib/cpp /lib/cpp.att
    2005 cp cpp /lib/cpp.gnu
    2006 echo '/lib/cpp.gnu -traditional ${1+"$@"}' &gt; /lib/cpp
    2007 chmod +x /lib/cpp
    2008 </pre>
    2009 
    2010 <p>The system's compiler produces bad code for some of the GCC
    2011 optimization files.  So you must build the stage 2 compiler without
    2012 optimization.  Then build a stage 3 compiler with optimization.
    2013 That executable should work.  Here are the necessary commands:
    2014 
    2015 <pre>make LANGUAGES=c CC=stage1/xgcc CFLAGS="-Bstage1/ -g"
    2016 make stage2
    2017 make CC=stage2/xgcc CFLAGS="-Bstage2/ -g -O"
    2018 </pre>
    2019 
    2020 <p>You may need to raise the ULIMIT setting to build a C++ compiler,
    2021 as the file <code>cc1plus</code> is larger than one megabyte.
    2022 
    2023 <hr />
    2024 
    2025 <h2><a name="TOC95"><a name="xtensa-*-elf"></a>xtensa-*-elf</h2>
     1564   <hr />
     1565
     1566<h3 class="heading"><a name="TOC66"></a><a name="x86_64-*-*"></a>x86_64-*-*, amd64-*-*</h3>
     1567
     1568<p>GCC supports the x86-64 architecture implemented by the AMD64 processor
     1569(amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD.
     1570On GNU/Linux the default is a bi-arch compiler which is able to generate
     1571both 64-bit x86-64 and 32-bit x86 code (via the <code>-m32</code> switch).
     1572
     1573   <hr />
     1574
     1575<h3 class="heading"><a name="TOC67"></a><a name="xtensa-*-elf"></a>xtensa-*-elf</h3>
    20261576
    20271577<p>This target is intended for embedded Xtensa systems using the
     
    20311581through inline assembly.
    20321582
    2033 <p>The Xtensa configuration information must be specified prior to
     1583   <p>The Xtensa configuration information must be specified prior to
    20341584building GCC.  The <code>gcc/config/xtensa/xtensa-config.h</code> header
    20351585file contains the configuration information.  If you created your
     
    20381588which you can use to replace the default header file.
    20391589
    2040 <hr />
    2041 
    2042 <h2><a name="TOC96"><a name="xtensa-*-linux*"></a>xtensa-*-linux*</h2>
     1590   <hr />
     1591
     1592<h3 class="heading"><a name="TOC68"></a><a name="xtensa-*-linux*"></a>xtensa-*-linux*</h3>
    20431593
    20441594<p>This target is for Xtensa systems running GNU/Linux.  It supports ELF
     
    20491599<a href="#xtensa-*-elf"><code>xtensa-*-elf</code></a> target.
    20501600
    2051 <hr />
    2052 
    2053 <h2><a name="TOC97"><a name="windows"></a>Microsoft Windows (32-bit)</h2>
    2054 
    2055 <p>A port of GCC 2.95.x is included with the
     1601   <hr />
     1602
     1603<h3 class="heading"><a name="TOC69"></a><a name="windows"></a>Microsoft Windows (32-bit)</h3>
     1604
     1605<p>A port of GCC 2.95.2 and 3.x is included with the
    20561606<a href="http://www.cygwin.com/">Cygwin environment</a>.
    20571607
    2058 <p>Current (as of early 2001) snapshots of GCC will build under Cygwin
     1608   <p>Current (as of early 2001) snapshots of GCC will build under Cygwin
    20591609without modification.
    20601610
    2061 <hr />
    2062 
    2063 <h2><a name="TOC98"><a name="os2"></a>OS/2</h2>
     1611   <p>GCC does not currently build with Microsoft's C++ compiler and there
     1612are no plans to make it do so.
     1613
     1614   <hr />
     1615
     1616<h3 class="heading"><a name="TOC70"></a><a name="os2"></a>OS/2</h3>
    20641617
    20651618<p>GCC does not currently support OS/2.  However, Andrew Zabolotny has been
     
    20671620at <a href="http://www.goof.com/pcg/os2/">http://www.goof.com/pcg/os2/</a>.
    20681621
    2069 <p>An older copy of GCC 2.8.1 is included with the EMX tools available at
     1622   <p>An older copy of GCC 2.8.1 is included with the EMX tools available at
    20701623<a href="ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/">ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/</a>.
    20711624
    2072 <hr />
    2073 
    2074 <h2><a name="TOC99"><a name="older"></a>Older systems</h2>
     1625   <hr />
     1626
     1627<h3 class="heading"><a name="TOC71"></a><a name="older"></a>Older systems</h3>
    20751628
    20761629<p>GCC contains support files for many older (1980s and early
    207716301990s) Unix variants.  For the most part, support for these systems
    20781631has not been deliberately removed, but it has not been maintained for
    2079 several years and may suffer from bitrot.  Support from some systems
    2080 has been removed from GCC 3: fx80, ns32-ns-genix, pyramid, tahoe,
    2081 gmicro, spur; most of these targets had not been updated since GCC
    2082 version 1.
    2083 
    2084 <p>We are planning to remove support for more older systems, starting in
    2085 GCC 3.1.  Each release will have a list of "obsoleted" systems.
     1632several years and may suffer from bitrot.
     1633
     1634   <p>Starting with GCC 3.1, each release has a list of "obsoleted" systems.
    20861635Support for these systems is still present in that release, but
    20871636<code>configure</code> will fail unless the <code>--enable-obsolete</code>
    2088 option is given.  Unless a maintainer steps forward, support for
    2089 these systems will be removed from the next release of GCC.
    2090 
    2091 <p>Support for older systems as targets for cross-compilation is less
    2092 problematic than support for them as hosts for GCC; if an enthusiast
    2093 wishes to make such a target work again (including resurrecting any
    2094 of the targets that never worked with GCC 2, starting from the last
    2095 CVS version before they were removed), patches
    2096 <a href="../contribute.html">following the usual requirements</a>
    2097 would be likely to be accepted, since they should not affect the
    2098 support for more modern targets.
    2099 
    2100 <p>Support for old systems as hosts for GCC can cause problems if the
     1637option is given.  Unless a maintainer steps forward, support for these
     1638systems will be removed from the next release of GCC.
     1639
     1640   <p>Support for old systems as hosts for GCC can cause problems if the
    21011641workarounds for compiler, library and operating system bugs affect the
    21021642cleanliness or maintainability of the rest of GCC.  In some cases, to
    21031643bring GCC up on such a system, if still possible with current GCC, may
    21041644require first installing an old version of GCC which did work on that
    2105 system, and using it to compile a more recent GCC, to avoid bugs in
    2106 the vendor compiler.  Old releases of GCC 1 and GCC 2 are available in
    2107 the <code>old-releases</code> directory on the
    2108 <a href="../mirrors.html">GCC mirror sites</a>.  Header bugs may generally
    2109 be avoided using <code>fixincludes</code>, but bugs or deficiencies in
    2110 libraries and the operating system may still cause problems.
    2111 
    2112 <p>For some systems, old versions of GNU binutils may also be useful,
     1645system, and using it to compile a more recent GCC, to avoid bugs in the
     1646vendor compiler.  Old releases of GCC 1 and GCC 2 are available in the
     1647<code>old-releases</code> directory on the <a href="../mirrors.html">GCC mirror sites</a>.  Header bugs may generally be avoided using
     1648<code>fixincludes</code>, but bugs or deficiencies in libraries and the
     1649operating system may still cause problems.
     1650
     1651   <p>Support for older systems as targets for cross-compilation is less
     1652problematic than support for them as hosts for GCC; if an enthusiast
     1653wishes to make such a target work again (including resurrecting any of
     1654the targets that never worked with GCC 2, starting from the last CVS
     1655version before they were removed), patches
     1656<a href="../contribute.html">following the usual requirements</a> would be
     1657likely to be accepted, since they should not affect the support for more
     1658modern targets.
     1659
     1660   <p>For some systems, old versions of GNU binutils may also be useful,
    21131661and are available from <code>pub/binutils/old-releases</code> on
    21141662<a href="http://sources.redhat.com/mirrors.html">sources.redhat.com mirror sites</a>.
    21151663
    2116 <p>Some of the information on specific systems above relates to
     1664   <p>Some of the information on specific systems above relates to
    21171665such older systems, but much of the information
    21181666about GCC on such systems (which may no longer be applicable to
    21191667current GCC) is to be found in the GCC texinfo manual.
    21201668
    2121 <hr />
    2122 
    2123 <h2><a name="TOC100"><a name="elf_targets"></a>all ELF targets (SVR4, Solaris 2, etc.)</h2>
     1669   <hr />
     1670
     1671<h3 class="heading"><a name="TOC72"></a><a name="elf_targets"></a>all ELF targets (SVR4, Solaris 2, etc.)</h3>
    21241672
    21251673<p>C++ support is significantly better on ELF targets if you use the
     
    21281676automatically.
    21291677
    2130 <hr />
     1678   <hr />
    21311679<p>
    21321680<a href="./index.html">Return to the GCC Installation page</a>
    21331681
    2134 </body></html>
    2135 
     1682   </body></html>
     1683
Note: See TracChangeset for help on using the changeset viewer.