Commit be7659ba by John David Anglin Committed by John David Anglin

install.texi (hppa*-hp-hpux*): Update binutils and linker information.

	* doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
	information.  Remove some obsolete information.  Reorganize.

From-SVN: r143834
parent 30f3e427
2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
information. Remove some obsolete information. Reorganize.
* config/pa/fptr.c: Revert license to GPL 2. * config/pa/fptr.c: Revert license to GPL 2.
* config/pa/milli64.S: Likewise. * config/pa/milli64.S: Likewise.
......
...@@ -3049,17 +3049,27 @@ longer a multiple of 2 bytes. ...@@ -3049,17 +3049,27 @@ longer a multiple of 2 bytes.
@heading @anchor{hppa-hp-hpux}hppa*-hp-hpux* @heading @anchor{hppa-hp-hpux}hppa*-hp-hpux*
Support for HP-UX version 9 and older was discontinued in GCC 3.4. Support for HP-UX version 9 and older was discontinued in GCC 3.4.
We require using gas/binutils on all hppa platforms; We require using gas/binutils on all hppa platforms. Version 2.19 or
you may encounter a variety of problems if you try to use the HP assembler. later is recommended.
Specifically, @option{-g} does not work on HP-UX (since that system It may be helpful to configure GCC with the
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
@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}} and @uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}} and
@option{--with-as=@dots{}} options to ensure that GCC can find GAS@. @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 The HP assembler should not be used with GCC. It is rarely tested and may
runtime, you must use gas/binutils 2.11 or newer. 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 There are two default scheduling models for instructions. These are
PROCESSOR_7100LC and PROCESSOR_8000. They are selected from the pa-risc PROCESSOR_7100LC and PROCESSOR_8000. They are selected from the pa-risc
...@@ -3083,17 +3093,6 @@ or @samp{98}. Another way is to add an appropriate set of predefines ...@@ -3083,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 to @env{CC}. The description for the @option{munix=} option contains
a list of the predefines used with each standard. 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. More specific information to @samp{hppa*-hp-hpux*} targets follows.
@html @html
...@@ -3119,15 +3118,6 @@ and Latin-America. ...@@ -3119,15 +3118,6 @@ and Latin-America.
@uref{http://europe.itrc.hp.com/service/home/home.do,,} Europe. @uref{http://europe.itrc.hp.com/service/home/home.do,,} Europe.
@end itemize @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 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 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 problems in using C++ on this target. However, the ABI is not compatible
...@@ -3141,11 +3131,13 @@ with the one implemented under HP-UX 11 using secondary definitions. ...@@ -3141,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 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. 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 Refer to @uref{binaries.html,,binaries} for information about obtaining
precompiled GCC binaries for HP-UX@. Precompiled binaries must be obtained 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 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 only available for the 32-bit PA-RISC runtime.
haven't been ported to HP-UX and don't build.
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The 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 bundled compiler supports only traditional C; you will need either HP's
...@@ -3171,8 +3163,7 @@ installation prefixes must be used if both are to be installed on ...@@ -3171,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 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. 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 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 PA-RISC 2.0 architecture.
for this target.
The script config.guess now selects the target type based on the compiler 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 detected during configuration. You must define @env{PATH} or @env{CC} so
...@@ -3200,20 +3191,6 @@ result, it's not possible to switch linkers in the middle of a GCC build. ...@@ -3200,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 This has been reported to sometimes occur in unified builds of binutils
and GCC@. 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 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 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 oldest linker patches that are known to work. They are for HP-UX
...@@ -3238,32 +3215,24 @@ options, including program core dumps. Binutils 2.14 corrects a ...@@ -3238,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 problem on the 64-bit port resulting from HP's non-standard use of
the .init and .fini sections for array initializers and finalizers. the .init and .fini sections for array initializers and finalizers.
There are a number of issues to consider in selecting which linker to Although the HP and GNU linkers are both supported for the
use with the 64-bit port. The GNU 64-bit linker can only create dynamic @samp{hppa64-hp-hpux11*} target, it is strongly recommended that the
binaries. The @option{-static} option causes linking with archive HP linker be used for link editing on this target.
libraries but doesn't produce a truly static binary. Dynamic binaries
still require final binding by the dynamic loader to resolve a set of At this time, the GNU linker does not support the creation of long
dynamic-loader-defined symbols. The default behavior of the HP linker branch stubs. As a result, it can't successfully link binaries
is the same as the GNU linker. However, it can generate true 64-bit containing branch offsets larger than 8 megabytes. In addition,
static binaries using the @option{+compat} option. there are problems linking shared libraries, linking executables
with @option{-static}, and with dwarf2 unwind and exception support.
The HP 64-bit linker doesn't support linkonce semantics. As a It also doesn't provide stubs for internal calls to global functions
result, C++ programs have many more sections than they should. in shared libraries, so these calls can't be overloaded.
The GNU 64-bit linker has some issues with shared library support The HP dynamic loader does not support GNU symbol versioning, so symbol
and exceptions. As a result, we only support libgcc in archive versioning is not supported. It may be necessary to disable symbol
format. For similar reasons, dwarf2 unwind and exception support versioning with @option{--disable-symvers} when using GNU ld.
are disabled. The GNU linker also has problems creating binaries
with @option{-static}. It doesn't provide stubs for internal POSIX threads are the default. The optional DCE thread library is not
calls to global functions in shared libraries, so these calls supported, so @option{--enable-threads=dce} does not work.
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.
@html @html
<hr /> <hr />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment