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
This commit is contained in:
parent
30f3e4272a
commit
be7659ba0b
@ -1,5 +1,8 @@
|
||||
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/milli64.S: Likewise.
|
||||
|
||||
|
@ -3049,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
|
||||
@ -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
|
||||
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
|
||||
@ -3119,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
|
||||
@ -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
|
||||
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
|
||||
@ -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
|
||||
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
|
||||
@ -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
|
||||
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
|
||||
@ -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
|
||||
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.
|
||||
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.
|
||||
|
||||
The HP 64-bit linker doesn't support linkonce semantics. As a
|
||||
result, C++ programs have many more sections than they should.
|
||||
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 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.
|
||||
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.
|
||||
|
||||
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.
|
||||
POSIX threads are the default. The optional DCE thread library is not
|
||||
supported, so @option{--enable-threads=dce} does not work.
|
||||
|
||||
@html
|
||||
<hr />
|
||||
|
Loading…
x
Reference in New Issue
Block a user