aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc/install.texi
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/doc/install.texi')
-rw-r--r--gcc/doc/install.texi117
1 files changed, 41 insertions, 76 deletions
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 094353b667a..b0c2e849c16 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -45,7 +45,7 @@
@end ifset
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
@c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com
@c IMPORTANT: whenever you modify this file, run `install.texi2html' to
@@ -887,10 +887,6 @@ whether you use the GNU assembler. On any other system,
@item @samp{sparc64-@var{any}-solaris2.@var{any}}
@end itemize
-On the systems listed above (except for the HP-PA, the SPARC, for ISC on
-the 386, if you use the GNU assembler, you should also use the GNU linker
-(and specify @option{--with-gnu-ld}).
-
@item @anchor{with-as}--with-as=@var{pathname}
Specify that the compiler should use the assembler pointed to by
@var{pathname}, rather than the one found by the standard rules to find
@@ -3053,17 +3049,27 @@ longer a multiple of 2 bytes.
@heading @anchor{hppa-hp-hpux}hppa*-hp-hpux*
Support for HP-UX version 9 and older was discontinued in GCC 3.4.
-We require using gas/binutils on all hppa platforms;
-you may encounter a variety of problems if you try to use the HP assembler.
+We require using gas/binutils on all hppa platforms. Version 2.19 or
+later is recommended.
-Specifically, @option{-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@. It may be helpful to configure GCC with the
+It may be helpful to configure GCC with the
@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}} and
@option{--with-as=@dots{}} options to ensure that GCC can find GAS@.
-If you wish to use the pa-risc 2.0 architecture support with a 32-bit
-runtime, you must use gas/binutils 2.11 or newer.
+The HP assembler should not be used with GCC. It is rarely tested and may
+not work. It shouldn't be used with any languages other than C due to its
+many limitations.
+
+Specifically, @option{-g} does not work (HP-UX uses a peculiar debugging
+format which GCC does not know about). It also inserts timestamps
+into each object file it creates, causing the 3-stage comparison test to
+fail during a bootstrap. You should be able to continue by saying
+@samp{make all-host all-target} after getting the failure from @samp{make}.
+
+Various GCC features are not supported. For example, it does not support weak
+symbols or alias definitions. As a result, explicit template instantiations
+are required when using C++. This makes it difficult if not impossible to
+build many C++ applications.
There are two default scheduling models for instructions. These are
PROCESSOR_7100LC and PROCESSOR_8000. They are selected from the pa-risc
@@ -3087,17 +3093,6 @@ or @samp{98}. Another way is to add an appropriate set of predefines
to @env{CC}. The description for the @option{munix=} option contains
a list of the predefines used with each standard.
-As of GCC 4.1, @env{DWARF2} exception handling is available on HP-UX@.
-It is now the default. This exposed a bug in the handling of data
-relocations in the GAS assembler. The handling of 64-bit data relocations
-was seriously broken, affecting debugging and exception support on all
-@samp{hppa64-*-*} targets. Under some circumstances, 32-bit data relocations
-could also be handled incorrectly. This problem is fixed in GAS version
-2.16.91 20051125.
-
-GCC versions prior to 4.1 incorrectly passed and returned complex
-values. They are now passed in the same manner as aggregates.
-
More specific information to @samp{hppa*-hp-hpux*} targets follows.
@html
@@ -3123,15 +3118,6 @@ and Latin-America.
@uref{http://europe.itrc.hp.com/service/home/home.do,,} Europe.
@end itemize
-The HP assembler on these systems 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 bootstrap.
-You should be able to continue by saying @samp{make all-host all-target}
-after getting the failure from @samp{make}.
-
-GCC 4.0 requires CVS binutils as of April 28, 2004 or later. Earlier
-versions require binutils 2.8 or later.
-
The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are
used for one-only code and data. This resolves many of the previous
problems in using C++ on this target. However, the ABI is not compatible
@@ -3145,11 +3131,13 @@ with the one implemented under HP-UX 11 using secondary definitions.
GCC 3.0 and up support HP-UX 11. GCC 2.95.x is not supported and cannot
be used to compile GCC 3.0 and up.
+The libffi and libjava libraries haven't been ported to 64-bit HP-UX@
+and don't build.
+
Refer to @uref{binaries.html,,binaries} for information about obtaining
precompiled GCC binaries for HP-UX@. Precompiled binaries must be obtained
to build the Ada language as it can't be bootstrapped using C@. Ada is
-only available for the 32-bit PA-RISC runtime. The libffi and libjava
-haven't been ported to HP-UX and don't build.
+only available for the 32-bit PA-RISC runtime.
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The
bundled compiler supports only traditional C; you will need either HP's
@@ -3175,8 +3163,7 @@ installation prefixes must be used if both are to be installed on
the same system. The @samp{hppa[1-2]*-hp-hpux11*} target generates code
for the 32-bit PA-RISC runtime architecture and uses the HP linker.
The @samp{hppa64-hp-hpux11*} target generates 64-bit code for the
-PA-RISC 2.0 architecture. The HP and GNU linkers are both supported
-for this target.
+PA-RISC 2.0 architecture.
The script config.guess now selects the target type based on the compiler
detected during configuration. You must define @env{PATH} or @env{CC} so
@@ -3204,20 +3191,6 @@ result, it's not possible to switch linkers in the middle of a GCC build.
This has been reported to sometimes occur in unified builds of binutils
and GCC@.
-GCC 3.0 through 3.2 require binutils 2.11 or above. GCC 3.3 through
-GCC 4.0 require binutils 2.14 or later.
-
-Although the HP assembler can be used for an initial build, it shouldn't
-be used with any languages other than C and perhaps Fortran due to its
-many limitations. For example, it does not support weak symbols or alias
-definitions. As a result, explicit template instantiations are required
-when using C++. This makes it difficult if not impossible to build many
-C++ applications. You can't generate debugging information when using
-the HP assembler. Finally, bootstrapping fails in the final
-comparison of object modules due to the time stamps that it inserts into
-the modules. The bootstrap can be continued from this point with
-@samp{make all-host all-target}.
-
A recent linker patch must be installed for the correct operation of
GCC 3.3 and later. @code{PHSS_26559} and @code{PHSS_24304} are the
oldest linker patches that are known to work. They are for HP-UX
@@ -3242,32 +3215,24 @@ options, including program core dumps. Binutils 2.14 corrects a
problem on the 64-bit port resulting from HP's non-standard use of
the .init and .fini sections for array initializers and finalizers.
-There are a number of issues to consider in selecting which linker to
-use with the 64-bit port. The GNU 64-bit linker can only create dynamic
-binaries. The @option{-static} option causes linking with archive
-libraries but doesn't produce a truly static binary. Dynamic binaries
-still require final binding by the dynamic loader to resolve a set of
-dynamic-loader-defined symbols. The default behavior of the HP linker
-is the same as the GNU linker. However, it can generate true 64-bit
-static binaries using the @option{+compat} option.
-
-The HP 64-bit linker doesn't support linkonce semantics. As a
-result, C++ programs have many more sections than they should.
-
-The GNU 64-bit linker has some issues with shared library support
-and exceptions. As a result, we only support libgcc in archive
-format. For similar reasons, dwarf2 unwind and exception support
-are disabled. The GNU linker also has problems creating binaries
-with @option{-static}. It doesn't provide stubs for internal
-calls to global functions in shared libraries, so these calls
-can't be overloaded.
-
-Thread support is not implemented in GCC 3.0 through 3.2, so the
-@option{--enable-threads} configure option does not work. In 3.3
-and later, POSIX threads are supported. The optional DCE thread
-library is not supported.
-
-This port still is undergoing significant development.
+Although the HP and GNU linkers are both supported for the
+@samp{hppa64-hp-hpux11*} target, it is strongly recommended that the
+HP linker be used for link editing on this target.
+
+At this time, the GNU linker does not support the creation of long
+branch stubs. As a result, it can't successfully link binaries
+containing branch offsets larger than 8 megabytes. In addition,
+there are problems linking shared libraries, linking executables
+with @option{-static}, and with dwarf2 unwind and exception support.
+It also doesn't provide stubs for internal calls to global functions
+in shared libraries, so these calls can't be overloaded.
+
+The HP dynamic loader does not support GNU symbol versioning, so symbol
+versioning is not supported. It may be necessary to disable symbol
+versioning with @option{--disable-symvers} when using GNU ld.
+
+POSIX threads are the default. The optional DCE thread library is not
+supported, so @option{--enable-threads=dce} does not work.
@html
<hr />