summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2004-04-16 22:41:35 +0000
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2004-04-16 22:41:35 +0000
commit63550bc17d99964a5a058405b3da02d4b5177c65 (patch)
treeec37f088c567de026b437885503f3b18eeb4dfa8
parent6e97aa072973a8bb2c77d06415bf6c7ee971c836 (diff)
downloadgcc-63550bc17d99964a5a058405b3da02d4b5177c65.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-3_4-branch@80773 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog13
-rw-r--r--gcc/doc/install.texi99
2 files changed, 41 insertions, 71 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e6053d50f7b..0143b3f7d55 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,18 @@
2004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+ * 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.
+
+2004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
* aclocal.m4 (gcc_AC_PROG_GNAT): Check if ${CC} produces object
file for Ada compilation.
Fix gcc_cv_cc_supports_ada spelling.
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 07af0b6272a..c0479a0b13b 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -3203,52 +3203,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:
@@ -3271,15 +3246,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{}
@@ -3294,52 +3274,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