Changeset 1391 for branches/GNU/src/gcc/INSTALL/specific.html
- Timestamp:
- Apr 27, 2004, 8:39:34 PM (21 years ago)
- Location:
- branches/GNU/src/gcc
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GNU/src/gcc
- Property svn:ignore
-
old new 26 26 configure.vr 27 27 configure.vrs 28 dir.info 28 29 Makefile 29 dir.info30 30 lost+found 31 31 update.out
-
- Property svn:ignore
-
branches/GNU/src/gcc/INSTALL/specific.html
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r1390 r1391 1 <html lang="en"><head> 1 <html lang="en"> 2 <head> 2 3 <title>Host/Target specific installation notes for GCC</title> 3 4 <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 <!-- 8 Copyright © 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 9 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. 10 <br><p> 11 <p>Permission is granted to copy, distribute and/or modify this document 12 under the terms of the GNU Free Documentation License, Version 1.2 or 13 any later version published by the Free Software Foundation; with no 14 Invariant Sections, the Front-Cover texts being (a) (see below), and 15 with the Back-Cover Texts being (b) (see below). A copy of the 16 license 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> 39 Please read this document carefully <em>before</em> installing the 10 40 GNU Compiler Collection on your machine. 11 41 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> 16 43 <li><a href="#alpha*-*-*">alpha*-*-*</a> 17 44 <li><a href="#alpha*-dec-osf*">alpha*-dec-osf*</a> … … 21 48 <li><a href="#arm-*-elf">arm-*-elf</a> 22 49 <li><a href="#arm*-*-linux-gnu">arm*-*-linux-gnu</a> 23 <li><a href="#arm-*-riscix">arm-*-riscix</a>24 50 <li><a href="#avr">avr</a> 25 51 <li><a href="#c4x">c4x</a> 26 52 <li><a href="#dos">DOS</a> 27 53 <li><a href="#dsp16xx">dsp16xx</a> 28 <li><a href="#elxsi-elxsi-bsd">elxsi-elxsi-bsd</a>29 54 <li><a href="#*-*-freebsd*">*-*-freebsd*</a> 30 55 <li><a href="#h8300-hms">h8300-hms</a> … … 35 60 <li><a href="#i370-*-*">i370-*-*</a> 36 61 <li><a href="#*-*-linux-gnu">*-*-linux-gnu</a> 37 <li><a href="#ix86-*-linux*oldld">i?86-*-linux*oldld</a>38 62 <li><a href="#ix86-*-linux*aout">i?86-*-linux*aout</a> 39 63 <li><a href="#ix86-*-linux*">i?86-*-linux*</a> … … 42 66 <li><a href="#ix86-*-sco3.2v5*">i?86-*-sco3.2v5*</a> 43 67 <li><a href="#ix86-*-udk">i?86-*-udk</a> 44 <li><a href="#ix86-*-isc">i?86-*-isc</a>45 68 <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>50 69 <li><a href="#ia64-*-linux">ia64-*-linux</a> 70 <li><a href="#ia64-*-hpux*">ia64-*-hpux*</a> 51 71 <li><a href="#*-lynx-lynxos">*-lynx-lynxos</a> 52 72 <li><a href="#*-ibm-aix*">*-ibm-aix*</a> 73 <li><a href="#ip2k-*-elf">ip2k-*-elf</a> 53 74 <li><a href="#m32r-*-elf">m32r-*-elf</a> 54 75 <li><a href="#m68000-hp-bsd">m68000-hp-bsd</a> 55 76 <li><a href="#m6811-elf">m6811-elf</a> 56 77 <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>59 78 <li><a href="#m68k-att-sysv">m68k-att-sysv</a> 60 <li><a href="#m68k-bull-sysv">m68k-bull-sysv</a>61 79 <li><a href="#m68k-crds-unos">m68k-crds-unos</a> 62 80 <li><a href="#m68k-hp-hpux">m68k-hp-hpux</a> 63 <li><a href="#m68k-*-nextstep*">m68k-*-nextstep*</a>64 81 <li><a href="#m68k-ncr-*">m68k-ncr-*</a> 65 82 <li><a href="#m68k-sun">m68k-sun</a> 66 83 <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>70 84 <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>75 85 <li><a href="#mips-sgi-irix5">mips-sgi-irix5</a> 76 86 <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>82 87 <li><a href="#powerpc*-*-*">powerpc*-*-*</a> powerpc-*-sysv4 83 88 <li><a href="#powerpc-*-darwin*">powerpc-*-darwin*</a> … … 91 96 <li><a href="#powerpcle-*-eabisim">powerpcle-*-eabisim</a> 92 97 <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> 97 100 <li><a href="#*-*-solaris2*">*-*-solaris2*</a> 98 101 <li><a href="#sparc-sun-solaris2*">sparc-sun-solaris2*</a> … … 101 104 <li><a href="#sparc-unknown-linux-gnulibc1">sparc-unknown-linux-gnulibc1</a> 102 105 <li><a href="#sparc-*-linux*">sparc-*-linux*</a> 103 <li><a href="#sparc64-*- *">sparc64-*-*</a>106 <li><a href="#sparc64-*-solaris2*">sparc64-*-solaris2*</a> 104 107 <li><a href="#sparcv9-*-solaris2*">sparcv9-*-solaris2*</a> 105 108 <li><a href="#*-*-sysv*">*-*-sysv*</a> 106 109 <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-*-* 108 111 <li><a href="#xtensa-*-elf">xtensa-*-elf</a> 109 112 <li><a href="#xtensa-*-linux*">xtensa-*-linux*</a> … … 113 116 </ul> 114 117 115 <ul>118 <ul> 116 119 <li><a href="#elf_targets">all ELF targets</a> (SVR4, Solaris 2, etc.) 117 120 </ul> 118 121 119 <!- ------- host/target specific issues start here --------------- ->122 <!- ------- host/target specific issues start here --------------- -> 120 123 <hr /> 121 124 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> 184 126 185 127 <p>This section contains general configuration information for all … … 188 130 section, please read all other sections that match your target. 189 131 190 <p>We require binutils 2.11.2 or newer.132 <p>We require binutils 2.11.2 or newer. 191 133 Previous binutils releases had a number of problems with DWARF 2 192 134 debugging information, not the least of which is incorrect linking of 193 135 shared libraries. 194 136 195 <hr />196 197 <h 2><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> 198 140 199 141 <p>Systems using processors that implement the DEC Alpha architecture and … … 201 143 Tru64 UNIX) operating system, for example the DEC Alpha AXP systems. 202 144 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 146 supported. (These are the versions which identify themselves as DEC 147 OSF/1.) 148 149 <p>In Digital Unix V4.0, virtual memory exhausted bootstrap failures 207 150 may be fixed by configuring with <code>--with-gc=simple</code>, 208 151 reconfiguring Kernel Virtual Memory and Swap parameters … … 211 154 <a href="http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html">http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html</a>. 212 155 213 <p>In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not156 <p>In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not 214 157 currently (2001-06-13) work with <code>mips-tfile</code>. As a workaround, 215 158 we need to use the old assembler, invoked via the barely documented … … 217 160 Compaq C Compiler: 218 161 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> 228 171 are supported on Tru64 UNIX, so you must not configure GCC with 229 172 <code>--with-gnu-as</code> or <code>--with-gnu-ld</code>. 230 173 231 <p>The <code>--enable-threads</code> options isn't supported yet. A patch is174 <p>The <code>--enable-threads</code> options isn't supported yet. A patch is 232 175 in preparation for a future release. 233 176 234 <p>GCC writes a <code>.verstamp</code> directive to the assembler output file177 <p>GCC writes a <code>.verstamp</code> directive to the assembler output file 235 178 unless it is built as a cross-compiler. It gets the version to use from 236 179 the system header file <code>/usr/include/stamp.h</code>. If you install a … … 238 181 stamp. 239 182 240 <p>Note that since the Alpha is a 64-bit architecture, cross-compilers from183 <p>Note that since the Alpha is a 64-bit architecture, cross-compilers from 241 184 32-bit machines will not generate code as efficient as that generated 242 185 when the compiler is running on a 64-bit machine because many … … 246 189 a few cases and may not work properly. 247 190 248 <p><code>make compare</code> may fail on old versions of DEC Unix unless you add191 <p><code>make compare</code> may fail on old versions of DEC Unix unless you add 249 192 <code>-save-temps</code> to <code>CFLAGS</code>. On these systems, the name of the 250 193 assembler input file is stored in the object file, and that makes … … 257 200 <code>.s</code> files after each series of compilations. 258 201 259 <p>GCC now supports both the native (ECOFF) debugging format used by DBX202 <p>GCC now supports both the native (ECOFF) debugging format used by DBX 260 203 and GDB and an encapsulated STABS format for use only with GDB. See the 261 204 discussion of the <code>--with-stabs</code> option of <code>configure</code> above 262 205 for more information on these formats and how to select them. 263 206 264 <p>There is a bug in DEC's assembler that produces incorrect line numbers207 <p>There is a bug in DEC's assembler that produces incorrect line numbers 265 208 for ECOFF format when the <code>.align</code> directive is used. To work 266 209 around this problem, GCC will not emit such alignment directives … … 270 213 different depending on whether or not <code>-g</code> is also specified. 271 214 272 <p>To avoid this behavior, specify <code>-gstabs+</code> and use GDB instead of215 <p>To avoid this behavior, specify <code>-gstabs+</code> and use GDB instead of 273 216 DBX. DEC is now aware of this problem with the assembler and hopes to 274 217 provide a fix shortly. 275 218 276 <hr />277 278 <h 2><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> 279 222 280 223 <p>Cray T3E systems running Unicos/Mk. 281 224 282 <p>This port is incomplete and has many known bugs. We hope to improve the225 <p>This port is incomplete and has many known bugs. We hope to improve the 283 226 support for this target soon. Currently, only the C front end is supported, 284 227 and it is not possible to build parallel applications. Cray modules are not … … 286 229 <code>/opt/ctl/craylibs/craylibs</code>. 287 230 288 <p>You absolutely <strong>must</strong> use GNU make on this platform. Also, you231 <p>You absolutely <strong>must</strong> use GNU make on this platform. Also, you 289 232 need to tell GCC where to find the assembler and the linker. The 290 233 simplest way to do so is by providing <code>--with-as</code> and 291 234 <code>--with-ld</code> to <code>configure</code>, e.g. 292 235 293 <pre >configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \294 --enable-languages=c295 </pre>296 297 <p>The comparison test during <code>make bootstrap</code> fails on Unicos/Mk236 <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 298 241 because the assembler inserts timestamps into object files. You should 299 242 be able to work around this by doing <code>make all</code> after getting this 300 243 failure. 301 244 302 <hr />303 304 <h 2><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> 305 248 306 249 <p>Argonaut ARC processor. 307 250 This configuration is intended for embedded systems. 308 251 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 314 259 embedded applications. There are no standard Unix configurations. 315 260 This configuration corresponds to the basic instruction sequences and will 316 261 produce <code>a.out</code> format object modules. 317 262 318 <p>You may need to make a variant of the file <code>arm.h</code> for your particular263 <p>You may need to make a variant of the file <code>arm.h</code> for your particular 319 264 configuration. 320 265 321 <hr />322 323 <h 2><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> 324 269 325 270 <p>This configuration is intended for embedded systems. 326 271 327 <hr />328 329 <h 2><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> 330 275 331 276 <p>We require GNU binutils 2.10 or newer. 332 277 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> 353 281 354 282 <p>ATMEL AVR-family micro controllers. These are used in embedded … … 357 285 for the list of supported MCU types. 358 286 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 tools287 <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 362 290 can also be obtained from: 363 291 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> 367 296 </ul> 368 297 369 <p>We <em>strongly</em> recommend using binutils 2.11or newer.370 371 <p>The following error:372 <pre >Error: register required373 </pre>374 375 <p>indicates that you should upgrade to a newer version of the binutils.376 377 <hr />378 379 <h 2><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> 380 309 381 310 <p>Texas Instruments TMS320C3x and TMS320C4x Floating Point Digital Signal … … 385 314 for the list of supported MCU types. 386 315 387 <p>GCC can be configured as a cross compiler for both the C3x and C4x316 <p>GCC can be configured as a cross compiler for both the C3x and C4x 388 317 architectures on the same system. Use <code>configure --target=c4x 389 318 --enable-languages="c,c++"</code> to configure. 390 319 391 <p>Further installation notes and other useful information about C4x tools320 <p>Further installation notes and other useful information about C4x tools 392 321 can also be obtained from: 393 322 394 <ul>323 <ul> 395 324 <li><a href="http://www.elec.canterbury.ac.nz/c4x/">http://www.elec.canterbury.ac.nz/c4x/</a> 396 325 </ul> 397 326 398 <hr />399 400 <h 2><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> 401 330 402 331 <p>CRIS is the CPU architecture in Axis Communications ETRAX system-on-a-chip 403 332 series. These are used in embedded applications. 404 333 405 <p>See "CRIS Options" in the main manual334 <p>See "CRIS Options" in the main manual 406 335 for a list of CRIS-specific options. 407 336 408 <p>There are a few different CRIS targets:409 <dl>337 <p>There are a few different CRIS targets: 338 <dl> 410 339 <dt><code>cris-axis-aout</code> 411 <dd>Old target. Includes a multilib for the <code>elinux</code> a.out-based340 <dd>Old target. Includes a multilib for the <code>elinux</code> a.out-based 412 341 target. No multilibs for newer architecture variants. 413 342 <br><dt><code>cris-axis-elf</code> 414 <dd>Mainly for monolithic embedded systems. Includes a multilib for the343 <dd>Mainly for monolithic embedded systems. Includes a multilib for the 415 344 <code>v10</code> core used in <code>ETRAX 100 LX</code>. 416 345 <br><dt><code>cris-axis-linux-gnu</code> 417 <dd>A GNU/Linux port for the CRIS architecture, currently targeting346 <dd>A GNU/Linux port for the CRIS architecture, currently targeting 418 347 <code>ETRAX 100 LX</code> by default. 419 348 </dl> 420 349 421 <p>For <code>cris-axis-aout</code> and <code>cris-axis-elf</code> you need binutils 2.11350 <p>For <code>cris-axis-aout</code> and <code>cris-axis-elf</code> you need binutils 2.11 422 351 or newer. For <code>cris-axis-linux-gnu</code> you need binutils 2.12 or newer. 423 352 424 <p>Pre-packaged tools can be obtained from353 <p>Pre-packaged tools can be obtained from 425 354 <a href="ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/">ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/</a>. More 426 355 information about this platform is available at 427 356 <a href="http://developer.axis.com/">http://developer.axis.com/</a>. 428 357 429 <hr />430 431 <h 2><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> 432 361 433 362 <p>Please have a look at our <a href="binaries.html">binaries page</a>. 434 363 435 <p>You cannot install GCC by itself on MSDOS; it will not compile under364 <p>You cannot install GCC by itself on MSDOS; it will not compile under 436 365 any MSDOS compiler except itself. You need to get the complete 437 366 compilation package DJGPP, which includes binaries as well as sources, 438 367 and includes all the necessary compilation tools and libraries. 439 368 440 <hr />441 442 <h 2><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> 443 372 444 373 <p>A port to the AT&T DSP1610 family of processors. 445 374 446 <hr />447 448 <h 2><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> 449 378 450 379 <p>The version of binutils installed in <code>/usr/bin</code> is known to work unless … … 452 381 2.12.1 or greater is known to improve overall testsuite results. 453 382 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 455 386 configuration support and files as shipped with GCC 2.95 are still in 456 387 place. FreeBSD 2.2.7 has been known to bootstrap completely; however, … … 458 389 was the system copy in <code>/usr/bin</code>) and C++ EH failures were noted. 459 390 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 463 392 default for all CPU architectures. It had been the default on 464 393 FreeBSD/alpha since its inception. You may use <code>-gstabs</code> instead … … 470 399 However, as a general user, do not attempt to replace the system 471 400 compiler 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 401 results on FreeBSD 4.8-STABLE and 5-CURRENT. In the past, known to 402 bootstrap and check with good results on FreeBSD 3.0, 3.4, 4.0, 4.2, 403 4.3, 4.4, 4.5-STABLE. 404 405 <p>In principle, <code>--enable-threads</code> is now compatible with 475 406 <code>--enable-libgcj</code> on FreeBSD. However, it has only been built 476 and tested on <code>i386-*-freebsd 4.5</code> and <code>alpha-*-freebsd5.0</code>.407 and tested on <code>i386-*-freebsd[45]</code> and <code>alpha-*-freebsd[45]</code>. 477 408 The static 478 409 library may be incorrectly built (symbols are missing at link time). 479 410 There is a rare timing-based startup hang (probably involves an 480 assu pmtion about the thread library). Multi-threaded boehm-gc (required for411 assumption about the thread library). Multi-threaded boehm-gc (required for 481 412 libjava) 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 413 4.5-RELEASE. Other CPU architectures 488 414 supported by FreeBSD will require additional configuration tuning in, at 489 415 the very least, both boehm-gc and libffi. 490 416 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. 511 428 All code must be recompiled. The calling convention now passes the 512 429 first three arguments in function calls in registers. Structures are no 513 430 longer a multiple of 2 bytes. 514 431 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 520 439 platforms; 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 440 assembler. 441 442 <p>Specifically, <code>-g</code> does not work on HP-UX (since that system 525 443 uses a peculiar debugging format which GCC does not know about), unless you 526 444 use GAS and GDB and configure GCC with the 527 445 <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-bit446 <code>--with-as=...</code> options. 447 448 <p>If you wish to use the pa-risc 2.0 architecture support with a 32-bit 531 449 runtime, you must use either the HP assembler, gas/binutils 2.11 or newer, 532 450 or a recent 533 451 <a href="ftp://sources.redhat.com/pub/binutils/snapshots">snapshot of gas</a>. 534 452 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 454 PROCESSOR_7100LC and PROCESSOR_8000. They are selected from the pa-risc 455 architecture specified for the target machine when configuring. 456 PROCESSOR_8000 is the default. PROCESSOR_7100LC is selected when 457 the target is a <code>hppa1*</code> machine. 458 459 <p>The PROCESSOR_8000 model is not well suited to older processors. Thus, 460 it is important to completely specify the machine architecture when 461 configuring if you want a model other than PROCESSOR_8000. The macro 462 TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different 463 default 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 542 474 around the worst of the problems. However, those workarounds may be causing 543 475 linker crashes in some circumstances; the workarounds also probably prevent 544 476 shared libraries from working. Use the GNU assembler to avoid these problems. 545 477 546 <p>The configuration scripts for GCC will also trigger a bug in the hpux9478 <p>The configuration scripts for GCC will also trigger a bug in the hpux9 547 479 shell. To avoid this problem set <code>CONFIG_SHELL</code> to <code>/bin/ksh</code> 548 480 and <code>SHELL</code> to <code>/bin/ksh</code> in your environment. 549 481 550 <hr />551 552 <h 2><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> 553 485 554 486 <p>For hpux10.20, we <em>highly</em> recommend you pick up the latest sed patch … … 556 488 charge: 557 489 558 <ul>559 <li><a href="http://us -support.external.hp.com">US, Canada, Asia-Pacific, and490 <ul> 491 <li><a href="http://us.itrc.hp.com/service/home/home.do">US, Canada, Asia-Pacific, and 560 492 Latin-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. 562 494 </ul> 563 495 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, 565 497 but still has some problems. Most notably the assembler inserts timestamps 566 498 into each object file it creates, causing the 3-stage comparison test to fail … … 569 501 bootstrap</code>. 570 502 571 <hr />572 573 <h 2><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> 574 506 575 507 <p>GCC 3.0 and up support HP-UX 11. On 64-bit capable systems, there 576 508 are two distinct ports. The <code>hppa2.0w-hp-hpux11*</code> port generates 577 509 code 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 510 linker. The <code>hppa64-hp-hpux11*</code> port generates 64-bit code for the 511 pa-risc 2.0 architecture. The script config.guess now selects the port 512 type based on the type compiler detected during configuration. You must 513 set your <code>PATH</code> or define <code>CC</code> so that configure finds an appropriate 514 compiler for the initial bootstrap. Different prefixes must be used if 515 both 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 518 with the <code>--with-ld=...</code> option. We support both the HP 519 and GNU linkers for this target. The two linkers require different 520 link commands. Thus, it's not possible to switch linkers during a 521 GCC build. This has been been reported to occur in a unified build 522 of binutils and GCC. 523 524 <p>GCC 2.95.x is not supported under HP-UX 11 and cannot be used to 525 compile GCC 3.0 and up. Refer to <a href="binaries.html">binaries</a> for 526 information 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 585 529 support is not currently implemented, so <code>--enable-threads</code> does 586 530 not work. See: 587 531 588 <ul>532 <ul> 589 533 <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> 591 535 </ul> 592 536 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 538 secondary definition symbols. This feature is not enabled for earlier 539 versions of HP-UX since there have been bugs in the linker support for 540 secondary 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 542 problem of linker core dumps creating C++ libraries. Earlier patches 543 may 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 546 to run initializers and finalizers on the 64-bit port. The feature 547 requires CVS binutils as of January 2, 2003, or a subsequent release 548 to correct a problem arising from HP's non-standard use of the .init 549 and .fini sections. The 32-bit port uses the linker <code>+init</code> 550 and <code>+fini</code> options. As with the support for secondary symbols, 551 there have been bugs in the order in which these options are executed 552 by 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 555 the 32 or 64-bit ports. For example, it does not support weak symbols 556 or alias definitions. As a result, explicit template instantiations 557 are required when using C++. This will make it difficult if not 558 impossible to build many C++ applications. You also can't generate 559 debugging information when using the HP assembler with GCC. 560 561 <p>There are a number of issues to consider in selecting which linker to 562 use with the 64-bit port. The GNU 64-bit linker can only create dynamic 563 binaries. The <code>-static</code> option causes linking with archive 564 libraries but doesn't produce a truly static binary. Dynamic binaries 565 still require final binding by the dynamic loader to resolve a set of 566 dynamic-loader-defined symbols. The default behavior of the HP linker 567 is the same as the GNU linker. However, it can generate true 64-bit 568 static binaries using the <code>+compat</code> option. 569 570 <p>The HP 64-bit linker doesn't support linkonce semantics. As a 571 result, C++ programs have many more sections than they should. 572 573 <p>The GNU 64-bit linker has some issues with shared library support 574 and exceptions. As a result, we only support libgcc in archive 575 format. For similar reasons, dwarf2 unwind and exception support 576 are disabled. The GNU linker also has problems creating binaries 577 with <code>-static</code>. It doesn't provide stubs for internal 578 calls to global functions in shared libraries, so these calls 579 can't be overloaded. 580 581 <p>There are several possible approaches to building the distribution. 582 Binutils can be built first using the HP tools. Then, the GCC 583 distribution can be built. The second approach is to build GCC 584 first using the HP tools, then build binutils, then rebuild GCC. 585 There have been problems with various binary distributions, so 586 it 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 589 compiler as the bundled compiler only supports traditional C. 590 Bootstrapping with the bundled compiler is tested infrequently and 591 problems often arise because of the subtle differences in semantics 592 between 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> 612 599 613 600 <p>This port is very preliminary and has many known bugs. We hope to 614 601 have a higher-quality port for this machine soon. 615 602 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 608 in glibc 2.2.5 and later. More information is available in the 609 libstdc++-v3 documentation. 610 611 <p>If you use glibc 2.2 (or 2.1.9x), GCC 2.95.2 won't install 621 612 out-of-the-box. You'll get compile errors while building <code>libstdc++</code>. 622 613 The patch <a href="glibc-2.2.patch">glibc-2.2.patch</a>, that is to be 623 614 applied in the GCC source tree, fixes the compatibility problems. 624 615 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 628 617 since the latest exception handling changes for GCC. Compiling glibc 629 618 with GCC 3.0 will give a binary incompatible glibc and therefore cause 630 lots of problems and might make your system complet ly unusable. This631 will definit ly need fixes in glibc but might also need fixes in GCC. We619 lots of problems and might make your system completely unusable. This 620 will definitely need fixes in glibc but might also need fixes in GCC. We 632 621 strongly advise to wait for glibc 2.2.4 and to read the release notes of 633 622 glibc 2.2.4 whether patches for GCC 3.0 are needed. You can use glibc 634 623 2.2.3 with GCC 3.0, just do not try to recompile it. 635 624 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> 649 628 650 629 <p>Use this configuration to generate <code>a.out</code> binaries on Linux-based … … 652 631 gas/binutils version 2.5.2 or later. 653 632 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. 638 See <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 661 641 possible you have a hardware problem. Further information on this can be 662 642 found on <a href="http://www.bitwizard.nl/sig11/">www.bitwizard.nl</a>. 663 643 664 <hr />665 666 <h 2><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> 667 647 668 648 <p>Compilation with RCC is recommended. Also, it may be a good idea to 669 649 link with GNU malloc instead of the malloc that comes with the system. 670 650 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> 680 654 681 655 <p>Use this for the SCO OpenServer Release 5 family of operating systems. 682 656 683 <p>Unlike earlier versions of GCC, the ability to generate COFF with this657 <p>Unlike earlier versions of GCC, the ability to generate COFF with this 684 658 target is no longer provided. 685 659 686 <p>Earlier versions of GCC emitted DWARF 1 when generating ELF to allow660 <p>Earlier versions of GCC emitted DWARF 1 when generating ELF to allow 687 661 the system debugger to be used. That support was too burdensome to 688 662 maintain. GCC now emits only DWARF 2 for this target. This means you … … 690 664 version of GCC. 691 665 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 667 you install Support Level Supplement OSS646B or later, and the latest 668 version of the Supplement Graphics, Web and X11 Libraries (GWXLIBS) 669 package. If you are using release 5.0.7 of OpenServer, you must have at 670 least the first maintenance pack installed (this includes the relevant 671 portions of OSS646 and GWXLIBS). OSS646, also known as the "Execution 672 Environment Update", provides updated link editors and assemblers, as well 673 as updated standard C and math libraries. The C startup modules are also 674 updated to support the System V gABI draft, and GCC relies on that 675 behavior. GWXLIBS provides a collection of commonly used open source 676 libraries, some of which GCC depends on (such as GNU gettext and zlib). 677 SCO OpenServer Release 5.0.7 has all of this built in by default, but 678 GWXLIBS 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> 680 and 681 <a href="ftp://ftp.sco.com/pub/openserver5/opensrc">ftp://ftp.sco.com/pub/openserver5/opensrc</a> 682 for 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 685 that you configure GCC to use the GNU assembler. You do this by using the 686 flags <a href="./configure.html#with-gnu-as"><code>--with-gnu-as</code></a>. You 687 should use a modern version of GNU binutils. Version 2.14 was used for all 688 testing. In general, only the <code>--with-gnu-as</code> option is tested. A 689 modern bintuils (as well as a plethora of other development related GNU 690 utilities) can be found in the GNU Development Tools package. See the 691 SCO web and ftp sites for details. That package also contains the 692 currently "officially supported" version of GCC, version 2.95.3. It is 693 useful 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> 753 698 754 699 <p>This target emulates the SCO Universal Development Kit and requires that … … 761 706 with the same warnings and caveats as the SCO UDK. 762 707 763 <p>This target is a little tricky to build because we have to distinguish708 <p>This target is a little tricky to build because we have to distinguish 764 709 it from the native tools (so it gets headers, startups, and libraries 765 710 from the right place) while making the tools not think we're actually … … 767 712 command like this: 768 713 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 appropriate714 <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 774 719 processor for your host.</em> 775 720 776 <p>After the usual <code>make bootstrap</code> and721 <p>After the usual <code>make bootstrap</code> and 777 722 <code>make install</code>, you can then access the UDK-targeted GCC 778 723 tools by adding <code>udk-</code> before the commonly known name. For … … 781 726 have installed. 782 727 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__) && !defined(_VA_LIST) 839 #include <va_list.h> 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> 864 731 865 732 <p>IA-64 processor (also known as IPF, or Itanium Processor Family) 866 733 running GNU/Linux. 867 734 868 <p>The toolchain is not completely finished, so requirements will continue735 <p>The toolchain is not completely finished, so requirements will continue 869 736 to change. 870 737 GCC 3.0.1 and later require glibc 2.2.4. … … 872 739 GCC 3.0.1 requires binutils 2.11.1 or later. 873 740 874 <p>None of the following versions of GCC has an ABI that is compatible741 <p>None of the following versions of GCC has an ABI that is compatible 875 742 with any of the other versions in this list, with the exception that 876 743 Red Hat 2.96 and Trillian 000171 are compatible with each other: … … 883 750 ABI changes are expected. 884 751 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 757 assembler will not work. To prevent GCC from using the wrong assembler, 758 the 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 761 GCC versions 3.2.3 and earlier, <code>--enable-libunwind-exceptions</code> 762 is 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 890 771 <code>/bin/gcc</code>. You should compile with this instead of <code>/bin/cc</code>. 891 772 You can tell GCC to use the GNU assembler and linker, by specifying … … 894 775 installed tools, which produce <code>a.out</code> format executables. 895 776 896 <hr />777 <hr /> 897 778 <!- rs6000-ibm-aix*, powerpc-ibm-aix* -> 898 779 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 902 785 newer is recommended to build on this platform. 903 786 904 <p>Errors involving <code>alloca</code> when building GCC generally are due787 <p>Errors involving <code>alloca</code> when building GCC generally are due 905 788 to an incorrect definition of <code>CC</code> in the Makefile or mixing files 906 789 compiled with the native C compiler and GCC. During the stage1 phase of … … 913 796 is the version of Make (see above). 914 797 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 799 on AIX 4 and required for bootstrapping on AIX 5L. The GNU Assembler 800 reports that it supports WEAK symbols on AIX 4, which causes GCC to try to 801 utilize weak symbol functionality although it is not supported. The GNU 802 Assembler and Linker do not support AIX 5L sufficiently to bootstrap GCC. 803 The native AIX tools do interoperate with GCC. 804 805 <p>Building <code>libstdc++.a</code> requires a fix for an AIX Assembler bug 922 806 APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). 923 807 924 <p><code>libstdc++</code> in GCC 3.2 increments the major version number of the808 <p><code>libstdc++</code> in GCC 3.2 increments the major version number of the 925 809 shared object and GCC installation places the <code>libstdc++.a</code> 926 810 shared library in a common location which will overwrite the GCC 3.1 … … 933 817 multilib <code>libstdc++.a</code> installed: 934 818 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> 936 820 archive: 937 <pre >% ar -x libstdc++.a libstdc++.so.4938 </pre>939 940 <p>Enable the <code>F_LOADONLY</code> flag so that the shared object will be821 <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 941 825 available for runtime dynamic loading, but not linking: 942 <pre >% strip -e libstdc++.so.4943 </pre>944 945 <p>Archive the runtime-only shared object in the GCC 3.2826 <pre class="example"> % strip -e libstdc++.so.4 827 </pre> 828 829 <p>Archive the runtime-only shared object in the GCC 3.2 946 830 <code>libstdc++.a</code> archive: 947 <pre >% ar -q libstdc++.a libstdc++.so.4948 </pre>949 950 <p>Linking executables and shared libraries may produce warnings of831 <pre class="example"> % ar -q libstdc++.a libstdc++.so.4 832 </pre> 833 834 <p>Linking executables and shared libraries may produce warnings of 951 835 duplicate symbols. The assembly files generated by GCC for AIX always 952 836 have included multiple symbol definitions for certain global variable … … 955 839 executable. 956 840 957 <p>AIX 4.3 utilizes a "large format" archive to support both 32-bit and841 <p>AIX 4.3 utilizes a "large format" archive to support both 32-bit and 958 842 64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1 959 843 to parse archive libraries did not handle the new format correctly. … … 965 849 routines is shipped with AIX 4.3.2 and above. 966 850 967 <p>Some versions of the AIX binder (linker) can fail with a relocation851 <p>Some versions of the AIX binder (linker) can fail with a relocation 968 852 overflow severe error when the <code>-bbigtoc</code> option is used to link 969 853 GCC-produced object files into an executable that overflows the TOC. A fix … … 973 857 website as PTF U455193. 974 858 975 <p>The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core859 <p>The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core 976 860 with a segmentation fault when invoked by any version of GCC. A fix for 977 861 APAR IX87327 is available from IBM Customer Support and from its … … 979 863 website as PTF U461879. This fix is incorporated in AIX 4.3.3 and above. 980 864 981 <p>The initial assembler shipped with AIX 4.3.0 generates incorrect object865 <p>The initial assembler shipped with AIX 4.3.0 generates incorrect object 982 866 files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM COMPILER FAILS 983 867 TO ASSEMBLE/BIND) is available from IBM Customer Support and from its … … 985 869 website as PTF U453956. This fix is incorporated in AIX 4.3.1 and above. 986 870 987 <p>AIX provides National Language Support (NLS). Compilers and assemblers871 <p>AIX provides National Language Support (NLS). Compilers and assemblers 988 872 use NLS to support locale-specific representations of various data 989 873 formats including floating-point numbers (e.g., <code>.</code> vs <code>,</code> for … … 993 877 environment variable to <code>C</code> or <code>En_US</code>. 994 878 995 <p>By default, GCC for AIX 4.1 and above produces code that can be used on879 <p>By default, GCC for AIX 4.1 and above produces code that can be used on 996 880 both Power or PowerPC processors. 997 881 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> 883 switch 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. 890 This configuration is intended for embedded systems. 891 There 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. 1006 900 This configuration is intended for embedded systems. 1007 901 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 1013 909 with this system cannot compile GCC; contact <a href="mailto:law@cygnus.com">law@cygnus.com</a> 1014 910 to get binaries of GCC for bootstrapping. 1015 911 1016 <hr />1017 1018 <h 2><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> 1019 915 1020 916 <p>Motorola 68HC11 family micro controllers. These are used in embedded 1021 917 applications. There are no standard Unix configurations. 1022 918 1023 <hr />1024 1025 <h 2><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> 1026 922 1027 923 <p>Motorola 68HC12 family micro controllers. These are used in embedded 1028 924 applications. There are no standard Unix configurations. 1029 925 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&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&T 3b1, a.k.a. 7300 PC. This version of GCC cannot 1063 933 be compiled with the system C compiler, which is too buggy. 1064 934 You will need to get a previous version of GCC and use it to 1065 935 bootstrap. 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 1090 947 strange reason linking <code>/bin/as</code> to <code>/bin/casm</code> changes the 1091 948 behavior, and does not work. So, when installing GCC, you should … … 1093 950 the passes of GCC are installed: 1094 951 1095 <pre >#!/bin/sh1096 casm $*1097 </pre>1098 1099 <p>The default Unos library is named <code>libunos.a</code> instead of952 <pre class="example"> #!/bin/sh 953 casm $* 954 </pre> 955 956 <p>The default Unos library is named <code>libunos.a</code> instead of 1100 957 <code>libc.a</code>. To allow GCC to function, either change all 1101 958 references to <code>-lc</code> in <code>gcc.c</code> to <code>-lunos</code> or link 1102 959 <code>/lib/libc.a</code> to <code>/lib/libunos.a</code>. 1103 960 1104 <p>When compiling GCC with the standard compiler, to overcome bugs in961 <p>When compiling GCC with the standard compiler, to overcome bugs in 1105 962 the support of <code>alloca</code>, do not use <code>-O</code> when making stage 2. 1106 963 Then use the stage 2 compiler with <code>-O</code> to make the stage 3 … … 1109 966 and compare that with stage 3 to verify proper compilation. 1110 967 1111 <p>(Perhaps simply defining <code>ALLOCA</code> in <code>x-crds</code> as described in968 <p>(Perhaps simply defining <code>ALLOCA</code> in <code>x-crds</code> as described in 1112 969 the comments there will make the above paragraph superfluous. Please 1113 970 inform us of whether this works.) 1114 971 1115 <p>Unos uses memory segmentation instead of demand paging, so you will need972 <p>Unos uses memory segmentation instead of demand paging, so you will need 1116 973 a lot of memory. 5 Mb is barely enough if no other tasks are running. 1117 974 If linking <code>cc1</code> fails, try putting the object files into a library 1118 975 and linking from that library. 1119 976 1120 <hr />1121 1122 <h 2><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> 1123 980 1124 981 <p>HP 9000 series 300 or 400 running HP-UX. HP-UX version 8.0 has a bug in … … 1127 984 building <code>libgcc2.a</code>: 1128 985 1129 <pre >_floatdisf1130 cc1: warning: `-g' option not supported on this version of GCC1131 cc1: warning: `-g1' option not supported on this version of GCC1132 ./xgcc: Internal compiler error: program as got fatal signal 111133 </pre>1134 1135 <p>A patched version of the assembler is available as the file986 <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 1136 993 <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 1137 994 have HP software support, the patch can also be obtained directly from 1138 995 HP, as described in the following note: 1139 996 1140 <blockquote>997 <blockquote> 1141 998 This is the patched assembler, to patch SR#1653-010439, where the 1142 999 assembler aborts on floating point constants. 1143 1000 1144 <p>The bug is not really in the assembler, but in the shared library1001 <p>The bug is not really in the assembler, but in the shared library 1145 1002 version of the function "cvtnum(3c)". The bug on "cvtnum(3c)" is 1146 1003 SR#4701-078451. Anyway, the attached assembler uses the archive … … 1148 1005 </blockquote> 1149 1006 1150 <p>This patch is also known as PHCO_4484.1151 1152 <p>In addition, if you wish to use gas, you must use1007 <p>This patch is also known as PHCO_4484. 1008 1009 <p>In addition, if you wish to use gas, you must use 1153 1010 gas version 2.1 or later, and you must use the GNU linker version 2.1 or 1154 1011 later. Earlier versions of gas relied upon a program which converted the … … 1157 1014 you must use gas if you wish to use gdb. 1158 1015 1159 <p>On HP-UX version 8.05, but not on 8.07 or more recent versions, the1016 <p>On HP-UX version 8.05, but not on 8.07 or more recent versions, the 1160 1017 <code>fixproto</code> shell script triggers a bug in the system shell. If you 1161 1018 encounter this problem, upgrade your operating system or use BASH (the … … 1163 1020 program to report an error of the form: 1164 1021 1165 <pre >./fixproto: sh internal 1K buffer overflow1166 </pre>1167 1168 <p>To fix this, you can also change the first line of the fixproto script1022 <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 1169 1026 to look like: 1170 1027 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 < 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++ & 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 1226 1038 allowed to have more than one megabyte of memory. GCC cannot compile 1227 1039 itself (or many other programs) with <code>-O</code> in that much memory. 1228 1040 1229 <p>To solve this problem, reconfigure the kernel adding the following line1041 <p>To solve this problem, reconfigure the kernel adding the following line 1230 1042 to the configuration file: 1231 1043 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 1240 1054 default, because programs that establish signal handlers for floating 1241 1055 point traps inherently cannot work with the FPA. 1242 1056 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&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> 1310 1068 1311 1069 <p>If on a MIPS system you get an error message saying "does not have gp … … 1315 1073 stop such warnings by installing the GNU linker. 1316 1074 1317 <p>It would be nice to extend GAS to produce the gp tables, but they are1075 <p>It would be nice to extend GAS to produce the gp tables, but they are 1318 1076 optional, and there should not be a warning about their absence. 1319 1077 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 1079 and later. A patch went in just after the GCC 3.3 release to 1080 make <code>mips*-*-*</code> use the generic implementation instead. You can also 1081 configure for <code>mipsel-elf</code> as a workaround. The 1082 <code>mips*-*-linux*</code> target continues to use the MIPS II routines. More 1083 work 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> 1462 1088 1463 1089 <p>This configuration has considerable problems, which will be fixed in a 1464 1090 future release. 1465 1091 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" 1467 1093 subsystem must be installed from the IDO CD-ROM supplied by Silicon 1468 1094 Graphics. It is also available for download from 1469 1095 <a href="http://www.sgi.com/developers/devtools/apis/ido.html">http://www.sgi.com/developers/devtools/apis/ido.html</a>. 1470 1096 1471 <p><code>make compare</code> may fail on version 5 of IRIX unless you add1097 <p><code>make compare</code> may fail on version 5 of IRIX unless you add 1472 1098 <code>-save-temps</code> to <code>CFLAGS</code>. On these systems, the name of the 1473 1099 assembler input file is stored in the object file, and that makes … … 1480 1106 <code>.s</code> files after each series of compilations. 1481 1107 1482 <p>If you use the MIPS C compiler to bootstrap, it may be necessary1108 <p>If you use the MIPS C compiler to bootstrap, it may be necessary 1483 1109 to increase its table size for switch statements with the 1484 1110 <code>-Wf,-XNg1500</code> option. If you use the <code>-O2</code> 1485 1111 optimization option, you also need to use <code>-Olimit 3000</code>. 1486 1112 1487 <p>To enable debugging under IRIX 5, you must use GNU <code>as</code> 2.11.21113 <p>To enable debugging under IRIX 5, you must use GNU <code>as</code> 2.11.2 1488 1114 or later, 1489 1115 and use the <code>--with-gnu-as</code> configure option when configuring GCC. … … 1493 1119 which will be included in the next release of binutils. 1494 1120 1495 <p>When building GCC, the build process loops rebuilding <code>cc1</code> over1121 <p>When building GCC, the build process loops rebuilding <code>cc1</code> over 1496 1122 and over again. This happens on <code>mips-sgi-irix5.2</code>, and possibly 1497 1123 other platforms. It has been reported that this is a known bug in the … … 1501 1127 not have GNU <code>make</code> available. 1502 1128 1503 <hr />1504 1505 <h 2><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> 1506 1132 1507 1133 <p>If you are using IRIX <code>cc</code> as your bootstrap compiler, you must … … 1510 1136 resulting object file. The output should look like: 1511 1137 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>or1521 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. You1138 <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 1526 1152 should set the environment variable <code>CC</code> to <code>cc -n32</code> 1527 1153 before configuring GCC. 1528 1154 1529 <p>If you want the resulting <code>gcc</code> to run on old 32-bit systems1155 <p>If you want the resulting <code>gcc</code> to run on old 32-bit systems 1530 1156 with the MIPS R4400 CPU, you need to ensure that only code for the mips3 1531 1157 instruction set architecture (ISA) is generated. While GCC 3.x does … … 1535 1161 all on mips3-only systems. For the test program above, you should see: 1536 1162 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>cc1163 <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 1546 1172 -n32 -mips3</code> or <code>gcc -mips3</code> respectively before configuring GCC. 1547 1173 1548 <p>GCC on IRIX 6 is usually built to support both the N32 and N64 ABIs. If1174 <p>GCC on IRIX 6 is usually built to support both the N32 and N64 ABIs. If 1549 1175 you build GCC on a system that doesn't have the N64 libraries installed, 1550 1176 you need to configure with <code>--disable-multilib</code> so GCC doesn't … … 1552 1178 have the 64-bit libraries installed. 1553 1179 1554 <p>You must <em>not</em> use GNU <code>as</code> (which isn't built anyway as of1180 <p>You must <em>not</em> use GNU <code>as</code> (which isn't built anyway as of 1555 1181 binutils 2.11.2) on IRIX 6 platforms; doing so will only cause problems. 1556 1182 1557 <p>GCC does not currently support generating O32 ABI binaries in the1183 <p>GCC does not currently support generating O32 ABI binaries in the 1558 1184 <code>mips-sgi-irix6</code> configurations. It is possible to create a GCC 1559 1185 with O32 ABI only support by configuring it for the <code>mips-sgi-irix5</code> … … 1564 1190 expected that O32 ABI support will be available again in a future release. 1565 1191 1566 <p>The <code>--enable-threads</code> option doesn't currently work, a patch is1192 <p>The <code>--enable-threads</code> option doesn't currently work, a patch is 1567 1193 in preparation for a future release. The <code>--enable-libgcj</code> 1568 1194 option is disabled by default: IRIX 6 uses a very low default limit … … 1574 1200 <code>systune</code> command to do this. 1575 1201 1576 <p>GCC does not correctly pass/return structures which are1202 <p>GCC does not correctly pass/return structures which are 1577 1203 smaller than 16 bytes and which are not 8 bytes. The problem is very 1578 1204 involved and difficult to fix. It affects a number of other targets also, … … 1583 1209 register. 1584 1210 1585 <p>GCC is consistent with itself, but not consistent with the SGI C compiler1211 <p>GCC is consistent with itself, but not consistent with the SGI C compiler 1586 1212 (and the SGI supplied runtime libraries), so the only failures that can 1587 1213 happen are when there are library functions that take/return such … … 1591 1217 bug is fixed, GCC contains workarounds for the known affected functions. 1592 1218 1593 <p>See <a href="http://freeware.sgi.com/">http://freeware.sgi.com/</a> for more1219 <p>See <a href="http://freeware.sgi.com/">http://freeware.sgi.com/</a> for more 1594 1220 information about using GCC on IRIX platforms. 1595 1221 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> 1227 switch 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> 1652 1232 1653 1233 <p>PowerPC running Darwin (Mac OS X kernel). 1654 1234 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, 1658 1236 meaning that you will not be able to build GCC from source. Tool 1659 1237 binaries are available at 1660 <a href="http:// www.opensource.apple.com/projects/darwin">http://www.opensource.apple.com/projects/darwin</a> (free1238 <a href="http://developer.apple.com/tools/compilers.html">http://developer.apple.com/tools/compilers.html</a> (free 1661 1239 registration required). 1662 1240 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 1242 to fail with 'Bus error'. Set the stack larger, for instance 1243 by doing <code>limit stack 800</code>. It's a good idea to use the GNU 1244 preprocessor instead of Apple's <code>cpp-precomp</code> during the first stage of 1245 bootstrapping; this is automatic when doing <code>make bootstrap</code>, but 1246 to do it from the toplevel objdir you will need to say <code>make 1247 CC='cc -no-cpp-precomp' bootstrap</code>. 1248 1249 <p>The version of GCC shipped by Apple typically includes a number of 1250 extensions not available in a standard GCC release. These extensions 1251 are 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> 1685 1256 1686 1257 <p>PowerPC system in big endian mode, running System V.4. 1687 1258 1688 <hr />1689 1690 <h 2><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> 1691 1262 1692 1263 <p>You will need … … 1694 1265 or newer for a working GCC. 1695 1266 1696 <hr />1697 1698 <h 2><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> 1699 1270 1700 1271 <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 included1272 documentation you will need Texinfo version 4.2 (NetBSD 1.5.1 included 1702 1273 Texinfo version 3.12). 1703 1274 1704 <hr />1705 1706 <h 2><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> 1707 1278 1708 1279 <p>Embedded PowerPC system in big endian mode with <code>-mcall-aix</code> selected as 1709 1280 the default. 1710 1281 1711 <hr />1712 1713 <h 2><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> 1714 1285 1715 1286 <p>Embedded PowerPC system in big endian mode for use in running under the 1716 1287 PSIM simulator. 1717 1288 1718 <hr />1719 1720 <h 2><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> 1721 1292 1722 1293 <p>Embedded PowerPC system in big endian mode. 1723 1294 1724 <hr />1725 1726 <h 2><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> 1727 1298 1728 1299 <p>PowerPC system in little endian mode, running System V.4. 1729 1300 1730 <hr />1731 1732 <h 2><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> 1733 1304 1734 1305 <p>Embedded PowerPC system in little endian mode for use in running under 1735 1306 the PSIM simulator. 1736 1307 1737 <hr />1738 1739 <h 2><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> 1740 1311 1741 1312 <p>Embedded PowerPC system in little endian mode. 1742 1313 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> 1765 1317 1766 1318 <p>S/390 system running Linux for S/390. 1767 1319 1768 <hr />1769 1770 <h 2><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> 1771 1323 1772 1324 <p>zSeries system (64-bit) running Linux for zSeries. 1773 1325 1774 <hr />1775 1776 <h 2><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> 1777 1329 1778 1330 <p>Sun does not ship a C compiler with Solaris 2. To bootstrap and install … … 1780 1332 <a href="binaries.html">binaries page</a> for details. 1781 1333 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 1336 recommend to use the following sequence of commands to bootstrap and 1337 install 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 1347 to use GNU make, which we call <code>gmake</code> here to distinguish it 1348 from Sun make. 1349 1350 <p>Solaris 2 comes with a number of optional OS packages. Some of these 1351 are needed to use GCC fully, namely <code>SUNWarc</code>, 1789 1352 <code>SUNWbtool</code>, <code>SUNWesu</code>, <code>SUNWhea</code>, <code>SUNWlibm</code>, 1790 1353 <code>SUNWsprot</code>, and <code>SUNWtoo</code>. If you did not install all … … 1792 1355 the packages that GCC needs are installed. 1793 1356 1794 <p>To check whether an optional package is installed, use1357 <p>To check whether an optional package is installed, use 1795 1358 the <code>pkginfo</code> command. To add an optional package, use the 1796 1359 <code>pkgadd</code> command. For further details, see the Solaris 2 1797 1360 documentation. 1798 1361 1799 <p>Trying to use the linker and other tools in1362 <p>Trying to use the linker and other tools in 1800 1363 <code>/usr/ucb</code> to install GCC has been observed to cause trouble. 1801 1364 For example, the linker may hang indefinitely. The fix is to remove 1802 1365 <code>/usr/ucb</code> from your <code>PATH</code>. 1803 1366 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 1368 have <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 1805 1372 platform. We recommend the use of GNU binutils 2.11.2 or the vendor 1806 1373 tools (Sun <code>as</code>, Sun <code>ld</code>). 1807 1374 1808 <p>Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or1375 <p>Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or 1809 1376 newer: <code>g++</code> will complain that types are missing. These headers assume 1810 1377 that omitting the type means <code>int</code>; this assumption worked for C89 but 1811 1378 is wrong for C++, and is now wrong for C99 also. 1812 1379 1813 <p><code>g++</code> accepts such (invalid) constructs with the option1380 <p><code>g++</code> accepts such (invalid) constructs with the option 1814 1381 <code>-fpermissive</code>; it 1815 1382 will assume that any missing type is <code>int</code> (as defined by C89). 1816 1383 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, 1818 1385 106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC, 1819 1386 108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC, 1820 1387 108653-22 for Intel) that fix this bug. 1821 1388 1822 <hr />1823 1824 <h 2><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> 1825 1392 1826 1393 <p>When GCC is configured to use binutils 2.11.2 or later the binaries … … 1829 1396 information. 1830 1397 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. 1832 1399 A typical error message might look similar to the following: 1833 1400 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 Solaris1401 <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 1839 1406 2.6 and has been fixed in later (5.x) versions of the assembler, 1840 1407 starting with Solaris 7. 1841 1408 1842 <p>Starting with Solaris 7, the operating system is capable of executing1409 <p>Starting with Solaris 7, the operating system is capable of executing 1843 1410 64-bit SPARC V9 binaries. GCC 3.1 and later properly supports 1844 1411 this; the <code>-m64</code> option enables 64-bit code generation. … … 1848 1415 machines. 1849 1416 1850 <p>When configuring on a Solaris 7 or later system that is running a kernel1417 <p>When configuring on a Solaris 7 or later system that is running a kernel 1851 1418 that supports only 32-bit binaries, one must configure with 1852 1419 <code>--disable-multilib</code>, since we will not be able to build the 1853 1420 64-bit target libraries. 1854 1421 1855 <hr />1856 1857 <h 2><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> 1858 1425 1859 1426 <p>Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in … … 1863 1430 recommend it only for people who use Sun's compilers. 1864 1431 1865 <p>Here are some workarounds to this problem:1866 <ul>1432 <p>Here are some workarounds to this problem: 1433 <ul> 1867 1434 <li>Do not install Sun patch 107058-01 until after Sun releases a 1868 1435 complete patch for bug 4210064. This is the simplest course to take, … … 1871 1438 back it out. 1872 1439 1873 <li>Copy the original, unpatched Solaris 71440 <li>Copy the original, unpatched Solaris 7 1874 1441 <code>/usr/ccs/bin/as</code> into 1875 1442 <code>/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/3.1/as</code>, … … 1877 1444 version numbers. 1878 1445 1879 <li>Install Sun patch 106950-03 (1999-05-25) or later. Nobody with1446 <li>Install Sun patch 106950-03 (1999-05-25) or later. Nobody with 1880 1447 both 107058-01 and 106950-03 installed has reported the bug with GCC 1881 1448 and Sun's dynamic linker. This last course of action is riskiest, … … 1889 1456 </ul> 1890 1457 1891 <p> 1458 <p>GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun assembler, 1459 which causes a bootstrap failure when linking the 64-bit shared version of 1460 libgcc. A typical error message is: 1461 1462 <pre class="smallexample"> ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o: 1463 symbol <unknown>: 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> 1892 1469 <hr /> 1893 1470 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 1897 1476 <code>-fPIC</code> compiled objects (and will therefore not allow you to build 1898 1477 shared libraries). 1899 1478 1900 <p>To fix this problem you can either use the most recent version of1479 <p>To fix this problem you can either use the most recent version of 1901 1480 binutils or get the latest SunOS 4 linker patch (patch ID 100170-10) 1902 1481 from Sun's patch site. 1903 1482 1904 <p>Sometimes on a Sun 4 you may observe a crash in the program1483 <p>Sometimes on a Sun 4 you may observe a crash in the program 1905 1484 <code>genflags</code> or <code>genoutput</code> while building GCC. This is said to 1906 1485 be due to a bug in <code>sh</code>. You can probably get around it by running … … 1908 1487 <code>make</code>. 1909 1488 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 1915 1496 <a href="ftp://ftp.yggdrasil.com/private/hjl">binutils 2.8.1.0.23</a> 1916 1497 for this platform, too. 1917 1498 1918 <hr />1919 1920 <h 2><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> 1921 1502 1922 1503 <p>GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4 … … 1924 1505 releases mishandled unaligned relocations on <code>sparc-*-*</code> targets. 1925 1506 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> 1939 1510 1940 1511 <p>The following compiler flags must be specified in the configure 1941 1512 step in order to bootstrap this target with the Sun compiler: 1942 1513 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> 1518 specifies 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> 1952 1529 1953 1530 <p>On System V release 3, you may get this error message 1954 1531 while linking: 1955 1532 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 allow1533 <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 1961 1538 the file to be as large as it needs to be. 1962 1539 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> 1964 1541 is too small. If so, you must regenerate the kernel and make the value 1965 1542 much larger. The default value is reported to be 1024; a value of 32768 1966 1543 is said to work. Smaller values may also work. 1967 1544 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 exhausted1972 </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> 1973 1550 1974 1551 <p>that too indicates a problem with disk space, ulimit, or <code>MAXUMEM</code>. 1975 1552 1976 <p>On a System V release 4 system, make sure <code>/usr/bin</code> precedes1553 <p>On a System V release 4 system, make sure <code>/usr/bin</code> precedes 1977 1554 <code>/usr/ucb</code> in <code>PATH</code>. The <code>cc</code> command in 1978 1555 <code>/usr/ucb</code> uses libraries which have bugs. 1979 1556 1980 <hr />1981 1982 <h 2><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> 1983 1560 1984 1561 <p>Don't try compiling with VAX C (<code>vcc</code>). It produces incorrect code 1985 1562 in some cases (for example, when <code>alloca</code> is used). 1986 1563 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+"$@"}' > /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. 1570 On GNU/Linux the default is a bi-arch compiler which is able to generate 1571 both 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> 2026 1576 2027 1577 <p>This target is intended for embedded Xtensa systems using the … … 2031 1581 through inline assembly. 2032 1582 2033 <p>The Xtensa configuration information must be specified prior to1583 <p>The Xtensa configuration information must be specified prior to 2034 1584 building GCC. The <code>gcc/config/xtensa/xtensa-config.h</code> header 2035 1585 file contains the configuration information. If you created your … … 2038 1588 which you can use to replace the default header file. 2039 1589 2040 <hr />2041 2042 <h 2><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> 2043 1593 2044 1594 <p>This target is for Xtensa systems running GNU/Linux. It supports ELF … … 2049 1599 <a href="#xtensa-*-elf"><code>xtensa-*-elf</code></a> target. 2050 1600 2051 <hr />2052 2053 <h 2><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 the1601 <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 2056 1606 <a href="http://www.cygwin.com/">Cygwin environment</a>. 2057 1607 2058 <p>Current (as of early 2001) snapshots of GCC will build under Cygwin1608 <p>Current (as of early 2001) snapshots of GCC will build under Cygwin 2059 1609 without modification. 2060 1610 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 1612 are 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> 2064 1617 2065 1618 <p>GCC does not currently support OS/2. However, Andrew Zabolotny has been … … 2067 1620 at <a href="http://www.goof.com/pcg/os2/">http://www.goof.com/pcg/os2/</a>. 2068 1621 2069 <p>An older copy of GCC 2.8.1 is included with the EMX tools available at1622 <p>An older copy of GCC 2.8.1 is included with the EMX tools available at 2070 1623 <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>. 2071 1624 2072 <hr />2073 2074 <h 2><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> 2075 1628 2076 1629 <p>GCC contains support files for many older (1980s and early 2077 1630 1990s) Unix variants. For the most part, support for these systems 2078 1631 has 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. 1632 several years and may suffer from bitrot. 1633 1634 <p>Starting with GCC 3.1, each release has a list of "obsoleted" systems. 2086 1635 Support for these systems is still present in that release, but 2087 1636 <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 1637 option is given. Unless a maintainer steps forward, support for these 1638 systems 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 2101 1641 workarounds for compiler, library and operating system bugs affect the 2102 1642 cleanliness or maintainability of the rest of GCC. In some cases, to 2103 1643 bring GCC up on such a system, if still possible with current GCC, may 2104 1644 require 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, 1645 system, and using it to compile a more recent GCC, to avoid bugs in the 1646 vendor 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 1649 operating system may still cause problems. 1650 1651 <p>Support for older systems as targets for cross-compilation is less 1652 problematic than support for them as hosts for GCC; if an enthusiast 1653 wishes to make such a target work again (including resurrecting any of 1654 the targets that never worked with GCC 2, starting from the last CVS 1655 version before they were removed), patches 1656 <a href="../contribute.html">following the usual requirements</a> would be 1657 likely to be accepted, since they should not affect the support for more 1658 modern targets. 1659 1660 <p>For some systems, old versions of GNU binutils may also be useful, 2113 1661 and are available from <code>pub/binutils/old-releases</code> on 2114 1662 <a href="http://sources.redhat.com/mirrors.html">sources.redhat.com mirror sites</a>. 2115 1663 2116 <p>Some of the information on specific systems above relates to1664 <p>Some of the information on specific systems above relates to 2117 1665 such older systems, but much of the information 2118 1666 about GCC on such systems (which may no longer be applicable to 2119 1667 current GCC) is to be found in the GCC texinfo manual. 2120 1668 2121 <hr />2122 2123 <h 2><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> 2124 1672 2125 1673 <p>C++ support is significantly better on ELF targets if you use the … … 2128 1676 automatically. 2129 1677 2130 <hr />1678 <hr /> 2131 1679 <p> 2132 1680 <a href="./index.html">Return to the GCC Installation page</a> 2133 1681 2134 </body></html>2135 1682 </body></html> 1683 -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.