[PATCH 6/9] Use proper membar instructions on SPARC

Michael macallan at netbsd.org
Thu Aug 13 10:11:58 PDT 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

On Aug 13, 2009, at 5:00 AM, David Miller wrote:

> From: Matt Turner <mattst88 at gmail.com>
> Date: Thu, 13 Aug 2009 02:28:53 -0400
>
>> On Thu, Aug 13, 2009 at 1:51 AM, David Miller<davem at davemloft.net>  
>> wrote:
>>> From: Matt Turner <mattst88 at gmail.com>
>>> Date: Thu, 13 Aug 2009 01:45:39 -0400
>>>
>>>> Cc: David S. Miller <davem at davemloft.net>
>>>> Cc: Alan Coopersmith <alan.coopersmith at sun.com>
>>>> Signed-off-by: Matt Turner <mattst88 at gmail.com>
>>>
>>> This breaks 32-bit sparc.
>>>
>>> It will cause the binaries built to be tagged as needing v8plus or  
>>> v9
>>> instructions.  They therefore won't execute or load on a 32-bit  
>>> sparc
>>> system.
>>>
>>> That's why I encoded the membars using explicit instruction  
>>> constants,
>>> rather than using the usual mnemonics.
>>
>> Surely gcc defines a macro we can check for? Something like __sparcv9
>> or __arch64__? What is preferred?
>
> The correct test is something like:
>
> #if defined(__sparc__) && defined(__arch64__)

IIRC __arch64__ is only set when you're running a 64bit binary which  
may or may not be the case on a 64bit SPARC.
So, it would work on NetBSD/sparc64 but not on Solaris, Linux etc.  
which use mostly 32bit userlands as far as I know.
What you want to check for is __sparc_v9__

have fun
Michael

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)

iQEVAwUBSoRJX8pnzkX8Yg2nAQJACwgAkli7mWx4BuD74TX+XphgNoLqplr81QC/
dbVVa2JRl0KcsxtiaF8b/5JnL233+vSIvsEtnXjwdby1svSrdQ9NPpOg63QGJy+8
0grDk5ZoNJ/mZ+Cs2XmQ03n4jqmOx2JJtWaNI8fOZfclXGPgfGsiNIvcHzmpYnKM
YhcTTrGympsA3sLqP9FkyYACFEivQrJxoeSjj0X3iwBzuWGi3cNfMx56ljymwxRG
A17ulL23kQGt/FJKEocBRSA4HJwzUyRhImFmZbe0/kEvjJ2vfdN77ZtGCla+4PL/
OYRar/q/eTYGL6qYa5gQXjSzR8N1sF8QyIKEnQPniXcPqXVRVlUw/w==
=ULsO
-----END PGP SIGNATURE-----


More information about the xorg-devel mailing list