Debugging ==========================================================000 1. debug session Error code 0x2 (unassigned-variable). Expression was: [false 0x21300b8] Environment was: [false 0x1] Return code: join-stacklets Error code 0x2 (unassigned-variable). Expression was: [false 0x21300b8] Environment was: [false 0x1] Return code: join-stacklets Error code 0x2 (unassigned-variable). <------------repeated nearly endlessly until "overflow", see below Expression was: [false 0x21300b8] Environment was: [false 0x1] Return code: join-stacklets block overflows tospace: 0x7517c010 scan = 0x7517bfd0; to = 0x7517bffc Inconsistency detected within critical section "garbage collector". Makefile:892: recipe for target 'stamp_build-liarc-boot-compiler' failed make: *** [stamp_build-liarc-boot-compiler] Error 1 2. another debug session ---- where I was able to ctrl-C while "Error code 0x2" was repeated (gdb) bt #0 0x76e3f448 in write () at ../sysdeps/unix/syscall-template.S:81 #1 0x76deafb4 in _IO_new_file_write (f=0x76eb99e0 <_IO_2_1_stderr_>, data=0x7effca80, n=14) at fileops.c:1253 #2 0x76dea454 in new_do_write (fp=fp@entry=0x76eb99e0 <_IO_2_1_stderr_>, data=data@entry=0x7effca80 "join-stackletss: rror code 0x2 (\370\207\353vsign\340\231\353varia\370\207\353v.\n", to_do=to_do@entry=14) at fileops.c:530 #3 0x76deb660 in _IO_new_file_xsputn (f=0x76eb99e0 <_IO_2_1_stderr_>, data=, n=14) at fileops.c:1335 #4 0x76dc4c80 in buffered_vfprintf (s=s@entry=0x76eb99e0 <_IO_2_1_stderr_>, format=format@entry=0x1eb0294 "%s", args=...) at vfprintf.c:2369 #5 0x76dbfdc8 in _IO_vfprintf_internal (s=0x76eb99e0 <_IO_2_1_stderr_>, format=0x1eb0294 "%s", ap=...) at vfprintf.c:1296 #6 0x00063388 in voutf_error (format=0x1eb0294 "%s", args=...) at outf.c:254 #7 0x000631fc in voutf (chan=ERROR_OUTPUT, format=0x1eb0294 "%s", ap=...) at outf.c:73 #8 0x00063198 in outf (chan=ERROR_OUTPUT, format=0x1eb0294 "%s") at outf.c:63 #9 0x0003d62c in print_return_name (stream=ERROR_OUTPUT, Ptr=738197505) at debug.c:174 #10 0x0003d688 in Print_Return (String=0x1eb436c "Return code") at debug.c:185 #11 0x00077998 in Do_Micro_Error (error_code=2, from_pop_return_p=true) at utils.c:568 #12 0x00055be8 in Interpret (pop_return_p=0) at interp.c:1062 #13 0x0003bf98 in Do_Enter_Interpreter () at boot.c:210 #14 0x0003bfb8 in Enter_Interpreter () at boot.c:218 #15 0x0003bf24 in start_scheme () at boot.c:204 #16 0x0003b9ec in main (argc=8, argv=0x7efff4d4) at boot.c:126 Looking for join-stacklets =================================================== pi@navajo ~/mit-scheme-c-9.2/src $ grep -R join-stacklets . Yields runtime/conpar.scm and runtime/cpoint.scm or the same files in lib/runtime My current intermediate conclusion =============================================== The code in conpar.scm creates the problem in the following function definition - as it is recursive - and would this way explain the nearly endless "Return code: join-stacklets" But why only on an ARM - this ARM - processor ? I guess someone who really knows/wrote this code can shed further light on this problem. (define (unparse/stack-frame stack-frame) (if (eq? (stack-frame/return-address stack-frame) return-address/join-stacklets) (values (stream) (vector-ref (stack-frame/elements stack-frame) 1)) (with-values (lambda () (let ((next (stack-frame/%next stack-frame))) (cond ((stack-frame? next) (unparse/stack-frame next)) ((parser-state? next) (values (parser-state/element-stream next) (parser-state/next-control-point next))) (else (values (stream) #f))))) (lambda (element-stream next-control-point) (values (let ((elements (stack-frame/elements stack-frame))) (let ((length (vector-length elements))) (let loop ((index 0)) (if (fix:< index length) (cons-stream (vector-ref elements index) (loop (fix:+ index 1))) element-stream)))) next-control-point))))) \