[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#579780: powerpcspe: Preliminary architecture port and minor bugfix



* Kyle Moffett | 2010-04-30 13:48:32 [-0400]:

> debian/rules.d/binary-gcc-cross.mk |    4 ++--
> debian/rules.d/binary-gcc.mk       |    2 +-
> debian/rules.d/binary-java.mk      |    2 +-
> debian/rules2                      |    4 ++++
> 4 files changed, 8 insertions(+), 4 deletions(-)

We need probably need the attached patch on top. The e500 core doesn't
recognize lwsync, there is a workaround for this in gcc since 4.3.
According to my 4.3 buildlog [0] boehm-gc is compiled and probably used.
I remember gcj segfaulted without his patch, everything else was fine.

[0] http://download.breakpoint.cc/debian/powerpcspe-staging/build/buildlog-gcc-4.3-4.3.2.txt

Sebastian
>From fb656ff1be8f1aafe3013d859100581d5e386d67 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Sat, 1 May 2010 10:30:24 +0200
Subject: [PATCH] don't use lwsync if it is not available

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 boehm-gc/include/private/gc_locks.h |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/boehm-gc/include/private/gc_locks.h b/boehm-gc/include/private/gc_locks.h
index 4e2b641..52db8e3 100644
--- a/src/boehm-gc/include/private/gc_locks.h
+++ b/src/boehm-gc/include/private/gc_locks.h
@@ -178,7 +178,11 @@
 #     endif
 #     define GC_TEST_AND_SET_DEFINED
       inline static void GC_clear(volatile unsigned int *addr) {
+#ifdef __NO_LWSYNC__
+	__asm__ __volatile__("sync" : : : "memory");
+#else
 	__asm__ __volatile__("lwsync" : : : "memory");
+#endif
         *(addr) = 0;
       }
 #     define GC_CLEAR_DEFINED
-- 
1.6.6.1


Reply to: