[Mono-bugs] [Bug 74448][Wis] New - Problem building Boehm garbage collector on PPC

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Wed, 6 Apr 2005 11:46:33 -0400 (EDT)


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by jsacco@ydl.net.

http://bugzilla.ximian.com/show_bug.cgi?id=74448

--- shadow/74448	2005-04-06 11:46:32.000000000 -0400
+++ shadow/74448.tmp.25914	2005-04-06 11:46:33.000000000 -0400
@@ -0,0 +1,72 @@
+Bug#: 74448
+Product: Mono: Compilers
+Version: 1.1
+OS: 
+OS Details: YDL-4.0.1, FC2 clone for PPC
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Wishlist
+Component: Basic
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: jsacco@ydl.net               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Problem building Boehm garbage collector on PPC
+
+Description of Problem:
+Boehm garbage collector does not build on a PPC.
+
+Why:
+libgc configure file fails to select pthreads.
+
+How to fix the problem:
+
+--- configure-  2005-04-05 13:17:02.000000000 -0400
++++ configure   2005-04-05 13:17:21.000000000 -0400
+@@ -3903,7 +3903,7 @@
+     THREADS=posix
+     THREADLIBS=-lpthread
+     case "$host" in
+-     x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* |
+x86_64-*-linux* | alpha-*-linux* | s390*-*-linux* | powerpc-*-linux)
++     x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* |
+x86_64-*-linux* | alpha-*-linux* | s390*-*-linux* | powerpc-*-linux*)
+        cat >>confdefs.h <<\_ACEOF
+ #define GC_LINUX_THREADS 1
+ _ACEOF
+
+Further discussion:
+
+The culprit:
+
+        ./mono/os/gc_wrapper.h
+
+now defines GC_REDIRECT_TO_LOCAL
+
+                           ...
+#ifdef HAVE_BOEHM_GC
+                                                                          
+                     
+        /* libgc specifies this on the command line,
+         * so we must define it ourselfs
+         */
+#       define GC_GCJ_SUPPORT
+        /*
+         * Local allocation is only beneficial if we have __thread
+         * We had to fix a bug with include order in libgc, so only do
+         * it if it is the included one.
+         */
+                                                                          
+                     
+#       if defined(HAVE_KW_THREAD) && defined(USE_INCLUDED_LIBGC)
+#               define GC_REDIRECT_TO_LOCAL
+#       endif
+
+                         ...
+
+
+which requires THREAD_LOCAL_ALLOC to be defined when building libgc
+using pthreads.