Commit 213ba345 by Rainer Orth Committed by Rainer Orth

install.texi (Specific, [...]): Split from IRIX 5 section.

	* doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
	section.
	(Specific, mips*-sgi-irix5): Note IDO download.
	Reworded MIPS C hints.
	Use GNU as instead of GAS.
	Markup fixes.
	Removed SGI Freeware reference, IRIX 6 only.
	(Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
	Note N64 library requirement/workaround.
	Update O32 hints.
	Complete list of structure passing bug victims.

From-SVN: r43694
parent df0afdbe
2001-07-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
section.
(Specific, mips*-sgi-irix5): Note IDO download.
Reworded MIPS C hints.
Use GNU as instead of GAS.
Markup fixes.
Removed SGI Freeware reference, IRIX 6 only.
(Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
Note N64 library requirement/workaround.
Update O32 hints.
Complete list of structure passing bug victims.
2001-07-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 2001-07-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
* doc/install.texi: Remove CVS Id. * doc/install.texi: Remove CVS Id.
......
...@@ -1329,7 +1329,9 @@ GNU Compiler Collection on your machine. ...@@ -1329,7 +1329,9 @@ GNU Compiler Collection on your machine.
@item @item
@uref{#mips-mips-riscos*,,mips-mips-riscos*} @uref{#mips-mips-riscos*,,mips-mips-riscos*}
@item @item
@uref{#mips*-sgi-irix[45],,mips*-sgi-irix[45]} @uref{#mips*-sgi-irix4,,mips*-sgi-irix4}
@item
@uref{#mips*-sgi-irix5,,mips*-sgi-irix5}
@item @item
@uref{#mips*-sgi-irix6,,mips*-sgi-irix6} @uref{#mips*-sgi-irix6,,mips*-sgi-irix6}
@item @item
...@@ -2658,37 +2660,13 @@ avoiding a linker bug. ...@@ -2658,37 +2660,13 @@ avoiding a linker bug.
</p> </p>
<hr> <hr>
@end html @end html
@heading @anchor{mips*-sgi-irix[45]}mips*-sgi-irix[45] @heading @anchor{mips*-sgi-irix4*}mips*-sgi-irix4*
In order to compile GCC on an SGI running IRIX 4, the ``c.hdr.lib'' In order to compile GCC on an SGI running IRIX 4, the ``c.hdr.lib''
option must be installed from the CD-ROM supplied from Silicon Graphics. option must be installed from the CD-ROM supplied from Silicon Graphics.
This is found on the 2nd CD in release 4.0.1. This is found on the 2nd CD in release 4.0.1.
In order to compile GCC on an SGI running IRIX 5, the ``compiler_dev.hdr'' On IRIX version 4.0.5F, and perhaps on some other versions as well,
subsystem must be installed from the IDO CD-ROM supplied by Silicon
Graphics.
@code{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.
The MIPS C compiler needs to be told to increase its table size
for switch statements with the @option{-Wf,-XNg1500} option in
order to compile @file{cp/parse.c}. If you use the @option{-O2}
optimization option, you also need to use @option{-Olimit 3000}.
Both of these options are automatically generated in the
@file{Makefile} that the shell script @file{configure} builds.
If you override the @code{CC} make variable and use the MIPS
compilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}.
On Irix version 4.0.5F, and perhaps on some other versions as well,
there is an assembler bug that reorders instructions incorrectly. To there is an assembler bug that reorders instructions incorrectly. To
work around it, specify the target configuration work around it, specify the target configuration
@samp{mips-sgi-irix4loser}. This configuration inhibits assembler @samp{mips-sgi-irix4loser}. This configuration inhibits assembler
...@@ -2704,43 +2682,68 @@ is due to erroneous assembler reordering. Even if a problem does not go ...@@ -2704,43 +2682,68 @@ is due to erroneous assembler reordering. Even if a problem does not go
away with @option{-noasmopt}, it may still be due to assembler away with @option{-noasmopt}, it may still be due to assembler
reordering---perhaps GCC itself was miscompiled as a result. reordering---perhaps GCC itself was miscompiled as a result.
To enable debugging under Irix 5, you must use GNU as 2.5 or later, You may get the following warning on IRIX 4 platforms, it can be safely
and use the @option{--with-gnu-as} configure option when configuring gcc. ignored.
GNU as is distributed as part of the binutils package. @example
warning: foo.o does not have gp tables for all its sections.
@end example
You must use GAS on these platforms, as the native assembler can not handle @html
the code for exception handling support. Either of these messages indicates </p>
that you are using the MIPS assembler when instead you should be using GAS: <hr>
@end html
@heading @anchor{mips*-sgi-irix5*}mips*-sgi-irix5*
@samp{ as0: Error: ./libgcc2.c, line 1:Badly delimited numeric literal In order to compile GCC on an SGI running IRIX 5, the ``compiler_dev.hdr''
.4byte $LECIE1-$LSCIE1 subsystem must be installed from the IDO CD-ROM supplied by Silicon
as0: Error: ./libgcc2.c, line 1:malformed statement} 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}.
or: @code{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.
@samp{ as0: Error: /src/bld-gcc/gcc/libgcc2.c, line 1:undefined symbol in expression If you use the MIPS C compiler to bootstrap, it may be necessary
.word $LECIE1-$LSCIE1} 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}.
These systems don't have ranlib, which various components in GCC need; you To enable debugging under IRIX 5, you must use GNU @command{as} 2.5 or later,
should be able to avoid this problem by installing GNU binutils, which includes and use the @option{--with-gnu-as} configure option when configuring GCC.
a functional ranlib for this system. GNU @command{as} is distributed as part of the binutils package.
You must use GNU @command{as} on these platforms, as the native
assembler can not handle the code for exception handling support. Either
of these messages indicates that you are using the MIPS assembler when
instead you should be using GNU @command{as}:
You may get the following warning on irix4 platforms, it can be safely
ignored.
@example @example
warning: foo.o does not have gp tables for all its sections. as0: Error: ./libgcc2.c, line 1:Badly delimited numeric literal
.4byte $LECIE1-$LSCIE1
as0: Error: ./libgcc2.c, line 1:malformed statement
@end example @end example
When building GCC, the build process loops rebuilding @command{cc1} over and or:
over again. This happens on 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.
See @uref{http://freeware.sgi.com/,,http://freeware.sgi.com/} for more @example
information about using GCC on IRIX platforms. as0: Error: ./libgcc2.c, line 1:undefined symbol in expression
.word $LECIE1-$LSCIE1
@end example
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.
@html @html
</p> </p>
...@@ -2748,35 +2751,45 @@ information about using GCC on IRIX platforms. ...@@ -2748,35 +2751,45 @@ information about using GCC on IRIX platforms.
@end html @end html
@heading @anchor{mips*-sgi-irix6}mips*-sgi-irix6 @heading @anchor{mips*-sgi-irix6}mips*-sgi-irix6
You must @emph{not} use GAS on irix6 platforms; doing so will only If you are using IRIX @command{cc} as your bootstrap compiler, you must
cause problems.
These systems don't have @command{ranlib}, which various components in GCC need; you
should be able to avoid this problem by making a dummy script called @command{ranlib}
which just exits with zero status and placing it in your path.
If you are using Irix @command{cc} as your bootstrap compiler, you must
ensure that the N32 ABI is in use. To test this, compile a simple C 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 file with @command{cc} and then run @command{file} on the
resulting object file. The output should look like: resulting object file. The output should look like:
@example @example
@code{ test.o: ELF N32 MSB @dots{}} test.o: ELF N32 MSB @dots{}
@end example @end example
If you see: If you see:
@example
test.o: ELF 32-bit MSB @dots{}
@end example
or
@example @example
@code{ test.o: ELF 32-bit MSB} test.o: ELF 64-bit MSB @dots{}
@end example @end example
then your version of @command{cc} uses the O32 ABI default. You 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} should set the environment variable @env{CC} to @samp{cc -n32}
before configuring GCC@. 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,
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
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 GCC does not currently support generating O32 ABI binaries in the
mips-sgi-irix6 configurations. It used to be possible to create a GCC @samp{mips-sgi-irix6} configurations. It used to be possible to create a GCC
with O32 ABI only support by configuring it for the mips-sgi-irix5 with O32 ABI only support by configuring it for the @samp{mips-sgi-irix5}
target. See the link below for details. target, which doesn't currently (2001-06-13) work itself. It is
expected that O32 ABI support will be available again in a future release.
GCC does not correctly pass/return structures which are GCC does not correctly pass/return structures which are
smaller than 16 bytes and which are not 8 bytes. The problem is very smaller than 16 bytes and which are not 8 bytes. The problem is very
...@@ -2790,13 +2803,13 @@ register. ...@@ -2790,13 +2803,13 @@ register.
GCC is consistent with itself, but not consistent with the SGI C compiler 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 (and the SGI supplied runtime libraries), so the only failures that can
happen are when there are library functions that take/return such happen are when there are library functions that take/return such
structures. There are very few such library functions. I can only recall structures. There are very few such library functions. Currently this
seeing two of them: inet_ntoa, and semctl. is known to affect @code{inet_ntoa}, @code{inet_lnaof},
@code{inet_netof}, @code{inet_makeaddr}, and @code{semctl}.
See @uref{http://freeware.sgi.com/,,http://freeware.sgi.com/} for more See @uref{http://freeware.sgi.com/,,http://freeware.sgi.com/} for more
information about using GCC on IRIX platforms. information about using GCC on IRIX platforms.
@html @html
</p> </p>
<hr> <hr>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment