summaryrefslogtreecommitdiff
path: root/gnu/egcs/install/SPECIFIC
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/egcs/install/SPECIFIC')
-rw-r--r--gnu/egcs/install/SPECIFIC497
1 files changed, 497 insertions, 0 deletions
diff --git a/gnu/egcs/install/SPECIFIC b/gnu/egcs/install/SPECIFIC
new file mode 100644
index 00000000000..e7a5db8c6e7
--- /dev/null
+++ b/gnu/egcs/install/SPECIFIC
@@ -0,0 +1,497 @@
+
+ Host/Target specific installation notes for GCC
+
+ Please read this document carefully _before_ installing the GNU
+ Compiler Collection on your machine.
+ * [1]alpha*-dec-osf*
+ * [2]hppa*-hp-hpux*
+ * [3]hppa*-hp-hpux9
+ * [4]hppa*-hp-hpux10
+ * [5]i?86-*-linux*
+ * [6]i?86-*-sco3.2v5*
+ * [7]i?86-*-udk
+ * [8]*-ibm-aix*
+ * [9]m68k-*-nextstep*
+ * [10]m68k-sun-sunos4.1.1
+ * [11]mips*-sgi-irix[45]
+ * [12]mips*-sgi-irix6
+ * [13]powerpc-*-linux-gnu*
+ * [14]sparc-sun-solaris2.7
+ * [15]sparc-sun-sunos*
+ * [16]sparc-unknown-linux-gnulibc1
+ * [17]sparc64-*-*
+ * [18]GCC with Windows or OS/2
+ _________________________________________________________________
+
+ alpha*-dec-linux*
+
+ GNU/Linux Alpha EV56 or PCA56 hosts running Red Hat 4.2 or 5.0 may see
+ errors of this sort:
+ Error: Unknown pseudo-op: `.arch'
+
+ This is a signal that a new assembler is needed if you want to
+ generate BWX insns for your machine.
+
+ The version of GCC shipped with Red Hat 4.2 (2.7.0.2) has a fault
+ wherein it will silently generate incorrect code. The version shipped
+ with Red Hat 5.0 (2.8.0.1) is not broken, but required an extra
+ -m21164a argument on the command-line. In order to visibly trap
+ 2.7.0.2, I now issue DEC's .arch pseudo into the assembly. Relieving
+ the problem of mucking with command-line arguments for 2.8.0.1 is a
+ pleasant side effect.
+
+ If you've got Red Hat 5.0 installed, you may grab binutils 2.9.1 and
+ be happy. If you've got Red Hat 4.2, bugs make it much harder to
+ upgrade pieces on your own, and you are better off upgrading the
+ entire system.
+
+ In either case, your problem may be bypassed by not emitting BWX code
+ by default. Do this by using
+ configure alphaev5-unknown-linux-gnulibc1
+
+ if you have RH 4.2, or
+ configure alphaev5-unknown-linux-gnu
+
+ if you have RH 5.0.
+
+ The following error:
+ Error: macro requires $at register while noat in effect
+
+ also 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 [19]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.
+ _________________________________________________________________
+
+ 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.
+
+ If you wish to use pa-risc 2.0 architecture support, you must use
+ either the HP assembler or a recent [20]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_15468 from HP. HP has two sites which provide patches free of
+ charge:
+ * [21]US, Canada, Asia-Pacific, and Latin-America
+ * [22]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'.
+ _________________________________________________________________
+
+ 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 [23]www.bitwizard.nl.
+ _________________________________________________________________
+
+ i?86-*-sco3.2v5*
+
+ 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. 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 or by using the GNU assembler. Users of
+ GNU assembler should see the note below for hazards on doing so.
+
+ If you choose to configure with --enable-shared you should also
+ specificy --with-gnu-as --disable-multilib even if you are not using
+ the GNU assembler. In doing so you will give up the ability to
+ generate COFF executables as described below. This combination of
+ flags is necessary to suppress negative interactions with multilibing.
+
+ 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 using the flags
+ --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 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 [24]ftp://ftp.sco.com/Supplements/rs505a/ and
+ [25]OSS499A.
+
+ The dynamic linker in OpenServer 5.0.5 (earlier versions may show the
+ same problem) aborts on certain g77-compiled programs. It's
+ particluarly 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 [26]`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-*-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 --exec-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.
+
+ 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
+ [27]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 OUPUT FROM
+ COMPILER FAILS TO ASSEMBLE/BIND) is available from IBM Customer
+ Support and from its [28]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 will be available from IBM Customer Support.
+ _________________________________________________________________
+
+ 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
+ [29]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 secified in the configuration
+ preocess 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 [30]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.
+
+ 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 [31]http://reality.sgi.com/ariel/freeware for more information
+ about using GCC on IRIX platforms.
+ _________________________________________________________________
+
+ powerpc-*-linux-gnu*
+
+ You will need [32]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.
+ _________________________________________________________________
+
+ 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. To avoid this problem, do not
+ install Sun patch 107058-01 until after Sun releases a patch for bug
+ 4210064. Sun has a fix for this bug but (as of 1999-06-24) has not yet
+ released it as a patch.
+ _________________________________________________________________
+
+ 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 [33]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.
+
+ _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.
+ _________________________________________________________________
+
+ GCC with Windows or OS/2
+
+ GCC does not currently support Windows, either natively or with the
+ cygwin32 dll. However Mumit Khan has been working on supporting
+ Windows with GCC. You should check out his site if you're interested
+ in Windows support. [34]GNU Win32 related projects
+
+ 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 [35]http://www.goof.com/pcg/os2/.
+ _________________________________________________________________
+
+ [36]Return to the GCC Installation page
+
+ _Last modified on August 15, 1999._
+
+References
+
+ 1. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#alpha*-dec-osf*
+ 2. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#hppa*-hp-hpux*
+ 3. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#hppa*-hp-hpux9
+ 4. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#hppa*-hp-hpux10
+ 5. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#ix86-*-linux*
+ 6. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#ix86-*-sco3.2v5*
+ 7. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#ix86-*-udk
+ 8. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#*-ibm-aix*
+ 9. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#m68k-*-nextstep*
+ 10. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#m68k-sun-sunos4.1.1
+ 11. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#mips*-sgi-irix[45]
+ 12. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#mips*-sgi-irix6
+ 13. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#powerpc-*-linux-gnu*
+ 14. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#sparc-sun-solaris2.7
+ 15. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#sparc-sun-sunos*
+ 16. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#sparc-unknown-linux-gnulibc1
+ 17. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#sparc64-*-*
+ 18. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#win+os2
+ 19. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/dec-osf-shlibstdc++.patch
+ 20. ftp://sourceware.cygnus.com/pub/binutils/snapshots
+ 21. http://us-support.external.hp.com/
+ 22. http://europe-support.external.hp.com/
+ 23. http://www.bitwizard.nl/sig11/
+ 24. ftp://ftp.sco.com/Supplements/rs505a/
+ 25. ftp://ftp.sco.com/SLS/
+ 26. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/sco_osr5_g77.patch
+ 27. http://service.boulder.ibm.com/
+ 28. http://service.boulder.ibm.com/
+ 29. ftp://ftp.next.peak.org/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz
+ 30. http://reality.sgi.com/ariel/freeware/
+ 31. http://reality.sgi.com/ariel/freeware/
+ 32. ftp://ftp.varesearch.com/pub/support/hjl/binutils
+ 33. ftp://ftp.yggdrasil.com/private/hjl
+ 34. http://www.xraylith.wisc.edu/~khan/software/gnu-win32/
+ 35. http://www.goof.com/pcg/os2/
+ 36. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/index.html