This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/58833] RFE: 64-bit native compiler on Solaris
- From: "ro at CeBiTec dot Uni-Bielefeld.DE" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 24 Oct 2013 13:10:01 +0000
- Subject: [Bug target/58833] RFE: 64-bit native compiler on Solaris
- Auto-submitted: auto-generated
- References: <bug-58833-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58833
--- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> --- Comment #1 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
>> Would it be possible for GCC in Solaris to auto-configure itself as a 64-bit
>> native compiler by default (instead of the current 32-bit native compiler
>> default)?
>
> The decision was made years ago not to do so, at least on SPARC, because the
> 64-bit compiler was measurably slower than the 32-bit compiler.
That's my experience as well, both on SPARC and x86. When some users
loudly clamored for a 64-bit-default Solaris/x86 configuration, one
argument was that a 64-bit gcc would be faster due to a larger register
set. My experience is just the opposite: a amd64-pc-solaris2.11
bootstrap is considerably slower that i386-pc-solaris2.11. I've not
even started investigating in detail, so this is just one data point.
>> The output of `uname -p` in Solaris is always 'i386' or 'sparc', regardless
>> of whether or not the kernel is 32-bit or 64-bit. In Solaris 11 and later,
>> kernels are 64-bit only, so the output of `uname -p` does not really reflect
>> reality.
>
> Given that the 32-bit compiler is biarch by default, at least on SPARC, I'm not
> sure there is really an incentive for switching to 64-bit by default.
Agreed: on the opposite, I see a number of counter arguments:
* Studio (at least until the current 12.3) defaults to 32-bit. Why
would gcc be different on just one OS version?
* I think the user experience would be terrible: consider a user who
used to work on Solaris 10 with gcc x.y. Now he switches to Solaris
11, rebuilds gcc x.y and suddenly all his objects are 64-bit, with
nothing else changed. He has to modify his build environment to
retain interoperability with his existing objects and libraries. Not
exactly what I'd call seamless.
Given all this, I think users who really need (or think they need) a
64-bit-default gcc on Solaris can get it today, but the default should
remain 32-bit.
Rainer