From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2941 invoked by alias); 10 Sep 2002 18:16:04 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 2911 invoked by uid 71); 10 Sep 2002 18:16:02 -0000 Date: Tue, 10 Sep 2002 11:16:00 -0000 Message-ID: <20020910181602.2908.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Jeff Law Subject: Re: bootstrap/7882: HP bootstrap failure when building on PA 2.0 for PA 1.1 Reply-To: Jeff Law X-SW-Source: 2002-09/txt/msg00179.txt.bz2 List-Id: The following reply was made to PR bootstrap/7882; it has been noted by GNATS. From: Jeff Law To: Dave Cuthbert Cc: gcc-gnats@gcc.gnu.org Subject: Re: bootstrap/7882: HP bootstrap failure when building on PA 2.0 for PA 1.1 Date: Tue, 10 Sep 2002 12:13:11 -0600 In message <3D7E3158.3020602@neolinear.com>, Dave Cuthbert writes: >Jeff Law wrote: >> Note that the PA port generates PA1.1 code unless you explicitly ask for >> PA2.0 code via the -mpa-risc-2-0 runtime switch. >> >> So you really shouldn't need to do anything special to generate PA1.1 code, >> and in fact, by trying to do something special (configure for hppa1.1-hpux) >> you've confused the compiler into thinking it's building cross tools which >> is the root cause of your link time failures. > >Ah, thanks for this info. > >We got burned by the HP compiler here (we have PA2.0 machines only, and >one of our beta releases failed at a customer site which had PA1.1 >machines), so I was being paranoid. No problem. We've discussed changing the behavior of GCC in this regard in the future, but we haven't made any changes yet. In the future (assuming we eventually changes how GCC works), the way to get the behavior you want will be very similar to what you tried. You used "hppa1.1-hpux" as your configure target. Instead what you'd want to do is first run config.guess (included in the GCC sources). That will tell you what GCC thinks your system is. It'd report back something like this: hppa2.0w-hp-hpux11.00 Then substitute "hppa1.1" for "hppa2.0w" (or whatever appeared before the first "-"). This does two important things: 1. "hpux" is a generic term, and I believe in the absence of an OS version GCC defaults to hpux8 or something horribly old like that. There are important differences between hpux8 and modern HP systems. By using the output of config.guess to get the OS version you'll be sure to pick up the right configuration for your OS version. 2. By using the output of config.guess to get the OS version, you'll also ensure that GCC's notion of build, host and target OS versions are the same. That should prevent it from thinking it's building a cross compiler. When configured as a cross compiler, all kinds of fun stuff happens (like you won't get to use the include files in /usr/include, system libraries, etc etc etc). Jeff