Hi again,
currently have a functional big endian ARM linux system that I have used
to successfully build the ARM JIT. However, upon attempting to run a
CIL executable, mono immediately segfaults. A backtrace indicates that
the segfault occurs in the Boehm GC:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 32700)]
GC_push_all_eager (bottom=0x0, top=0x1990a8 "") at mark.c:1468
1468 q = *p;
(gdb) bt
#0 GC_push_all_eager (bottom=0x0, top=0x1990a8 "") at mark.c:1468
#1 0x000b9ef8 in pthread_push_all_stacks () at pthread_stop_world.c:266
#2 0x000b9fac in GC_push_all_stacks () at pthread_stop_world.c:297
#3 0x000b5848 in GC_push_roots (all=1, cold_gc_frame=0xbefffa4c "")
at mark_rts.c:643
#4 0x000b4c60 in $a () at mark.c:326
#5 0x000b4c60 in $a () at mark.c:326
Previous frame identical to this frame (corrupt stack?)
I get quite similar backtrace when running the SVN version on our ARM11-based
little-endian board:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 395)]
0x001147b0 in GC_push_all_eager ()
(gdb) bt
#0 0x001147b0 in GC_push_all_eager ()
#1 0x00114844 in GC_push_all_stack ()
#2 0x0011e320 in pthread_push_all_stacks ()
#3 0x0011e3ec in GC_push_all_stacks ()
#4 0x00119164 in GC_default_push_other_roots ()
#5 0x001164b0 in GC_push_roots ()
#6 0x00112ab8 in $a ()
Tomi Valkeinen
I got the GC running after changing the method of finding the stack bottom
from HEURISTIC1 to LINUX_STACKBOTTOM (gcconfig.h:1755). I don't know why
LINUX_STACKBOTTOM wasn't used on arm linux by default, the code looks
arm-runnable to me.
Of course your problem may be something totally different =).
Oh, and if you are using an ARM11 based board, you may also want to fix
the swp-bug (http://bugzilla.ximian.com/show_bug.cgi?id=75114)
Tomi Valkeinen
_______________________________________________
Mono-devel-list mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/mono-devel-list