666 lines
29 KiB
Plaintext
666 lines
29 KiB
Plaintext
|
|
Host/Target specific installation notes for GCC
|
|
|
|
Please read this document carefully _before_ installing the GNU
|
|
Compiler Collection on your machine.
|
|
* [1]alpha*-dec-linux*
|
|
* [2]alpha*-dec-osf*
|
|
* [3]avr
|
|
* [4]DOS
|
|
* [5]hppa*-hp-hpux*
|
|
* [6]hppa*-hp-hpux9
|
|
* [7]hppa*-hp-hpux10
|
|
* [8]hppa*-hp-hpux11
|
|
* [9]*-*-linux-gnu
|
|
* [10]i?86-*-linux*
|
|
* [11]i?86-*-sco3.2v5*
|
|
* [12]i?86-*-solaris*
|
|
* [13]i?86-*-udk
|
|
* [14]*-ibm-aix*
|
|
* [15]m68k-*-nextstep*
|
|
* [16]m68k-sun-sunos4.1.1
|
|
* [17]mips*-sgi-irix[45]
|
|
* [18]mips*-sgi-irix6
|
|
* [19]powerpc-*-linux-gnu*
|
|
* [20]*-*-solaris*
|
|
* [21]sparc-sun-solaris*
|
|
* [22]sparc-sun-solaris2.7
|
|
* [23]*-sun-solaris2.8
|
|
* [24]Sun V5.0 Compiler Bugs
|
|
* [25]sparc-sun-sunos*
|
|
* [26]sparc-unknown-linux-gnulibc1
|
|
* [27]sparc64-*-*
|
|
* [28]Microsoft Windows
|
|
* [29]OS/2
|
|
|
|
* [30]all ELF targets (SVR4, Solaris, etc.)
|
|
_________________________________________________________________
|
|
|
|
alpha*-dec-linux*
|
|
|
|
We strongly recommend to upgrade to binutils 2.10 (or newer).
|
|
|
|
The following error:
|
|
Error: macro requires $at register while noat in effect
|
|
|
|
indicates that you should upgrade to a newer version of the assembler,
|
|
2.9 or later. If you can not upgrade the assembler, the compiler
|
|
option "-Wa,-m21164a" may work around this problem.
|
|
_________________________________________________________________
|
|
|
|
alpha*-dec-osf*
|
|
|
|
If you install a shared libstdc++ and, when you link a non-trivial C++
|
|
program (for example, gcc/testsuite/g++.other/delete3.C), the linker
|
|
reports a couple of errors about multiply-defined symbols (for
|
|
example, nothrow, __throw and terminate(void)), you've probably got a
|
|
linker bug, for which there's no known fix. The officially recommended
|
|
work-around is to remove the shared libstdc++.
|
|
|
|
An alternative solution is to arrange that all symbols from libgcc get
|
|
copied to the shared libstdc++; see detailed solution below.
|
|
(Surprising as it may seem, this does indeed fix the problem!) _Beware_
|
|
that this may bring you binary-compatibility problems in the future,
|
|
if you don't use the same work-around next time you build libstdc++:
|
|
if programs start to depend on libstdc++ to provide symbols that used
|
|
to be only in libgcc, you must arrange that libstdc++ keeps providing
|
|
them, otherwise the programs will have to be relinked.
|
|
|
|
The magic spell is to add -Wl,-all,-lgcc,-none to the definition of
|
|
macro SHDEPS in libstdc++/config/dec-osf.ml _before_
|
|
alpha*-dec-osf*/libstdc++/Makefile is created (a [31]patch that does
|
|
just that is available). If the Makefile already exists, run
|
|
./config.status within directory alpha*-dec-osf*/libstdc++ (and
|
|
alpha*-dec-osf*/ieee/libstdc++, if it also exists). Remove any
|
|
existing libstdc++.so* from such directories, and run make
|
|
all-target-libstdc++ in the top-level directory, then make
|
|
install-target-libstdc++.
|
|
|
|
If you have already removed the build tree, you may just remove
|
|
libstdc++.so.2.10.0 from the install tree and re-create it with the
|
|
command gcc -shared -o libstdc++.so.2.10.0
|
|
-Wl,-all,-lstdc++,-lgcc,-none -lm. If the ieee sub-directory exists,
|
|
repeat this command in it, with the additional flag -mieee.
|
|
_________________________________________________________________
|
|
|
|
avr
|
|
|
|
Use `configure --target=avr --enable-languages="c"' to configure GCC.
|
|
|
|
Further installation notes and other useful information about AVR
|
|
tools can also be obtained from:
|
|
* [32]http://home.overta.ru/users/denisc
|
|
* [33]http://www.itnet.pl/amelektr/avr
|
|
|
|
We strongly recommend to upgrade to binutils 2.11 (or a current
|
|
snapshot until 2.11 has been released).
|
|
|
|
The following error:
|
|
Error: register required
|
|
|
|
indicates that you should upgrade to a newer version of the binutils.
|
|
_________________________________________________________________
|
|
|
|
DOS
|
|
|
|
Please have a look at our [34]binaries page.
|
|
_________________________________________________________________
|
|
|
|
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.
|
|
|
|
Specifically, -g does not work on HP-UX (since that system uses a
|
|
peculiar debugging format which GCC does not know about), unless you
|
|
use GAS and GDB and configure GCC with the --with-gnu-as option.
|
|
|
|
If you wish to use pa-risc 2.0 architecture support, you must use
|
|
either the HP assembler or a recent [35]snapshot of gas.
|
|
|
|
More specific information to hppa*-hp-hpux* targets follows.
|
|
_________________________________________________________________
|
|
|
|
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 GCC 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
|
|
PHCO_19798 from HP. HP has two sites which provide patches free of
|
|
charge:
|
|
* [36]US, Canada, Asia-Pacific, and Latin-America
|
|
* [37]Europe
|
|
|
|
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'.
|
|
_________________________________________________________________
|
|
|
|
hppa*-hp-hpux11
|
|
|
|
GCC 2.95.2 does not support HP-UX 11, and it cannot generate 64-bit
|
|
object files. Current (as of late 2000) snapshots and GCC 3.0 do
|
|
support HP-UX 11.
|
|
_________________________________________________________________
|
|
|
|
*-*-linux-gnu
|
|
|
|
If you use glibc 2.2 (or 2.1.9x), GCC 2.95.2 won't install
|
|
out-of-the-box. You'll get compile errors while building libstdc++.
|
|
The patch [38]glibc-2.2.patch, that is to be applied in the GCC source
|
|
tree, fixes the compatibility problems.
|
|
_________________________________________________________________
|
|
|
|
i?86-*-linux*
|
|
|
|
You will need binutils-2.9.1.0.15 or newer for exception handling to
|
|
work.
|
|
|
|
If you receive Signal 11 errors when building on GNU/Linux, then it is
|
|
possible you have a hardware problem. Further information on this can
|
|
be found on [39]www.bitwizard.nl.
|
|
_________________________________________________________________
|
|
|
|
i?86-*-sco3.2v5*
|
|
|
|
Unlike earlier versions of GCC, the ability to generate COFF with this
|
|
target is no longer provided.
|
|
|
|
Earlier versions of GCC emitted Dwarf-1 when generating ELF to allow
|
|
the system debugger to be used. That support was too burdensome to
|
|
maintain. GCC now emits only dwarf-2 for this target. This means you
|
|
may use either the UDK debugger or GDB to debug programs built by this
|
|
version of GCC.
|
|
|
|
If you are building languages other than C, you must follow the
|
|
instructions about invoking `make bootstrap' because the native
|
|
OpenServer compiler will build a cc1plus that will not correctly parse
|
|
many valid C++ programs including those in libgcc.a. _You must do a
|
|
`make bootstrap' if you are building with the native compiler._
|
|
|
|
Use of the `-march-pentiumpro' flag can result in unrecognized opcodes
|
|
when using the native assembler on OS versions before 5.0.6. (Support
|
|
for P6 opcodes was added to the native ELF assembler in that version.)
|
|
While it's rather rare to see these emitted by GCC yet, errors of the
|
|
basic form:
|
|
/usr/tmp/ccaNlqBc.s:22:unknown instruction: fcomip
|
|
/usr/tmp/ccaNlqBc.s:50:unknown instruction: fucomip
|
|
|
|
are symptoms of this problem. You may work around this by not building
|
|
affected files with that flag, by using the GNU assembler, or by using
|
|
the assembler provided with the current version of the OS. Users of
|
|
GNU assembler should see the note below for hazards on doing so.
|
|
|
|
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 (perhaps you're compiling code with asms that require GAS
|
|
syntax) you may configure this package using the flags --with-gnu-as.
|
|
You must use a recent version of GNU binutils; versions past 2.9.1
|
|
seem to work well. In general, the --with-gnu-as option isn't as well
|
|
tested as the native assembler.
|
|
|
|
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 GCC 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. You must
|
|
install both [40]ftp://ftp.sco.com/Supplements/rs505a/ and
|
|
[41]OSS499A.
|
|
|
|
The dynamic linker in OpenServer 5.0.5 (earlier versions may show the
|
|
same problem) aborts on certain g77-compiled programs. It's
|
|
particularly likely to be triggered by building Fortran code with the
|
|
-fPIC flag. Although it's conceivable that the error could be
|
|
triggered by other code, only G77-compiled code has been observed to
|
|
cause this abort. If you are getting core dumps immediately upon
|
|
execution of your g77 program - and especially if it's compiled with
|
|
-fPIC - try applying [42]`sco_osr5_g77.patch' to your libf2c and
|
|
rebuilding GCC. Affected faults, when analyzed in a debugger, will
|
|
show a stack backtrace with a fault occurring in rtld() and the
|
|
program running as /usr/lib/ld.so.1. This problem has been reported to
|
|
SCO engineering and will hopefully be addressed in later releases.
|
|
_________________________________________________________________
|
|
|
|
i?86-*-solaris*
|
|
|
|
GCC 2.95.2, when configured to use the GNU assembler, would invoke it
|
|
with the -s switch, that GNU as up to 2.9.5.0.12 does not support. If
|
|
you'd rather not use a newer GNU as nor the native assembler, you'll
|
|
need the patch [43]`x86-sol2-gas.patch'.
|
|
_________________________________________________________________
|
|
|
|
i?86-*-udk
|
|
|
|
This target emulates the SCO Universal Development Kit and requires
|
|
that package be installed. (If it is installed, you will have a
|
|
/udk/usr/ccs/bin/cc file present.) 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 _/your/path/to/_gcc/configure --host=i686-pc-udk --tar
|
|
get=i686-pc-udk --program-prefix=udk-
|
|
|
|
_You should substitute 'i686' in the above command with the
|
|
appropriate processor for your host._
|
|
|
|
You should follow this with a `make bootstrap' then `make install'.
|
|
You can then access the UDK-targeted GCC 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 GCC tools you may have installed.
|
|
_________________________________________________________________
|
|
|
|
*-ibm-aix*
|
|
|
|
AIX Make frequently has problems with GCC makefiles. GNU Make 3.76 or
|
|
newer is recommended to build on this platform.
|
|
|
|
Errors involving "alloca" when building GCC generally are due to an
|
|
incorrect definition of CC in the Makefile or mixing files compiled
|
|
with the native C compiler and GCC. During the stage1 phase of the
|
|
build, the native AIX compiler _must_ be invoked as "cc" (not "xlc").
|
|
Once configure has been informed of "xlc", one needs to use "make
|
|
distclean" to remove the configure cache files and ensure that $CC
|
|
environment variable does not provide a definition that will confuse
|
|
configure. If this error occurs during stage2 or later, then the
|
|
problem most likely is the version of Make (see above).
|
|
|
|
Some versions of the AIX binder (linker) can fail with a relocation
|
|
overflow severe error when the -bbigtoc option is used to link
|
|
GCC-produced object files into an executable that overflows the TOC. A
|
|
fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND
|
|
-BBIGTOC) is available from IBM Customer Support and from its
|
|
[44]service.boulder.ibm.com website as PTF U455193.
|
|
|
|
Binutils does not support AIX 4.3 (at least through release 2.9). GNU
|
|
as and GNU ld will not work properly and one should not configure GCC
|
|
to use those GNU utilities. Use the native AIX tools which do
|
|
interoperate with GCC.
|
|
|
|
AIX 4.3 utilizes a new "large format" archive to support both 32-bit
|
|
and 64-bit object modules. The routines provided in AIX 4.3.0 and AIX
|
|
4.3.1 to parse archive libraries did not handle the new format
|
|
correctly. These routines are used by GCC and result in error messages
|
|
during linking such as "not a COFF file". The version of the routines
|
|
shipped with AIX 4.3.1 should work for a 32-bit environment. The -g
|
|
option of the archive command may be used to create archives of 32-bit
|
|
objects using the original "small format". A correct version of the
|
|
routines is shipped with AIX 4.3.2.
|
|
|
|
The initial assembler shipped with AIX 4.3.0 generates incorrect
|
|
object files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM
|
|
COMPILER FAILS TO ASSEMBLE/BIND) is available from IBM Customer
|
|
Support and from its [45]service.boulder.ibm.com website as PTF
|
|
U453956. This fix is incorporated in AIX 4.3.1 and above.
|
|
|
|
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump
|
|
core with a segmentation fault when invoked by any version of GCC. A
|
|
fix for APAR IX87327 is available from IBM Customer Support and from
|
|
its [46]service.boulder.ibm.com website as PTF U461879. This fix is
|
|
incorporated in AIX 4.3.3 and above.
|
|
_________________________________________________________________
|
|
|
|
m68k-*-nextstep*
|
|
|
|
You absolutely _must_ use GNU sed and GNU make on this platform.
|
|
|
|
On NEXTSTEP 3.x where x < 3 the build of GCC 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
|
|
[47]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 the directory _prefix_ you specified in the
|
|
configuration process of GCC for this sequence to work.
|
|
cd bld-gcc
|
|
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-irix[45]
|
|
|
|
You must use GAS 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 GAS:
|
|
as0: Error: ./libgcc2.c, line 1:Badly delimited numeric literal
|
|
.4byte $LECIE1-$LSCIE1
|
|
as0: Error: ./libgcc2.c, line 1:malformed statement
|
|
|
|
or:
|
|
as0: Error: /src/bld-gcc/gcc/libgcc2.c, line 1:undefined symbol in expression
|
|
.word $LECIE1-$LSCIE1
|
|
|
|
These systems don't have ranlib, which various components in GCC 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.
|
|
|
|
When building GCC, the build process loops rebuilding cc1 over and
|
|
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 make shipped with
|
|
IRIX 5.2. We recommend you use GNU make instead of the vendor supplied
|
|
make program; however, you may have success with "smake" on IRIX 5.2
|
|
if you do not have GNU make available.
|
|
|
|
See [48]http://reality.sgi.com/ariel/freeware for more information
|
|
about using GCC on IRIX platforms.
|
|
_________________________________________________________________
|
|
|
|
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 GCC 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.
|
|
|
|
If you are using Irix cc as your bootstrap compiler, you must ensure
|
|
that the N32 ABI is in use. To test this, compile a simple C file with
|
|
cc and then run file on the resulting object file. The output should
|
|
look like:
|
|
|
|
test.o: ELF N32 MSB ...
|
|
|
|
If you see:
|
|
|
|
test.o: ELF 32-bit MSB
|
|
|
|
then your version of cc uses the O32 ABI default. You should set the
|
|
environment variable CC to 'cc -n32' before configuring GCC.
|
|
|
|
GCC does not currently support generating O32 ABI binaries in the
|
|
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
|
|
target. See the link below for details.
|
|
|
|
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. I can only recall seeing two of them: inet_ntoa, and
|
|
semctl.
|
|
|
|
See [49]http://reality.sgi.com/ariel/freeware for more information
|
|
about using GCC on IRIX platforms.
|
|
_________________________________________________________________
|
|
|
|
powerpc-*-linux-gnu*
|
|
|
|
You will need [50]binutils-2.9.4.0.8 or newer for a working GCC. It is
|
|
strongly recommended to recompile binutils if you initially built it
|
|
with gcc-2.7.2.x.
|
|
_________________________________________________________________
|
|
|
|
*-*-solaris*
|
|
|
|
Starting with Solaris, Sun does not ship a C compiler any more. To
|
|
bootstrap and install GCC you first have to install a pre-built
|
|
compiler, see our [51]binaries page for details.
|
|
|
|
Sun as 4.X is broken in that it cannot cope with long symbol names. A
|
|
typical error message might look similar to the following:
|
|
|
|
/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error: can't
|
|
compute value of an expression involving an external symbol.
|
|
|
|
See the [52]How to work around too long C++ symbol names? FAQ entry
|
|
for further information.
|
|
|
|
Sun make in all known Solaris 1 (SunOS 4) and Solaris 2 releases has a
|
|
broken _VPATH_ mechanism, which means you must either:
|
|
* Use GNU make (recommended), _or:_
|
|
* Always build in the source directory, _or:_
|
|
* _(For GCC 2.95.1 only)_ apply the patches mentioned at
|
|
[53]http://www.gnu.org/software/gcc/extensions.html#sun-make.
|
|
_________________________________________________________________
|
|
|
|
sparc-sun-solaris*
|
|
|
|
binutils 2.9.1 has known bugs on this platform. We recommend to use
|
|
binutils 2.10 or the vendor tools (Sun as, Sun ld).
|
|
|
|
Unfortunately, C++ shared libraries, including libstdc++, won't work
|
|
properly if assembled with Sun as: the linker will complain about
|
|
relocations in read-only sections, in the definition of virtual
|
|
tables. Also, Sun as fails to process long symbols resulting from
|
|
mangling template-heavy C++ function names.
|
|
_________________________________________________________________
|
|
|
|
sparc-sun-solaris2.7
|
|
|
|
Sun patch 107058-01 (1999-01-13) for SPARC Solaris 7 triggers a bug in
|
|
the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8 and
|
|
later, including all EGCS releases. Sun formerly recommended 107058-01
|
|
for all Solaris 7 users, but around 1999-09-01 it started to recommend
|
|
it only for people who use Sun's compilers.
|
|
|
|
Here are some workarounds to this problem:
|
|
* Do not install Sun patch 107058-01 until after Sun releases a
|
|
complete patch for bug 4210064. This is the simplest course to
|
|
take, unless you must also use Sun's C compiler. Unfortunately
|
|
107058-01 is preinstalled on some new Solaris-based hosts, so you
|
|
may have to back it out.
|
|
* Copy the original, unpatched Solaris 7 /usr/ccs/bin/as into
|
|
/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.1/as, adjusting
|
|
the latter name to fit your local conventions and software version
|
|
numbers.
|
|
* Install Sun patch 106950-03 (1999-05-25) or later. Nobody with
|
|
both 107058-01 and 106950-03 installed has reported the bug with
|
|
GCC and Sun's dynamic linker. This last course of action is
|
|
riskiest, for two reasons. First, you must install 106950 on all
|
|
hosts that run code generated by GCC; it doesn't suffice to
|
|
install it only on the hosts that run GCC itself. Second, Sun says
|
|
that 106950-03 is only a partial fix for bug 4210064, but Sun
|
|
doesn't know whether the partial fix is adequate for GCC. Revision
|
|
-08 or later should fix the bug, but (as of 1999-10-06) it is
|
|
still being tested.
|
|
_________________________________________________________________
|
|
|
|
*-sun-solaris2.8
|
|
|
|
Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
|
|
newer: g++ will complain that types are missing. These headers assume
|
|
that omitting the type means 'int'; this assumption worked for C89 but
|
|
is wrong for C++, and is now wrong for C99 also.
|
|
|
|
g++ accepts such (illegal) constructs with the option -fpermissive; it
|
|
will assume that any missing type is 'int' (as defined by C89).
|
|
|
|
For Solaris 8, this is fixed by revision 24 or later of patch 108652
|
|
(for SPARCs) or 108653 (for Intels).
|
|
_________________________________________________________________
|
|
|
|
Sun V5.0 Compiler Bugs
|
|
|
|
The Sun V5.0 compilers are known to mis-compile GCC 2.95 and GCC
|
|
2.95.1, which in turn causes GCC to fail its bootstrap comparison
|
|
test. GCC 2.95.2 has a workaround.
|
|
_________________________________________________________________
|
|
|
|
sparc-sun-sunos*
|
|
|
|
A bug in the SunOS4 linker will cause it to crash when linking -fPIC
|
|
compiled objects (and will therefore not allow you to build shared
|
|
libraries).
|
|
|
|
To fix this problem you can either use the most recent version of
|
|
binutils or get the latest SunOS4 linker patch (patch ID 100170-10)
|
|
from Sun's patch site.
|
|
_________________________________________________________________
|
|
|
|
sparc-unknown-linux-gnulibc1
|
|
|
|
It has been reported that you might need [54]binutils-2.8.1.0.23 for
|
|
this platform, too.
|
|
_________________________________________________________________
|
|
|
|
sparc64-*-*
|
|
|
|
GCC version 2.95 is not able to compile code correctly for sparc64
|
|
targets. Users of the Linux kernel, at least, can use the sparc32
|
|
program to start up a new shell invocation with an environment that
|
|
causes configure to recognize (via uname -a) the system as sparc-*-*
|
|
instead.
|
|
_________________________________________________________________
|
|
|
|
Microsoft Windows (32 bit)
|
|
|
|
A port of GCC 2.95.x is included with the [55]Cygwin environment.
|
|
|
|
Current (as of early 2001) snapshots of GCC will build under Cygwin
|
|
without modification.
|
|
_________________________________________________________________
|
|
|
|
OS/2
|
|
|
|
GCC does not currently support OS/2. However, Andrew Zabolotny has
|
|
been working on a generic OS/2 port with pgcc. The current code code
|
|
can be found at [56]http://www.goof.com/pcg/os2/.
|
|
|
|
An older copy of GCC 2.8.1 is included with the EMX tools available at
|
|
[57]ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/.
|
|
_________________________________________________________________
|
|
|
|
all ELF targets (SVR4, Solaris, etc.)
|
|
|
|
C++ support is significantly better on ELF targets if you use the GNU
|
|
linker; duplicate copies of inlines, vtables and template
|
|
instantiations will be discarded automatically.
|
|
_________________________________________________________________
|
|
|
|
[58]Return to the GCC Installation page
|
|
|
|
References
|
|
|
|
1. http://gcc.gnu.org/install/specific.html#alpha*-dec-linux*
|
|
2. http://gcc.gnu.org/install/specific.html#alpha*-dec-osf*
|
|
3. http://gcc.gnu.org/install/specific.html#avr
|
|
4. http://gcc.gnu.org/install/specific.html#dos
|
|
5. http://gcc.gnu.org/install/specific.html#hppa*-hp-hpux*
|
|
6. http://gcc.gnu.org/install/specific.html#hppa*-hp-hpux9
|
|
7. http://gcc.gnu.org/install/specific.html#hppa*-hp-hpux10
|
|
8. http://gcc.gnu.org/install/specific.html#hppa*-hp-hpux11
|
|
9. http://gcc.gnu.org/install/specific.html#*-*-linux-gnu
|
|
10. http://gcc.gnu.org/install/specific.html#ix86-*-linux*
|
|
11. http://gcc.gnu.org/install/specific.html#ix86-*-sco3.2v5*
|
|
12. http://gcc.gnu.org/install/specific.html#ix86-*-solaris*
|
|
13. http://gcc.gnu.org/install/specific.html#ix86-*-udk
|
|
14. http://gcc.gnu.org/install/specific.html#*-ibm-aix*
|
|
15. http://gcc.gnu.org/install/specific.html#m68k-*-nextstep*
|
|
16. http://gcc.gnu.org/install/specific.html#m68k-sun-sunos4.1.1
|
|
17. http://gcc.gnu.org/install/specific.html#mips*-sgi-irix[45]
|
|
18. http://gcc.gnu.org/install/specific.html#mips*-sgi-irix6
|
|
19. http://gcc.gnu.org/install/specific.html#powerpc-*-linux-gnu*
|
|
20. http://gcc.gnu.org/install/specific.html#*-*-solaris*
|
|
21. http://gcc.gnu.org/install/specific.html#sparc-sun-solaris*
|
|
22. http://gcc.gnu.org/install/specific.html#sparc-sun-solaris2.7
|
|
23. http://gcc.gnu.org/install/specific.html#*-sun-solaris2.8
|
|
24. http://gcc.gnu.org/install/specific.html#sunv5
|
|
25. http://gcc.gnu.org/install/specific.html#sparc-sun-sunos*
|
|
26. http://gcc.gnu.org/install/specific.html#sparc-unknown-linux-gnulibc1
|
|
27. http://gcc.gnu.org/install/specific.html#sparc64-*-*
|
|
28. http://gcc.gnu.org/install/specific.html#windows
|
|
29. http://gcc.gnu.org/install/specific.html#os2
|
|
30. http://gcc.gnu.org/install/specific.html#elf_targets
|
|
31. http://gcc.gnu.org/install/dec-osf-shlibstdc++.patch
|
|
32. http://home.overta.ru/users/denisc
|
|
33. http://www.itnet.pl/amelektr/avr
|
|
34. http://gcc.gnu.org/install/binaries.html
|
|
35. ftp://sources.redhat.com/pub/binutils/snapshots
|
|
36. http://us-support.external.hp.com/
|
|
37. http://europe-support.external.hp.com/
|
|
38. http://gcc.gnu.org/install/glibc-2.2.patch
|
|
39. http://www.bitwizard.nl/sig11/
|
|
40. ftp://ftp.sco.com/Supplements/rs505a/
|
|
41. ftp://ftp.sco.com/SLS/
|
|
42. http://gcc.gnu.org/install/sco_osr5_g77.patch
|
|
43. http://gcc.gnu.org/install/x86-sol2-gas.patch
|
|
44. http://service.boulder.ibm.com/
|
|
45. http://service.boulder.ibm.com/
|
|
46. http://service.boulder.ibm.com/
|
|
47. ftp://ftp.next.peak.org/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz
|
|
48. http://reality.sgi.com/ariel/freeware/
|
|
49. http://reality.sgi.com/ariel/freeware/
|
|
50. ftp://ftp.varesearch.com/pub/support/hjl/binutils
|
|
51. http://gcc.gnu.org/install/binaries.html
|
|
52. http://gcc.gnu.org/faq.html#squangle
|
|
53. http://www.gnu.org/software/gcc/extensions.html#sun-make
|
|
54. ftp://ftp.yggdrasil.com/private/hjl
|
|
55. http://www.cygwin.com/
|
|
56. http://www.goof.com/pcg/os2/
|
|
57. ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/
|
|
58. http://gcc.gnu.org/install/index.html
|