* 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 <bige...@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 <bige...@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