diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2009-01-31 22:29:16 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2009-01-31 22:29:16 +0000 |
commit | be7659ba0b5829594b3e05a594c3c6ba0760540c (patch) | |
tree | fb05e3480afcd0af81ae1ba992ac6335a9f4fe00 /gcc/doc | |
parent | 30f3e4272acfb148d15d86ef43940def4c79558f (diff) | |
download | gcc-be7659ba0b5829594b3e05a594c3c6ba0760540c.zip gcc-be7659ba0b5829594b3e05a594c3c6ba0760540c.tar.gz gcc-be7659ba0b5829594b3e05a594c3c6ba0760540c.tar.bz2 |
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
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/install.texi | 111 |
1 files changed, 40 insertions, 71 deletions
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index ffc12cd..b0c2e84 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -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. - -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 /> |