Necessary to build link-time optimization (LTO) support. It can be
downloaded from @uref{http://www.mr511.de/software/libelf-0.8.12.tar.gz},
-though it is commonly available in several systems. The version in
-IRIX 6.5 doesn't work since it lacks @file{gelf.h}. The version in
-Solaris 2 does work.
+though it is commonly available in several systems. The versions in
+IRIX 5 and 6 don't work since they lack @file{gelf.h}. The version in
+recent releases of Solaris 11 does work, previous ones don't yet.
The @option{--with-libelf} configure option should be used if libelf is
not installed in your default library search patch.
@end html
@heading @anchor{mips-sgi-irix5}mips-sgi-irix5
-Support for IRIX 5 has been removed in GCC 4.6.
+Support for IRIX 5 has been obsoleted in GCC 4.5, but can still be
+enabled by configuring with @option{--enable-obsolete}. Support will be
+removed in GCC 4.6.
+
+In order to compile GCC on an SGI running IRIX 5, the @samp{compiler_dev.hdr}
+subsystem must be installed from the IDO CD-ROM supplied by SGI@.
+It is also available for download from
+@uref{http://freeware.sgi.com/ido.html}.
+
+If you use the MIPS C compiler to bootstrap, it may be necessary
+to increase its table size for switch statements with the
+@option{-Wf,-XNg1500} option. If you use the @option{-O2}
+optimization option, you also need to use @option{-Olimit 3000}.
+@c FIXME: verify.
+
+GCC must be configured to use GNU @command{as}. The latest version, from GNU
+binutils 2.20.1, is known to work.
+
+To enable debugging under IRIX 5, you must use GNU binutils 2.15 or
+later, and use the @option{--with-gnu-ld} @command{configure} option
+when configuring GCC@.
+You need to use GNU @command{ar} and @command{nm},
+also distributed with GNU binutils.
+@c FIXME: which parts of this are still true?
+
+Configuring GCC with @command{/bin/sh} is @emph{extremely} slow and may
+even hang. This problem can be avoided by running @command{configure}
+like this:
+
+@smallexample
+ % CONFIG_SHELL=/usr/local/bin/bash
+ % export CONFIG_SHELL
+ % $CONFIG_SHELL @var{srcdir}/configure [@var{options}]
+@end smallexample
+
+@noindent
+@command{/bin/ksh} doesn't work properly either.
@html
<hr />
@end html
@heading @anchor{mips-sgi-irix6}mips-sgi-irix6
-Support for IRIX 6 releases before 6.5 has been removed in GCC 4.6, as
-well as support for
+Support for IRIX 6 releases before 6.5 has been obsoleted in GCC 4.5,
+but can still be enabled by configuring with @option{--enable-obsolete}.
+Support will be removed in GCC 4.6, which will also disable support for
the O32 ABI. It is @emph{strongly} recommended to upgrade to at least
IRIX 6.5.18. This release introduced full ISO C99 support, though for
the N32 and N64 ABIs only.
-To build and use GCC on IRIX 6.5, you need the IRIX Development Foundation
+To build and use GCC on IRIX 6, you need the IRIX Development Foundation
(IDF) and IRIX Development Libraries (IDL). They are included with the
-IRIX 6.5 media.
+IRIX 6.5 media and can be downloaded from
+@uref{http://freeware.sgi.com/idf_idl.html} for older IRIX 6 releases.
If you are using SGI's MIPSpro @command{cc} as your bootstrap compiler, you must
ensure that the N32 ABI is in use. To test this, compile a simple C
@c alone is too unspecific and must be avoided.
@heading @anchor{x-x-solaris2}*-*-solaris2*
-Support for Solaris 7 has been removed in GCC 4.6.
+Support for Solaris 7 has been obsoleted in GCC 4.5, but can still be
+enabled by configuring with @option{--enable-obsolete}. Support will be
+removed in GCC 4.6.
Sun does not ship a C compiler with Solaris 2, though you can download
the Sun Studio compilers for free from
@html
<hr />
@end html
+@heading @anchor{sparc-sun-solaris27}sparc-sun-solaris2.7
+
+@emph{Note} that this configuration has been obsoleted in GCC 4.5, and will be
+removed in GCC 4.6.
+
+Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in
+the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8
+and later, including all EGCS releases. Sun formerly recommended
+107058-01 for all Solaris 7 users, but around 1999-09-01 it started to
+recommend it only for people who use Sun's compilers.
+
+Here are some workarounds to this problem:
+@itemize @bullet
+@item
+Do not install Sun patch 107058-01 until after Sun releases a
+complete patch for bug 4210064. This is the simplest course to take,
+unless you must also use Sun's C compiler. Unfortunately 107058-01
+is preinstalled on some new Solaris 7-based hosts, so you may have to
+back it out.
+
+@item
+Copy the original, unpatched Solaris 7
+@command{/usr/ccs/bin/as} into
+@command{/usr/local/libexec/gcc/sparc-sun-solaris2.7/3.4/as},
+adjusting the latter name to fit your local conventions and software
+version numbers.
+
+@item
+Install Sun patch 106950-03 (1999-05-25) or later. Nobody with
+both 107058-01 and 106950-03 installed has reported the bug with GCC
+and Sun's dynamic linker. This last course of action is riskiest,
+for two reasons. First, you must install 106950 on all hosts that
+run code generated by GCC; it doesn't suffice to install it only on
+the hosts that run GCC itself. Second, Sun says that 106950-03 is
+only a partial fix for bug 4210064, but Sun doesn't know whether the
+partial fix is adequate for GCC@. Revision -08 or later should fix
+the bug. The current (as of 2004-05-23) revision is -24, and is included in
+the Solaris 7 Recommended Patch Cluster.
+@end itemize
+
+GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun assembler,
+which causes a bootstrap failure when linking the 64-bit shared version of
+@samp{libgcc}. A typical error message is:
+
+@smallexample
+ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
+ symbol <unknown>: offset 0xffffffff7ec133e7 is non-aligned.
+@end smallexample
+
+@noindent
+This bug has been fixed in the final 5.0 version of the assembler.
+
+A similar problem was reported for version Sun WorkShop 6 99/08/18 of the
+Sun assembler, which causes a bootstrap failure with GCC 4.0.0:
+
+@smallexample
+ld: fatal: relocation error: R_SPARC_DISP32:
+ file .libs/libstdc++.lax/libsupc++convenience.a/vterminate.o:
+ symbol <unknown>: offset 0xfccd33ad is non-aligned
+@end smallexample
+
+@noindent
+This bug has been fixed in more recent revisions of the assembler.
+
+@html
+<hr />
+@end html
@heading @anchor{sparc-sun-solaris210}sparc-sun-solaris2.10
There is a bug in older versions of the Sun assembler which breaks