This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: bootstrap/7882: HP bootstrap failure when building on PA 2.0 for PA 1.1
- From: Jeff Law <law at porcupine dot slc dot redhat dot com>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 10 Sep 2002 18:16:02 -0000
- Subject: Re: bootstrap/7882: HP bootstrap failure when building on PA 2.0 for PA 1.1
- Reply-to: Jeff Law <law at porcupine dot slc dot redhat dot com>
The following reply was made to PR bootstrap/7882; it has been noted by GNATS.
From: Jeff Law <law@porcupine.slc.redhat.com>
To: Dave Cuthbert <dacut@neolinear.com>
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