Re: solaris build problem with Sun compilers
- From: Alan Stange <stange(at)rentec(dot)com>
- To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
- Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-ports(at)postgresql(dot)org
- Subject: Re: solaris build problem with Sun compilers
- Date: Thu, 18 May 2006 08:40:36 -0400
- Message-id: <446C6B44.9040800@rentec.com> <text/plain>
Bruce Momjian wrote:
Alan Stange wrote:
Tom Lane wrote:
Alan Stange <stange(at)rentec(dot)com> writes:
Check out the comment and implementation for cas32() in this .il
template file for libc from OpenSolaris:
http://cvs.opensolaris.org/source/xref/on/usr/src/lib/libc/sparc/threads/sparc.il
If you mean
* When compiling with -xarch=v8, the compiler refuses to
* accept the 'cas' instruction, so we encode it in hex below.
I can't say that that impresses me. It still will fail on v8 chips no?
What's the point of fooling the compiler if you can't fool the hardware?
I believe the trick here is that Solaris 10 will only run on v9 hardware
(or the sun4u systems), which all have the instruction. But the v8 ABI
"model" doesn't have it. So, in some sense the ABI doesn't "allow"
this instruction, but the hardware does, so they can just slam it in
knowing that it'll work.
Uh, are you saying our Solaris Sparc "cas" ASM is only going to work for
Solaris 11 tools? That doesn't sound good. We must have people using
earlier Solaris tools.
No, I'm not saying that at all.
I think I'm saying that cas is OK for any reasonable Solaris+Sparc+Sun
compiler combination. It'll fail on any SuperSparc based hardware and
older compilers (more than ~5 years), but that's too bad.
I'm also saying that cas in not OK for any gcc+binutils combination. As
far as I can tell, gcc is still building code for the v7 platform by
default. It's possible to override this, but I don't think it's
something you can test for in the preprocessor.
-- Alan
Home |
Main Index |
Thread Index