diff options
author | Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> | 2004-04-16 22:32:38 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2004-04-16 22:32:38 +0000 |
commit | 7e270317cf28ff1563c60ca1fe72c9523817440a (patch) | |
tree | 0f92f483fa1b5d52e378daab8db7dac914ee856f /gcc/doc | |
parent | 1db673ca875902e6d955adb95ae4f7c7df02b831 (diff) | |
download | gcc-7e270317cf28ff1563c60ca1fe72c9523817440a.zip gcc-7e270317cf28ff1563c60ca1fe72c9523817440a.tar.gz gcc-7e270317cf28ff1563c60ca1fe72c9523817440a.tar.bz2 |
install.texi (Specific, [...]): Reflect working IRIX 5 port.
* doc/install.texi (Specific, mips-sgi-irix5): Reflect working
IRIX 5 port.
Remove -save-temps workaround, handled automatically.
Require GNU binutils 2.15 for debugging.
Remove SGI make warnings since GNU make is now required.
(Specific, mips-sgi-irix6): Some markup fixes.
Describe MIPSpro C problems and workarounds.
Mention working O32 ABI support.
Recommend GNU as 2.15 for O32 with debugging.
Remove description of fixed structure pass/return bug.
From-SVN: r80772
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/install.texi | 99 |
1 files changed, 28 insertions, 71 deletions
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 96ee185..5b02f49 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -3156,52 +3156,27 @@ if you use the GNU assembler and linker. @end html @heading @anchor{mips-sgi-irix5}mips-sgi-irix5 -This configuration has considerable problems, which will be fixed in a -future release. - -In order to compile GCC on an SGI running IRIX 5, the ``compiler_dev.hdr'' -subsystem must be installed from the IDO CD-ROM supplied by Silicon -Graphics. It is also available for download from -@uref{http://www.sgi.com/developers/devtools/apis/ido.html,,http://www.sgi.com/developers/devtools/apis/ido.html}. - -@samp{make compare} may fail on version 5 of IRIX unless you add -@option{-save-temps} to @code{CFLAGS}. On these systems, the name of the -assembler input file is stored in the object file, and that makes -comparison fail if it differs between the @code{stage1} and -@code{stage2} compilations. The option @option{-save-temps} forces a -fixed name to be used for the assembler input file, instead of a -randomly chosen name in @file{/tmp}. Do not add @option{-save-temps} -unless the comparisons fail without that option. If you do you -@option{-save-temps}, you will have to manually delete the @samp{.i} and -@samp{.s} files after each series of compilations. +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://www.sgi.com/developers/devtools/apis/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}. -To enable debugging under IRIX 5, you must use GNU @command{as} 2.11.2 -or later, -and use the @option{--with-gnu-as} configure option when configuring GCC. -GNU @command{as} is distributed as part of the binutils package. -When using release 2.11.2, you need to apply a patch -@uref{http://sources.redhat.com/ml/binutils/2001-07/msg00352.html,,http://sources.redhat.com/ml/binutils/2001-07/msg00352.html} -which will be included in the next release of binutils. - -When building GCC, the build process loops rebuilding @command{cc1} over -and over again. This happens on @samp{mips-sgi-irix5.2}, and possibly -other platforms. It has been reported that this is a known bug in the -@command{make} shipped with IRIX 5.2. We recommend you use GNU -@command{make} instead of the vendor supplied @command{make} program; -however, you may have success with @command{smake} on IRIX 5.2 if you do -not have GNU @command{make} available. +To enable debugging under IRIX 5, you must use GNU binutils 2.15 or +later, and use the @option{--with-gnu-as} and @option{--with-gnu-ld} +@command{configure} options when configuring GCC@. You need to use GNU +@command{ar} and @command{nm}, also distributed with GNU binutils. @html <hr /> @end html @heading @anchor{mips-sgi-irix6}mips-sgi-irix6 -If you are using IRIX @command{cc} as your bootstrap compiler, you must +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 file with @command{cc} and then run @command{file} on the resulting object file. The output should look like: @@ -3224,15 +3199,20 @@ test.o: ELF 64-bit MSB @dots{} then your version of @command{cc} uses the O32 or N64 ABI by default. You should set the environment variable @env{CC} to @samp{cc -n32} -before configuring GCC@. +before configuring GCC@. SGI's MIPSpro 7.2 assembler may misassemble +parts of the compiler, causing bootstrap failures. MIPSpro 7.3 is +known to work. MIPSpro C 7.4 may cause bootstrap failures, too, due +to a bug when inlining @code{memcmp}. Either add @code{-U__INLINE_INTRINSICS} +to the @env{CC} environment variable as a workaround or upgrade to +MIPSpro C 7.4.1m. If you want the resulting @command{gcc} to run on old 32-bit systems -with the MIPS R4400 CPU, you need to ensure that only code for the mips3 +with the MIPS R4400 CPU, you need to ensure that only code for the @samp{mips3} instruction set architecture (ISA) is generated. While GCC 3.x does this correctly, both GCC 2.95 and SGI's MIPSpro @command{cc} may change the ISA depending on the machine where GCC is built. Using one of them -as the bootstrap compiler may result in mips4 code, which won't run at -all on mips3-only systems. For the test program above, you should see: +as the bootstrap compiler may result in @samp{mips4} code, which won't run at +all on @samp{mips3}-only systems. For the test program above, you should see: @smallexample test.o: ELF N32 MSB mips-3 @dots{} @@ -3247,52 +3227,29 @@ test.o: ELF N32 MSB mips-4 @dots{} instead, you should set the environment variable @env{CC} to @samp{cc -n32 -mips3} or @samp{gcc -mips3} respectively before configuring GCC@. -GCC on IRIX 6 is usually built to support both the N32 and N64 ABIs. If -you build GCC on a system that doesn't have the N64 libraries installed, +GCC on IRIX 6 is usually built to support the N32, O32 and N64 ABIs. If +you build GCC on a system that doesn't have the N64 libraries installed +or cannot run 64-bit binaries, you need to configure with @option{--disable-multilib} so GCC doesn't -try to use them. Look for @file{/usr/lib64/libc.so.1} to see if you +try to use them. This will disable building the O32 libraries, too. +Look for @file{/usr/lib64/libc.so.1} to see if you have the 64-bit libraries installed. -You must @emph{not} use GNU @command{as} (which isn't built anyway as of -binutils 2.11.2) on IRIX 6 platforms; doing so will only cause problems. - -GCC does not currently support generating O32 ABI binaries in the -@samp{mips-sgi-irix6} configurations. It is possible to create a GCC -with O32 ABI only support by configuring it for the @samp{mips-sgi-irix5} -target and using a patched GNU @command{as} 2.11.2 as documented in the -@uref{#mips-sgi-irix5,,@samp{mips-sgi-irix5}} section above. Using the -native assembler requires patches to GCC which will be included in a -future release. It is -expected that O32 ABI support will be available again in a future release. +To enable debugging for the O32 ABI, you must use GNU @command{as} from +GNU binutils 2.15 or later. You may also use GNU @command{ld}, but +this is not required and currently causes some problems with Ada. The @option{--enable-threads} option doesn't currently work, a patch is in preparation for a future release. The @option{--enable-libgcj} option is disabled by default: IRIX 6 uses a very low default limit -(20480) for the command line length. Although libtool contains a +(20480) for the command line length. Although @command{libtool} contains a workaround for this problem, at least the N64 @samp{libgcj} is known not to build despite this, running into an internal error of the native @command{ld}. A sure fix is to increase this limit (@samp{ncargs}) to its maximum of 262144 bytes. If you have root access, you can use the @command{systune} command to do this. -GCC does not correctly pass/return structures which are -smaller than 16 bytes and which are not 8 bytes. The problem is very -involved and difficult to fix. It affects a number of other targets also, -but IRIX 6 is affected the most, because it is a 64-bit target, and 4 byte -structures are common. The exact problem is that structures are being padded -at the wrong end, e.g.@: a 4 byte structure is loaded into the lower 4 bytes -of the register when it should be loaded into the upper 4 bytes of the -register. - -GCC is consistent with itself, but not consistent with the SGI C compiler -(and the SGI supplied runtime libraries), so the only failures that can -happen are when there are library functions that take/return such -structures. There are very few such library functions. Currently this -is known to affect @code{inet_ntoa}, @code{inet_lnaof}, -@code{inet_netof}, @code{inet_makeaddr}, and @code{semctl}. Until the -bug is fixed, GCC contains workarounds for the known affected functions. - -See @uref{http://freeware.sgi.com/,,http://freeware.sgi.com/} for more +See @uref{http://freeware.sgi.com/} for more information about using GCC on IRIX platforms. @html |