From patchwork Mon Nov 18 01:42:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John David Anglin X-Patchwork-Id: 2012555 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Xs9Pn6DJmz1xt3 for ; Mon, 18 Nov 2024 12:43:25 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id F382B385B508 for ; Mon, 18 Nov 2024 01:43:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F382B385B508 X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from paco.parisc-linux.org (paco.parisc-linux.org [IPv6:2a02:c206:3015:3002::1]) by sourceware.org (Postfix) with ESMTPS id B54FF385694F for ; Mon, 18 Nov 2024 01:42:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B54FF385694F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=parisc-linux.org Authentication-Results: sourceware.org; spf=none smtp.mailfrom=parisc-linux.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B54FF385694F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a02:c206:3015:3002::1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1731894164; cv=none; b=kPqYT4YyyDbQkYZZYZL3OdUnMzTalRd6lFC2FkolQPoYB9LTt2GORXAb6cl5yxmHpHD4c2NMWDCWuKz1fPCnzhxEpxG7cVgiY8xQbyXNf/UsZdsGjFxz+3zrxyKVBdCS5wN1usJ3PrgIptDKdnFinh8ZGzis/UDgLv5rarfAtcA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1731894164; c=relaxed/simple; bh=S/I8lP6ZkU8q647nPszXLSlewW66e4oKHLewSaFZ8fY=; h=Date:From:To:Subject:Message-ID:MIME-Version; b=a1nvI7jOmNshPXYUh+YL+ZIW8Pbs5QvfwCmaDgRytjK6ZaAoHFn1LxP5GlkC4BoxvOwfZBwURmZlPZgHC4hWxovJZ9mEA5IJsD3S6C3NhrcG2GiSd90FcNYqfMwF43QBmoMfRDYmDHAj2Mv+mwSB8laWZYZJG2he2iPhBH0WstI= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B54FF385694F Received: from mx3210.localdomain (unknown [142.126.129.6]) by paco.parisc-linux.org (Postfix) with ESMTPSA id DB16517E0ADD; Mon, 18 Nov 2024 01:42:39 +0000 (UTC) Received: by mx3210.localdomain (Postfix, from userid 1000) id B4B70D603F6; Sun, 17 Nov 2024 20:42:17 -0500 (EST) Date: Sun, 17 Nov 2024 20:42:17 -0500 From: John David Anglin To: GCC Patches Cc: Gerald Pfeifer , Jeff Law Subject: [committed] hppa: Update install documentation Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org Committed to trunk. Dave --- hppa: Update install documentation 2024-11-17 John David Anglin gcc/ChangeLog: PR target/69374 * doc/install.texi (Specific) : Update anchor and heading to reflect removal of 32-bit hppa support on HP-UX. Trim 32-bit related text. diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index fc74ee3d0e1..03bbfece0ec 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
@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 -
-@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