# Host/Target specific installation notes for egcs

i?86-*-linux*
You will need binutils-2.9.1.0.15 or newer for exception handling to work.

i?86-*-sco3.2v5*
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.

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.

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

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

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 ftp://ftp.sco.com/Supplements/rs505a/.

i?86-*-udk
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.

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.

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:

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

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.

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

hppa*-hp-hpux9
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.
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.

hppa*-hp-hpux10
For hpux10.20, we highly recommend you pick up the latest sed patch from HP. HP has two sites which provide patches free of charge.
US, Canada, Asia-Pacific, and Latin-America
Europe

Retrieve patch PHCO_15468.

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".

m68k-*-nextstep*

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

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

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

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.

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

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 prefix for this sequence to work.

cd objdir
make all-texinfo all-bison all-byacc all-binutils all-gas all-ld
cd gcc
make bootstrap
make install-headers-tar
cd ..
make bootstrap3

m68k-sun-sunos4.1.1
It is reported that you may need the GNU assembler on this platform.

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

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.

You may get the following warning on irix4 platforms, it can be safely ignored.

        warning: foo.o does not have gp tables for all its sections.

mips*-sgi-irix6
You must not use GAS on irix6 platforms; doing so will only cause problems.

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.

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

powerpc-*-linux-gnu*
You will need binutils-2.8.1.0.23 for a working egcs. It is strongly recommended to recompile binutils with egcs if you initially built it with gcc-2.7.2.*.

sparc-unkonwn-linux-gnulibc1
It has been reported that you might need binutils-2.8.1.0.23 for this platform too.

Last modified on January 21, 1999.