OSDN Git Service

* doc/install.texi (Specific, mips-sgi-irix5): Reflect working
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Apr 2004 22:32:38 +0000 (22:32 +0000)
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Apr 2004 22:32:38 +0000 (22:32 +0000)
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/trunk@80772 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/doc/install.texi

index f4b2872..0c7c2ab 100644 (file)
@@ -1,3 +1,16 @@
+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  DJ Delorie  <dj@redhat.com>
 
        * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
index 96ee185..5b02f49 100644 (file)
@@ -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