Message ID | yddpq0o88xx.fsf@lokon.CeBiTec.Uni-Bielefeld.DE |
---|---|
State | New |
Headers | show |
On Tue, Jan 29, 2013 at 4:34 AM, Rainer Orth <ro@cebitec.uni-bielefeld.de> wrote: > Ian Lance Taylor <iant@google.com> writes: > >> Looks like sparc64 broke for libgo when parallel garbage collection was >> introduced. This patch is an attempt to get it working again. >> Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu, not that >> that proves much. Committed to mainline. > > I needed the following patch on top of yours to get it to compile on > Solaris/SPARC. The #undefs are necessary to avoid redefinition > errors. This massivly improves Solaris/SPARC testsuite results, > though there are still a few common Solaris failures and a few others > that might be endianess issues. Thanks. Committed to mainline. Ian
diff --git a/libgo/runtime/lfstack.c b/libgo/runtime/lfstack.c --- a/libgo/runtime/lfstack.c +++ b/libgo/runtime/lfstack.c @@ -19,7 +19,10 @@ #if __SIZEOF_POINTER__ == 8 && defined(__sparc__) // SPARC64 uses all 64 bits of virtual addresses. Use low-order three -bits as ABA counter. +// bits as ABA counter. +#undef PTR_BITS +#undef CNT_MASK +#undef PTR_MASK #define PTR_BITS 0 #define CNT_MASK 7 #define PTR_MASK ((0ull-1)<<3)