From 29c4f6637cd604bf993d7309c236ebcdb554a858 Mon Sep 17 00:00:00 2001 From: John David Anglin <danglin@gcc.gnu.org> Date: Sun, 17 Nov 2024 20:37:53 -0500 Subject: [PATCH] hppa: Update install documentation 2024-11-17 John David Anglin <danglin@gcc.gnu.org> gcc/ChangeLog: PR target/69374 * doc/install.texi (Specific) <hppa*-hp-hpux11>: Update anchor and heading to reflect removal of 32-bit hppa support on HP-UX. Trim 32-bit related text. --- gcc/doc/install.texi | 131 +++++++------------------------------------ 1 file changed, 19 insertions(+), 112 deletions(-) diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index fc74ee3d0e16..03bbfece0ec6 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -1145,8 +1145,7 @@ whether you use the GNU assembler. On any other system, @option{--with-gnu-as} has no effect. @itemize @bullet -@item @samp{hppa1.0-@var{any}-@var{any}} -@item @samp{hppa1.1-@var{any}-@var{any}} +@item @samp{hppa*-@var{any}-@var{any}} @item @samp{*-*-solaris2.11} @end itemize @@ -3675,13 +3674,6 @@ AIX 7.1)}. @item DOS---@uref{http://www.delorie.com/djgpp/,,DJGPP}. -@item -HP-UX: -@itemize -@item -@uref{http://hpux.connect.org.uk/,,HP-UX Porting Center}; -@end itemize - @item macOS: @itemize @@ -3773,9 +3765,9 @@ information have to. @item @uref{#h8300-hms,,h8300-hms} @item -@uref{#hppa-hp-hpux,,hppa*-hp-hpux*} +@uref{#hppa-x-linux,,hppa-*-linux} @item -@uref{#hppa-hp-hpux11,,hppa*-hp-hpux11} +@uref{#hppa64-hp-hpux11,,hppa64-hp-hpux11*} @item @uref{#x-x-linux-gnu,,*-*-linux-gnu} @item @@ -4131,113 +4123,28 @@ Renesas H8/300 series of processors. @html <hr /> @end html -@anchor{hppa-hp-hpux} -@heading hppa*-hp-hpux* -We require using gas on all hppa platforms. Version 2.19 or -later is recommended. +@anchor{hppa64-hp-hpux11} +@heading hppa64-hp-hpux11* +Only the 64-bit @samp{hppa} target is supported on HP-UX. Support +for 32-bit @samp{hppa} was discontinued in GCC 13. + +We require using gas on all hppa platforms. 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@. -There are two default scheduling models for instructions. These are -PROCESSOR_7100LC and PROCESSOR_8000. They are selected from the pa-risc -architecture specified for the target machine when configuring. -PROCESSOR_8000 is the default. PROCESSOR_7100LC is selected when -the target is a @samp{hppa1*} machine. - -The PROCESSOR_8000 model is not well suited to older processors. Thus, -it is important to completely specify the machine architecture when -configuring if you want a model other than PROCESSOR_8000. The macro -TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different -default scheduling model is desired. - -As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 -through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. -This namespace change might cause problems when bootstrapping with -an earlier version of GCC or the HP compiler as essentially the same -namespace is required for an entire build. This problem can be avoided -in a number of ways. With HP cc, @env{UNIX_STD} can be set to @samp{95} -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. - -More specific information to @samp{hppa*-hp-hpux*} targets follows. +Only the HP linker is supported. Thus, it is best to explicitly +configure the target with the @option{--with-ld=@dots{}} option. -@html -<hr /> -@end html -@anchor{hppa-hp-hpux11} -@heading hppa*-hp-hpux11 -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 cannot be bootstrapped using C@. Ada is -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 -unbundled compiler, or a binary distribution of GCC@. - -It is possible to build GCC 3.3 starting with the bundled HP compiler, -but the process requires several steps. GCC 3.3 can then be used to -build later versions. - -There are several possible approaches to building the distribution. -Binutils can be built first using the HP tools. Then, the GCC -distribution can be built. The second approach is to build GCC -first using the HP tools, then build binutils, then rebuild GCC@. -There have been problems with various binary distributions, so it -is best not to start from a binary distribution. - -On 64-bit capable systems, there are two distinct targets. Different -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 script config.guess now selects the target type based on the compiler -detected during configuration. You must define @env{PATH} or @env{CC} so -that configure finds an appropriate compiler for the initial bootstrap. -When @env{CC} is used, the definition should contain the options that are -needed whenever @env{CC} is used. - -Specifically, options that determine the runtime architecture must be -in @env{CC} to correctly select the target for the build. It is also -convenient to place many other compiler options in @env{CC}. For example, -@env{CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"} -can be used to bootstrap the GCC 3.3 branch with the HP compiler in -64-bit K&R/bundled mode. The @option{+DA2.0W} option will result in -the automatic selection of the @samp{hppa64-hp-hpux11*} target. The -macro definition table of cpp needs to be increased for a successful -build with the HP compiler. _CLASSIC_TYPES and _HPUX_SOURCE need to -be defined when building with the bundled compiler, or when using the -@option{-Ac} option. These defines aren't necessary with @option{-Ae}. - -It is best to explicitly configure the @samp{hppa64-hp-hpux11*} target -with the @option{--with-ld=@dots{}} option. This overrides the standard -search for ld. The two linkers supported on this target require different -commands. The default linker is determined during configuration. As a -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@. - -Only the HP linker is supported for the @samp{hppa64-hp-hpux11*} target. - -At this time, the GNU linker does not support the creation of long -branch stubs. As a result, it cannot 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 cannot 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. +The DCE thread library is not supported, so @option{--enable-threads=dce} +does not work. + +Currently, there are no precompiled binaries for 64-bit HP-UX. + +Binutils and other required tools can be built using the HP tools. +Then, the GCC distribution can be built. This is challenging due +to the many dependencies. @html <hr /> -- GitLab