[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20091116202720.GA19798@Krystal>
Date: Mon, 16 Nov 2009 15:27:20 -0500
From: Mathieu Desnoyers <mathieu.desnoyers@...ymtl.ca>
To: David Miller <davem@...emloft.net>
Cc: nickpiggin@...oo.com.au, linux-kernel@...r.kernel.org,
paulmck@...ux.vnet.ibm.com, ltt-dev@...ts.casi.polymtl.ca,
rp@...s.cs.pdx.edu
Subject: Re: Sparc64 support added to Userspace RCU
* David Miller (davem@...emloft.net) wrote:
> From: Mathieu Desnoyers <mathieu.desnoyers@...ymtl.ca>
> Date: Thu, 22 Oct 2009 15:57:53 -0400
>
> > Feedback is welcome,
>
> __sparc_v8__ does not mean 64-bit longs or pointers as implied here:
>
> #ifndef __SIZEOF_LONG__
> #if (defined(__sparc_v8__) || defined(__sparc_v9__))
> #define __SIZEOF_LONG__ 8
> #else
> #define __SIZEOF_LONG__ 4
> #endif
> #endif
>
> "v8" was the last 32-bit standard of the cpu architecture.
>
> Otherwise looks fine.
>
> Although this port won't be very useful until it can be built in
> 32-bit mode. As most applications on sparc64 systems are still
> 32-bit. Like on powerpc, people only rarely build things 64-bit on
> sparc64.
>
> You need to build with "-Wa,-Av9a" on the GCC command line for that
> case so that the assembler allows the v9 instructions emitted by your
> macros, even when building for 32-bit.
>
> Hope this helps.
Yes ! Thanks a lot for this information. I'll push the following fix in
my tree.
Mathieu
diff --git a/README b/README
index 883b808..ca23d43 100644
--- a/README
+++ b/README
@@ -18,11 +18,14 @@ BUILDING
Forcing a 32-bit build with 386 backward compatibility:
* CFLAGS="-m32 -g -O2" ./configure --host=i386-pc-linux-gnu
+ Forcing a 32-bit build for Sparcv9 (typical for Sparc v9)
+ * CFLAGS="-m32 -Wa,-Av9a -g -O2" ./configure
+
ARCHITECTURES SUPPORTED
-----------------------
Currently, x86 (i386, i486, i586, i686), x86 64-bit, PowerPC 32/64, S390, S390x
-and Sparc64 are supported. Only tested on Linux so far, but should
+and Sparcv9 32/64 are supported. Only tested on Linux so far, but should
theoretically work on other operating systems.
QUICK START GUIDE
diff --git a/urcu/uatomic_arch_sparc64.h b/urcu/uatomic_arch_sparc64.h
index 35b9ac2..28829d2 100644
--- a/urcu/uatomic_arch_sparc64.h
+++ b/urcu/uatomic_arch_sparc64.h
@@ -24,7 +24,7 @@
#include <urcu/system.h>
#ifndef __SIZEOF_LONG__
-#if (defined(__sparc_v8__) || defined(__sparc_v9__))
+#ifdef __LP64__
#define __SIZEOF_LONG__ 8
#else
#define __SIZEOF_LONG__ 4
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists