[Mono-bugs] [Bug 74921][Maj] Changed - The runtime doesn't work correctly when compiled with gcc-4.0

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue Jun 21 07:07:42 EDT 2005


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 norbert at spice.gia.rwth-aachen.de.

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

--- shadow/74921	2005-06-21 03:13:31.000000000 -0400
+++ shadow/74921.tmp.29843	2005-06-21 07:07:42.000000000 -0400
@@ -177,6 +177,21 @@
 So, what seems to happen is that the gc sees a thread multiple times
 while trying to stop the world. It then waits too many times on the
 semaphore. I've yet to figure out who's adding duplicate entries.
 
 ------- Additional Comments From bmaurer at users.sf.net  2005-06-21 03:13 -------
 Should be fixed in head and 1.1.8.1. I can run monodoc and monodevelop...
+
+------- Additional Comments From norbert at spice.gia.rwth-aachen.de  2005-06-21 07:07 -------
+This bug is fixed in 1.1.8.1 since here 'libgc' gets compiled without
+'-fexceptions'.
+The reason for the misbehaviour is that with '-fexceptions' the combo
+'gcc/glibc(nptl)' uses exception based stack-unwinding and without
+'-fexceptions' it uses legacy setjmp/longjmp based stack unwinding.
+Since the mono runtime is compiled without '-fexceptions', stack
+unwinding (!and calling of any thread cleanup handlers!) initiated by
+a call of 'pthread_exit()' from the mono runtime will NOT call
+'GC_thread_exit_proc()' if 'libgc' is compiled with '-fexceptions'.
+So already terminated threads will remain in GC_threads[], making
+'pthread_stop_world()' waiting for eternity.
+For more info one may want to have a look at <pthread.h> as it comes
+with glibc-2.3.x/nptl-enabled.


More information about the mono-bugs mailing list