<P>I debug into mono/mini/local-propagation.c of mono 2.2, and found there's something wrong in the "MonoBasicBlock *bb" of function mono_local_deadce.</P>
<P>The point of previous inst is same as the inst itself, which will run into dead lock if we traverses the inst list backward. It's hard for us to go further into the source code, anyone have any idea about it.</P>

<P>index=1: ins=3375992, (ins)->prev=0, (ins)->next=3376040</P>
<P>index=2: ins=3376040, (ins)->prev=3375992, (ins)->next=3376088</P>
<P>index=3: ins=3376088, (ins)->prev=3376040, (ins)->next=3376232</P>
<P>index=4: ins=3376232, (ins)->prev=3376088, (ins)->next=3376288</P>
<P>index=5: ins=3376288, (ins)->prev=3376232, (ins)->next=3376344</P>
<P>index=6: ins=3376344, (ins)->prev=3376288, (ins)->next=3376392</P>
<P><b>index=7: ins=3376392, (ins)->prev=3376392, (ins)->next=3376136</b></P>
<P>index=8: ins=3376136, (ins)->prev=3376392, (ins)->next=3376448</P>
<P>index=9: ins=3376448, (ins)->prev=3376136, (ins)->next=0</P>



<blockquote class="quote light-black dark-border-color"><div class="quote light-border-color">
<div class="quote-author" style="font-weight: bold;">Burkhard Linke wrote:</div>
<div class="quote-message">
Hi,

<blockquote class="quote light-black dark-border-color"><div class="quote light-border-color">
<div class="quote-author" style="font-weight: bold;">Thracx wrote:</div>
<div class="quote-message">
<P>In short, it's not working for me but I'm willing to keep trying and document my experiences if I can get some help from the Mono developer community.  I apologize for the lengthy post but I figured that I might as well be thorough.</P>
</div>
</div></blockquote>


I'm running into the same problem with the 2.4 release of Mono. My current build does not use the bundled garbage collector, since I get compiler error during build time.

The cause of the endless loop during compiling the class library is not the compiler, but the runtime itself. The main thread of mono hangs in a loop, JIT-compiling methods (output created using 'pstack' utility under Solaris 10 and trimmed):

cab:~> pstack 6411
6411:   /vol/src/gnu/mono/mono-2.4/mono/mini/mono --config /vol/src/gnu/mono/m
-----------------  lwp# 1 / thread# 1  --------------------
 00083588 mono_local_deadce (2f4870, 1b4e80, 1b09f4, 137, ffffffff, ffffff) + 818
 00039b9c mini_method_compile (2f4870, 35169ff, 10000000, 0, 1af560, 2f6fd0) + a40
 0003b058 mono_jit_compile_method (2f6890, 1, fee73580, fef52000, ff371480, 0) + 2f0
 000d7cdc mono_compile_method (2f6890, fec90740, ff373a40, 14, 80808080, fef52100) + 18
 000a0ec8 mono_magic_trampoline (ffbfdeb0, fec90740, 2f6890, 0, 0, ff) + f8
 fecf0104 ???????? (2e4ee0, 0, fee73580, fef52000, 2570b0, 6)
 fec90740 ???????? (0, fec906f8, fee73580, fef52000, 257000, 6)
 fec90478 ???????? (0, 0, ffbfe36c, fec906f8, 257000, fef52100)
 0003b8a4 mono_jit_runtime_invoke (2fad58, 0, 0, ffbfe36c, 0, ff) + 98
 000d8ca8 mono_runtime_invoke (2fad58, 0, 0, ffbfe36c, 2570b0, 6) + 50
 000ded68 mono_runtime_class_init_full (2b7128, 0, fee73580, fef52000, 257000, 0) + 18c
 00056f10 mono_method_to_ir (2c8cc0, 2f5240, 2b8340, feb92b3d, 2f7ad0, 2) + c8fc
 00039710 mini_method_compile (2c8cc0, 35169ff, 10000000, 0, 1af560, 2f5240) + 5b4
 0003b058 mono_jit_compile_method (2b8340, 1, 257000, 20, 2bf090, fef52100) + 2f0
 0003b890 mono_jit_runtime_invoke (2b8340, 0, ffbfe7a4, 0, ffbfe72c, 80808080) + 84
 000d8ca8 mono_runtime_invoke (2b8340, 0, ffbfe7a4, 0, 0, 34) + 50
 000db7dc mono_runtime_exec_main (2b8340, 299e40, 0, 20, 2e, 34) + 138
 000dbe14 mono_runtime_run_main (2b8340, 2, ffbfe9c0, 0, 80808080, 1010101) + 14c
 0008523c mono_main (3, ffbfe9b4, 0, 0, 6, 0) + 15ac
 00033110 _start   (0, 0, 0, 0, 0, 0) + 5c

The other two threads active at the time are the garbage collection thread and finalizer thread. 

The instruction pointer (first column) of the mono_local_deadce changes during several invocation of pstack, but the remaining backtrace remains the same. So the problem should be located somewhere in that function.

I'll put more debug output calls into the function in the next build and try to find out under which circumstances the endless loop occurs.

Mono 2.4 works fine under Solaris 10 x86, so the problem should be related to the different register sets of x86 and SPARC cpus.
</div>
</div></blockquote>


<br><hr align="left" width="300">
View this message in context: <a href="http://www.nabble.com/Compiling-Mono-v2.4-RC2-%28Solaris-10-SPARCv9%29-tp22587130p23555461.html">Re: Compiling Mono v2.4 RC2 (Solaris 10 SPARCv9)</a><br>
Sent from the <a href="http://www.nabble.com/Mono---Dev-f1369.html">Mono - Dev mailing list archive</a> at Nabble.com.<br>