<html>
<head>
<title>Host/Target specific installation notes for egcs</title>
</head>
<body>
<h1 align="center">Host/Target specific installation notes for egcs</h1>

<p><b>i?86-*-linux*</b><br>
You will need binutils-2.9.1.0.15 or newer for exception handling to work.

<p><b>i?86-*-sco3.2v5*</b><br> 

The native SCO assembler that is provided with the OS at no charge
is normally required.  If, however, you must be able to use the GNU
assembler you may configure this package @samp{--with-gnu-as}.  You must
use a recent version of GNU binutils; version 2.9.1 seems to work well.
If you select this option, you will be unable to reliably build COFF
images.  In general, the "--with-gnu-as" option isn't as well tested as
the native assembler.

<p>Unlike various prereleases of GCC, that used '-belf' and defaulted to 
COFF, you must now use the '-melf' and '-mcoff' flags to toggle between 
the two object file formats.     ELF is now the default.

<p>Look in gcc/config/i386/sco5.h (search for "messy") for additional
OpenServer-specific flags.

<p>Systems based on OpenServer before 5.0.4 (<code>uname -X</code> will
tell you what you're running) require TLS597 from ftp.sco.com/TLS for
C++ constructors and destructors to work right.

<p>The system linker in (at least) 5.0.4 and 5.0.5 will sometimes
do the wrong thing for a construct that egcs will emit for PIC
code.  This can be seen as execution testsuite failures when using
-fPIC on 921215-1.c, 931002-1.c, nestfunc-1.c, and gcov-1.c.
For 5.0.5, an updated linker that will cure this problem is
available at <a href="ftp://ftp.sco.com/Supplements/rs505a/">
ftp://ftp.sco.com/Supplements/rs505a/</a>.

<p><b>i?86-*-udk</b><br> 

This target emulates the SCO Universal Development Kit and requires that
package be installed.  It's very much like the i?86-*-unixware7 target
but is meant to be used when hosting on a system where UDK isn't the
default compiler such as OpenServer 5 or Unixware 2.  This target will
generate binaries that will run on OpenServer, Unixware 2, or Unixware 7, 
with the same warnings and caveats as the SCO UDK.

<p>You can stage1 with either your native compiler or with UDK.   If you
don't do a full bootstrap when initially building with your native compiler
you will have an utterly unusable pile of bits as your reward.

<p>This target is a little tricky to build because we have to distinguish
it from the native tools (so it gets headers, startups, and libraries
from the right place) while making the tools not think we're actually 
building a cross compiler.   The easiest way to do this is with a configure
command like this:

<p>
<code>
CC=/udk/usr/ccs/bin/cc CFLAGS=-O /play/egcs/configure
--host=i686-pc-udk --target=i686-pc-udk --exec-prefix=udk-
</code>

<p> You should follow this with a 'make bootstrap'.  After you do a
'make install' you can then access the UDK-targeted EGCS tools by adding
'udk-' before the commonly known name.  For example, to invoke the C
compiler, you would use 'udk-gcc'.  They will coexist peacefully with
any native-target EGCS tools you may have installed.

<p><b>hppa*-hp-hpux*</b><br>
We <b>highly</b> recommend using gas/binutils-2.8 or newer on all hppa
platforms; you may encounter a variety of problems when using the HP assembler.

<p><b>hppa*-hp-hpux9</b><br>
The HP assembler has major problems on this platform.  We've tried to work
around the worst of the problems.  However, those workarounds may be causing
linker crashes in some circumstances; the workarounds also probably prevent
shared libraries from working.  Use the GNU assembler to avoid these problems.

<br>The configuration scripts for egcs will also trigger a bug in the hpux9
shell.  To avoid this problem set CONFIG_SHELL to /bin/ksh and SHELL to
/bin/ksh in your environment.

<p><b>hppa*-hp-hpux10</b><br>
For hpux10.20, we <b>highly</b> recommend you pick up the latest sed
patch from HP.  HP has two sites which provide patches free of charge.

<br><a href="http://us-support.external.hp.com">US, Canada, Asia-Pacific, and
Latin-America</a>
<br><a href="http://europe-support.external.hp.com">Europe</a>

<p>Retrieve patch PHCO_15468.

<p>The HP assembler on these systems is much better than the hpux9 assembler,
but still has some problems.  Most notably the assembler inserts timestamps
into each object file it creates, causing the 3-stage comparison test to fail
during a "make bootstrap".  You should be able to continue by saying "make all"
after getting the failure from "make bootstrap".

<p><b>m68k-*-nextstep*</b><br>

<p>You absolutely must use GNU sed and GNU make on this platform.  

<p>On NEXTSTEP 3.x where x &lt; 3 the build of egcs will abort during  
stage1 with an error message like this:

<pre>
_eh
/usr/tmp/ccbbsZ0U.s:987:Unknown pseudo-op: .section
/usr/tmp/ccbbsZ0U.s:987:Rest of line ignored. 1st junk character  
valued 95 (_).
</pre>

<p>The reason for this is the fact that NeXT's assembler for these  
versions of the operating system does not support the .section  
pseudo op that's needed for full C++ exception functionality.

<p>As NeXT's assembler is a derived work from GNU as, a free  
replacement that does can be obtained at 
<a href="ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz">ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz</a>.

<p>If you try to build the integrated C++ & C++ runtime libraries on this system
you will run into trouble with include files.  The way to get around this is
to use the following sequence.  Note you must have write permission to
<i>prefix</i> for this sequence to work.

<p>cd <i>objdir</i><br>
make all-texinfo all-bison all-byacc all-binutils all-gas all-ld<br>
cd gcc<br>
make bootstrap<br>
make install-headers-tar<br>
cd ..<br>
make bootstrap3<br>



<p><b>m68k-sun-sunos4.1.1</b><br>
It is reported that you may need the GNU assembler on this platform.

<p><b>mips*-sgi-irix4</b><br>
<b>mips*-sgi-irix5</b><br>
You must use GAS on these platforms, the native assembler can not handle the
code for exception handling support on this platform.

<p>These systems don't have ranlib, which various components in egcs need; you
should be able to avoid this problem by installing GNU binutils, which includes
a functional ranlib for this system.

<p>You may get the following warning on irix4 platforms, it can be safely
ignored.
<pre>
    warning: foo.o does not have gp tables for all its sections.
</pre>

<p><b>mips*-sgi-irix6</b><br>
You must not use GAS on irix6 platforms; doing so will only cause problems.

<p>These systems don't have ranlib, which various components in egcs need; you
should be able to avoid this problem by making a dummy script called ranlib
which just exits with zero status and placing it in your path.

<p><b>rs6000-ibm-aix*</b><br>
<b>powerpc-ibm-aix*</b><br>
At least one person as reported problems with older versions of gnu-make on
this platform.  make-3.76 is reported to work correctly.

<p><b>powerpc-*-linux-gnu*</b><br>
You will need
<a href="ftp://ftp.yggdrasil.com/private/hjl">binutils-2.8.1.0.23</a> for
a working egcs. It is strongly recommended to recompile binutils with egcs
if you initially built it with gcc-2.7.2.*.

<p><b>sparc-unkonwn-linux-gnulibc1</b><br>
It has been reported that you might need 
<a href="ftp://ftp.yggdrasil.com/private/hjl">binutils-2.8.1.0.23</a>
for this platform too.

<hr>
<i>Last modified on January 21, 1999.</i>

<!--#include virtual="/glimpsebox.html"-->
</body>
</html>
